00001 #ifndef H_RPMCLI
00002 #define H_RPMCLI
00003
00008 #include "rpmlib.h"
00009 #include "rpmurl.h"
00010 #include "rpmmacro.h"
00011
00015
00016
00017 extern int _noDirTokens;
00018
00019
00020 #ifdef __cplusplus
00021 extern "C" {
00022 #endif
00023
00024
00027
00031 struct rpmBuildArguments_s {
00032 int buildAmount;
00033
00034 const char * buildRootOverride;
00035
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
00047 const char * rootdir;
00048 };
00049
00052 typedef struct rpmBuildArguments_s * BTA_t;
00053
00056
00057 extern struct rpmBuildArguments_s rpmBTArgs;
00058
00061
00062 extern struct poptOption rpmBuildPoptTable[];
00063
00065
00068
00073 typedef enum rpmQueryFlags_e {
00074 QUERY_FOR_DEFAULT = 0,
00075
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
00085 QUERY_FILES = (1 << 16),
00086 QUERY_DEPS = (1 << 17),
00087 QUERY_SCRIPT = (1 << 18),
00088 QUERY_DIGEST = (1 << 19),
00089
00090
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
00104 VERIFY_DEFAULT = 0,
00105
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
00115 VERIFY_FILES = (1 << 16),
00116 VERIFY_DEPS = (1 << 17),
00117 VERIFY_SCRIPT = (1 << 18),
00118 VERIFY_DIGEST = (1 << 19),
00119
00120
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
00127
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
00143 ;
00144
00152 int showMatches(QVA_t qva, rpmdbMatchIterator mi,
00153 QVF_t showPackage)
00154 ;
00155
00160 void rpmDisplayQueryTags(FILE * fp)
00161
00162 ;
00163
00173 int rpmQueryVerify(QVA_t qva, rpmQVSources source, const char * arg,
00174 rpmdb db, QVF_t showPackage)
00175
00176 ;
00177
00186 int showQueryPackage(QVA_t qva, rpmdb db, Header h)
00187
00188 ;
00189
00198 int rpmQuery(QVA_t qva, rpmQVSources source, const char * arg)
00199
00200 ;
00201
00209 int showVerifyPackage(QVA_t qva, rpmdb db, Header h)
00210
00211 ;
00212
00219 int rpmVerifyDigest(Header h)
00220 ;
00221
00229 int rpmVerify(QVA_t qva, rpmQVSources source, const char *arg)
00230
00231 ;
00232
00236 struct rpmQVArguments_s {
00237 rpmQVSources qva_source;
00238 int qva_sourceCount;
00239 rpmQueryFlags qva_flags;
00240 rpmfileAttrs qva_fflags;
00241
00242 int qva_verbose;
00243
00244 const char * qva_queryFormat;
00245
00246 const char * qva_prefix;
00247 char qva_mode;
00248 char qva_char;
00249 };
00250
00253
00254 extern struct rpmQVArguments_s rpmQVArgs;
00255
00258
00259 extern struct poptOption rpmQVSourcePoptTable[];
00260
00263
00264 extern int specedit;
00265
00268
00269 extern struct poptOption rpmQueryPoptTable[];
00270
00273
00274 extern struct poptOption rpmVerifyPoptTable[];
00275
00277
00280
00281
00292 int rpmInstall( const char * rootdir,
00293 const char ** fileArgv,
00294 rpmtransFlags transFlags,
00295 rpmInstallInterfaceFlags interfaceFlags,
00296 rpmprobFilterFlags probFilter,
00297 rpmRelocation * relocations)
00298
00299 ;
00300
00309 int rpmInstallSource(const char * rootdir, const char * arg,
00310 const char ** specFile,
00311 char ** cookie)
00312
00313 ;
00314
00323 int rpmErase( const char * rootdir, const char ** argv,
00324 rpmtransFlags transFlags,
00325 rpmEraseInterfaceFlags interfaceFlags)
00326
00327 ;
00328
00332 struct rpmInstallArguments_s {
00333 rpmtransFlags transFlags;
00334 rpmprobFilterFlags probFilter;
00335 rpmInstallInterfaceFlags installInterfaceFlags;
00336 rpmEraseInterfaceFlags eraseInterfaceFlags;
00337
00338 rpmRelocation * relocations;
00339 int numRelocations;
00340 int noDeps;
00341 int incldocs;
00342
00343 const char * prefix;
00344
00345 const char * rootdir;
00346 uint_32 rbtid;
00347 };
00348
00352 typedef struct IDT_s {
00353 unsigned int instance;
00354
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 struct IDTindex_s {
00369 int delta;
00370 int size;
00371 int alloced;
00372 int nidt;
00373
00374 IDT idt;
00375 } * IDTX;
00376
00382 IDTX IDTXfree( IDTX idtx)
00383 ;
00384
00389 IDTX IDTXnew(void)
00390 ;
00391
00398 IDTX IDTXgrow( IDTX idtx, int need)
00399 ;
00400
00406 IDTX IDTXsort( IDTX idtx)
00407 ;
00408
00415 IDTX IDTXload(rpmdb db, rpmTag tag)
00416 ;
00417
00424 IDTX IDTXglob(const char * globstr, rpmTag tag)
00425
00426 ;
00427
00428
00442 void * rpmShowProgress( const void * arg,
00443 const rpmCallbackType what,
00444 const unsigned long amount,
00445 const unsigned long total,
00446 const void * pkgKey,
00447 void * data)
00448
00449 ;
00450
00451
00452 extern int packagesTotal;
00453
00458 int rpmRollback(struct rpmInstallArguments_s * ia,
00459 const char ** argv)
00460
00461 ;
00462
00465
00466 extern struct rpmInstallArguments_s rpmIArgs;
00467
00470
00471 extern struct poptOption rpmInstallPoptTable[];
00472
00474
00477
00478
00482 struct rpmDatabaseArguments_s {
00483 int init;
00484 int rebuild;
00485 int verify;
00486 };
00487
00490
00491 extern struct rpmDatabaseArguments_s rpmDBArgs;
00492
00495
00496 extern struct poptOption rpmDatabasePoptTable[];
00497
00499
00502
00506 typedef enum rpmCheckSigFlags_e {
00507
00508 CHECKSIG_NONE = 0,
00509
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, const char ** argv)
00523
00524 ;
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 const char ** argv)
00545
00546 ;
00547
00551 struct rpmSignArguments_s {
00552 rpmResignFlags addSign;
00553 rpmCheckSigFlags checksigFlags;
00554 int sign;
00555 char * passPhrase;
00556 };
00557
00560
00561 extern struct rpmSignArguments_s rpmKArgs;
00562
00565
00566 extern struct poptOption rpmSignPoptTable[];
00567
00570 #ifdef __cplusplus
00571 }
00572 #endif
00573
00574 #endif