- Main Page
- Related Pages
- Modules
- Data Structures
- Files

# lib/rpmcli.h

Go to the documentation of this file.

    00001 #ifndef H_RPMCLI
    00002 #define H_RPMCLI
    00003
    00008 #include "popt.h"
    00009 #include "argv.h"
    00010 #include "rpmcb.h"
    00011 #include "rpmmacro.h"
    00012 #include "rpmurl.h"
    00013 #include "rpmlib.h"
    00014 #include "rpmps.h"
    00015 #include "rpmte.h"
    00016 #include "rpmts.h"
    00017
    00021 /*@-redecl@*/
    00022 /*@unchecked@*/
    00023 extern int _noDirTokens;
    00024 /*@=redecl@*/
    00025
    00026 #ifdef __cplusplus
    00027 extern "C" {
    00028 #endif
    00029
    00033 /*@unchecked@*/
    00034 extern struct poptOption                rpmcliAllPoptTable[];
    00035
    00036 /*@unchecked@*/
    00037 extern int ftsOpts;
    00038
    00039 /*@unchecked@*/
    00040 extern struct poptOption                rpmcliFtsPoptTable[];
    00041
    00042 /*@unchecked@*/
    00043 extern int global_depFlags;
    00044
    00045 /*@unchecked@*/
    00046 extern struct poptOption                rpmcliDepFlagsPoptTable[];
    00047
    00048 /*@unchecked@*/ /*@observer@*/ /*@null@*/
    00049 extern const char * rpmcliPipeOutput;
    00050
    00051 /*@unchecked@*/ /*@observer@*/ /*@null@*/
    00052 extern const char * rpmcliRootDir;
    00053
    00054 /*@unchecked@*/ /*@observer@*/ /*@null@*/
    00055 extern const char * rpmcliTargets;
    00056 /*@=redecl@*/
    00057
    00065 /*@null@*/
    00066 poptContext
    00067 rpmcliInit(int argc, char *const argv[], struct poptOption * optionsTable)
    00068         /*@globals rpmCLIMacroContext, rpmGlobalMacroContext, h_errno, stderr,
    00069                 fileSystem, internalState @*/
    00070         /*@modifies rpmCLIMacroContext, rpmGlobalMacroContext, stderr,
    00071                 fileSystem, internalState @*/;
    00072
    00077 /*@mayexit@*/
    00078 void rpmcliConfigured(void)
    00079         /*@globals rpmCLIMacroContext,
    00080                 rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
    00081         /*@modifies rpmCLIMacroContext, rpmGlobalMacroContext,
    00082                 fileSystem, internalState @*/;
    00083
    00089 poptContext
    00090 rpmcliFini(/*@only@*/ /*@null@*/ poptContext optCon)
    00091         /*@globals rpmTags, rpmGlobalMacroContext,
    00092                 fileSystem, internalState @*/
    00093         /*@modifies optCon, rpmTags, rpmGlobalMacroContext,
    00094                 fileSystem, internalState @*/;
    00095
    00099 #define RPMCLI_POPT_NODEPS              -1026
    00100 #define RPMCLI_POPT_NOFDIGESTS          -1027
    00101 #define RPMCLI_POPT_NOSCRIPTS           -1028
    00102 #define RPMCLI_POPT_NOSIGNATURE         -1029
    00103 #define RPMCLI_POPT_NODIGEST            -1030
    00104 #define RPMCLI_POPT_NOHDRCHK            -1031
    00105 #define RPMCLI_POPT_NOCONTEXTS          -1032
    00106 #define RPMCLI_POPT_TARGETPLATFORM      -1033
    00107
    00108 /* ==================================================================== */
    00111
    00116 typedef enum rpmQVSources_e {
    00117     RPMQV_PACKAGE = 0,
    00118     RPMQV_PATH,
    00119     RPMQV_ALL,
    00120     RPMQV_RPM,
    00121     RPMQV_GROUP,
    00122     RPMQV_WHATPROVIDES,
    00123     RPMQV_WHATREQUIRES,
    00124     RPMQV_TRIGGEREDBY,
    00125     RPMQV_DBOFFSET,
    00126     RPMQV_SPECFILE,
    00127     RPMQV_PKGID,
    00128     RPMQV_HDRID,
    00129     RPMQV_FILEID,
    00130     RPMQV_TID,
    00131     RPMQV_HDLIST,
    00132     RPMQV_FTSWALK,
    00133     RPMQV_WHATNEEDS,
    00134     RPMQV_SPECSRPM,
    00135     RPMQV_SOURCEPKGID
    00136 } rpmQVSources;
    00137
    00141 typedef enum rpmVerifyAttrs_e {
    00142     RPMVERIFY_NONE      = 0,
    00143     RPMVERIFY_FDIGEST   = (1 << 0),
    00144     RPMVERIFY_FILESIZE  = (1 << 1),
    00145     RPMVERIFY_LINKTO    = (1 << 2),
    00146     RPMVERIFY_USER      = (1 << 3),
    00147     RPMVERIFY_GROUP     = (1 << 4),
    00148     RPMVERIFY_MTIME     = (1 << 5),
    00149     RPMVERIFY_MODE      = (1 << 6),
    00150     RPMVERIFY_RDEV      = (1 << 7),
    00151         /* bits 8-14 unused, reserved for rpmVerifyAttrs */
    00152     RPMVERIFY_CONTEXTS  = (1 << 15),
    00153         /* bits 16-22 used in rpmVerifyFlags */
    00154         /* bits 23-27 used in rpmQueryFlags */
    00155     RPMVERIFY_READLINKFAIL= (1 << 28),
    00156     RPMVERIFY_READFAIL  = (1 << 29),
    00157     RPMVERIFY_LSTATFAIL = (1 << 30),
    00158     RPMVERIFY_LGETFILECONFAIL   = (1 << 31)
    00159 } rpmVerifyAttrs;
    00160 #define RPMVERIFY_MD5   RPMVERIFY_FDIGEST
    00161 #define RPMVERIFY_ALL           ~(RPMVERIFY_NONE)
    00162 #define RPMVERIFY_FAILURES      \
    00163   (RPMVERIFY_LSTATFAIL|RPMVERIFY_READFAIL|RPMVERIFY_READLINKFAIL|RPMVERIFY_LGETFILECONFAIL)
    00164
    00169 typedef enum rpmQueryFlags_e {
    00170 /*@-enummemuse@*/
    00171     QUERY_FOR_DEFAULT   = 0,
    00172     QUERY_FDIGEST       = (1 << 0),
    00173     QUERY_SIZE          = (1 << 1),
    00174     QUERY_LINKTO        = (1 << 2),
    00175     QUERY_USER          = (1 << 3),
    00176     QUERY_GROUP         = (1 << 4),
    00177     QUERY_MTIME         = (1 << 5),
    00178     QUERY_MODE          = (1 << 6),
    00179     QUERY_RDEV          = (1 << 7),
    00180         /* bits 8-14 unused, reserved for rpmVerifyAttrs */
    00181     QUERY_CONTEXTS      = (1 << 15),
    00182     QUERY_FILES         = (1 << 16),
    00183     QUERY_DEPS          = (1 << 17),
    00184     QUERY_SCRIPT        = (1 << 18),
    00185     QUERY_DIGEST        = (1 << 19),
    00186     QUERY_SIGNATURE     = (1 << 20),
    00187     QUERY_PATCHES       = (1 << 21),
    00188     QUERY_HDRCHK        = (1 << 22),
    00189 /*@=enummemuse@*/
    00190     QUERY_FOR_LIST      = (1 << 23),
    00191     QUERY_FOR_STATE     = (1 << 24),
    00192     QUERY_FOR_DOCS      = (1 << 25),
    00193     QUERY_FOR_CONFIG    = (1 << 26),
    00194     QUERY_FOR_DUMPFILES = (1 << 27)
    00195 } rpmQueryFlags;
    00196
    00197 #define _QUERY_FOR_BITS \
    00198    (QUERY_FOR_LIST|QUERY_FOR_STATE|QUERY_FOR_DOCS|QUERY_FOR_CONFIG|\
    00199     QUERY_FOR_DUMPFILES)
    00200
    00204 /*@unchecked@*/
    00205 extern rpmQueryFlags rpmcliQueryFlags;
    00206
    00211 typedef enum rpmVerifyFlags_e {
    00212 /*@-enummemuse@*/
    00213     VERIFY_DEFAULT      = 0,
    00214 /*@=enummemuse@*/
    00215     VERIFY_FDIGEST      = (1 << 0),
    00216     VERIFY_SIZE         = (1 << 1),
    00217     VERIFY_LINKTO       = (1 << 2),
    00218     VERIFY_USER         = (1 << 3),
    00219     VERIFY_GROUP        = (1 << 4),
    00220     VERIFY_MTIME        = (1 << 5),
    00221     VERIFY_MODE         = (1 << 6),
    00222     VERIFY_RDEV         = (1 << 7),
    00223         /* bits 8-14 unused, reserved for rpmVerifyAttrs */
    00224     VERIFY_CONTEXTS     = (1 << 15),
    00225     VERIFY_FILES        = (1 << 16),
    00226     VERIFY_DEPS         = (1 << 17),
    00227     VERIFY_SCRIPT       = (1 << 18),
    00228     VERIFY_DIGEST       = (1 << 19),
    00229     VERIFY_SIGNATURE    = (1 << 20),
    00230     VERIFY_PATCHES      = (1 << 21),
    00231     VERIFY_HDRCHK       = (1 << 22),
    00232 /*@-enummemuse@*/
    00233     VERIFY_FOR_LIST     = (1 << 23),
    00234     VERIFY_FOR_STATE    = (1 << 24),
    00235     VERIFY_FOR_DOCS     = (1 << 25),
    00236     VERIFY_FOR_CONFIG   = (1 << 26),
    00237     VERIFY_FOR_DUMPFILES= (1 << 27)
    00238 /*@=enummemuse@*/
    00239         /* bits 28-31 used in rpmVerifyAttrs */
    00240 } rpmVerifyFlags;
    00241
    00242 #define VERIFY_ATTRS    \
    00243   ( VERIFY_FDIGEST | VERIFY_SIZE | VERIFY_LINKTO | VERIFY_USER | VERIFY_GROUP | \
    00244     VERIFY_MTIME | VERIFY_MODE | VERIFY_RDEV | VERIFY_CONTEXTS )
    00245 #define VERIFY_ALL      \
    00246   ( VERIFY_ATTRS | VERIFY_FILES | VERIFY_DEPS | VERIFY_SCRIPT | VERIFY_DIGEST |\
    00247     VERIFY_SIGNATURE | VERIFY_HDRCHK )
    00248
    00251 typedef struct rpmQVKArguments_s * QVA_t;
    00252
    00261 typedef int (*QVF_t) (QVA_t qva, rpmts ts, Header h)
    00262         /*@globals fileSystem @*/
    00263         /*@modifies qva, ts, fileSystem @*/;
    00264
    00273 typedef int (*QSpecF_t) (rpmts ts, QVA_t qva, const char * arg)
    00274         /*@globals rpmGlobalMacroContext, h_errno,
    00275                 fileSystem, internalState @*/
    00276         /*@modifies ts, qva, rpmGlobalMacroContext,
    00277                 fileSystem, internalState @*/;
    00278
    00281 /*@unchecked@*/
    00282 extern struct poptOption rpmQVSourcePoptTable[];
    00283
    00286 /*@unchecked@*/
    00287 extern int specedit;
    00288
    00291 /*@unchecked@*/
    00292 extern struct poptOption rpmQueryPoptTable[];
    00293
    00296 /*@unchecked@*/
    00297 extern struct poptOption rpmVerifyPoptTable[];
    00298
    00310 int rpmcliShowMatches(QVA_t qva, rpmts ts)
    00311         /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
    00312         /*@modifies qva, rpmGlobalMacroContext, fileSystem, internalState @*/;
    00313
    00326 int rpmQueryVerify(QVA_t qva, rpmts ts, const char * arg)
    00327         /*@globals rpmGlobalMacroContext, h_errno,
    00328                 fileSystem, internalState @*/
    00329         /*@modifies qva, ts, rpmGlobalMacroContext,
    00330                 fileSystem, internalState @*/;
    00331
    00340 int showQueryPackage(QVA_t qva, rpmts ts, Header h)
    00341         /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
    00342         /*@modifies ts, h, rpmGlobalMacroContext, fileSystem, internalState @*/;
    00343
    00351 int rpmcliArgIter(rpmts ts, QVA_t qva, /*@null@*/ ARGV_t argv)
    00352         /*@globals ftsOpts, rpmGlobalMacroContext, h_errno,
    00353                 fileSystem, internalState @*/
    00354         /*@modifies ts, qva, ftsOpts, rpmGlobalMacroContext,
    00355                 fileSystem, internalState @*/;
    00356
    00365 int rpmcliQuery(rpmts ts, QVA_t qva, /*@null@*/ const char ** argv)
    00366         /*@globals rpmGlobalMacroContext, h_errno,
    00367                 fileSystem, internalState @*/
    00368         /*@modifies ts, qva, rpmGlobalMacroContext,
    00369                 fileSystem, internalState @*/;
    00370
    00380 /*@-incondefs@*/
    00381 int rpmVerifyFile(const rpmts ts, rpmfi fi,
    00382                 /*@out@*/ rpmVerifyAttrs * res, rpmVerifyAttrs omitMask)
    00383         /*@globals h_errno, fileSystem, internalState @*/
    00384         /*@modifies ts, fi, *res, fileSystem, internalState @*/
    00385         /*@requires maxSet(res) >= 0 @*/;
    00386 /*@=incondefs@*/
    00387
    00395 int showVerifyPackage(QVA_t qva, rpmts ts, Header h)
    00396         /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
    00397         /*@modifies ts, h, rpmGlobalMacroContext, fileSystem, internalState @*/;
    00398
    00407 int rpmVerifySignatures(QVA_t qva, rpmts ts, FD_t fd, const char * fn)
    00408         /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
    00409         /*@modifies qva, ts, fd, rpmGlobalMacroContext, h_errno,
    00410                 fileSystem, internalState @*/;
    00411
    00420 int rpmcliVerify(rpmts ts, QVA_t qva, /*@null@*/ const char ** argv)
    00421         /*@globals rpmGlobalMacroContext, h_errno,
    00422                 fileSystem, internalState @*/
    00423         /*@modifies ts, qva, rpmGlobalMacroContext,
    00424                 fileSystem, internalState @*/;
    00425
    00427 /* ==================================================================== */
    00430 /* --- install/upgrade/erase modes */
    00431
    00435 typedef enum rpmInstallInterfaceFlags_e {
    00436     INSTALL_NONE        = 0,
    00437     INSTALL_PERCENT     = (1 <<  0),
    00438     INSTALL_HASH        = (1 <<  1),
    00439     INSTALL_NODEPS      = (1 <<  2),
    00440     INSTALL_NOORDER     = (1 <<  3),
    00441     INSTALL_LABEL       = (1 <<  4),
    00442     INSTALL_UPGRADE     = (1 <<  5),
    00443     INSTALL_FRESHEN     = (1 <<  6),
    00444     INSTALL_INSTALL     = (1 <<  7),
    00445     INSTALL_ERASE       = (1 <<  8),
    00446     INSTALL_ALLMATCHES  = (1 <<  9)
    00447 } rpmInstallInterfaceFlags;
    00448
    00449 /*@-redecl@*/
    00450 /*@unchecked@*/
    00451 extern int rpmcliPackagesTotal;
    00452 /*@=redecl@*/
    00453 /*@unchecked@*/
    00454 extern int rpmcliHashesCurrent;
    00455 /*@unchecked@*/
    00456 extern int rpmcliHashesTotal;
    00457 /*@unchecked@*/
    00458 extern uint64_t rpmcliProgressCurrent;
    00459 /*@unchecked@*/
    00460 extern uint64_t rpmcliProgressTotal;
    00461
    00478 /*@null@*/
    00479 void * rpmShowProgress(/*@null@*/ const void * arg,
    00480                 const rpmCallbackType what,
    00481                 const uint64_t amount,
    00482                 const uint64_t total,
    00483                 /*@null@*/ fnpyKey key,
    00484                 /*@null@*/ void * data)
    00485         /*@globals rpmcliHashesCurrent,
    00486                 rpmcliProgressCurrent, rpmcliProgressTotal,
    00487                 h_errno, fileSystem, internalState @*/
    00488         /*@modifies rpmcliHashesCurrent,
    00489                 rpmcliProgressCurrent, rpmcliProgressTotal,
    00490                 fileSystem, internalState @*/;
    00491
    00500 int rpmInstallSource(rpmts ts, const char * arg,
    00501                 /*@null@*/ /*@out@*/ const char ** specFilePtr,
    00502                 /*@null@*/ /*@out@*/ const char ** cookie)
    00503         /*@globals rpmGlobalMacroContext, h_errno,
    00504                 fileSystem, internalState@*/
    00505         /*@modifies ts, *specFilePtr, *cookie, rpmGlobalMacroContext,
    00506                 fileSystem, internalState @*/;
    00507
    00515 int rpmcliInstallProblems(rpmts ts, /*@null@*/ const char * msg, int rc)
    00516         /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
    00517         /*@modifies ts, rpmGlobalMacroContext, fileSystem, internalState @*/;
    00518
    00524 int rpmcliInstallSuggests(rpmts ts)
    00525         /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
    00526         /*@modifies ts, rpmGlobalMacroContext, fileSystem, internalState @*/;
    00527
    00533 int rpmcliInstallCheck(rpmts ts)
    00534         /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
    00535         /*@modifies ts, rpmGlobalMacroContext, fileSystem, internalState @*/;
    00536
    00542 int rpmcliInstallOrder(rpmts ts)
    00543         /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
    00544         /*@modifies ts, rpmGlobalMacroContext, fileSystem, internalState @*/;
    00545
    00553 int rpmcliInstallRun(rpmts ts, rpmps okProbs, rpmprobFilterFlags ignoreSet)
    00554         /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
    00555         /*@modifies ts, rpmGlobalMacroContext, fileSystem, internalState @*/;
    00556
    00565 int rpmcliInstall(rpmts ts, QVA_t ia, /*@null@*/ const char ** argv)
    00566         /*@globals rpmcliPackagesTotal, rpmGlobalMacroContext, h_errno,
    00567                 fileSystem, internalState@*/
    00568         /*@modifies ts, ia, rpmcliPackagesTotal, rpmGlobalMacroContext,
    00569                 fileSystem, internalState @*/;
    00570
    00578 int rpmErase(rpmts ts, QVA_t ia, /*@null@*/ const char ** argv)
    00579         /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
    00580         /*@modifies ts, ia, rpmGlobalMacroContext,
    00581                 fileSystem, internalState @*/;
    00582
    00586 /*@-fielduse@*/
    00587 typedef /*@abstract@*/ struct IDT_s * IDT;
    00588 #if !defined(SWIG)
    00589 struct IDT_s {
    00590     int done;
    00591     unsigned int instance;
    00592 /*@owned@*/ /*@null@*/
    00593     const char * key;
    00594     Header h;
    00595     union {
    00596         uint32_t u32;
    00597     } val;
    00598 };
    00599 #endif
    00600 /*@=fielduse@*/
    00601
    00605 typedef /*@abstract@*/ struct IDTindex_s * IDTX;
    00606 #if !defined(SWIG)
    00607 struct IDTindex_s {
    00608     int delta;
    00609     int size;
    00610     int alloced;
    00611     int nidt;
    00612 /*@only@*/ /*@null@*/
    00613     IDT idt;
    00614 };
    00615 #endif
    00616
    00622 /*@null@*/
    00623 IDTX IDTXfree(/*@only@*/ /*@null@*/ IDTX idtx)
    00624         /*@modifies idtx @*/;
    00625
    00630 /*@only@*/
    00631 IDTX IDTXnew(void)
    00632         /*@*/;
    00633
    00640 /*@only@*/ /*@null@*/
    00641 IDTX IDTXgrow(/*@only@*/ /*@null@*/ IDTX idtx, int need)
    00642         /*@modifies idtx @*/;
    00643
    00649 /*@only@*/ /*@null@*/
    00650 IDTX IDTXsort(/*@only@*/ /*@null@*/ IDTX idtx)
    00651         /*@modifies idtx @*/;
    00652
    00660 /*@only@*/ /*@null@*/
    00661 IDTX IDTXload(rpmts ts, rpmTag tag, uint32_t rbtid)
    00662         /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
    00663         /*@modifies ts, rpmGlobalMacroContext, fileSystem, internalState  @*/;
    00664
    00673 /*@only@*/ /*@null@*/
    00674 IDTX IDTXglob(rpmts ts, const char * globstr, rpmTag tag, uint32_t rbtid)
    00675         /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
    00676         /*@modifies ts, rpmGlobalMacroContext, fileSystem, internalState @*/;
    00677
    00685 int rpmRollback(rpmts ts, QVA_t ia, /*@null@*/ const char ** argv)
    00686         /*@globals rpmcliPackagesTotal, rpmGlobalMacroContext, h_errno,
    00687                 fileSystem, internalState @*/
    00688         /*@modifies ts, ia, rpmcliPackagesTotal, rpmGlobalMacroContext,
    00689                 fileSystem, internalState @*/;
    00690
    00693 /*@unchecked@*/
    00694 extern struct poptOption rpmInstallPoptTable[];
    00695
    00697 /* ==================================================================== */
    00700
    00703 /*@unchecked@*/
    00704 extern struct poptOption rpmDatabasePoptTable[];
    00705
    00707 /* ==================================================================== */
    00710
    00719 rpmRC rpmcliImportPubkey(const rpmts ts,
    00720                 const unsigned char * pkt, ssize_t pktlen)
    00721         /*@globals RPMVERSION, rpmGlobalMacroContext, h_errno,
    00722                 fileSystem, internalState @*/
    00723         /*@modifies ts, rpmGlobalMacroContext,
    00724                 fileSystem, internalState @*/;
    00725
    00729 /*@-typeuse@*/
    00730 #if !defined(SWIG)
    00731 typedef enum rpmSignFlags_e {
    00732     RPMSIGN_NONE                = 0,
    00733     RPMSIGN_CHK_SIGNATURE       = 'K',
    00734     RPMSIGN_NEW_SIGNATURE       = 'R',
    00735     RPMSIGN_ADD_SIGNATURE       = 'A',
    00736     RPMSIGN_DEL_SIGNATURE       = 'D',
    00737     RPMSIGN_IMPORT_PUBKEY       = 'I',
    00738 } rpmSignFlags;
    00739 #endif
    00740 /*@=typeuse@*/
    00741
    00744 /*@unchecked@*/
    00745 extern struct poptOption rpmSignPoptTable[];
    00746
    00754 int rpmcliSign(rpmts ts, QVA_t qva, /*@null@*/ const char ** argv)
    00755         /*@globals RPMVERSION, rpmGlobalMacroContext, h_errno,
    00756                 fileSystem, internalState @*/
    00757         /*@modifies ts, qva, rpmGlobalMacroContext,
    00758                 fileSystem, internalState @*/;
    00759
    00765 #if !defined(SWIG)
    00766 struct rpmQVKArguments_s {
    00767     rpmQVSources qva_source;
    00768     int         qva_sourceCount;
    00769     rpmQueryFlags qva_flags;
    00770     rpmfileAttrs qva_fflags;
    00771 /*@only@*/ /*@null@*/
    00772     rpmdbMatchIterator qva_mi;
    00773 /*@refccounted@*/ /*@relnull@*/
    00774     rpmgi qva_gi;
    00775     rpmRC qva_rc;
    00777 /*@null@*/
    00778     QVF_t qva_showPackage;
    00779     int qva_showOK;
    00780     int qva_showFAIL;
    00781 /*@null@*/
    00782     QSpecF_t qva_specQuery;
    00783 /*@unused@*/
    00784     int qva_verbose;
    00785 /*@only@*/ /*@null@*/
    00786     const char * qva_queryFormat;
    00787     int sign;
    00788     int trust;
    00789 /*@observer@*/
    00790     const char * passPhrase;
    00791 /*@owned@*/ /*@null@*/
    00792     const char * qva_prefix;
    00793     char qva_mode;
    00803     char qva_char;
    00805     /* install/erase mode arguments */
    00806     rpmdepFlags depFlags;
    00807     rpmtransFlags transFlags;
    00808     rpmprobFilterFlags probFilter;
    00809     rpmInstallInterfaceFlags installInterfaceFlags;
    00810     uint32_t arbtid;
    00811     uint32_t rbtid;
    00812     uint32_t *rbtidExcludes;
    00813     int numrbtidExcludes;
    00814     int numRelocations;
    00815     int noDeps;
    00816     int incldocs;
    00817     int no_rollback_links;
    00818 /*@owned@*/ /*@null@*/
    00819     rpmRelocation relocations;
    00820
    00821     /* database mode arguments */
    00822     int init;
    00823     int rebuild;
    00824     int verify;
    00826     /* rollback vectors */
    00827     int (*rbCheck) (rpmts ts);
    00828     int (*rbOrder) (rpmts ts);
    00829     int (*rbRun) (rpmts ts, rpmps okProbs, rpmprobFilterFlags ignoreSet);
    00830 };
    00831 #endif
    00832
    00835 /*@unchecked@*/
    00836 extern struct rpmQVKArguments_s rpmQVKArgs;
    00837
    00840 /*@unchecked@*/
    00841 extern struct rpmQVKArguments_s rpmIArgs;
    00842
    00845 /*@unchecked@*/
    00846 extern struct rpmQVKArguments_s rpmDBArgs;
    00847
    00848 /* ==================================================================== */
    00851
    00855 struct rpmBuildArguments_s {
    00856     rpmQueryFlags qva_flags;
    00857     int buildAmount;
    00858 /*@observer@*/
    00859     const char * passPhrase;
    00860 /*@only@*/ /*@null@*/
    00861     const char * cookie;
    00862     int noBuild;
    00863     int noDeps;
    00864     int noLang;
    00865     int shortCircuit;
    00866     int sign;
    00867     int useCatalog;
    00868     char buildMode;
    00869     char buildChar;
    00870 /*@observer@*/ /*@null@*/
    00871     const char * rootdir;
    00872 };
    00873
    00876 typedef struct rpmBuildArguments_s *    BTA_t;
    00877
    00880 /*@unchecked@*/
    00881 extern struct rpmBuildArguments_s       rpmBTArgs;
    00882
    00885 /*@unchecked@*/
    00886 extern struct poptOption                rpmBuildPoptTable[];
    00887
    00890 #ifdef __cplusplus
    00891 }
    00892 #endif
    00893
    00894 #endif  /* H_RPMCLI */