rpm  5.4.14
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
files.c File Reference

The post-build, pre-packaging file tree walk to assemble the package manifest. More...

#include "system.h"
#include <regex.h>
#include <rpmiotypes.h>
#include <rpmio_internal.h>
#include <rpmbf.h>
#include <rpmcb.h>
#include <rpmsx.h>
#include <fts.h>
#include <argv.h>
#include "iosm.h"
#include <rpmbuild.h>
#include <rpmte.h>
#include "rpmfc.h"
#include "buildio.h"
#include "legacy.h"
#include "debug.h"
Include dependency graph for files.c:

Go to the source code of this file.

Data Structures

struct  FileListRec_s
 
struct  AttrRec_s
 
struct  FileList_s
 Package file tree walk data. More...
 
struct  VFA
 

Macros

#define MYALLPERMS   07777
 
#define _RPMIOB_INTERNAL
 
#define _RPMSX_INTERNAL   /* XXX permit disabling. */
 
#define _RPMTAG_INTERNAL   /* XXX rpmTags->aTags */
 
#define _RPMFI_INTERNAL
 
#define _RPMTE_INTERNAL
 
#define SKIPWHITE(_x)   {while(*(_x) && (xisspace(*_x) || *(_x) == ',')) (_x)++;}
 
#define SKIPNONWHITE(_x)   {while(*(_x) &&!(xisspace(*_x) || *(_x) == ',')) (_x)++;}
 
#define MAXDOCDIR   1024
 
#define fl_dev   fl_st.st_dev
 
#define fl_ino   fl_st.st_ino
 
#define fl_mode   fl_st.st_mode
 
#define fl_nlink   fl_st.st_nlink
 
#define fl_uid   fl_st.st_uid
 
#define fl_gid   fl_st.st_gid
 
#define fl_rdev   fl_st.st_rdev
 
#define fl_size   fl_st.st_size
 
#define fl_mtime   fl_st.st_mtime
 
#define isAttrDefault(_ars)   ((_ars)[0] == '-' && (_ars)[1] == '\0')
 
#define _mask   (RPMVERIFY_FDIGEST|RPMVERIFY_HMAC)
 

Typedefs

typedef enum specdFlags_e specdFlags
 
typedef struct FileListRec_sFileListRec
 
typedef struct AttrRec_sAttrRec
 
typedef struct FileList_sFileList
 Package file tree walk data. More...
 
typedef struct VFA VFA_t
 

Enumerations

enum  specdFlags_e {
  SPECD_DEFFILEMODE = (1 << 0), SPECD_DEFDIRMODE = (1 << 1), SPECD_DEFUID = (1 << 2), SPECD_DEFGID = (1 << 3),
  SPECD_DEFVERIFY = (1 << 4), SPECD_FILEMODE = (1 << 8), SPECD_DIRMODE = (1 << 9), SPECD_UID = (1 << 10),
  SPECD_GID = (1 << 11), SPECD_VERIFY = (1 << 12)
}
 

Functions

static void nullAttrRec (AttrRec ar)
 
static void freeAttrRec (AttrRec ar)
 
static void dupAttrRec (const AttrRec oar, AttrRec nar)
 
static char * strtokWithQuotes (char *s, const char *delim)
 Strip quotes from strtok(3) string. More...
 
static void timeCheck (int tc, Header h)
 
static rpmRC parseForVerify (char *buf, FileList fl)
 Parse verify and defverify from file manifest. More...
 
static rpmRC parseForDev (char *buf, FileList fl)
 Parse dev from file manifest. More...
 
static rpmRC parseForAttr (char *buf, FileList fl)
 Parse attr and defattr from file manifest. More...
 
static rpmRC parseForConfig (char *buf, FileList fl)
 Parse config from file manifest. More...
 
static int langCmp (const void *ap, const void *bp)
 
static rpmRC parseForLang (char *buf, FileList fl)
 Parse lang from file manifest. More...
 
static int parseForRegexLang (const char *fileName, char **lang)
 
static rpmRC parseForSimple (Spec spec, Package pkg, char *buf, FileList fl, const char **fileName)
 Parse simple attributes (e.g. More...
 
static int compareFileListRecs (const void *ap, const void *bp)
 
static int isDoc (FileList fl, const char *fileName)
 Test if file is located in a docdir. More...
 
static int checkHardLinks (FileList fl)
 Verify that file attributes scope over hardlinks correctly. More...
 
static int dncmp (const void *a, const void *b)
 
static void compressFilelist (Header h)
 Convert absolute path tag to (dirname,basename,dirindex) tags. More...
 
static rpmuint32_t getDigestAlgo (Header h, int isSrc)
 
static int isHardLink (FileListRec flp, FileListRec tlp)
 
static int seenHardLink (FileList fl, FileListRec flp, ino_t *fileid)
 
static rpmRC genCpioListAndHeader (FileList fl, rpmfi *fip, Header h, int isSrc)
 Add file entries to header. More...
 
static FileListRec freeFileList (FileListRec fileList, int count)
 
static rpmRC recurseDir (FileList fl, const char *diskURL)
 Add directory (and all of its files) to the package manifest. More...
 
static int addFile (FileList fl, const char *diskURL, struct stat *statp)
 Add a file to the package manifest. More...
 
static rpmRC processMetadataFile (Package pkg, FileList fl, const char *fileURL, rpmTag tag)
 Add a pubkey/policy/icon to a binary package. More...
 
static rpmRC processBinaryFile (Package pkg, FileList fl, const char *fileURL)
 Add a file to a binary package. More...
 
static rpmRC processPackageFiles (Spec spec, Package pkg, int installSpecialDoc, int test)
 
int initSourceHeader (Spec spec, rpmiob *sfp)
 Create and initialize header for source package. More...
 
int processSourceFiles (Spec spec)
 Post-build processing for source package. More...
 
static int checkUnpackagedFiles (Spec spec)
 Check for unpackaged files against what's in the build root. More...
 
static int fiIntersect (rpmfi fi1, rpmfi fi2, size_t buildrootL, int _duplicate_files_terminate_build)
 
static int checkDuplicateFiles (Spec spec, size_t buildrootL, int _duplicate_files_terminate_build)
 Check if the same files are packaged into a few sub-packages. More...
 
static int packagedDir (Package pkg, const char *d)
 
static int pkgUnpackagedSubdirs (Package pkg, size_t buildrootL, int _unpackaged_subdirs_terminate_build)
 
static int checkUnpackagedSubdirs (Spec spec, size_t buildrootL, int _unpackaged_subdirs_terminate_build)
 Check for unpackaged subdirectories. More...
 
rpmRC processBinaryFiles (Spec spec, int installSpecialDoc, int test)
 Post-build processing for binary package(s). More...
 

Variables

static struct AttrRec_s root_ar = { NULL, NULL, "root", "root", 0, 0 }
 
static VFA_t verifyAttrs []
 
static VFA_t virtualFileAttributes []
 

Detailed Description

The post-build, pre-packaging file tree walk to assemble the package manifest.

Definition in file files.c.

Macro Definition Documentation

#define _mask   (RPMVERIFY_FDIGEST|RPMVERIFY_HMAC)

Referenced by genCpioListAndHeader().

#define _RPMFI_INTERNAL

Definition at line 29 of file files.c.

#define _RPMIOB_INTERNAL

Definition at line 17 of file files.c.

#define _RPMSX_INTERNAL   /* XXX permit disabling. */

Definition at line 22 of file files.c.

#define _RPMTAG_INTERNAL   /* XXX rpmTags->aTags */

Definition at line 28 of file files.c.

#define _RPMTE_INTERNAL

Definition at line 32 of file files.c.

#define fl_dev   fl_st.st_dev

Definition at line 72 of file files.c.

#define fl_gid   fl_st.st_gid

Definition at line 77 of file files.c.

#define fl_ino   fl_st.st_ino

Definition at line 73 of file files.c.

#define fl_mode   fl_st.st_mode

Definition at line 74 of file files.c.

#define fl_mtime   fl_st.st_mtime

Definition at line 80 of file files.c.

#define fl_nlink   fl_st.st_nlink

Definition at line 75 of file files.c.

#define fl_rdev   fl_st.st_rdev

Definition at line 78 of file files.c.

#define fl_size   fl_st.st_size

Definition at line 79 of file files.c.

#define fl_uid   fl_st.st_uid

Definition at line 76 of file files.c.

#define isAttrDefault (   _ars)    ((_ars)[0] == '-' && (_ars)[1] == '\0')

Definition at line 427 of file files.c.

Referenced by parseForAttr().

#define MAXDOCDIR   1024

Definition at line 50 of file files.c.

Referenced by parseForSimple().

#define MYALLPERMS   07777

Definition at line 9 of file files.c.

Referenced by parseForAttr().

#define SKIPNONWHITE (   _x)    {while(*(_x) &&!(xisspace(*_x) || *(_x) == ',')) (_x)++;}

Definition at line 48 of file files.c.

Referenced by parseForAttr(), parseForConfig(), parseForDev(), parseForLang(), and parseForVerify().

#define SKIPWHITE (   _x)    {while(*(_x) && (xisspace(*_x) || *(_x) == ',')) (_x)++;}

Definition at line 47 of file files.c.

Referenced by parseForAttr(), parseForConfig(), parseForDev(), parseForLang(), and parseForVerify().

Typedef Documentation

typedef struct AttrRec_s * AttrRec
typedef struct FileList_s * FileList

Package file tree walk data.

typedef struct FileListRec_s * FileListRec
typedef enum specdFlags_e specdFlags
typedef struct VFA VFA_t

Enumeration Type Documentation

Enumerator
SPECD_DEFFILEMODE 
SPECD_DEFDIRMODE 
SPECD_DEFUID 
SPECD_DEFGID 
SPECD_DEFVERIFY 
SPECD_FILEMODE 
SPECD_DIRMODE 
SPECD_UID 
SPECD_GID 
SPECD_VERIFY 

Definition at line 54 of file files.c.

Function Documentation

static int addFile ( FileList  fl,
const char *  diskURL,
struct stat *  statp 
)
static
static int checkDuplicateFiles ( Spec  spec,
size_t  buildrootL,
int  _duplicate_files_terminate_build 
)
static

Check if the same files are packaged into a few sub-packages.

Parameters
specspec file control structure
Returns
number of duplicate files

Definition at line 2998 of file files.c.

References Package_s::fi, fiIntersect(), Package_s::header, n, Package_s::next, NULL, Spec_s::packages, rpmfiFree(), rpmfiLink(), rpmfiNew(), rpmfiSetHeader(), RPMTAG_BASENAMES, and void.

Referenced by processBinaryFiles().

static int checkHardLinks ( FileList  fl)
static

Verify that file attributes scope over hardlinks correctly.

If partial hardlink sets are possible, then add tracking dependency.

Parameters
flpackage file tree walk data
Returns
1 if partial hardlink sets can exist, 0 otherwise.

Definition at line 1130 of file files.c.

References FileList_s::fileList, FileList_s::fileListRecsUsed, FileListRec_s::flags, i, j, RPMFILE_EXCLUDE, and RPMFILE_GHOST.

Referenced by processPackageFiles().

static int checkUnpackagedFiles ( Spec  spec)
static

Check for unpackaged files against what's in the build root.

Parameters
specspec file control structure
Returns
-1 if skipped, 0 on OK, 1 on error

Definition at line 2867 of file files.c.

References _, _free(), exit, fi, Package_s::fi, FileList_s::fileList, fn, Package_s::header, i, n, Package_s::next, NULL, Spec_s::packages, rc, rpmExpand(), rpmExpandNumeric(), rpmfcExec(), rpmfiFN(), rpmfiFree(), rpmfiInit(), rpmfiLink(), rpmfiNew(), rpmfiNext(), rpmiobAppend(), rpmiobFree(), rpmiobNew(), rpmiobStr(), rpmlog(), RPMLOG_ERR, RPMLOG_NOTICE, RPMLOG_WARNING, RPMTAG_BASENAMES, s, and t.

Referenced by processBinaryFiles().

static int checkUnpackagedSubdirs ( Spec  spec,
size_t  buildrootL,
int  _unpackaged_subdirs_terminate_build 
)
static

Check for unpackaged subdirectories.

Parameters
specspec file control structure
Returns
number of unpackaged subdirectories

Definition at line 3160 of file files.c.

References n, Package_s::next, Spec_s::packages, and pkgUnpackagedSubdirs().

Referenced by processBinaryFiles().

static int compareFileListRecs ( const void ap,
const void bp 
)
static

Definition at line 1093 of file files.c.

References b, NULL, strcmp(), urlPath(), and void.

Referenced by genCpioListAndHeader().

static void compressFilelist ( Header  h)
static
static int dncmp ( const void a,
const void b 
)
static

Definition at line 1161 of file files.c.

References strcmp(), urlPath(), and void.

Referenced by compressFilelist().

static void dupAttrRec ( const AttrRec  oar,
AttrRec  nar 
)
static
static int fiIntersect ( rpmfi  fi1,
rpmfi  fi2,
size_t  buildrootL,
int  _duplicate_files_terminate_build 
)
static
static void freeAttrRec ( AttrRec  ar)
static
static FileListRec freeFileList ( FileListRec  fileList,
int  count 
)
static
static rpmRC genCpioListAndHeader ( FileList  fl,
rpmfi fip,
Header  h,
int  isSrc 
)
static

Add file entries to header.

Todo:

Should directories have doc/config attributes? (#14531)

Remove RPMTAG_OLDFILENAMES, add dirname/basename instead.

Parameters
flpackage file tree walk data
Return values
*fipfile info for package
Parameters
h
isSrc

Definition at line 1363 of file files.c.

References _, _free(), _mask, _rpmbuildFlags, alloca(), _HE_s::append, rpmDataType_u::argv, assert(), b, buf, FileList_s::buildRootURL, _HE_s::c, compareFileListRecs(), compressFilelist(), FileListRec_s::diskURL, dodigest(), FA_COPYOUT, FA_SKIP, fi, FileList_s::fileList, FileList_s::fileListRecsUsed, FileListRec_s::fileURL, FileListRec_s::flags, flags, getDigestAlgo(), FileListRec_s::gname, hashFunctionString(), headerPut(), i, IOSM_FOLLOW_SYMLINKS, IOSM_MAP_GID, IOSM_MAP_MODE, IOSM_MAP_PATH, IOSM_MAP_TYPE, IOSM_MAP_UID, isDoc(), FileListRec_s::langs, memset(), NULL, _HE_s::p, FileList_s::prefix, FileList_s::processingFailed, qsort(), rc, Readlink(), RPM_STRING_ARRAY_TYPE, RPM_UINT16_TYPE, RPM_UINT32_TYPE, rpmExpandNumeric(), rpmfiFree(), RPMFILE_CONFIG, RPMFILE_DOC, RPMFILE_EXCLUDE, RPMFILE_GHOST, rpmfiNew(), rpmlibNeedsFeature(), rpmlog(), RPMLOG_ERR, RPMLOG_WARNING, RPMRC_FAIL, RPMRC_OK, rpmsxFree(), rpmsxMatch(), rpmsxNew(), RPMTAG_BASENAMES, RPMTAG_FILECONTEXTS, RPMTAG_FILEDEVICES, RPMTAG_FILEDIGESTALGOS, RPMTAG_FILEDIGESTS, RPMTAG_FILEFLAGS, RPMTAG_FILEGROUPNAME, RPMTAG_FILEINODES, RPMTAG_FILELANGS, RPMTAG_FILELINKTOS, RPMTAG_FILEMODES, RPMTAG_FILEMTIMES, RPMTAG_FILERDEVS, RPMTAG_FILESIZES, RPMTAG_FILEUSERNAME, RPMTAG_FILEVERIFYFLAGS, RPMTAG_OLDFILENAMES, RPMTAG_SIZE, RPMVERIFY_FDIGEST, RPMVERIFY_FILESIZE, RPMVERIFY_HMAC, RPMVERIFY_LINKTO, RPMVERIFY_MTIME, s, S_ISLNK, seenHardLink(), SPECD_DEFDIRMODE, SPECD_DEFFILEMODE, SPECD_DEFGID, SPECD_DEFUID, SPECD_DEFVERIFY, SPECD_DIRMODE, SPECD_FILEMODE, SPECD_GID, SPECD_UID, SPECD_VERIFY, FileListRec_s::specdFlags, stpcpy(), strcmp(), _HE_s::t, _HE_s::tag, FileList_s::totalFileSize, TR_ADDED, rpmDataType_u::ui16p, rpmDataType_u::ui32p, FileListRec_s::uname, urlPath(), FileListRec_s::verifyFlags, void, xcalloc(), xmalloc, and xx.

Referenced by processPackageFiles(), and processSourceFiles().

static rpmuint32_t getDigestAlgo ( Header  h,
int  isSrc 
)
static
static int isDoc ( FileList  fl,
const char *  fileName 
)
static

Test if file is located in a docdir.

Parameters
flpackage file tree walk data
fileNamefile path
Returns
1 if doc file, 0 if not

Definition at line 1110 of file files.c.

References FileList_s::docDirCount, FileList_s::docDirs, and k.

Referenced by genCpioListAndHeader().

static int isHardLink ( FileListRec  flp,
FileListRec  tlp 
)
static

Definition at line 1334 of file files.c.

Referenced by seenHardLink().

static int langCmp ( const void ap,
const void bp 
)
static

Definition at line 726 of file files.c.

References strcmp().

Referenced by parseForLang().

static void nullAttrRec ( AttrRec  ar)
static
static int packagedDir ( Package  pkg,
const char *  d 
)
static

Definition at line 3035 of file files.c.

References Package_s::fi, j, NULL, rpmfiFNBF(), stpcpy(), strcmp(), urlPath(), void, and xmalloc.

Referenced by pkgUnpackagedSubdirs().

static rpmRC parseForAttr ( char *  buf,
FileList  fl 
)
static

Parse attr and defattr from file manifest.

Parameters
bufcurrent spec file line
flpackage file tree walk data
Returns
RPMRC_OK on success

Definition at line 535 of file files.c.

References _, alloca(), FileList_s::cur_ar, FileList_s::currentSpecdFlags, FileList_s::def_ar, FileList_s::defSpecdFlags, dupAttrRec(), isAttrDefault, MYALLPERMS, name, NULL, nullAttrRec(), p, FileList_s::processingFailed, q, rpmlog(), RPMLOG_ERR, RPMRC_FAIL, RPMRC_OK, SKIPNONWHITE, SKIPSPACE, SKIPWHITE, SPECD_DIRMODE, SPECD_FILEMODE, SPECD_GID, SPECD_UID, and strncpy().

Referenced by processPackageFiles(), and processSourceFiles().

static rpmRC parseForConfig ( char *  buf,
FileList  fl 
)
static

Parse config from file manifest.

Parameters
bufcurrent spec file line
flpackage file tree walk data
Returns
RPMRC_OK on success

Definition at line 666 of file files.c.

References _, alloca(), FileList_s::currentFlags, name, NULL, p, FileList_s::processingFailed, q, RPMFILE_CONFIG, RPMFILE_MISSINGOK, RPMFILE_NOREPLACE, rpmlog(), RPMLOG_ERR, RPMRC_FAIL, RPMRC_OK, SKIPNONWHITE, SKIPSPACE, SKIPWHITE, strcmp(), and strncpy().

Referenced by processPackageFiles().

static rpmRC parseForDev ( char *  buf,
FileList  fl 
)
static

Parse dev from file manifest.

Parameters
bufcurrent spec file line
flpackage file tree walk data
Returns
RPMRC_OK on success

Definition at line 435 of file files.c.

References _, alloca(), FileList_s::devmajor, FileList_s::devminor, FileList_s::devtype, exit, name, FileList_s::noGlob, NULL, p, FileList_s::processingFailed, q, rc, rpmlog(), RPMLOG_ERR, RPMRC_FAIL, RPMRC_OK, SKIPNONWHITE, SKIPSPACE, SKIPWHITE, strncpy(), and xisdigit().

Referenced by processPackageFiles().

static rpmRC parseForLang ( char *  buf,
FileList  fl 
)
static

Parse lang from file manifest.

Parameters
bufcurrent spec file line
flpackage file tree walk data
Returns
RPMRC_OK on success

Definition at line 738 of file files.c.

References _, alloca(), FileList_s::currentLangs, i, langCmp(), name, FileList_s::nLangs, NULL, p, FileList_s::processingFailed, q, qsort(), rpmlog(), RPMLOG_ERR, RPMRC_FAIL, RPMRC_OK, SKIPNONWHITE, SKIPSPACE, SKIPWHITE, strncpy(), xmalloc, and xrealloc.

Referenced by processPackageFiles().

static int parseForRegexLang ( const char *  fileName,
char **  lang 
)
static

Definition at line 827 of file files.c.

References _free(), buf, int, memset(), NULL, rc, rpmExpand(), and s.

Referenced by addFile().

static rpmRC parseForSimple ( Spec  spec,
Package  pkg,
char *  buf,
FileList  fl,
const char **  fileName 
)
static

Parse simple attributes (e.g.

dir) from file manifest.

Parameters
specspec file control structure
pkgpackage control structure
bufcurrent spec file line
flpackage file tree walk data
Return values
*fileNamefile name
Returns
RPMRC_OK on success

Definition at line 906 of file files.c.

References _, _free(), assert(), VFA::attribute, buf, FileList_s::currentFlags, FileList_s::docDirCount, FileList_s::docDirs, exit, VFA::flag, Package_s::header, headerSprintf(), FileList_s::isDir, FileList_s::isSpecialDoc, MAXDOCDIR, VFA::not, NULL, FileList_s::passedSpecialDoc, FileList_s::processingFailed, res, rpmExpand(), RPMFILE_DOC, RPMFILE_ICON, RPMFILE_POLICY, RPMFILE_PUBKEY, rpmGetPath(), rpmHeaderFormats, rpmiobAppend(), rpmiobNew(), rpmlog(), RPMLOG_CRIT, RPMLOG_ERR, RPMRC_FAIL, RPMRC_OK, s, Package_s::specialDoc, strcmp(), strtokWithQuotes(), t, URL_IS_PATH, urlPath(), and xstrdup().

Referenced by processPackageFiles().

static rpmRC parseForVerify ( char *  buf,
FileList  fl 
)
static

Parse verify and defverify from file manifest.

Parameters
bufcurrent spec file line
flpackage file tree walk data
Returns
RPMRC_OK on success

Definition at line 330 of file files.c.

References _, alloca(), VFA::attribute, FileList_s::currentSpecdFlags, FileList_s::currentVerifyFlags, FileList_s::defSpecdFlags, FileList_s::defVerifyFlags, VFA::flag, name, NULL, p, FileList_s::processingFailed, q, rpmlog(), RPMLOG_ERR, RPMRC_FAIL, RPMRC_OK, RPMVERIFY_FDIGEST, RPMVERIFY_HMAC, RPMVERIFY_NONE, SKIPNONWHITE, SKIPSPACE, SKIPWHITE, SPECD_VERIFY, strcmp(), and strncpy().

Referenced by processPackageFiles().

static int pkgUnpackagedSubdirs ( Package  pkg,
size_t  buildrootL,
int  _unpackaged_subdirs_terminate_build 
)
static
static rpmRC processBinaryFile ( Package  pkg,
FileList  fl,
const char *  fileURL 
)
static

Add a file to a binary package.

Parameters
pkgpackage control structure
flpackage file tree walk data
fileURL
Returns
RPMRC_OK on success

Definition at line 2190 of file files.c.

References _, _free(), addFile(), argv, FileList_s::buildRootURL, FileList_s::currentFlags, exit, Glob_pattern_p(), i, FileList_s::noGlob, NULL, FileList_s::processingFailed, rc, RPMFILE_OPTIONAL, rpmGenPath(), rpmGlob(), rpmlog(), RPMLOG_ERR, RPMLOG_WARNING, RPMRC_FAIL, RPMRC_OK, urlPath(), void, and xx.

Referenced by processPackageFiles().

static rpmRC processMetadataFile ( Package  pkg,
FileList  fl,
const char *  fileURL,
rpmTag  tag 
)
static

Add a pubkey/policy/icon to a binary package.

Parameters
pkgpackage control structure
flpackage file tree walk data
fileURLpath to file, relative is builddir, absolute buildroot.
tagtag to add
Returns
RPMRC_OK on success

Definition at line 2103 of file files.c.

References _, _free(), addFile(), alloca(), _HE_s::append, rpmDataType_u::argv, FileList_s::buildRootURL, _HE_s::c, exit, fn, Package_s::header, headerPut(), memset(), NULL, _HE_s::p, PGPARMOR_PUBKEY, pgpArmorWrap(), pgpReadPkts(), pkt, pktlen, FileList_s::processingFailed, rc, RPM_STRING_ARRAY_TYPE, rpmGenPath(), rpmiobFree(), rpmiobSlurp(), rpmlog(), RPMLOG_ERR, RPMRC_FAIL, RPMRC_OK, RPMTAG_POLICIES, RPMTAG_PUBKEYS, _HE_s::t, _HE_s::tag, tag, urlPath(), void, xcalloc(), and xx.

Referenced by processPackageFiles().

static rpmRC processPackageFiles ( Spec  spec,
Package  pkg,
int  installSpecialDoc,
int  test 
)
static

Definition at line 2271 of file files.c.

References _, _free(), alloca(), argvFree(), argvSplit(), buf, FileList_s::buildRootURL, Spec_s::buildSubdir, checkHardLinks(), FileList_s::cur_ar, FileList_s::currentFlags, FileList_s::currentLangs, FileList_s::currentSpecdFlags, FileList_s::currentVerifyFlags, FileList_s::def_ar, FileList_s::defSpecdFlags, FileList_s::defVerifyFlags, FileList_s::devmajor, FileList_s::devminor, FileList_s::devtype, FileList_s::docDirCount, FileList_s::docDirs, doScript(), dupAttrRec(), exit, expandMacros(), f, Fclose(), fd, fdGetFp(), Ferror(), Package_s::fi, FileList_s::fileCount, Package_s::fileFile, FileList_s::fileList, Package_s::fileList, FileList_s::fileListRecsAlloced, FileList_s::fileListRecsUsed, Fopen(), freeAttrRec(), freeFileList(), Fstrerror(), genCpioListAndHeader(), handleComments(), Package_s::header, headerGet(), i, if(), FileList_s::inFtw, FileList_s::isDir, FileList_s::isSpecialDoc, Spec_s::macros, memset(), FileList_s::nLangs, FileList_s::noGlob, NULL, nullAttrRec(), _HE_s::p, parseForAttr(), parseForConfig(), parseForDev(), parseForLang(), parseForSimple(), parseForVerify(), FileList_s::passedSpecialDoc, FileList_s::prefix, processBinaryFile(), FileList_s::processingFailed, processMetadataFile(), rc, Spec_s::rootURL, RPMBUILD_STRINGBUF, rpmExpandNumeric(), RPMFILE_POLICY, RPMFILE_PUBKEY, rpmGenPath(), rpmGetPath(), rpmiobAppend(), rpmiobStr(), rpmlibNeedsFeature(), rpmlog(), RPMLOG_ERR, RPMRC_FAIL, RPMRC_OK, RPMTAG_DEFAULTPREFIX, RPMTAG_POLICIES, RPMTAG_PUBKEYS, RPMVERIFY_ALL, s, SKIPSPACE, Package_s::specialDoc, rpmDataType_u::str, strncpy(), _HE_s::tag, Spec_s::timeCheck, timeCheck(), FileList_s::totalFileSize, unsigned, void, xstrdup(), and xx.

Referenced by processBinaryFiles().

static rpmRC recurseDir ( FileList  fl,
const char *  diskURL 
)
static

Add directory (and all of its files) to the package manifest.

Parameters
flpackage file tree walk data
diskURLpath to file
Returns
RPMRC_OK on success

Definition at line 2046 of file files.c.

References addFile(), fts, _ftsent::fts_accpath, Fts_close(), FTS_COMFOLLOW, FTS_D, FTS_DC, FTS_DEFAULT, FTS_DNR, FTS_DOT, FTS_DP, FTS_ERR, FTS_F, _ftsent::fts_info, FTS_INIT, FTS_NOCHDIR, FTS_NS, FTS_NSOK, Fts_open(), FTS_PHYSICAL, Fts_read(), FTS_SL, FTS_SLNONE, _ftsent::fts_statp, FTS_W, ftsp, ftsSet, FileList_s::inFtw, FileList_s::isDir, NULL, rc, RPMRC_FAIL, RPMRC_OK, and void.

Referenced by addFile().

static int seenHardLink ( FileList  fl,
FileListRec  flp,
ino_t *  fileid 
)
static

Definition at line 1342 of file files.c.

References FileList_s::fileList, and isHardLink().

Referenced by genCpioListAndHeader().

static char* strtokWithQuotes ( char *  s,
const char *  delim 
)
static

Strip quotes from strtok(3) string.

Parameters
sstring
delimtoken delimiters

Definition at line 227 of file files.c.

References NULL, and s.

Referenced by parseForSimple().

static void timeCheck ( int  tc,
Header  h 
)
static

Variable Documentation

struct AttrRec_s root_ar = { NULL, NULL, "root", "root", 0, 0 }
static

Definition at line 114 of file files.c.

VFA_t verifyAttrs[]
static
Initial value:
= {
{ "md5", 0, RPMVERIFY_FDIGEST },
{ "size", 0, RPMVERIFY_FILESIZE },
{ "link", 0, RPMVERIFY_LINKTO },
{ "user", 0, RPMVERIFY_USER },
{ "owner", 0, RPMVERIFY_USER },
{ "group", 0, RPMVERIFY_GROUP },
{ "mtime", 0, RPMVERIFY_MTIME },
{ "mode", 0, RPMVERIFY_MODE },
{ "rdev", 0, RPMVERIFY_RDEV },
{ "digest", 0, RPMVERIFY_FDIGEST },
{ "hmac", 0, RPMVERIFY_HMAC },
{ NULL, 0, 0 }
}
return NULL
Definition: poptALL.c:613

Definition at line 308 of file files.c.

VFA_t virtualFileAttributes[]
static
Initial value:
= {
{ "%dir", 0, 0 },
{ "%doc", 0, RPMFILE_DOC },
{ "%ghost", 0, RPMFILE_GHOST },
{ "%exclude", 0, RPMFILE_EXCLUDE },
{ "%readme", 0, RPMFILE_README },
{ "%license", 0, RPMFILE_LICENSE },
{ "%pubkey", 0, RPMFILE_PUBKEY },
{ "%policy", 0, RPMFILE_POLICY },
{ "%optional", 0, RPMFILE_OPTIONAL },
{ "%remove", 0, RPMFILE_REMOVE },
{ NULL, 0, 0 }
}
return NULL
Definition: poptALL.c:613

Definition at line 873 of file files.c.