rpmfiles.h
Go to the documentation of this file.
#ifndef _RPMFILES_H
#define _RPMFILES_H
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <rpm/rpmtypes.h>
#include <rpm/rpmvf.h>
#include <rpm/rpmpgp.h>
typedef enum rpmFileTypes_e {
PIPE = 1,
CDEV = 2,
XDIR = 4,
BDEV = 6,
REG = 8,
LINK = 10,
SOCK = 12
} rpmFileTypes;
typedef enum rpmfileState_e {
RPMFILE_STATE_MISSING = -1, /* used for unavailable data */
RPMFILE_STATE_NORMAL = 0,
RPMFILE_STATE_REPLACED = 1,
RPMFILE_STATE_NOTINSTALLED = 2,
RPMFILE_STATE_NETSHARED = 3,
RPMFILE_STATE_WRONGCOLOR = 4
} rpmfileState;
#define RPMFILE_IS_INSTALLED(_x) ((_x) == RPMFILE_STATE_NORMAL || (_x) == RPMFILE_STATE_NETSHARED)
enum rpmfileAttrs_e {
RPMFILE_NONE = 0,
RPMFILE_CONFIG = (1 << 0),
RPMFILE_DOC = (1 << 1),
RPMFILE_ICON = (1 << 2),
RPMFILE_MISSINGOK = (1 << 3),
RPMFILE_NOREPLACE = (1 << 4),
RPMFILE_SPECFILE = (1 << 5),
RPMFILE_GHOST = (1 << 6),
RPMFILE_LICENSE = (1 << 7),
RPMFILE_README = (1 << 8),
/* bits 9-10 unused */
RPMFILE_PUBKEY = (1 << 11),
};
typedef rpmFlags rpmfileAttrs;
#define RPMFILE_ALL ~(RPMFILE_NONE)
typedef enum rpmFileAction_e {
FA_UNKNOWN = 0,
FA_CREATE = 1,
FA_COPYIN = 2,
FA_COPYOUT = 3,
FA_BACKUP = 4,
FA_SAVE = 5,
FA_SKIP = 6,
FA_ALTNAME = 7,
FA_ERASE = 8,
FA_SKIPNSTATE = 9,
FA_SKIPNETSHARED = 10,
FA_SKIPCOLOR = 11,
/* bits 16-31 reserved */
} rpmFileAction;
#define XFA_SKIPPING(_a) \
((_a) == FA_SKIP || (_a) == FA_SKIPNSTATE || (_a) == FA_SKIPNETSHARED || (_a) == FA_SKIPCOLOR)
struct rpmRelocation_s {
char * oldPath;
char * newPath;
};
enum rpmfiFlags_e {
RPMFI_NOHEADER = 0,
RPMFI_KEEPHEADER = (1 << 0),
RPMFI_NOFILECLASS = (1 << 1),
RPMFI_NOFILEDEPS = (1 << 2),
RPMFI_NOFILELANGS = (1 << 3),
RPMFI_NOFILEUSER = (1 << 4),
RPMFI_NOFILEGROUP = (1 << 5),
RPMFI_NOFILEMODES = (1 << 6),
RPMFI_NOFILESIZES = (1 << 7),
RPMFI_NOFILECAPS = (1 << 8),
RPMFI_NOFILELINKTOS = (1 << 9),
RPMFI_NOFILEDIGESTS = (1 << 10),
RPMFI_NOFILEMTIMES = (1 << 11),
RPMFI_NOFILERDEVS = (1 << 12),
RPMFI_NOFILEINODES = (1 << 13),
RPMFI_NOFILESTATES = (1 << 14),
RPMFI_NOFILECOLORS = (1 << 15),
RPMFI_NOFILEVERIFYFLAGS = (1 << 16),
RPMFI_NOFILEFLAGS = (1 << 17),
RPMFI_NOFILESIGNATURES = (1 << 18),
};
typedef rpmFlags rpmfiFlags;
#define RPMFI_FLAGS_ERASE \
(RPMFI_NOFILECLASS | RPMFI_NOFILELANGS | \
RPMFI_NOFILEMTIMES | RPMFI_NOFILERDEVS | RPMFI_NOFILEINODES | \
RPMFI_NOFILEVERIFYFLAGS)
#define RPMFI_FLAGS_INSTALL \
(RPMFI_NOFILECLASS | RPMFI_NOFILEVERIFYFLAGS)
#define RPMFI_FLAGS_VERIFY \
(RPMFI_NOFILECLASS | RPMFI_NOFILEDEPS | RPMFI_NOFILELANGS | \
RPMFI_NOFILECOLORS)
#define RPMFI_FLAGS_QUERY \
(RPMFI_NOFILECLASS | RPMFI_NOFILEDEPS | RPMFI_NOFILELANGS | \
RPMFI_NOFILECOLORS | RPMFI_NOFILEVERIFYFLAGS)
#define RPMFI_FLAGS_ONLY_FILENAMES \
(RPMFI_NOFILECLASS | RPMFI_NOFILEDEPS | RPMFI_NOFILELANGS | \
RPMFI_NOFILEUSER | RPMFI_NOFILEGROUP | RPMFI_NOFILEMODES | \
RPMFI_NOFILESIZES | RPMFI_NOFILECAPS | RPMFI_NOFILELINKTOS | \
RPMFI_NOFILEDIGESTS | RPMFI_NOFILEMTIMES | RPMFI_NOFILERDEVS | \
RPMFI_NOFILEINODES | RPMFI_NOFILESTATES | RPMFI_NOFILECOLORS | \
RPMFI_NOFILEVERIFYFLAGS | RPMFI_NOFILEFLAGS)
typedef enum rpmFileIter_e {
RPMFI_ITER_FWD = 0,
RPMFI_ITER_BACK = 1,
RPMFI_ITER_WRITE_ARCHIVE = 2,
RPMFI_ITER_READ_ARCHIVE = 3,
RPMFI_ITER_READ_ARCHIVE_CONTENT_FIRST = 4,
RPMFI_ITER_READ_ARCHIVE_OMIT_HARDLINKS = 5,
RPMFI_ITER_INTERVAL = 6,
} rpmFileIter;
#define RPMFILEITERMAX 6
#ifdef __cplusplus
extern "C" {
#endif
rpmfiles rpmfilesNew(rpmstrPool pool, Header h, rpmTagVal tagN, rpmfiFlags flags);
rpmfiles rpmfilesLink(rpmfiles fi);
rpmfiles rpmfilesFree(rpmfiles fi);
rpm_count_t rpmfilesFC(rpmfiles fi);
rpm_count_t rpmfilesDC(rpmfiles fi);
int rpmfilesFindFN(rpmfiles files, const char * fn);
int rpmfilesFindOFN(rpmfiles files, const char * fn);
rpmfi rpmfilesIter(rpmfiles files, int itype);
int rpmfilesDigestAlgo(rpmfiles fi);
rpm_color_t rpmfilesColor(rpmfiles files);
int rpmfilesCompare(rpmfiles afi, int aix, rpmfiles bfi, int bix);
const char * rpmfilesBN(rpmfiles fi, int ix);
const char * rpmfilesDN(rpmfiles fi, int jx);
int rpmfilesDI(rpmfiles fi, int ix);
char * rpmfilesFN(rpmfiles fi, int ix);
int rpmfilesODI(rpmfiles fi, int ix);
const char * rpmfilesOBN(rpmfiles fi, int ix);
const char * rpmfilesODN(rpmfiles fi, int jx);
char * rpmfilesOFN(rpmfiles fi, int ix);
rpmVerifyAttrs rpmfilesVFlags(rpmfiles fi, int ix);
rpmfileState rpmfilesFState(rpmfiles fi, int ix);
const char * rpmfilesFLink(rpmfiles fi, int ix);
rpm_loff_t rpmfilesFSize(rpmfiles fi, int ix);
rpm_color_t rpmfilesFColor(rpmfiles fi, int ix);
const char * rpmfilesFClass(rpmfiles fi, int ix);
uint32_t rpmfilesFDepends(rpmfiles fi, int ix, const uint32_t ** fddictp);
uint32_t rpmfilesFNlink(rpmfiles fi, int ix);
uint32_t rpmfilesFLinks(rpmfiles fi, int ix, const int ** files);
const char * rpmfilesFLangs(rpmfiles fi, int ix);
rpmfileAttrs rpmfilesFFlags(rpmfiles fi, int ix);
rpm_mode_t rpmfilesFMode(rpmfiles fi, int ix);
const unsigned char * rpmfilesFDigest(rpmfiles fi, int ix, int *algo, size_t *len);
const unsigned char * rpmfilesFSignature(rpmfiles fi, int ix, size_t *len);
rpm_rdev_t rpmfilesFRdev(rpmfiles fi, int ix);
rpm_ino_t rpmfilesFInode(rpmfiles fi, int ix);
rpm_time_t rpmfilesFMtime(rpmfiles fi, int ix);
const char * rpmfilesFUser(rpmfiles fi, int ix);
const char * rpmfilesFGroup(rpmfiles fi, int ix);
const char * rpmfilesFCaps(rpmfiles fi, int ix);
int rpmfilesStat(rpmfiles fi, int ix, int flags, struct stat *sb);
#ifdef __cplusplus
}
#endif
#endif /* _RPMFILES_H */
RPMFI_NOFILERDEVS
Definition: rpmfiles.h:113
BDEV
Definition: rpmfiles.h:27
rpmfilesODN
const char * rpmfilesODN(rpmfiles fi, int jx)
Return original directory name from file info set.
rpmfilesFColor
rpm_color_t rpmfilesFColor(rpmfiles fi, int ix)
Return file color bits from file info set.
RPMFILE_CONFIG
Definition: rpmfiles.h:52
FA_BACKUP
Definition: rpmfiles.h:77
rpmfilesFSignature
const unsigned char * rpmfilesFSignature(rpmfiles fi, int ix, size_t *len)
Return file (binary) digest of file info set.
rpmVerifyAttrs
rpmFlags rpmVerifyAttrs
Definition: rpmvf.h:39
RPMFI_ITER_READ_ARCHIVE_OMIT_HARDLINKS
Definition: rpmfiles.h:154
RPMFILE_STATE_REPLACED
Definition: rpmfiles.h:39
RPMFI_ITER_BACK
Definition: rpmfiles.h:150
rpmfilesFState
rpmfileState rpmfilesFState(rpmfiles fi, int ix)
Return file state from file info set.
RPMFI_NOFILECLASS
Definition: rpmfiles.h:102
rpmfilesStat
int rpmfilesStat(rpmfiles fi, int ix, int flags, struct stat *sb)
Map file stat(2) info.
FA_ERASE
Definition: rpmfiles.h:81
rpmRelocation_s::oldPath
char * oldPath
Definition: rpmfiles.h:95
FA_SKIP
Definition: rpmfiles.h:79
rpm_count_t
uint32_t rpm_count_t
Definition: rpmtypes.h:29
rpmfilesFree
rpmfiles rpmfilesFree(rpmfiles fi)
Destroy a file info set.
rpmfilesFDepends
uint32_t rpmfilesFDepends(rpmfiles fi, int ix, const uint32_t **fddictp)
Return file depends dictionary from file info set.
RPMFI_ITER_FWD
Definition: rpmfiles.h:149
RPMFI_NOFILEDIGESTS
Definition: rpmfiles.h:111
rpmfilesFSize
rpm_loff_t rpmfilesFSize(rpmfiles fi, int ix)
Return file size from file info set.
rpmfilesIter
rpmfi rpmfilesIter(rpmfiles files, int itype)
rpmRelocation_s::newPath
char * newPath
Definition: rpmfiles.h:96
rpmfilesFMode
rpm_mode_t rpmfilesFMode(rpmfiles fi, int ix)
Return file mode from file info set.
LINK
Definition: rpmfiles.h:29
rpmfilesFC
rpm_count_t rpmfilesFC(rpmfiles fi)
Return file count from file info set.
RPMFI_KEEPHEADER
Definition: rpmfiles.h:101
RPMFI_NOFILECOLORS
Definition: rpmfiles.h:116
rpmFileIter
enum rpmFileIter_e rpmFileIter
rpmfilesFindFN
int rpmfilesFindFN(rpmfiles files, const char *fn)
Return file index of the given file name or -1 if file is not in the rpmfi.
RPMFILE_NONE
Definition: rpmfiles.h:51
RPMFI_NOFILEDEPS
Definition: rpmfiles.h:103
rpmfilesDI
int rpmfilesDI(rpmfiles fi, int ix)
Return directory index from file info set.
RPMFILE_SPECFILE
Definition: rpmfiles.h:57
rpmTagVal
rpm_tag_t rpmTagVal
Definition: rpmtypes.h:30
rpmRelocation_s
We pass these around as an array with a sentinel.
Definition: rpmfiles.h:94
rpmfi
struct rpmfi_s * rpmfi
Definition: rpmtypes.h:66
rpmfilesNew
rpmfiles rpmfilesNew(rpmstrPool pool, Header h, rpmTagVal tagN, rpmfiFlags flags)
Create and load a file info set.
RPMFI_NOFILECAPS
Definition: rpmfiles.h:109
RPMFILE_STATE_WRONGCOLOR
Definition: rpmfiles.h:42
rpmFileAction
enum rpmFileAction_e rpmFileAction
File disposition(s) during package install/erase transaction.
rpm_ino_t
uint32_t rpm_ino_t
Definition: rpmtypes.h:56
rpmfilesFGroup
const char * rpmfilesFGroup(rpmfiles fi, int ix)
Return file group from file info set.
RPMFILE_STATE_NOTINSTALLED
Definition: rpmfiles.h:40
rpmstrPool
struct rpmstrPool_s * rpmstrPool
Definition: rpmtypes.h:83
RPMFILE_STATE_NETSHARED
Definition: rpmfiles.h:41
FA_ALTNAME
Definition: rpmfiles.h:80
RPMFI_NOFILESTATES
Definition: rpmfiles.h:115
rpmfilesDC
rpm_count_t rpmfilesDC(rpmfiles fi)
Return directory count from file info set.
RPMFI_NOFILEVERIFYFLAGS
Definition: rpmfiles.h:117
rpm_loff_t
uint64_t rpm_loff_t
Definition: rpmtypes.h:51
FA_SKIPCOLOR
Definition: rpmfiles.h:84
rpmfilesCompare
int rpmfilesCompare(rpmfiles afi, int aix, rpmfiles bfi, int bix)
Return file info comparison.
rpmfilesVFlags
rpmVerifyAttrs rpmfilesVFlags(rpmfiles fi, int ix)
Return file verify flags from file info set.
rpmfilesFUser
const char * rpmfilesFUser(rpmfiles fi, int ix)
Return file owner from file info set.
rpmfiFlags
rpmFlags rpmfiFlags
Definition: rpmfiles.h:122
rpmfiles
struct rpmfiles_s * rpmfiles
Definition: rpmtypes.h:67
rpmfilesFDigest
const unsigned char * rpmfilesFDigest(rpmfiles fi, int ix, int *algo, size_t *len)
Return file (binary) digest of file info set.
FA_SKIPNETSHARED
Definition: rpmfiles.h:83
rpmfilesOBN
const char * rpmfilesOBN(rpmfiles fi, int ix)
Return original base name from file info set.
rpmfileState
enum rpmfileState_e rpmfileState
File States (when installed).
RPMFI_NOHEADER
Definition: rpmfiles.h:100
FA_SAVE
Definition: rpmfiles.h:78
RPMFILE_STATE_NORMAL
Definition: rpmfiles.h:38
RPMFILE_README
Definition: rpmfiles.h:60
SOCK
Definition: rpmfiles.h:30
rpmfilesFClass
const char * rpmfilesFClass(rpmfiles fi, int ix)
Return file class from file info set.
rpmfilesFindOFN
int rpmfilesFindOFN(rpmfiles files, const char *fn)
Return file index of the given original file name or -1 if file is not in the rpmfi.
RPMFI_NOFILELINKTOS
Definition: rpmfiles.h:110
rpmFlags
uint32_t rpmFlags
Definition: rpmtypes.h:42
rpmfilesBN
const char * rpmfilesBN(rpmfiles fi, int ix)
Return base name from file info set.
rpmfileAttrs_e
rpmfileAttrs_e
Exported File Attributes (ie RPMTAG_FILEFLAGS)
Definition: rpmfiles.h:50
rpmfilesFCaps
const char * rpmfilesFCaps(rpmfiles fi, int ix)
Return textual representation of file capabilities from file info set.
rpmfilesFLink
const char * rpmfilesFLink(rpmfiles fi, int ix)
Return file linkto (i.e.
PIPE
Definition: rpmfiles.h:24
rpmfilesLink
rpmfiles rpmfilesLink(rpmfiles fi)
Reference a file info set instance.
rpmfilesFNlink
uint32_t rpmfilesFNlink(rpmfiles fi, int ix)
Return (calculated) file nlink count from file info set.
RPMFILE_GHOST
Definition: rpmfiles.h:58
RPMFILE_NOREPLACE
Definition: rpmfiles.h:56
FA_COPYOUT
Definition: rpmfiles.h:76
FA_UNKNOWN
Definition: rpmfiles.h:73
RPMFILE_ICON
Definition: rpmfiles.h:54
rpm_rdev_t
uint16_t rpm_rdev_t
Definition: rpmtypes.h:54
RPMFI_NOFILESIZES
Definition: rpmfiles.h:108
rpmfilesDN
const char * rpmfilesDN(rpmfiles fi, int jx)
Return directory name from file info set.
rpmfilesFInode
rpm_ino_t rpmfilesFInode(rpmfiles fi, int ix)
Return file inode from file info set.
rpmfilesFRdev
rpm_rdev_t rpmfilesFRdev(rpmfiles fi, int ix)
Return file rdev from file info set.
rpmfileState_e
rpmfileState_e
File States (when installed).
Definition: rpmfiles.h:36
rpmfilesDigestAlgo
int rpmfilesDigestAlgo(rpmfiles fi)
Return digest algorithm of a file info set.
rpm_color_t
uint32_t rpm_color_t
Definition: rpmtypes.h:38
rpmfilesFMtime
rpm_time_t rpmfilesFMtime(rpmfiles fi, int ix)
Return file modify time from file info set.
RPMFI_NOFILEGROUP
Definition: rpmfiles.h:106
rpmfilesFFlags
rpmfileAttrs rpmfilesFFlags(rpmfiles fi, int ix)
Return file flags from file info set.
RPMFI_NOFILEMODES
Definition: rpmfiles.h:107
rpmfilesODI
int rpmfilesODI(rpmfiles fi, int ix)
Return original directory index from file info set.
RPMFI_NOFILEUSER
Definition: rpmfiles.h:105
RPMFI_NOFILELANGS
Definition: rpmfiles.h:104
RPMFI_NOFILESIGNATURES
Definition: rpmfiles.h:119
RPMFI_ITER_INTERVAL
Definition: rpmfiles.h:155
RPMFILE_STATE_MISSING
Definition: rpmfiles.h:37
CDEV
Definition: rpmfiles.h:25
rpmfilesColor
rpm_color_t rpmfilesColor(rpmfiles files)
Return union of all file color bits from file info set.
RPMFILE_LICENSE
Definition: rpmfiles.h:59
rpmFileIter_e
rpmFileIter_e
Definition: rpmfiles.h:148
rpmFileAction_e
rpmFileAction_e
File disposition(s) during package install/erase transaction.
Definition: rpmfiles.h:72
rpmfileAttrs
rpmFlags rpmfileAttrs
Definition: rpmfiles.h:65
RPMFI_ITER_WRITE_ARCHIVE
Definition: rpmfiles.h:151
XDIR
Definition: rpmfiles.h:26
rpm_time_t
uint32_t rpm_time_t
Definition: rpmtypes.h:52
rpmfiFlags_e
rpmfiFlags_e
Definition: rpmfiles.h:99
RPMFI_ITER_READ_ARCHIVE
Definition: rpmfiles.h:152
RPMFILE_DOC
Definition: rpmfiles.h:53
REG
Definition: rpmfiles.h:28
rpmfilesFN
char * rpmfilesFN(rpmfiles fi, int ix)
Return file name from file info set.
rpmfilesFLinks
uint32_t rpmfilesFLinks(rpmfiles fi, int ix, const int **files)
Return (calculated) file nlink count from file info set.
FA_CREATE
Definition: rpmfiles.h:74
rpmFileTypes
enum rpmFileTypes_e rpmFileTypes
File types.
RPMFI_NOFILEINODES
Definition: rpmfiles.h:114
RPMFI_NOFILEMTIMES
Definition: rpmfiles.h:112
FA_COPYIN
Definition: rpmfiles.h:75
RPMFI_NOFILEFLAGS
Definition: rpmfiles.h:118
RPMFILE_MISSINGOK
Definition: rpmfiles.h:55
FA_SKIPNSTATE
Definition: rpmfiles.h:82
rpmfilesOFN
char * rpmfilesOFN(rpmfiles fi, int ix)
Return original file name from file info set.
rpmFileTypes_e
rpmFileTypes_e
File types.
Definition: rpmfiles.h:23
RPMFILE_PUBKEY
Definition: rpmfiles.h:62
rpm_mode_t
uint16_t rpm_mode_t
Definition: rpmtypes.h:53
rpmfilesFLangs
const char * rpmfilesFLangs(rpmfiles fi, int ix)
Return file language(s) from file info set.
RPMFI_ITER_READ_ARCHIVE_CONTENT_FIRST
Definition: rpmfiles.h:153
Header
struct headerToken_s * Header
RPM header and data retrieval types.
Definition: rpmtypes.h:24