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 const char * buildRootOverride;
00031 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 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
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
00077 QUERY_FILES = (1 << 16),
00078 QUERY_DEPS = (1 << 17),
00079 QUERY_SCRIPT = (1 << 18),
00080 QUERY_DIGEST = (1 << 19),
00081
00082
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
00096 VERIFY_DEFAULT = 0,
00097
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
00107 VERIFY_FILES = (1 << 16),
00108 VERIFY_DEPS = (1 << 17),
00109 VERIFY_SCRIPT = (1 << 18),
00110 VERIFY_DIGEST = (1 << 19),
00111
00112
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
00119
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 ;
00135
00143 int showMatches(QVA_t qva, rpmdbMatchIterator mi,
00144 QVF_t showPackage)
00145 ;
00146
00151 void rpmDisplayQueryTags(FILE * fp)
00152 ;
00153
00163 int rpmQueryVerify(QVA_t qva, rpmQVSources source, const char * arg,
00164 rpmdb db, QVF_t showPackage)
00165 ;
00166
00175 int showQueryPackage(QVA_t qva, rpmdb db, Header h)
00176 ;
00177
00186 int rpmQuery(QVA_t qva, rpmQVSources source, const char * arg)
00187 ;
00188
00196 int showVerifyPackage(QVA_t qva, rpmdb db, Header h)
00197 ;
00198
00205 int rpmVerifyDigest(Header h)
00206 ;
00207
00215 int rpmVerify(QVA_t qva, rpmQVSources source, const char *arg)
00216 ;
00217
00221 struct rpmQVArguments_s {
00222 rpmQVSources qva_source;
00223 int qva_sourceCount;
00224 rpmQueryFlags qva_flags;
00225 rpmfileAttrs qva_fflags;
00226 int qva_verbose;
00227 const char * qva_queryFormat;
00228 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
00258
00269 int rpmInstall( const char * rootdir,
00270 const char ** fileArgv,
00271 rpmtransFlags transFlags,
00272 rpmInstallInterfaceFlags interfaceFlags,
00273 rpmprobFilterFlags probFilter,
00274 rpmRelocation * relocations)
00275 ;
00276
00285 int rpmInstallSource(const char * rootdir, const char * arg,
00286 const char ** specFile,
00287 char ** cookie)
00288 ;
00289
00298 int rpmErase( const char * rootdir, const char ** argv,
00299 rpmtransFlags transFlags,
00300 rpmEraseInterfaceFlags interfaceFlags)
00301 ;
00302
00306 struct rpmInstallArguments_s {
00307 rpmtransFlags transFlags;
00308 rpmprobFilterFlags probFilter;
00309 rpmInstallInterfaceFlags installInterfaceFlags;
00310 rpmEraseInterfaceFlags eraseInterfaceFlags;
00311 rpmRelocation * relocations;
00312 int numRelocations;
00313 int noDeps;
00314 int incldocs;
00315 const char * prefix;
00316 const char * rootdir;
00317 int_32 rbtid;
00318 };
00319
00323 typedef struct IDT_s {
00324 unsigned int instance;
00325 const char * key;
00326 Header h;
00327 union {
00328 int_32 i32;
00329 } val;
00330 } * IDT;
00331
00335 typedef struct IDTindex_s {
00336 int delta;
00337 int size;
00338 int alloced;
00339 int nidt;
00340 IDT idt;
00341 } * IDTX;
00342
00348 IDTX IDTXfree( IDTX idtx)
00349 ;
00350
00355 IDTX IDTXnew(void)
00356 ;
00357
00364 IDTX IDTXgrow( IDTX idtx, int need)
00365 ;
00366
00372 IDTX IDTXsort( IDTX idtx)
00373 ;
00374
00381 IDTX IDTXload(rpmdb db, rpmTag tag)
00382 ;
00383
00390 IDTX IDTXglob(const char * globstr, rpmTag tag)
00391 ;
00392
00393
00407 void * rpmShowProgress( const void * arg,
00408 const rpmCallbackType what,
00409 const unsigned long amount,
00410 const unsigned long total,
00411 const void * pkgKey,
00412 void * data)
00413 ;
00414
00415 extern int packagesTotal;
00416
00421 int rpmRollback(struct rpmInstallArguments_s * ia,
00422 const char ** argv)
00423 ;
00424
00427 extern struct rpmInstallArguments_s rpmIArgs;
00428
00431 extern struct poptOption rpmInstallPoptTable[];
00432
00434
00437
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
00466 CHECKSIG_NONE = 0,
00467
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, const char ** argv)
00481 ;
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 const char ** argv)
00502 ;
00503
00507 struct rpmSignArguments_s {
00508 rpmResignFlags addSign;
00509 rpmCheckSigFlags checksigFlags;
00510 int sign;
00511 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