Main Page   Modules   Data Structures   File List   Data Fields   Globals   Related Pages  

lib/rpmcli.h

Go to the documentation of this file.
00001 #ifndef H_RPMCLI
00002 #define H_RPMCLI
00003 
00008 #include "rpmlib.h"
00009 #include "rpmurl.h"
00010 #include "rpmmacro.h"
00011 
00015 extern int _noDirTokens;
00016 
00017 #ifdef __cplusplus
00018 extern "C" {
00019 #endif
00020 
00021 /* ==================================================================== */
00024 
00028 struct rpmBuildArguments_s {
00029     int buildAmount;            
00030 /*@null@*/ const char * buildRootOverride; 
00031 /*@null@*/ char * targets;      
00032     int force;                  
00033     int noBuild;                
00034     int noDeps;                 
00035     int noLang;                 
00036     int shortCircuit;           
00037     int sign;                   
00038     int useCatalog;             
00039     char buildMode;             
00040     char buildChar;             
00041 /*@observer@*/ /*@null@*/ const char * rootdir;
00042 };
00043 
00046 typedef struct rpmBuildArguments_s *    BTA_t;
00047 
00050 extern struct rpmBuildArguments_s       rpmBTArgs;
00051 
00054 extern struct poptOption                rpmBuildPoptTable[];
00055 
00057 /* ==================================================================== */
00060 
00065 typedef enum rpmQueryFlags_e {
00066     QUERY_FOR_DEFAULT   = 0,            
00067 /*@-enummemuse@*/
00068     QUERY_MD5           = (1 << 0),     
00069     QUERY_SIZE          = (1 << 1),     
00070     QUERY_LINKTO        = (1 << 2),     
00071     QUERY_USER          = (1 << 3),     
00072     QUERY_GROUP         = (1 << 4),     
00073     QUERY_MTIME         = (1 << 5),     
00074     QUERY_MODE          = (1 << 6),     
00075     QUERY_RDEV          = (1 << 7),     
00076         /* bits 8-15 unused, reserved for rpmVerifyAttrs */
00077     QUERY_FILES         = (1 << 16),    
00078     QUERY_DEPS          = (1 << 17),    
00079     QUERY_SCRIPT        = (1 << 18),    
00080     QUERY_DIGEST        = (1 << 19),    
00081 /*@=enummemuse@*/
00082         /* bits 20-22 unused */
00083     QUERY_FOR_LIST      = (1 << 23),    
00084     QUERY_FOR_STATE     = (1 << 24),    
00085     QUERY_FOR_DOCS      = (1 << 25),    
00086     QUERY_FOR_CONFIG    = (1 << 26),    
00087     QUERY_FOR_DUMPFILES = (1 << 27),    
00088 } rpmQueryFlags;
00089 
00094 typedef enum rpmVerifyFlags_e {
00095 /*@-enummemuse@*/
00096     VERIFY_DEFAULT      = 0,            
00097 /*@=enummemuse@*/
00098     VERIFY_MD5          = (1 << 0),     
00099     VERIFY_SIZE         = (1 << 1),     
00100     VERIFY_LINKTO       = (1 << 2),     
00101     VERIFY_USER         = (1 << 3),     
00102     VERIFY_GROUP        = (1 << 4),     
00103     VERIFY_MTIME        = (1 << 5),     
00104     VERIFY_MODE         = (1 << 6),     
00105     VERIFY_RDEV         = (1 << 7),     
00106         /* bits 8-15 unused, reserved for rpmVerifyAttrs */
00107     VERIFY_FILES        = (1 << 16),    
00108     VERIFY_DEPS         = (1 << 17),    
00109     VERIFY_SCRIPT       = (1 << 18),    
00110     VERIFY_DIGEST       = (1 << 19),    
00111         /* bits 20-22 unused */
00112 /*@-enummemuse@*/
00113     VERIFY_FOR_LIST     = (1 << 23),    
00114     VERIFY_FOR_STATE    = (1 << 24),    
00115     VERIFY_FOR_DOCS     = (1 << 25),    
00116     VERIFY_FOR_CONFIG   = (1 << 26),    
00117     VERIFY_FOR_DUMPFILES= (1 << 27),    
00118 /*@=enummemuse@*/
00119         /* bits 28-30 used in rpmVerifyAttrs */
00120 } rpmVerifyFlags;
00121 
00122 #define VERIFY_ATTRS    \
00123   ( VERIFY_MD5 | VERIFY_SIZE | VERIFY_LINKTO | VERIFY_USER | VERIFY_GROUP | \
00124     VERIFY_MTIME | VERIFY_MODE | VERIFY_RDEV )
00125 #define VERIFY_ALL      \
00126   ( VERIFY_ATTRS | VERIFY_FILES | VERIFY_DEPS | VERIFY_SCRIPT | VERIFY_DIGEST )
00127 
00133 typedef int (*QVF_t) (QVA_t qva, rpmdb db, Header h)
00134         /*@modifies db, fileSystem @*/;
00135 
00143 int showMatches(QVA_t qva, /*@only@*/ /*@null@*/ rpmdbMatchIterator mi,
00144                 QVF_t showPackage)
00145         /*@modifies mi @*/;
00146 
00151 void rpmDisplayQueryTags(FILE * fp)
00152         /*@modifies *fp, fileSystem @*/;
00153 
00163 int rpmQueryVerify(QVA_t qva, rpmQVSources source, const char * arg,
00164                 rpmdb db, QVF_t showPackage)
00165         /*@modifies db, fileSystem @*/;
00166 
00175 int showQueryPackage(QVA_t qva, rpmdb db, Header h)
00176         /*@modifies db, fileSystem @*/;
00177 
00186 int rpmQuery(QVA_t qva, rpmQVSources source, const char * arg)
00187         /*@modifies fileSystem @*/;
00188 
00196 int showVerifyPackage(QVA_t qva, /*@only@*/ rpmdb db, Header h)
00197         /*@modifies db, h, fileSystem @*/;
00198 
00205 int rpmVerifyDigest(Header h)
00206         /*@modifies nothing @*/;
00207 
00215 int rpmVerify(QVA_t qva, rpmQVSources source, const char *arg)
00216         /*@modifies fileSystem @*/;
00217 
00221 struct rpmQVArguments_s {
00222     rpmQVSources qva_source;    
00223     int         qva_sourceCount;
00224     rpmQueryFlags qva_flags;    
00225     rpmfileAttrs qva_fflags;    
00226 /*@unused@*/ int qva_verbose;   
00227 /*@only@*/ /*@null@*/ const char * qva_queryFormat; 
00228 /*@observer@*/ /*@null@*/ const char * qva_prefix; 
00229     char        qva_mode;       
00230     char        qva_char;       
00231 };
00232 
00235 extern struct rpmQVArguments_s rpmQVArgs;
00236 
00239 extern struct poptOption rpmQVSourcePoptTable[];
00240 
00243 extern int specedit;
00244 
00247 extern struct poptOption rpmQueryPoptTable[];
00248 
00251 extern struct poptOption rpmVerifyPoptTable[];
00252 
00254 /* ==================================================================== */
00257 /* --- install/upgrade/erase modes */
00258 
00269 int rpmInstall(/*@null@*/ const char * rootdir,
00270                 /*@null@*/ const char ** fileArgv,
00271                 rpmtransFlags transFlags, 
00272                 rpmInstallInterfaceFlags interfaceFlags,
00273                 rpmprobFilterFlags probFilter,
00274                 /*@null@*/ rpmRelocation * relocations)
00275         /*@modifies *relocations, fileSystem @*/;
00276 
00285 int rpmInstallSource(const char * rootdir, const char * arg,
00286                 /*@null@*/ /*@out@*/ const char ** specFile,
00287                 /*@null@*/ /*@out@*/ char ** cookie)
00288         /*@modifies *specFile, *cookie, fileSystem @*/;
00289 
00298 int rpmErase(/*@null@*/ const char * rootdir, /*@null@*/ const char ** argv,
00299                 rpmtransFlags transFlags, 
00300                 rpmEraseInterfaceFlags interfaceFlags)
00301         /*@modifies fileSystem @*/;
00302 
00306 struct rpmInstallArguments_s {
00307     rpmtransFlags transFlags;
00308     rpmprobFilterFlags probFilter;
00309     rpmInstallInterfaceFlags installInterfaceFlags;
00310     rpmEraseInterfaceFlags eraseInterfaceFlags;
00311 /*@only@*/ /*@null@*/ rpmRelocation * relocations;
00312     int numRelocations;
00313     int noDeps;
00314     int incldocs;
00315 /*@null@*/ const char * prefix;
00316 /*@observer@*/ /*@null@*/ const char * rootdir;
00317     int_32 rbtid;               
00318 };
00319 
00323 typedef /*@abstract@*/ struct IDT_s {
00324     unsigned int instance;      
00325 /*@owned@*/ /*@null@*/ const char * key; 
00326     Header h;                   
00327     union {
00328         int_32 i32;             
00329     } val;
00330 } * IDT;
00331 
00335 typedef /*@abstract@*/ struct IDTindex_s {
00336     int delta;                  
00337     int size;                   
00338     int alloced;                
00339     int nidt;                   
00340 /*@only@*/ /*@null@*/ IDT idt;  
00341 } * IDTX;
00342 
00348 /*@null@*/ IDTX IDTXfree(/*@only@*/ /*@null@*/ IDTX idtx)
00349         /*@modifies idtx @*/;
00350 
00355 /*@only@*/ IDTX IDTXnew(void)
00356         /*@*/;
00357 
00364 /*@only@*/ /*@null@*/ IDTX IDTXgrow(/*@only@*/ /*@null@*/ IDTX idtx, int need)
00365         /*@modifies idtx @*/;
00366 
00372 /*@only@*/ /*@null@*/ IDTX IDTXsort(/*@only@*/ /*@null@*/ IDTX idtx)
00373         /*@modifies idtx @*/;
00374 
00381 /*@only@*/ /*@null@*/ IDTX IDTXload(rpmdb db, rpmTag tag)
00382         /*@modifies db @*/;
00383 
00390 /*@only@*/ /*@null@*/ IDTX IDTXglob(const char * globstr, rpmTag tag)
00391         /*@modifies fileSystem @*/;
00392 
00393 
00407 /*@null@*/ void * rpmShowProgress(/*@null@*/ const void * arg,
00408                 const rpmCallbackType what,
00409                 const unsigned long amount,
00410                 const unsigned long total,
00411                 /*@null@*/ const void * pkgKey,
00412                 /*@null@*/ void * data)
00413         /*@modifies fileSystem @*/;
00414 
00415 extern int packagesTotal;
00416 
00421 int rpmRollback(struct rpmInstallArguments_s * ia,
00422                 /*@null@*/ const char ** argv)
00423         /*@modifies fileSystem @*/;
00424 
00427 extern struct rpmInstallArguments_s rpmIArgs;
00428 
00431 extern struct poptOption rpmInstallPoptTable[];
00432 
00434 /* ==================================================================== */
00437 /* --- database modes */
00438 
00442 struct rpmDatabaseArguments_s {
00443     int init;                   
00444     int rebuild;                
00445     int verify;                 
00446 };
00447 
00450 extern struct rpmDatabaseArguments_s rpmDBArgs;
00451 
00454 extern struct poptOption rpmDatabasePoptTable[];
00455 
00457 /* ==================================================================== */
00460 
00464 typedef enum rpmCheckSigFlags_e {
00465 /*@-enummemuse@*/
00466     CHECKSIG_NONE       = 0,    
00467 /*@=enummemuse@*/
00468     CHECKSIG_PGP        = (1 << 0),     
00469     CHECKSIG_MD5        = (1 << 1),     
00470     CHECKSIG_GPG        = (1 << 2)      
00471 } rpmCheckSigFlags;
00472 #define CHECKSIG_ALL    (CHECKSIG_PGP|CHECKSIG_MD5|CHECKSIG_GPG)
00473 
00480 int rpmCheckSig(rpmCheckSigFlags flags, /*@null@*/ const char ** argv)
00481         /*@modifies fileSystem @*/;
00482 
00486 typedef enum rpmResignFlags_e {
00487     RESIGN_NONE = 0,
00488     RESIGN_CHK_SIGNATURE = 1,   
00489     RESIGN_NEW_SIGNATURE,       
00490     RESIGN_ADD_SIGNATURE        
00491 } rpmResignFlags;
00492 
00500 int rpmReSign(rpmResignFlags add, char * passPhrase,
00501                 /*@null@*/ const char ** argv)
00502         /*@modifies fileSystem @*/;
00503 
00507 struct rpmSignArguments_s {
00508     rpmResignFlags addSign;     
00509     rpmCheckSigFlags checksigFlags;     
00510     int sign;                   
00511 /*@unused@*/ char * passPhrase;
00512 };
00513 
00516 extern struct rpmSignArguments_s rpmKArgs;
00517 
00520 extern struct poptOption rpmSignPoptTable[];
00521 
00524 #ifdef __cplusplus
00525 }
00526 #endif
00527 
00528 #endif  /* H_RPMCLI */

Generated at Mon Sep 24 10:37:20 2001 for rpm by doxygen1.2.8.1 written by Dimitri van Heesch, © 1997-2001