rpm  4.15.1
Data Structures | Macros | Typedefs | Enumerations | Functions
rpmfiles.h File Reference

File info set API. More...

#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <rpm/rpmtypes.h>
#include <rpm/rpmpgp.h>
Include dependency graph for rpmfiles.h:

Go to the source code of this file.

Data Structures

struct  rpmRelocation_s
 We pass these around as an array with a sentinel. More...
 

Macros

#define RPMFILE_IS_INSTALLED(_x)   ((_x) == RPMFILE_STATE_NORMAL || (_x) == RPMFILE_STATE_NETSHARED)
 
#define RPMFILE_ALL   ~(RPMFILE_NONE)
 
#define RPMVERIFY_ALL   ~(RPMVERIFY_NONE)
 
#define RPMVERIFY_FAILURES   (RPMVERIFY_LSTATFAIL|RPMVERIFY_READFAIL|RPMVERIFY_READLINKFAIL|RPMVERIFY_LGETFILECONFAIL)
 
#define XFA_SKIPPING(_a)   ((_a) == FA_SKIP || (_a) == FA_SKIPNSTATE || (_a) == FA_SKIPNETSHARED || (_a) == FA_SKIPCOLOR)
 
#define RPMFI_FLAGS_ERASE
 
#define RPMFI_FLAGS_INSTALL   (RPMFI_NOFILECLASS | RPMFI_NOFILEVERIFYFLAGS)
 
#define RPMFI_FLAGS_VERIFY
 
#define RPMFI_FLAGS_QUERY
 
#define RPMFI_FLAGS_FILETRIGGER
 
#define RPMFI_FLAGS_ONLY_FILENAMES   (RPMFI_FLAGS_FILETRIGGER | RPMFI_NOFILESTATES)
 
#define RPMFILEITERMAX   6
 

Typedefs

typedef enum rpmFileTypes_e rpmFileTypes
 File types. More...
 
typedef enum rpmfileState_e rpmfileState
 File States (when installed). More...
 
typedef rpmFlags rpmfileAttrs
 
typedef rpmFlags rpmVerifyAttrs
 
typedef enum rpmFileAction_e rpmFileAction
 File disposition(s) during package install/erase transaction. More...
 
typedef rpmFlags rpmfiFlags
 
typedef enum rpmFileIter_e rpmFileIter
 

Enumerations

enum  rpmFileTypes_e {
  PIPE = 1, CDEV = 2, XDIR = 4, BDEV = 6,
  REG = 8, LINK = 10, SOCK = 12
}
 File types. More...
 
enum  rpmfileState_e {
  RPMFILE_STATE_MISSING = -1, RPMFILE_STATE_NORMAL = 0, RPMFILE_STATE_REPLACED = 1, RPMFILE_STATE_NOTINSTALLED = 2,
  RPMFILE_STATE_NETSHARED = 3, RPMFILE_STATE_WRONGCOLOR = 4
}
 File States (when installed). More...
 
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), RPMFILE_PUBKEY = (1 << 11), RPMFILE_ARTIFACT = (1 << 12)
}
 Exported File Attributes (ie RPMTAG_FILEFLAGS) More...
 
enum  rpmVerifyAttrs_e {
  RPMVERIFY_NONE = 0, RPMVERIFY_MD5 = (1 << 0), RPMVERIFY_FILEDIGEST = (1 << 0), RPMVERIFY_FILESIZE = (1 << 1),
  RPMVERIFY_LINKTO = (1 << 2), RPMVERIFY_USER = (1 << 3), RPMVERIFY_GROUP = (1 << 4), RPMVERIFY_MTIME = (1 << 5),
  RPMVERIFY_MODE = (1 << 6), RPMVERIFY_RDEV = (1 << 7), RPMVERIFY_CAPS = (1 << 8), RPMVERIFY_CONTEXTS = (1 << 15),
  RPMVERIFY_READLINKFAIL = (1 << 28), RPMVERIFY_READFAIL = (1 << 29), RPMVERIFY_LSTATFAIL = (1 << 30), RPMVERIFY_LGETFILECONFAIL = (1 << 31)
}
 Exported file verify attributes (ie RPMTAG_FILEVERIFYFLAGS) + bits used for reporting failures. More...
 
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,
  FA_TOUCH = 12
}
 File disposition(s) during package install/erase transaction. More...
 
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)
}
 
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
}
 

Functions

rpmfiles rpmfilesNew (rpmstrPool pool, Header h, rpmTagVal tagN, rpmfiFlags flags)
 Create and load a file info set. More...
 
rpmfiles rpmfilesLink (rpmfiles fi)
 Reference a file info set instance. More...
 
rpmfiles rpmfilesFree (rpmfiles fi)
 Destroy a file info set. More...
 
rpm_count_t rpmfilesFC (rpmfiles fi)
 Return file count from file info set. More...
 
rpm_count_t rpmfilesDC (rpmfiles fi)
 Return directory count from file info set. More...
 
int rpmfilesFindFN (rpmfiles files, const char *fn)
 Return file index of the given file name or -1 if file is not in the rpmfi. More...
 
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. More...
 
rpmfi rpmfilesIter (rpmfiles files, int itype)
 
int rpmfilesDigestAlgo (rpmfiles fi)
 Return digest algorithm of a file info set. More...
 
rpm_color_t rpmfilesColor (rpmfiles files)
 Return union of all file color bits from file info set. More...
 
int rpmfilesCompare (rpmfiles afi, int aix, rpmfiles bfi, int bix)
 Return file info comparison. More...
 
const char * rpmfilesBN (rpmfiles fi, int ix)
 Return base name from file info set. More...
 
const char * rpmfilesDN (rpmfiles fi, int jx)
 Return directory name from file info set. More...
 
int rpmfilesDI (rpmfiles fi, int ix)
 Return directory index from file info set. More...
 
char * rpmfilesFN (rpmfiles fi, int ix)
 Return file name from file info set. More...
 
int rpmfilesODI (rpmfiles fi, int ix)
 Return original directory index from file info set. More...
 
const char * rpmfilesOBN (rpmfiles fi, int ix)
 Return original base name from file info set. More...
 
const char * rpmfilesODN (rpmfiles fi, int jx)
 Return original directory name from file info set. More...
 
char * rpmfilesOFN (rpmfiles fi, int ix)
 Return original file name from file info set. More...
 
rpmVerifyAttrs rpmfilesVFlags (rpmfiles fi, int ix)
 Return file verify flags from file info set. More...
 
rpmfileState rpmfilesFState (rpmfiles fi, int ix)
 Return file state from file info set. More...
 
const char * rpmfilesFLink (rpmfiles fi, int ix)
 Return file linkto (i.e. More...
 
rpm_loff_t rpmfilesFSize (rpmfiles fi, int ix)
 Return file size from file info set. More...
 
rpm_color_t rpmfilesFColor (rpmfiles fi, int ix)
 Return file color bits from file info set. More...
 
const char * rpmfilesFClass (rpmfiles fi, int ix)
 Return file class from file info set. More...
 
uint32_t rpmfilesFDepends (rpmfiles fi, int ix, const uint32_t **fddictp)
 Return file depends dictionary from file info set. More...
 
uint32_t rpmfilesFNlink (rpmfiles fi, int ix)
 Return (calculated) file nlink count from file info set. More...
 
uint32_t rpmfilesFLinks (rpmfiles fi, int ix, const int **files)
 Return (calculated) file nlink count from file info set. More...
 
const char * rpmfilesFLangs (rpmfiles fi, int ix)
 Return file language(s) from file info set. More...
 
rpmfileAttrs rpmfilesFFlags (rpmfiles fi, int ix)
 Return file flags from file info set. More...
 
rpm_mode_t rpmfilesFMode (rpmfiles fi, int ix)
 Return file mode from file info set. More...
 
const unsigned char * rpmfilesFDigest (rpmfiles fi, int ix, int *algo, size_t *len)
 Return file (binary) digest of file info set. More...
 
const unsigned char * rpmfilesFSignature (rpmfiles fi, int ix, size_t *len)
 Return file (binary) digest of file info set. More...
 
rpm_rdev_t rpmfilesFRdev (rpmfiles fi, int ix)
 Return file rdev from file info set. More...
 
rpm_ino_t rpmfilesFInode (rpmfiles fi, int ix)
 Return file inode from file info set. More...
 
rpm_time_t rpmfilesFMtime (rpmfiles fi, int ix)
 Return file modify time from file info set. More...
 
const char * rpmfilesFUser (rpmfiles fi, int ix)
 Return file owner from file info set. More...
 
const char * rpmfilesFGroup (rpmfiles fi, int ix)
 Return file group from file info set. More...
 
const char * rpmfilesFCaps (rpmfiles fi, int ix)
 Return textual representation of file capabilities from file info set. More...
 
int rpmfilesStat (rpmfiles fi, int ix, int flags, struct stat *sb)
 Map file stat(2) info. More...
 
rpmVerifyAttrs rpmfilesVerify (rpmfiles fi, int ix, rpmVerifyAttrs omitMask)
 Verify file attributes (including digest). More...
 

Detailed Description

File info set API.

Definition in file rpmfiles.h.

Macro Definition Documentation

◆ RPMFI_FLAGS_ERASE

#define RPMFI_FLAGS_ERASE
Value:
RPMFI_NOFILEMTIMES | RPMFI_NOFILERDEVS | \
RPMFI_NOFILEVERIFYFLAGS)

Definition at line 157 of file rpmfiles.h.

◆ RPMFI_FLAGS_FILETRIGGER

#define RPMFI_FLAGS_FILETRIGGER

◆ RPMFI_FLAGS_INSTALL

#define RPMFI_FLAGS_INSTALL   (RPMFI_NOFILECLASS | RPMFI_NOFILEVERIFYFLAGS)

Definition at line 162 of file rpmfiles.h.

◆ RPMFI_FLAGS_ONLY_FILENAMES

#define RPMFI_FLAGS_ONLY_FILENAMES   (RPMFI_FLAGS_FILETRIGGER | RPMFI_NOFILESTATES)

Definition at line 181 of file rpmfiles.h.

◆ RPMFI_FLAGS_QUERY

#define RPMFI_FLAGS_QUERY

◆ RPMFI_FLAGS_VERIFY

#define RPMFI_FLAGS_VERIFY
Value:

Definition at line 165 of file rpmfiles.h.

◆ RPMFILE_ALL

#define RPMFILE_ALL   ~(RPMFILE_NONE)

Definition at line 67 of file rpmfiles.h.

◆ RPMFILE_IS_INSTALLED

#define RPMFILE_IS_INSTALLED (   _x)    ((_x) == RPMFILE_STATE_NORMAL || (_x) == RPMFILE_STATE_NETSHARED)

Definition at line 44 of file rpmfiles.h.

◆ RPMFILEITERMAX

#define RPMFILEITERMAX   6

Definition at line 194 of file rpmfiles.h.

◆ RPMVERIFY_ALL

#define RPMVERIFY_ALL   ~(RPMVERIFY_NONE)

Definition at line 97 of file rpmfiles.h.

◆ RPMVERIFY_FAILURES

Definition at line 98 of file rpmfiles.h.

◆ XFA_SKIPPING

#define XFA_SKIPPING (   _a)    ((_a) == FA_SKIP || (_a) == FA_SKIPNSTATE || (_a) == FA_SKIPNETSHARED || (_a) == FA_SKIPCOLOR)

Definition at line 121 of file rpmfiles.h.

Typedef Documentation

◆ rpmfiFlags

Definition at line 155 of file rpmfiles.h.

◆ rpmfileAttrs

Definition at line 65 of file rpmfiles.h.

◆ rpmFileIter

typedef enum rpmFileIter_e rpmFileIter

◆ rpmfileState

File States (when installed).

◆ rpmVerifyAttrs

Definition at line 95 of file rpmfiles.h.

Enumeration Type Documentation

◆ rpmfiFlags_e

Enumerator
RPMFI_NOHEADER 
RPMFI_KEEPHEADER 
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 
RPMFI_NOFILESIGNATURES 

Definition at line 132 of file rpmfiles.h.

◆ rpmfileAttrs_e

Exported File Attributes (ie RPMTAG_FILEFLAGS)

Enumerator
RPMFILE_NONE 
RPMFILE_CONFIG 

from %config

RPMFILE_DOC 

from %doc

RPMFILE_ICON 

from %donotuse.

RPMFILE_MISSINGOK 

from %config(missingok)

RPMFILE_NOREPLACE 

from %config(noreplace)

RPMFILE_SPECFILE 
Todo:
(unnecessary) marks 1st file in srpm.
RPMFILE_GHOST 

from %ghost

RPMFILE_LICENSE 

from %license

RPMFILE_README 

from %readme

RPMFILE_PUBKEY 

from %pubkey

RPMFILE_ARTIFACT 

from %artifact

Definition at line 49 of file rpmfiles.h.

◆ rpmFileIter_e

Enumerator
RPMFI_ITER_FWD 
RPMFI_ITER_BACK 
RPMFI_ITER_WRITE_ARCHIVE 
RPMFI_ITER_READ_ARCHIVE 
RPMFI_ITER_READ_ARCHIVE_CONTENT_FIRST 
RPMFI_ITER_READ_ARCHIVE_OMIT_HARDLINKS 
RPMFI_ITER_INTERVAL 

Definition at line 184 of file rpmfiles.h.

◆ rpmfileState_e

File States (when installed).

Enumerator
RPMFILE_STATE_MISSING 
RPMFILE_STATE_NORMAL 
RPMFILE_STATE_REPLACED 
RPMFILE_STATE_NOTINSTALLED 
RPMFILE_STATE_NETSHARED 
RPMFILE_STATE_WRONGCOLOR 

Definition at line 35 of file rpmfiles.h.

Function Documentation

◆ rpmfilesIter()

rpmfi rpmfilesIter ( rpmfiles  files,
int  itype 
)