rpm  4.8.1
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
rpmfi.h File Reference

Structure(s) used for file info tag sets. More...

#include <rpm/rpmtypes.h>
#include <rpm/rpmvf.h>
#include <rpm/rpmpgp.h>
Include dependency graph for rpmfi.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_STATE_MISSING   -1 /* XXX used for unavailable data */
 
#define RPMFILE_ALL   ~(RPMFILE_NONE)
 
#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
 

Typedefs

typedef enum rpmFileTypes_e rpmFileTypes
 File types. More...
 
typedef enum rpmfileState_e rpmfileState
 File States (when installed). More...
 
typedef enum rpmfileAttrs_e rpmfileAttrs
 File Attributes. More...
 
typedef enum rpmFileAction_e rpmFileAction
 File disposition(s) during package install/erase transaction. More...
 
typedef enum rpmfiFlags_e rpmfiFlags
 

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_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_EXCLUDE = (1 << 9), RPMFILE_UNPATCHED = (1 << 10),
  RPMFILE_PUBKEY = (1 << 11), RPMFILE_POLICY = (1 << 12)
}
 File Attributes. More...
 
enum  rpmFileAction_e {
  FA_UNKNOWN = 0, FA_CREATE, FA_COPYIN, FA_COPYOUT,
  FA_BACKUP, FA_SAVE, FA_SKIP, FA_ALTNAME,
  FA_ERASE, FA_SKIPNSTATE, FA_SKIPNETSHARED, FA_SKIPCOLOR
}
 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_ISBUILD = (1 << 30),
  RPMFI_ISSOURCE = (1 << 31)
}
 

Functions

rpmfi rpmfiUnlink (rpmfi fi, const char *msg)
 Unreference a file info set instance. More...
 
rpmfi rpmfiLink (rpmfi fi, const char *msg)
 Reference a file info set instance. More...
 
rpm_count_t rpmfiFC (rpmfi fi)
 Return file count from file info set. More...
 
int rpmfiFX (rpmfi fi)
 Return current file index from file info set. More...
 
int rpmfiSetFX (rpmfi fi, int fx)
 Set current file index in file info set. More...
 
rpm_count_t rpmfiDC (rpmfi fi)
 Return directory count from file info set. More...
 
int rpmfiDX (rpmfi fi)
 Return current directory index from file info set. More...
 
int rpmfiSetDX (rpmfi fi, int dx)
 Set current directory index in file info set. More...
 
const char * rpmfiBN (rpmfi fi)
 Return current base name from file info set. More...
 
const char * rpmfiDN (rpmfi fi)
 Return current directory name from file info set. More...
 
const char * rpmfiFN (rpmfi fi)
 Return current file name from file info set. More...
 
rpmfileAttrs rpmfiFFlags (rpmfi fi)
 Return current file flags from file info set. More...
 
rpmVerifyAttrs rpmfiVFlags (rpmfi fi)
 Return current file verify flags from file info set. More...
 
rpm_mode_t rpmfiFMode (rpmfi fi)
 Return current file mode from file info set. More...
 
rpmfileState rpmfiFState (rpmfi fi)
 Return current file state from file info set. More...
 
pgpHashAlgo rpmfiDigestAlgo (rpmfi fi)
 Return digest algorithm of a file info set. More...
 
const unsigned char * rpmfiFDigest (rpmfi fi, pgpHashAlgo *algo, size_t *diglen)
 Return current file (binary) digest of file info set. More...
 
char * rpmfiFDigestHex (rpmfi fi, pgpHashAlgo *algo)
 Return current file (hex) digest of file info set. More...
 
const unsigned char * rpmfiMD5 (rpmfi fi) RPM_GNUC_DEPRECATED
 Return current file (binary) md5 digest from file info set. More...
 
const char * rpmfiFLink (rpmfi fi)
 Return current file linkto (i.e. More...
 
rpm_loff_t rpmfiFSize (rpmfi fi)
 Return current file size from file info set. More...
 
rpm_rdev_t rpmfiFRdev (rpmfi fi)
 Return current file rdev from file info set. More...
 
rpm_ino_t rpmfiFInode (rpmfi fi)
 Return current file inode from file info set. More...
 
rpm_color_t rpmfiColor (rpmfi fi)
 Return union of all file color bits from file info set. More...
 
rpm_color_t rpmfiFColor (rpmfi fi)
 Return current file color bits from file info set. More...
 
const char * rpmfiFClass (rpmfi fi)
 Return current file class from file info set. More...
 
uint32_t rpmfiFDepends (rpmfi fi, const uint32_t **fddictp)
 Return current file depends dictionary from file info set. More...
 
uint32_t rpmfiFNlink (rpmfi fi)
 Return (calculated) current file nlink count from file info set. More...
 
rpm_time_t rpmfiFMtime (rpmfi fi)
 Return current file modify time from file info set. More...
 
const char * rpmfiFUser (rpmfi fi)
 Return current file owner from file info set. More...
 
const char * rpmfiFGroup (rpmfi fi)
 Return current file group from file info set. More...
 
const char * rpmfiFCaps (rpmfi fi)
 Return textual representation of current file capabilities from file info set. More...
 
const char * rpmfiFLangs (rpmfi fi)
 Return current file language(s) from file info set. More...
 
int rpmfiNext (rpmfi fi)
 Return next file iterator index. More...
 
rpmfi rpmfiInit (rpmfi fi, int fx)
 Initialize file iterator index. More...
 
int rpmfiNextD (rpmfi fi)
 Return next directory iterator index. More...
 
rpmfi rpmfiInitD (rpmfi fi, int dx)
 Initialize directory iterator index. More...
 
rpmfi rpmfiFree (rpmfi fi)
 Destroy a file info set. More...
 
rpmfi rpmfiNew (const rpmts ts, Header h, rpmTag tagN, rpmfiFlags flags)
 Create and load a file info set. More...
 
rpmFileTypes rpmfiWhatis (rpm_mode_t mode)
 Return file type from mode_t. More...
 
int rpmfiCompare (const rpmfi afi, const rpmfi bfi)
 Return file info comparison. More...
 
rpmFileAction rpmfiDecideFate (const rpmfi ofi, rpmfi nfi, int skipMissing)
 Return file disposition. More...
 
int rpmfiConfigConflict (const rpmfi fi)
 Return whether file is conflicting config. More...
 

Variables

int _rpmfi_debug
 

Detailed Description

Structure(s) used for file info tag sets.

Definition in file rpmfi.h.

Macro Definition Documentation

◆ RPMFI_FLAGS_ERASE

#define RPMFI_FLAGS_ERASE
Value:

Definition at line 407 of file rpmfi.h.

◆ RPMFI_FLAGS_INSTALL

#define RPMFI_FLAGS_INSTALL   (RPMFI_NOFILECLASS | RPMFI_NOFILEVERIFYFLAGS)

Definition at line 412 of file rpmfi.h.

◆ RPMFI_FLAGS_QUERY

#define RPMFI_FLAGS_QUERY

◆ RPMFI_FLAGS_VERIFY

#define RPMFI_FLAGS_VERIFY
Value:

Definition at line 415 of file rpmfi.h.

◆ RPMFILE_ALL

#define RPMFILE_ALL   ~(RPMFILE_NONE)

Definition at line 68 of file rpmfi.h.

◆ RPMFILE_STATE_MISSING

#define RPMFILE_STATE_MISSING   -1 /* XXX used for unavailable data */

Definition at line 46 of file rpmfi.h.

◆ XFA_SKIPPING

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

Definition at line 88 of file rpmfi.h.

Typedef Documentation

◆ rpmfiFlags

typedef enum rpmfiFlags_e rpmfiFlags

◆ rpmFileAction

File disposition(s) during package install/erase transaction.

◆ rpmfileAttrs

File Attributes.

◆ rpmfileState

File States (when installed).

◆ rpmFileTypes

File types.

These are the file types used internally by rpm. The file type is determined by applying stat(2) macros like S_ISDIR to the file mode tag from a header. The values are arbitrary, but are identical to the linux stat(2) file types.

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_ISBUILD 
RPMFI_ISSOURCE 

Definition at line 383 of file rpmfi.h.

◆ rpmFileAction_e

File disposition(s) during package install/erase transaction.

Enumerator
FA_UNKNOWN 

initial action for file ...

FA_CREATE 

... copy in from payload.

FA_COPYIN 

... copy in from payload.

FA_COPYOUT 

... copy out to payload.

FA_BACKUP 

... renamed with ".rpmorig" extension.

FA_SAVE 

... renamed with ".rpmsave" extension.

FA_SKIP 

... already replaced, don't remove.

FA_ALTNAME 

... create with ".rpmnew" extension.

FA_ERASE 

... to be removed.

FA_SKIPNSTATE 

... untouched, state "not installed".

FA_SKIPNETSHARED 

... untouched, state "netshared".

FA_SKIPCOLOR 

... untouched, state "wrong color".

Definition at line 73 of file rpmfi.h.

◆ rpmfileAttrs_e

File Attributes.

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_EXCLUDE 

from %exclude, internal

RPMFILE_UNPATCHED 

placeholder (SuSE)

RPMFILE_PUBKEY 

from %pubkey

RPMFILE_POLICY 

from %policy

Definition at line 51 of file rpmfi.h.

◆ rpmfileState_e

File States (when installed).

Enumerator
RPMFILE_STATE_NORMAL 
RPMFILE_STATE_REPLACED 
RPMFILE_STATE_NOTINSTALLED 
RPMFILE_STATE_NETSHARED 
RPMFILE_STATE_WRONGCOLOR 

Definition at line 39 of file rpmfi.h.

◆ rpmFileTypes_e

File types.

These are the file types used internally by rpm. The file type is determined by applying stat(2) macros like S_ISDIR to the file mode tag from a header. The values are arbitrary, but are identical to the linux stat(2) file types.

Enumerator
PIPE 

pipe/fifo

CDEV 

character device

XDIR 

directory

BDEV 

block device

REG 

regular file

LINK 

hard link

SOCK 

socket

Definition at line 26 of file rpmfi.h.

Function Documentation

◆ rpmfiBN()

const char* rpmfiBN ( rpmfi  fi)

Return current base name from file info set.

Parameters
fifile info set
Returns
current base name, NULL on invalid

◆ rpmfiColor()

rpm_color_t rpmfiColor ( rpmfi  fi)

Return union of all file color bits from file info set.

Parameters
fifile info set
Returns
current color

◆ rpmfiCompare()

int rpmfiCompare ( const rpmfi  afi,
const rpmfi  bfi 
)

Return file info comparison.

Parameters
afi1st file info
bfi2nd file info
Returns
0 if identical

◆ rpmfiConfigConflict()

int rpmfiConfigConflict ( const rpmfi  fi)

Return whether file is conflicting config.

Parameters
fifile info
Returns
1 if config file and file on disk conflicts

◆ rpmfiDC()

rpm_count_t rpmfiDC ( rpmfi  fi)

Return directory count from file info set.

Parameters
fifile info set
Returns
current directory count

◆ rpmfiDecideFate()

rpmFileAction rpmfiDecideFate ( const rpmfi  ofi,
rpmfi  nfi,
int  skipMissing 
)

Return file disposition.

Parameters
ofiold file info
nfinew file info
skipMissingOK to skip missing files?
Returns
file dispostion

◆ rpmfiDigestAlgo()

pgpHashAlgo rpmfiDigestAlgo ( rpmfi  fi)

Return digest algorithm of a file info set.

Parameters
fifile info set
Returns
digest algorithm of file info set, 0 on invalid

◆ rpmfiDN()

const char* rpmfiDN ( rpmfi  fi)

Return current directory name from file info set.

Parameters
fifile info set
Returns
current directory, NULL on invalid

◆ rpmfiDX()

int rpmfiDX ( rpmfi  fi)

Return current directory index from file info set.

Parameters
fifile info set
Returns
current directory index

◆ rpmfiFC()

rpm_count_t rpmfiFC ( rpmfi  fi)

Return file count from file info set.

Parameters
fifile info set
Returns
current file count

◆ rpmfiFCaps()

const char* rpmfiFCaps ( rpmfi  fi)

Return textual representation of current file capabilities from file info set.

See cap_from_text(3) for details.

Parameters
fifile info set
Returns
file capability description, "" for no capabilities and NULL on invalid

◆ rpmfiFClass()

const char* rpmfiFClass ( rpmfi  fi)

Return current file class from file info set.

Parameters
fifile info set
Returns
current file class, 0 on invalid

◆ rpmfiFColor()

rpm_color_t rpmfiFColor ( rpmfi  fi)

Return current file color bits from file info set.

Parameters
fifile info set
Returns
current file color

◆ rpmfiFDepends()

uint32_t rpmfiFDepends ( rpmfi  fi,
const uint32_t **  fddictp 
)

Return current file depends dictionary from file info set.

Parameters
fifile info set
Return values
*fddictpfile depends dictionary array (or NULL)
Returns
no. of file depends entries, 0 on invalid

◆ rpmfiFDigest()

const unsigned char* rpmfiFDigest ( rpmfi  fi,
pgpHashAlgo algo,
size_t *  diglen 
)

Return current file (binary) digest of file info set.

Parameters
fifile info set
Return values
algodigest hash algoritm used (pass NULL to ignore)
diglendigest hash length (pass NULL to ignore)
Returns
current file digest, NULL on invalid

◆ rpmfiFDigestHex()

char* rpmfiFDigestHex ( rpmfi  fi,
pgpHashAlgo algo 
)

Return current file (hex) digest of file info set.

The file info set stores file digests in binary format to conserve memory, this converts the binary data back to hex presentation used in headers.

Parameters
fifile info set
Return values
algodigest hash algoritm used (pass NULL to ignore)
Returns
current file digest (malloc'ed), NULL on invalid

◆ rpmfiFFlags()

rpmfileAttrs rpmfiFFlags ( rpmfi  fi)

Return current file flags from file info set.

Parameters
fifile info set
Returns
current file flags, 0 on invalid

◆ rpmfiFGroup()

const char* rpmfiFGroup ( rpmfi  fi)

Return current file group from file info set.

Parameters
fifile info set
Returns
current file group, NULL on invalid

◆ rpmfiFInode()

rpm_ino_t rpmfiFInode ( rpmfi  fi)

Return current file inode from file info set.

Parameters
fifile info set
Returns
current file inode, 0 on invalid

◆ rpmfiFLangs()

const char* rpmfiFLangs ( rpmfi  fi)

Return current file language(s) from file info set.

Parameters
fifile info set
Returns
current file language(s), NULL on invalid

◆ rpmfiFLink()

const char* rpmfiFLink ( rpmfi  fi)

Return current file linkto (i.e.

symlink(2) target) from file info set.

Parameters
fifile info set
Returns
current file linkto, NULL on invalid

◆ rpmfiFMode()

rpm_mode_t rpmfiFMode ( rpmfi  fi)

Return current file mode from file info set.

Parameters
fifile info set
Returns
current file mode, 0 on invalid

◆ rpmfiFMtime()

rpm_time_t rpmfiFMtime ( rpmfi  fi)

Return current file modify time from file info set.

Parameters
fifile info set
Returns
current file modify time, 0 on invalid

◆ rpmfiFN()

const char* rpmfiFN ( rpmfi  fi)

Return current file name from file info set.

Parameters
fifile info set
Returns
current file name

◆ rpmfiFNlink()

uint32_t rpmfiFNlink ( rpmfi  fi)

Return (calculated) current file nlink count from file info set.

Parameters
fifile info set
Returns
current file nlink count, 0 on invalid

◆ rpmfiFRdev()

rpm_rdev_t rpmfiFRdev ( rpmfi  fi)

Return current file rdev from file info set.

Parameters
fifile info set
Returns
current file rdev, 0 on invalid

◆ rpmfiFree()

rpmfi rpmfiFree ( rpmfi  fi)

Destroy a file info set.

Parameters
fifile info set
Returns
NULL always

◆ rpmfiFSize()

rpm_loff_t rpmfiFSize ( rpmfi  fi)

Return current file size from file info set.

Parameters
fifile info set
Returns
current file size, 0 on invalid

◆ rpmfiFState()

rpmfileState rpmfiFState ( rpmfi  fi)

Return current file state from file info set.

Parameters
fifile info set
Returns
current file state, 0 on invalid

◆ rpmfiFUser()

const char* rpmfiFUser ( rpmfi  fi)

Return current file owner from file info set.

Parameters
fifile info set
Returns
current file owner, NULL on invalid

◆ rpmfiFX()

int rpmfiFX ( rpmfi  fi)

Return current file index from file info set.

Parameters
fifile info set
Returns
current file index

◆ rpmfiInit()

rpmfi rpmfiInit ( rpmfi  fi,
int  fx 
)

Initialize file iterator index.

Parameters
fifile info set
fxfile iterator index
Returns
file info set

◆ rpmfiInitD()

rpmfi rpmfiInitD ( rpmfi  fi,
int  dx 
)

Initialize directory iterator index.

Parameters
fifile info set
dxdirectory iterator index
Returns
file info set, NULL if dx is out of range

◆ rpmfiLink()

rpmfi rpmfiLink ( rpmfi  fi,
const char *  msg 
)

Reference a file info set instance.

Parameters
fifile info set
msg
Returns
new file info set reference

◆ rpmfiMD5()

const unsigned char* rpmfiMD5 ( rpmfi  fi)

Return current file (binary) md5 digest from file info set.

Deprecated:
Use rpmfiFDigest() instead
Parameters
fifile info set
Returns
current file md5 digest, NULL on invalid

◆ rpmfiNew()

rpmfi rpmfiNew ( const rpmts  ts,
Header  h,
rpmTag  tagN,
rpmfiFlags  flags 
)

Create and load a file info set.

Parameters
tsunused
hheader
tagNunused
flagsFlags to control what information is loaded.
Returns
new file info set

◆ rpmfiNext()

int rpmfiNext ( rpmfi  fi)

Return next file iterator index.

Parameters
fifile info set
Returns
file iterator index, -1 on termination

◆ rpmfiNextD()

int rpmfiNextD ( rpmfi  fi)

Return next directory iterator index.

Parameters
fifile info set
Returns
directory iterator index, -1 on termination

◆ rpmfiSetDX()

int rpmfiSetDX ( rpmfi  fi,
int  dx 
)

Set current directory index in file info set.

Parameters
fifile info set
dxnew directory index
Returns
current directory index

◆ rpmfiSetFX()

int rpmfiSetFX ( rpmfi  fi,
int  fx 
)

Set current file index in file info set.

Parameters
fifile info set
fxnew file index
Returns
current file index

◆ rpmfiUnlink()

rpmfi rpmfiUnlink ( rpmfi  fi,
const char *  msg 
)

Unreference a file info set instance.

Parameters
fifile info set
msg
Returns
NULL always

◆ rpmfiVFlags()

rpmVerifyAttrs rpmfiVFlags ( rpmfi  fi)

Return current file verify flags from file info set.

Parameters
fifile info set
Returns
current file verify flags, 0 on invalid

◆ rpmfiWhatis()

rpmFileTypes rpmfiWhatis ( rpm_mode_t  mode)

Return file type from mode_t.

Parameters
modefile mode bits (from header)
Returns
file type

Variable Documentation

◆ _rpmfi_debug

int _rpmfi_debug