home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 February / CHIP_2_98.iso / misc / src / rpm / lib / rpmlib.h < prev    next >
C/C++ Source or Header  |  1997-09-17  |  18KB  |  469 lines

  1. #ifndef H_RPMLIB
  2. #define H_RPMLIB
  3.  
  4. /* This is the *only* module users of rpmlib should need to include */
  5.  
  6. #include <db.h>
  7.  
  8. /* it shouldn't need these :-( */
  9. #include "dbindex.h"
  10. #include "header.h"
  11.  
  12. int rpmReadPackageInfo(int fd, Header * signatures, Header * hdr);
  13. int rpmReadPackageHeader(int fd, Header * hdr, int * isSource, int * major,
  14.              int * minor);
  15.    /* 0 = success */
  16.    /* 1 = bad magic */
  17.    /* 2 = error */
  18.  
  19. extern const struct headerTagTableEntry rpmTagTable[];
  20. extern const int rpmTagTableSize;
  21.  
  22. /* this chains to headerDefaultFormats[] */
  23. extern const struct headerSprintfExtension rpmHeaderFormats[];
  24.  
  25. /* these tags are for both the database and packages */
  26. /* none of these can be 0 !!                         */
  27.  
  28. #define RPMTAG_NAME              1000
  29. #define RPMTAG_VERSION            1001
  30. #define RPMTAG_RELEASE            1002
  31. #define RPMTAG_SERIAL           1003
  32. #define    RPMTAG_SUMMARY            1004
  33. #define RPMTAG_DESCRIPTION        1005
  34. #define RPMTAG_BUILDTIME        1006
  35. #define RPMTAG_BUILDHOST        1007
  36. #define RPMTAG_INSTALLTIME        1008
  37. #define RPMTAG_SIZE            1009
  38. #define RPMTAG_DISTRIBUTION        1010
  39. #define RPMTAG_VENDOR            1011
  40. #define RPMTAG_GIF            1012
  41. #define RPMTAG_XPM            1013
  42. #define RPMTAG_COPYRIGHT                1014
  43. #define RPMTAG_PACKAGER                 1015
  44. #define RPMTAG_GROUP                    1016
  45. #define RPMTAG_CHANGELOG                1017 /* internal */
  46. #define RPMTAG_SOURCE                   1018
  47. #define RPMTAG_PATCH                    1019
  48. #define RPMTAG_URL                      1020
  49. #define RPMTAG_OS                       1021
  50. #define RPMTAG_ARCH                     1022
  51. #define RPMTAG_PREIN                    1023
  52. #define RPMTAG_POSTIN                   1024
  53. #define RPMTAG_PREUN                    1025
  54. #define RPMTAG_POSTUN                   1026
  55. #define RPMTAG_FILENAMES        1027
  56. #define RPMTAG_FILESIZES        1028
  57. #define RPMTAG_FILESTATES        1029
  58. #define RPMTAG_FILEMODES        1030
  59. #define RPMTAG_FILEUIDS            1031 /* internal */
  60. #define RPMTAG_FILEGIDS            1032 /* internal */
  61. #define RPMTAG_FILERDEVS        1033
  62. #define RPMTAG_FILEMTIMES        1034
  63. #define RPMTAG_FILEMD5S            1035
  64. #define RPMTAG_FILELINKTOS        1036
  65. #define RPMTAG_FILEFLAGS        1037
  66. #define RPMTAG_ROOT                     1038
  67. #define RPMTAG_FILEUSERNAME             1039
  68. #define RPMTAG_FILEGROUPNAME            1040
  69. #define RPMTAG_EXCLUDE                  1041 /* not used - internal */
  70. #define RPMTAG_EXCLUSIVE                1042 /* not used - internal */
  71. #define RPMTAG_ICON                     1043
  72. #define RPMTAG_SOURCERPM                1044
  73. #define RPMTAG_FILEVERIFYFLAGS          1045
  74. #define RPMTAG_ARCHIVESIZE              1046
  75. #define RPMTAG_PROVIDES                 1047
  76. #define RPMTAG_REQUIREFLAGS             1048
  77. #define RPMTAG_REQUIRENAME              1049
  78. #define RPMTAG_REQUIREVERSION           1050
  79. #define RPMTAG_NOSOURCE                 1051 /* internal */
  80. #define RPMTAG_NOPATCH                  1052 /* internal */
  81. #define RPMTAG_CONFLICTFLAGS            1053
  82. #define RPMTAG_CONFLICTNAME             1054
  83. #define RPMTAG_CONFLICTVERSION          1055
  84. #define RPMTAG_DEFAULTPREFIX            1056
  85. #define RPMTAG_BUILDROOT                1057
  86. #define RPMTAG_INSTALLPREFIX        1058
  87. #define RPMTAG_EXCLUDEARCH              1059
  88. #define RPMTAG_EXCLUDEOS                1060
  89. #define RPMTAG_EXCLUSIVEARCH            1061
  90. #define RPMTAG_EXCLUSIVEOS              1062
  91. #define RPMTAG_AUTOREQPROV              1063 /* internal */
  92. #define RPMTAG_RPMVERSION        1064
  93. #define RPMTAG_TRIGGERSCRIPTS           1065 /* internal */
  94. #define RPMTAG_TRIGGERNAME              1066 /* internal */
  95. #define RPMTAG_TRIGGERVERSION           1067 /* internal */
  96. #define RPMTAG_TRIGGERFLAGS             1068 /* internal */
  97. #define RPMTAG_TRIGGERINDEX             1069 /* internal */
  98. #define RPMTAG_VERIFYSCRIPT             1079
  99. #define RPMTAG_CHANGELOGTIME            1080
  100. #define RPMTAG_CHANGELOGNAME            1081
  101. #define RPMTAG_CHANGELOGTEXT            1082
  102. #define RPMTAG_BROKENMD5                1083 /* internal */
  103. #define RPMTAG_PREREQ                   1084 /* internal */
  104. #define RPMTAG_PREINPROG                1085
  105. #define RPMTAG_POSTINPROG               1086
  106. #define RPMTAG_PREUNPROG                1087
  107. #define RPMTAG_POSTUNPROG               1088
  108. #define RPMTAG_BUILDARCHS               1089
  109. #define RPMTAG_OBSOLETES                1090
  110.  
  111. #define RPMTAG_EXTERNAL_TAG        1000000
  112.  
  113. #define RPMFILE_STATE_NORMAL         0
  114. #define RPMFILE_STATE_REPLACED         1
  115. #define RPMFILE_STATE_NOTINSTALLED    2
  116. #define RPMFILE_STATE_NETSHARED        3
  117.  
  118. /* these can be ORed together */
  119. #define RPMFILE_CONFIG            (1 << 0)
  120. #define RPMFILE_DOC            (1 << 1)
  121. #define RPMFILE_DONOTUSE                (1 << 2)
  122. #define RPMFILE_MISSINGOK               (1 << 3)
  123. #define RPMFILE_NOREPLACE               (1 << 4)
  124. #define RPMFILE_SPECFILE                (1 << 5)
  125.     
  126. #define RPMINSTALL_REPLACEPKG           (1 << 0)
  127. #define RPMINSTALL_REPLACEFILES         (1 << 1)
  128. #define RPMINSTALL_TEST                 (1 << 2)
  129. #define RPMINSTALL_UPGRADE              (1 << 3)
  130. #define RPMINSTALL_UPGRADETOOLD         (1 << 4)
  131. #define RPMINSTALL_NODOCS               (1 << 5)
  132. #define RPMINSTALL_NOSCRIPTS            (1 << 6)
  133. #define RPMINSTALL_NOARCH               (1 << 7)
  134. #define RPMINSTALL_NOOS                 (1 << 8)
  135. #define RPMINSTALL_ALLFILES             (1 << 9)
  136. #define RPMINSTALL_JUSTDB               (1 << 10)
  137. #define RPMINSTALL_KEEPOBSOLETE         (1 << 11)
  138.  
  139. #define RPMUNINSTALL_TEST               (1 << 0)
  140. #define RPMUNINSTALL_NOSCRIPTS          (1 << 1)
  141. #define RPMUNINSTALL_JUSTDB             (1 << 2)
  142.  
  143. #define RPMVERIFY_NONE             0
  144. #define RPMVERIFY_MD5              (1 << 0)
  145. #define RPMVERIFY_FILESIZE         (1 << 1)
  146. #define RPMVERIFY_LINKTO           (1 << 2)
  147. #define RPMVERIFY_USER             (1 << 3)
  148. #define RPMVERIFY_GROUP            (1 << 4)
  149. #define RPMVERIFY_MTIME            (1 << 5)
  150. #define RPMVERIFY_MODE             (1 << 6)
  151. #define RPMVERIFY_RDEV             (1 << 7)
  152. #define RPMVERIFY_ALL              ~(RPMVERIFY_NONE)
  153.  
  154. #define RPMSENSE_ANY             0
  155. #define RPMSENSE_SERIAL          (1 << 0)
  156. #define RPMSENSE_LESS            (1 << 1)
  157. #define RPMSENSE_GREATER         (1 << 2)
  158. #define RPMSENSE_EQUAL           (1 << 3)
  159. #define RPMSENSE_PROVIDES        (1 << 4) /* only used internally by builds */
  160. #define RPMSENSE_CONFLICTS       (1 << 5) /* only used internally by builds */
  161. #define RPMSENSE_PREREQ          (1 << 6)
  162. #define RPMSENSE_OBSOLETES       (1 << 7) /* only used internally by builds */
  163. #define RPMSENSE_SENSEMASK       15       /* Mask to get senses, ie serial, */
  164.                                           /* less, greater, equal.          */
  165.  
  166. #define RPMSENSE_TRIGGER_IN      (1 << 16)
  167. #define RPMSENSE_TRIGGER_UN      (1 << 17)
  168.  
  169. /* Stuff for maintaining "variables" like SOURCEDIR, BUILDDIR, etc */
  170.  
  171. #define RPMVAR_SOURCEDIR             0
  172. #define RPMVAR_BUILDDIR              1
  173. /* #define RPMVAR_DOCDIR            2 -- No longer used */
  174. #define RPMVAR_OPTFLAGS              3
  175. #define RPMVAR_TOPDIR                4
  176. #define RPMVAR_SPECDIR               5
  177. #define RPMVAR_ROOT                  6
  178. #define RPMVAR_RPMDIR                7
  179. #define RPMVAR_SRPMDIR               8
  180. /* #define RPMVAR_ARCHSENSITIVE     9  -- No longer used */
  181. #define RPMVAR_REQUIREDISTRIBUTION    10
  182. /* #define RPMVAR_REQUIREGROUP        11 -- No longer used */
  183. #define RPMVAR_REQUIREVENDOR        12
  184. #define RPMVAR_DISTRIBUTION        13
  185. #define RPMVAR_VENDOR            14
  186. #define RPMVAR_MESSAGELEVEL        15
  187. #define RPMVAR_REQUIREICON        16
  188. #define RPMVAR_TIMECHECK        17
  189. #define RPMVAR_SIGTYPE                  18
  190. #define RPMVAR_PGP_PATH                 19
  191. #define RPMVAR_PGP_NAME                 20
  192. /* #define RPMVAR_PGP_SECRING           21 -- No longer used */
  193. /* #define RPMVAR_PGP_PUBRING           22 -- No longer used */
  194. #define RPMVAR_EXCLUDEDOCS              23
  195. /* #define RPMVAR_BUILDARCH             24 -- No longer used */
  196. /* #define RPMVAR_BUILDOS               25 -- No longer used */
  197. #define RPMVAR_BUILDROOT                26
  198. #define RPMVAR_DBPATH                   27
  199. #define RPMVAR_PACKAGER                 28
  200. #define RPMVAR_FTPPROXY                 29
  201. #define RPMVAR_TMPPATH                  30
  202. /* #define RPMVAR_CPIOBIN                  31 -- No longer used */
  203. #define RPMVAR_FTPPORT            32
  204. #define RPMVAR_NETSHAREDPATH        33
  205. #define RPMVAR_DEFAULTDOCDIR        34
  206. #define RPMVAR_FIXPERMS            35
  207. #define RPMVAR_GZIPBIN             36
  208. #define RPMVAR_RPMFILENAME             37
  209. #define RPMVAR_PROVIDES             38
  210.  
  211. #define RPMVAR_NUM            39     /* number of RPMVAR entries */
  212.  
  213. char * rpmGetVar(int var);
  214. int rpmGetBooleanVar(int var);
  215. void rpmSetVar(int var, char *val);
  216.  
  217. /** rpmrc.c **/
  218.  
  219. #define RPM_MACHTABLE_INSTARCH        0
  220. #define RPM_MACHTABLE_INSTOS        1
  221. #define RPM_MACHTABLE_BUILDARCH        2
  222. #define RPM_MACHTABLE_BUILDOS          3
  223. #define RPM_MACHTABLE_COUNT        4    /* number of arch/os tables */
  224.  
  225. /* rpmReadConfigFiles() is for backwards compatibility only! It won't
  226.    work if building is true! */
  227. int rpmReadConfigFiles(char * file, char * arch, char * os, int building);
  228. int rpmReadRC(char * file);
  229. void rpmGetArchInfo(char ** name, int * num);
  230. void rpmGetOsInfo(char ** name, int * num);
  231. int rpmMachineScore(int type, char * name);
  232. int rpmShowRC(FILE *f);
  233. void rpmSetTables(int archTable, int osTable);  /* only used by build code */
  234. /* if either are NULL, they are set to the default value (munged uname())
  235.    pushed through a translation table (if appropriate) */
  236. void rpmSetMachine(char * arch, char * os);
  237.  
  238. /** **/
  239.  
  240. typedef struct rpmdb_s * rpmdb;
  241.  
  242. typedef void (*rpmNotifyFunction)(const unsigned long amount,
  243.                    const unsigned long total);
  244.  
  245. int rpmdbOpen (char * root, rpmdb * dbp, int mode, int perms);
  246.     /* 0 on error */
  247. int rpmdbInit(char * root, int perms);
  248.     /* nonzero on error */
  249. void rpmdbClose (rpmdb db);
  250.  
  251. int rpmdbFirstRecNum(rpmdb db);
  252. int rpmdbNextRecNum(rpmdb db, unsigned int lastOffset);  
  253.     /* 0 at end, -1 on error */
  254.  
  255. Header rpmdbGetRecord(rpmdb db, unsigned int offset);
  256. int rpmdbFindByFile(rpmdb db, char * filespec, dbiIndexSet * matches);
  257. int rpmdbFindByGroup(rpmdb db, char * group, dbiIndexSet * matches);
  258. int rpmdbFindPackage(rpmdb db, char * name, dbiIndexSet * matches);
  259. int rpmdbFindByProvides(rpmdb db, char * provides, dbiIndexSet * matches);
  260. int rpmdbFindByRequiredBy(rpmdb db, char * requires, dbiIndexSet * matches);
  261. int rpmdbFindByConflicts(rpmdb db, char * conflicts, dbiIndexSet * matches);
  262.  
  263. /* these are just convience functions */
  264. int rpmdbFindByLabel(rpmdb db, char * label, dbiIndexSet * matches);
  265. int rpmdbFindByHeader(rpmdb db, Header h, dbiIndexSet * matches);
  266.  
  267. int rpmInstallSourcePackage(char * root, int fd, char ** specFile,
  268.                 rpmNotifyFunction notify, char * labelFormat);
  269. int rpmInstallPackage(char * rootdir, rpmdb db, int fd, char * prefix, 
  270.               int flags, rpmNotifyFunction notify, char * labelFormat,
  271.               char * netsharedPath);
  272. int rpmVersionCompare(Header first, Header second);
  273. int rpmRemovePackage(char * root, rpmdb db, unsigned int offset, int flags);
  274. int rpmdbRebuild(char * root);
  275.  
  276. int rpmVerifyFile(char * root, Header h, int filenum, int * result, 
  277.           int omitMask);
  278. int rpmVerifyScript(char * root, Header h, int err);
  279.  
  280. typedef struct rpmDependencyCheck * rpmDependencies;
  281.  
  282. struct rpmDependencyConflict {
  283.     char * byName, * byVersion, * byRelease;
  284.     /* these needs fields are misnamed -- they are used for the package
  285.        which isn't needed as well */
  286.     char * needsName, * needsVersion;
  287.     int needsFlags;
  288.     void * suggestedPackage;            /* NULL if none */
  289.     enum { RPMDEP_SENSE_REQUIRES, RPMDEP_SENSE_CONFLICTS } sense;
  290. } ;
  291.  
  292. rpmDependencies rpmdepDependencies(rpmdb db);            /* db may be NULL */
  293. void rpmdepAddPackage(rpmDependencies rpmdep, Header h, void * key);
  294. void rpmdepAvailablePackage(rpmDependencies rpmdep, Header h, void * key);
  295. void rpmdepUpgradePackage(rpmDependencies rpmdep, Header h, void * key);
  296. void rpmdepRemovePackage(rpmDependencies rpmdep, int dboffset);
  297.  
  298. /* this checks for dependency satisfaction, but *not* ordering */
  299. int rpmdepCheck(rpmDependencies rpmdep, 
  300.         struct rpmDependencyConflict ** conflicts, int * numConflicts);
  301. /* Orders items, returns error on circle, finals keys[] is NULL. No dependency
  302.    check is done, use rpmdepCheck() for that. If dependencies are not 
  303.    satisfied a "best-try" ordering is returned. */
  304. int rpmdepOrder(rpmDependencies order, void *** keysListPtr);
  305.  
  306. void rpmdepDone(rpmDependencies rpmdep);
  307. void rpmdepFreeConflicts(struct rpmDependencyConflict * conflicts, int
  308.              numConflicts);
  309.  
  310. /** messages.c **/
  311.  
  312. #define RPMMESS_DEBUG      1
  313. #define RPMMESS_VERBOSE    2
  314. #define RPMMESS_NORMAL     3
  315. #define RPMMESS_WARNING    4
  316. #define RPMMESS_ERROR      5
  317. #define RPMMESS_FATALERROR 6
  318.  
  319. #define RPMMESS_QUIET (RPMMESS_NORMAL + 1)
  320.  
  321. void rpmIncreaseVerbosity(void);
  322. void rpmSetVerbosity(int level);
  323. int rpmGetVerbosity(void);
  324. int rpmIsVerbose(void);
  325. int rpmIsDebug(void);
  326.  
  327. /** rpmlead.c **/
  328.  
  329. #define RPMLEAD_BINARY 0
  330. #define RPMLEAD_SOURCE 1
  331.  
  332. #define RPMLEAD_MAGIC0 0xed
  333. #define RPMLEAD_MAGIC1 0xab
  334. #define RPMLEAD_MAGIC2 0xee
  335. #define RPMLEAD_MAGIC3 0xdb
  336.  
  337. /* The lead needs to be 8 byte aligned */
  338.  
  339. #define RPMLEAD_SIZE 96
  340.  
  341. struct rpmlead {
  342.     unsigned char magic[4];
  343.     unsigned char major, minor;
  344.     short type;
  345.     short archnum;
  346.     char name[66];
  347.     short osnum;
  348.     short signature_type;
  349.     char reserved[16];      /* pads to 96 bytes -- 8 byte aligned! */
  350. } ;
  351.  
  352. struct oldrpmlead {        /* for version 1 packages */
  353.     unsigned char magic[4];
  354.     unsigned char major, minor;
  355.     short type;
  356.     short archnum;
  357.     char name[66];
  358.     unsigned int specOffset;
  359.     unsigned int specLength;
  360.     unsigned int archiveOffset;
  361. } ;
  362.  
  363. /** rpmerr.c **/
  364.  
  365. typedef void (*rpmErrorCallBackType)(void);
  366.  
  367. void rpmError(int code, char * format, ...);
  368. int rpmErrorCode(void);
  369. char *rpmErrorString(void);
  370. rpmErrorCallBackType rpmErrorSetCallback(rpmErrorCallBackType);
  371.  
  372. #define RPMERR_GDBMOPEN        -2      /* gdbm open failed */
  373. #define RPMERR_GDBMREAD        -3    /* gdbm read failed */
  374. #define RPMERR_GDBMWRITE    -4    /* gdbm write failed */
  375. #define RPMERR_INTERNAL        -5    /* internal RPM error */
  376. #define RPMERR_DBCORRUPT    -6    /* rpm database is corrupt */
  377. #define RPMERR_OLDDBCORRUPT    -7    /* old style rpm database is corrupt */
  378. #define RPMERR_OLDDBMISSING    -8    /* old style rpm database is missing */
  379. #define RPMERR_NOCREATEDB    -9    /* cannot create new database */
  380. #define RPMERR_DBOPEN        -10     /* database open failed */
  381. #define RPMERR_DBGETINDEX    -11     /* database get from index failed */
  382. #define RPMERR_DBPUTINDEX    -12     /* database get from index failed */
  383. #define RPMERR_NEWPACKAGE    -13     /* package is too new to handle */
  384. #define RPMERR_BADMAGIC        -14    /* bad magic for an RPM */
  385. #define RPMERR_RENAME        -15    /* rename(2) failed */
  386. #define RPMERR_UNLINK        -16    /* unlink(2) failed */
  387. #define RPMERR_RMDIR        -17    /* rmdir(2) failed */
  388. #define RPMERR_PKGINSTALLED    -18    /* package already installed */
  389. #define RPMERR_CHOWN        -19    /* chown() call failed */
  390. #define RPMERR_NOUSER        -20    /* user does not exist */
  391. #define RPMERR_NOGROUP        -21    /* group does not exist */
  392. #define RPMERR_MKDIR        -22    /* mkdir() call failed */
  393. #define RPMERR_FILECONFLICT     -23     /* file being installed exists */
  394. #define RPMERR_RPMRC        -24     /* bad line in rpmrc */
  395. #define RPMERR_NOSPEC        -25     /* .spec file is missing */
  396. #define RPMERR_NOTSRPM        -26     /* a source rpm was expected */
  397. #define RPMERR_FLOCK        -27     /* locking the database failed */
  398. #define RPMERR_OLDPACKAGE    -28    /* trying upgrading to old version */
  399. #define RPMERR_BADARCH          -29     /* bad architecture or arch mismatch */
  400. #define RPMERR_CREATE        -30    /* failed to create a file */
  401. #define RPMERR_NOSPACE        -31    /* out of disk space */
  402. #define RPMERR_NORELOCATE    -32    /* tried to relocate improper package */
  403. #define RPMERR_BADOS            -33     /* bad architecture or arch mismatch */
  404. #define RPMMESS_BACKUP          -34     /* backup made during [un]install */
  405. #define RPMERR_MTAB        -35    /* failed to read mount table */
  406. #define RPMERR_STAT        -36    /* failed to stat something */
  407. #define RPMERR_BADDEV        -37    /* file on device not listed in mtab */
  408. #define RPMMESS_ALTNAME         -38     /* file written as .rpmnew */
  409. #define RPMMESS_PREREQLOOP      -39     /* loop in prerequisites */
  410.  
  411. /* spec.c build.c pack.c */
  412. #define RPMERR_UNMATCHEDIF      -107    /* unclosed %ifarch or %ifos */
  413. #define RPMERR_BADARG           -109
  414. #define RPMERR_SCRIPT           -110    /* errors related to script exec */
  415. #define RPMERR_READERROR        -111
  416. #define RPMERR_UNKNOWNOS        -112
  417. #define RPMERR_UNKNOWNARCH      -113
  418. #define RPMERR_EXEC             -114
  419. #define RPMERR_FORK             -115
  420. #define RPMERR_CPIO             -116
  421. #define RPMERR_GZIP             -117
  422. #define RPMERR_BADSPEC          -118
  423. #define RPMERR_LDD              -119    /* couldn't understand ldd output */
  424. #define RPMERR_BADFILENAME    -120
  425.  
  426. #define RPMERR_BADSIGTYPE       -200    /* Unknown signature type */
  427. #define RPMERR_SIGGEN           -201    /* Error generating signature */
  428.  
  429. /** signature.c **/
  430.  
  431. /**************************************************/
  432. /*                                                */
  433. /* Signature Tags                                 */
  434. /*                                                */
  435. /* These go in the sig Header to specify          */
  436. /* individual signature types.                    */
  437. /*                                                */
  438. /**************************************************/
  439.  
  440. #define RPMSIGTAG_SIZE                     1000
  441. /* the md5 sum was broken *twice* on big endian machines */
  442. #define RPMSIGTAG_LEMD5_1        1001
  443. #define RPMSIGTAG_PGP                      1002
  444. #define RPMSIGTAG_LEMD5_2        1003
  445. #define RPMSIGTAG_MD5                1004
  446.  
  447. /**************************************************/
  448. /*                                                */
  449. /* verifySignature() results                      */
  450. /*                                                */
  451. /**************************************************/
  452.  
  453. /* verifySignature() results */
  454. #define RPMSIG_OK        0
  455. #define RPMSIG_UNKNOWN   1
  456. #define RPMSIG_BAD       2
  457. #define RPMSIG_NOKEY     3  /* Do not have the key to check this signature */
  458.  
  459. void rpmFreeSignature(Header h);
  460.  
  461. int rpmVerifySignature(char *file, int_32 sigTag, void *sig, int count,
  462.                char *result);
  463.  
  464. int rpmGetFilesystemList(char *** listptr, int * num);
  465. int rpmGetFilesystemUsage(char ** filelist, int_32 * fssizes, int numFiles,
  466.               uint_32 ** usagesPtr, int flags);
  467.  
  468. #endif
  469.