149 lines
4.9 KiB
C
149 lines
4.9 KiB
C
#ifndef H_RPMLIB
|
|
#define H_RPMLIB
|
|
|
|
/* This is the *only* module users of rpmlib should need to include */
|
|
|
|
#include <db.h>
|
|
|
|
/* it shouldn't need these :-( */
|
|
#include "dbindex.h"
|
|
#include "header.h"
|
|
#include "messages.h"
|
|
|
|
/* these tags are for both the database and packages */
|
|
/* none of these can be 0 !! */
|
|
|
|
#define RPMTAG_NAME 1000
|
|
#define RPMTAG_VERSION 1001
|
|
#define RPMTAG_RELEASE 1002
|
|
#define RPMTAG_SERIAL 1003
|
|
#define RPMTAG_SUMMARY 1004
|
|
#define RPMTAG_DESCRIPTION 1005
|
|
#define RPMTAG_BUILDTIME 1006
|
|
#define RPMTAG_BUILDHOST 1007
|
|
#define RPMTAG_INSTALLTIME 1008
|
|
#define RPMTAG_SIZE 1009
|
|
#define RPMTAG_DISTRIBUTION 1010
|
|
#define RPMTAG_VENDOR 1011
|
|
#define RPMTAG_GIF 1012
|
|
#define RPMTAG_XPM 1013
|
|
#define RPMTAG_COPYRIGHT 1014
|
|
#define RPMTAG_PACKAGER 1015
|
|
#define RPMTAG_GROUP 1016
|
|
#define RPMTAG_CHANGELOG 1017
|
|
#define RPMTAG_SOURCE 1018
|
|
#define RPMTAG_PATCH 1019
|
|
#define RPMTAG_URL 1020
|
|
#define RPMTAG_OS 1021
|
|
#define RPMTAG_ARCH 1022
|
|
#define RPMTAG_PREIN 1023
|
|
#define RPMTAG_POSTIN 1024
|
|
#define RPMTAG_PREUN 1025
|
|
#define RPMTAG_POSTUN 1026
|
|
#define RPMTAG_FILENAMES 1027
|
|
#define RPMTAG_FILESIZES 1028
|
|
#define RPMTAG_FILESTATES 1029
|
|
#define RPMTAG_FILEMODES 1030
|
|
#define RPMTAG_FILEUIDS 1031
|
|
#define RPMTAG_FILEGIDS 1032
|
|
#define RPMTAG_FILERDEVS 1033
|
|
#define RPMTAG_FILEMTIMES 1034
|
|
#define RPMTAG_FILEMD5S 1035
|
|
#define RPMTAG_FILELINKTOS 1036
|
|
#define RPMTAG_FILEFLAGS 1037
|
|
#define RPMTAG_ROOT 1038
|
|
#define RPMTAG_FILEUSERNAME 1039
|
|
#define RPMTAG_FILEGROUPNAME 1040
|
|
#define RPMTAG_EXCLUDE 1041
|
|
#define RPMTAG_EXCLUSIVE 1042
|
|
#define RPMTAG_ICON 1043
|
|
#define RPMTAG_SOURCERPM 1044
|
|
#define RPMTAG_FILEVERIFYFLAGS 1045
|
|
#define RPMTAG_ARCHIVESIZE 1046
|
|
|
|
#define RPMFILE_STATE_NORMAL 0
|
|
#define RPMFILE_STATE_REPLACED 1
|
|
|
|
/* these can be ORed together */
|
|
#define RPMFILE_CONFIG 1
|
|
#define RPMFILE_DOC 2
|
|
|
|
#define INSTALL_REPLACEPKG 1
|
|
#define INSTALL_REPLACEFILES 2
|
|
#define INSTALL_TEST 4
|
|
#define INSTALL_PRINTLABEL 8
|
|
|
|
#define VERIFY_NONE 0
|
|
#define VERIFY_MD5 (1 << 0)
|
|
#define VERIFY_FILESIZE (1 << 1)
|
|
#define VERIFY_LINKTO (1 << 2)
|
|
#define VERIFY_USER (1 << 3)
|
|
#define VERIFY_GROUP (1 << 4)
|
|
#define VERIFY_MTIME (1 << 5)
|
|
#define VERIFY_MODE (1 << 6)
|
|
#define VERIFY_RDEV (1 << 7)
|
|
#define VERIFY_ALL ~(VERIFY_NONE)
|
|
|
|
/* Stuff for maintaining "variables" like SOURCEDIR, BUILDDIR, etc */
|
|
|
|
#define RPMVAR_SOURCEDIR 0
|
|
#define RPMVAR_BUILDDIR 1
|
|
#define RPMVAR_DOCDIR 2
|
|
#define RPMVAR_OPTFLAGS 3
|
|
#define RPMVAR_TOPDIR 4
|
|
#define RPMVAR_SPECDIR 5
|
|
#define RPMVAR_ROOT 6
|
|
#define RPMVAR_RPMDIR 7
|
|
#define RPMVAR_SRPMDIR 8
|
|
#define RPMVAR_ARCHSENSITIVE 9
|
|
#define RPMVAR_REQUIREDISTRIBUTION 10
|
|
#define RPMVAR_REQUIREGROUP 11
|
|
#define RPMVAR_REQUIREVENDOR 12
|
|
#define RPMVAR_DISTRIBUTION 13
|
|
#define RPMVAR_VENDOR 14
|
|
#define RPMVAR_MESSAGELEVEL 15
|
|
#define RPMVAR_REQUIREICON 16
|
|
#define RPMVAR_TIMECHECK 17
|
|
#define RPMVAR_SIGTYPE 18
|
|
#define RPMVAR_PGP_PATH 19
|
|
#define RPMVAR_PGP_NAME 20
|
|
#define RPMVAR_PGP_SECRING 21
|
|
#define RPMVAR_PGP_PUBRING 22
|
|
#define RPMVAR_LASTVAR 23 /* IMPORTANT to keep right! */
|
|
|
|
char *getVar(int var);
|
|
void setVar(int var, char *val);
|
|
|
|
int readConfigFiles(void);
|
|
|
|
typedef struct rpmdb * rpmdb;
|
|
|
|
typedef void (*notifyFunction)(const unsigned long amount,
|
|
const unsigned long total);
|
|
|
|
int rpmdbOpen (char * prefix, rpmdb * dbp, int mode, int perms);
|
|
/* 0 on error */
|
|
int rpmdbCreate (rpmdb db, int mode, int perms);
|
|
/* this fails if any part of the db already exists */
|
|
void rpmdbClose (rpmdb db);
|
|
|
|
unsigned int rpmdbFirstRecNum(rpmdb db);
|
|
unsigned int rpmdbNextRecNum(rpmdb db, unsigned int lastOffset);
|
|
/* 0 at end */
|
|
|
|
Header rpmdbGetRecord(rpmdb db, unsigned int offset);
|
|
int rpmdbFindByFile(rpmdb db, char * filespec, dbIndexSet * matches);
|
|
int rpmdbFindByGroup(rpmdb db, char * group, dbIndexSet * matches);
|
|
int rpmdbFindPackage(rpmdb db, char * name, dbIndexSet * matches);
|
|
|
|
int rpmInstallSourcePackage(char * prefix, int fd, char ** specFile);
|
|
int rpmInstallPackage(char * prefix, rpmdb db, int fd, int flags,
|
|
notifyFunction notify);
|
|
int rpmRemovePackage(char * prefix, rpmdb db, unsigned int offset, int test);
|
|
int rpmdbRemove(rpmdb db, unsigned int offset, int tolerant);
|
|
int rpmdbAdd(rpmdb db, Header dbentry);
|
|
int rpmdbUpdateRecord(rpmdb db, int secOffset, Header secHeader);
|
|
int rpmVerifyFile(char * prefix, Header h, int filenum, int * result);
|
|
|
|
#endif
|