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 /*@-redecl@*/
00016 /*@unchecked@*/
00017 extern int _noDirTokens;
00018 /*@=redecl@*/
00019 
00020 #ifdef __cplusplus
00021 extern "C" {
00022 #endif
00023 
00024 /* ==================================================================== */
00027 
00031 struct rpmBuildArguments_s {
00032     int buildAmount;            
00033 /*@null@*/
00034     const char * buildRootOverride; 
00035 /*@null@*/
00036     char * targets;             
00037     int force;                  
00038     int noBuild;                
00039     int noDeps;                 
00040     int noLang;                 
00041     int shortCircuit;           
00042     int sign;                   
00043     int useCatalog;             
00044     char buildMode;             
00045     char buildChar;             
00046 /*@observer@*/ /*@null@*/
00047     const char * rootdir;
00048 };
00049 
00052 typedef struct rpmBuildArguments_s *    BTA_t;
00053 
00056 /*@unchecked@*/
00057 extern struct rpmBuildArguments_s       rpmBTArgs;
00058 
00061 /*@unchecked@*/
00062 extern struct poptOption                rpmBuildPoptTable[];
00063 
00065 /* ==================================================================== */
00068 
00073 typedef enum rpmQueryFlags_e {
00074     QUERY_FOR_DEFAULT   = 0,            
00075 /*@-enummemuse@*/
00076     QUERY_MD5           = (1 << 0),     
00077     QUERY_SIZE          = (1 << 1),     
00078     QUERY_LINKTO        = (1 << 2),     
00079     QUERY_USER          = (1 << 3),     
00080     QUERY_GROUP         = (1 << 4),     
00081     QUERY_MTIME         = (1 << 5),     
00082     QUERY_MODE          = (1 << 6),     
00083     QUERY_RDEV          = (1 << 7),     
00084         /* bits 8-15 unused, reserved for rpmVerifyAttrs */
00085     QUERY_FILES         = (1 << 16),    
00086     QUERY_DEPS          = (1 << 17),    
00087     QUERY_SCRIPT        = (1 << 18),    
00088     QUERY_DIGEST        = (1 << 19),    
00089 /*@=enummemuse@*/
00090         /* bits 20-22 unused */
00091     QUERY_FOR_LIST      = (1 << 23),    
00092     QUERY_FOR_STATE     = (1 << 24),    
00093     QUERY_FOR_DOCS      = (1 << 25),    
00094     QUERY_FOR_CONFIG    = (1 << 26),    
00095     QUERY_FOR_DUMPFILES = (1 << 27)     
00096 } rpmQueryFlags;
00097 
00102 typedef enum rpmVerifyFlags_e {
00103 /*@-enummemuse@*/
00104     VERIFY_DEFAULT      = 0,            
00105 /*@=enummemuse@*/
00106     VERIFY_MD5          = (1 << 0),     
00107     VERIFY_SIZE         = (1 << 1),     
00108     VERIFY_LINKTO       = (1 << 2),     
00109     VERIFY_USER         = (1 << 3),     
00110     VERIFY_GROUP        = (1 << 4),     
00111     VERIFY_MTIME        = (1 << 5),     
00112     VERIFY_MODE         = (1 << 6),     
00113     VERIFY_RDEV         = (1 << 7),     
00114         /* bits 8-15 unused, reserved for rpmVerifyAttrs */
00115     VERIFY_FILES        = (1 << 16),    
00116     VERIFY_DEPS         = (1 << 17),    
00117     VERIFY_SCRIPT       = (1 << 18),    
00118     VERIFY_DIGEST       = (1 << 19),    
00119         /* bits 20-22 unused */
00120 /*@-enummemuse@*/
00121     VERIFY_FOR_LIST     = (1 << 23),    
00122     VERIFY_FOR_STATE    = (1 << 24),    
00123     VERIFY_FOR_DOCS     = (1 << 25),    
00124     VERIFY_FOR_CONFIG   = (1 << 26),    
00125     VERIFY_FOR_DUMPFILES= (1 << 27)     
00126 /*@=enummemuse@*/
00127         /* bits 28-30 used in rpmVerifyAttrs */
00128 } rpmVerifyFlags;
00129 
00130 #define VERIFY_ATTRS    \
00131   ( VERIFY_MD5 | VERIFY_SIZE | VERIFY_LINKTO | VERIFY_USER | VERIFY_GROUP | \
00132     VERIFY_MTIME | VERIFY_MODE | VERIFY_RDEV )
00133 #define VERIFY_ALL      \
00134   ( VERIFY_ATTRS | VERIFY_FILES | VERIFY_DEPS | VERIFY_SCRIPT | VERIFY_DIGEST )
00135 
00141 typedef int (*QVF_t) (QVA_t qva, rpmdb db, Header h)
00142         /*@globals fileSystem @*/
00143         /*@modifies db, fileSystem @*/;
00144 
00152 int showMatches(QVA_t qva, /*@only@*/ /*@null@*/ rpmdbMatchIterator mi,
00153                 QVF_t showPackage)
00154         /*@modifies mi @*/;
00155 
00160 void rpmDisplayQueryTags(FILE * fp)
00161         /*@globals fileSystem @*/
00162         /*@modifies *fp, fileSystem @*/;
00163 
00173 int rpmQueryVerify(QVA_t qva, rpmQVSources source, const char * arg,
00174                 rpmdb db, QVF_t showPackage)
00175         /*@globals rpmGlobalMacroContext, fileSystem @*/
00176         /*@modifies db, rpmGlobalMacroContext, fileSystem @*/;
00177 
00186 int showQueryPackage(QVA_t qva, rpmdb db, Header h)
00187         /*@globals fileSystem @*/
00188         /*@modifies db, fileSystem @*/;
00189 
00198 int rpmQuery(QVA_t qva, rpmQVSources source, const char * arg)
00199         /*@globals rpmGlobalMacroContext, fileSystem @*/
00200         /*@modifies rpmGlobalMacroContext, fileSystem @*/;
00201 
00209 int showVerifyPackage(QVA_t qva, /*@only@*/ rpmdb db, Header h)
00210         /*@globals rpmGlobalMacroContext, fileSystem @*/
00211         /*@modifies db, h, rpmGlobalMacroContext, fileSystem @*/;
00212 
00219 int rpmVerifyDigest(Header h)
00220         /*@modifies nothing @*/;
00221 
00229 int rpmVerify(QVA_t qva, rpmQVSources source, const char *arg)
00230         /*@globals rpmGlobalMacroContext, fileSystem @*/
00231         /*@modifies rpmGlobalMacroContext, fileSystem @*/;
00232 
00236 struct rpmQVArguments_s {
00237     rpmQVSources qva_source;    
00238     int         qva_sourceCount;
00239     rpmQueryFlags qva_flags;    
00240     rpmfileAttrs qva_fflags;    
00241 /*@unused@*/
00242     int qva_verbose;            
00243 /*@only@*/ /*@null@*/
00244     const char * qva_queryFormat; 
00245 /*@observer@*/ /*@null@*/
00246     const char * qva_prefix;    
00247     char        qva_mode;       
00248     char        qva_char;       
00249 };
00250 
00253 /*@unchecked@*/
00254 extern struct rpmQVArguments_s rpmQVArgs;
00255 
00258 /*@unchecked@*/
00259 extern struct poptOption rpmQVSourcePoptTable[];
00260 
00263 /*@unchecked@*/
00264 extern int specedit;
00265 
00268 /*@unchecked@*/
00269 extern struct poptOption rpmQueryPoptTable[];
00270 
00273 /*@unchecked@*/
00274 extern struct poptOption rpmVerifyPoptTable[];
00275 
00277 /* ==================================================================== */
00280 /* --- install/upgrade/erase modes */
00281 
00292 int rpmInstall(/*@null@*/ const char * rootdir,
00293                 /*@null@*/ const char ** fileArgv,
00294                 rpmtransFlags transFlags, 
00295                 rpmInstallInterfaceFlags interfaceFlags,
00296                 rpmprobFilterFlags probFilter,
00297                 /*@null@*/ rpmRelocation * relocations)
00298         /*@globals rpmGlobalMacroContext, fileSystem @*/
00299         /*@modifies *relocations, rpmGlobalMacroContext, fileSystem @*/;
00300 
00309 int rpmInstallSource(const char * rootdir, const char * arg,
00310                 /*@null@*/ /*@out@*/ const char ** specFile,
00311                 /*@null@*/ /*@out@*/ char ** cookie)
00312         /*@globals fileSystem @*/
00313         /*@modifies *specFile, *cookie, fileSystem @*/;
00314 
00323 int rpmErase(/*@null@*/ const char * rootdir, /*@null@*/ const char ** argv,
00324                 rpmtransFlags transFlags, 
00325                 rpmEraseInterfaceFlags interfaceFlags)
00326         /*@globals rpmGlobalMacroContext, fileSystem @*/
00327         /*@modifies rpmGlobalMacroContext, fileSystem @*/;
00328 
00332 struct rpmInstallArguments_s {
00333     rpmtransFlags transFlags;
00334     rpmprobFilterFlags probFilter;
00335     rpmInstallInterfaceFlags installInterfaceFlags;
00336     rpmEraseInterfaceFlags eraseInterfaceFlags;
00337 /*@only@*/ /*@null@*/
00338     rpmRelocation * relocations;
00339     int numRelocations;
00340     int noDeps;
00341     int incldocs;
00342 /*@null@*/
00343     const char * prefix;
00344 /*@observer@*/ /*@null@*/
00345     const char * rootdir;
00346     uint_32 rbtid;              
00347 };
00348 
00352 typedef /*@abstract@*/ struct IDT_s {
00353     unsigned int instance;      
00354 /*@owned@*/ /*@null@*/
00355     const char * key;           
00356     Header h;                   
00357     const char * n;             
00358     const char * v;             
00359     const char * r;             
00360     union {
00361         uint_32 u32;            
00362     } val;
00363 } * IDT;
00364 
00368 typedef /*@abstract@*/ struct IDTindex_s {
00369     int delta;                  
00370     int size;                   
00371     int alloced;                
00372     int nidt;                   
00373 /*@only@*/ /*@null@*/
00374     IDT idt;                    
00375 } * IDTX;
00376 
00382 /*@null@*/ IDTX IDTXfree(/*@only@*/ /*@null@*/ IDTX idtx)
00383         /*@modifies idtx @*/;
00384 
00389 /*@only@*/ IDTX IDTXnew(void)
00390         /*@*/;
00391 
00398 /*@only@*/ /*@null@*/ IDTX IDTXgrow(/*@only@*/ /*@null@*/ IDTX idtx, int need)
00399         /*@modifies idtx @*/;
00400 
00406 /*@only@*/ /*@null@*/ IDTX IDTXsort(/*@only@*/ /*@null@*/ IDTX idtx)
00407         /*@modifies idtx @*/;
00408 
00415 /*@only@*/ /*@null@*/ IDTX IDTXload(rpmdb db, rpmTag tag)
00416         /*@modifies db @*/;
00417 
00424 /*@only@*/ /*@null@*/ IDTX IDTXglob(const char * globstr, rpmTag tag)
00425         /*@globals fileSystem @*/
00426         /*@modifies fileSystem @*/;
00427 
00428 
00442 /*@null@*/ void * rpmShowProgress(/*@null@*/ const void * arg,
00443                 const rpmCallbackType what,
00444                 const unsigned long amount,
00445                 const unsigned long total,
00446                 /*@null@*/ const void * pkgKey,
00447                 /*@null@*/ void * data)
00448         /*@globals internalState, fileSystem @*/
00449         /*@modifies internalState, fileSystem @*/;
00450 
00451 /*@unchecked@*/
00452 extern int packagesTotal;
00453 
00458 int rpmRollback(struct rpmInstallArguments_s * ia,
00459                 /*@null@*/ const char ** argv)
00460         /*@globals rpmGlobalMacroContext, fileSystem @*/
00461         /*@modifies rpmGlobalMacroContext, fileSystem @*/;
00462 
00465 /*@unchecked@*/
00466 extern struct rpmInstallArguments_s rpmIArgs;
00467 
00470 /*@unchecked@*/
00471 extern struct poptOption rpmInstallPoptTable[];
00472 
00474 /* ==================================================================== */
00477 /* --- database modes */
00478 
00482 struct rpmDatabaseArguments_s {
00483     int init;                   
00484     int rebuild;                
00485     int verify;                 
00486 };
00487 
00490 /*@unchecked@*/
00491 extern struct rpmDatabaseArguments_s rpmDBArgs;
00492 
00495 /*@unchecked@*/
00496 extern struct poptOption rpmDatabasePoptTable[];
00497 
00499 /* ==================================================================== */
00502 
00506 typedef enum rpmCheckSigFlags_e {
00507 /*@-enummemuse@*/
00508     CHECKSIG_NONE       = 0,    
00509 /*@=enummemuse@*/
00510     CHECKSIG_PGP        = (1 << 0),     
00511     CHECKSIG_MD5        = (1 << 1),     
00512     CHECKSIG_GPG        = (1 << 2)      
00513 } rpmCheckSigFlags;
00514 #define CHECKSIG_ALL    (CHECKSIG_PGP|CHECKSIG_MD5|CHECKSIG_GPG)
00515 
00522 int rpmCheckSig(rpmCheckSigFlags flags, /*@null@*/ const char ** argv)
00523         /*@globals rpmGlobalMacroContext, fileSystem @*/
00524         /*@modifies rpmGlobalMacroContext, fileSystem @*/;
00525 
00529 typedef enum rpmResignFlags_e {
00530     RESIGN_NONE = 0,
00531     RESIGN_CHK_SIGNATURE = 1,   
00532     RESIGN_NEW_SIGNATURE,       
00533     RESIGN_ADD_SIGNATURE        
00534 } rpmResignFlags;
00535 
00543 int rpmReSign(rpmResignFlags add, char * passPhrase,
00544                 /*@null@*/ const char ** argv)
00545         /*@globals rpmGlobalMacroContext, fileSystem @*/
00546         /*@modifies rpmGlobalMacroContext, fileSystem @*/;
00547 
00551 struct rpmSignArguments_s {
00552     rpmResignFlags addSign;     
00553     rpmCheckSigFlags checksigFlags;     
00554     int sign;                   
00555 /*@unused@*/ char * passPhrase;
00556 };
00557 
00560 /*@unchecked@*/
00561 extern struct rpmSignArguments_s rpmKArgs;
00562 
00565 /*@unchecked@*/
00566 extern struct poptOption rpmSignPoptTable[];
00567 
00570 #ifdef __cplusplus
00571 }
00572 #endif
00573 
00574 #endif  /* H_RPMCLI */

Generated on Wed Mar 8 22:44:23 2006 for rpm by  doxygen 1.4.6