Main Page   Modules   Data Structures   File List   Data Fields   Globals   Related Pages  

build/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 <signal.h>
#include <rpmio_internal.h>
#include <rpmbuild.h>
#include "buildio.h"
#include "myftw.h"
#include "md5.h"
#include "debug.h"

Go to the source code of this file.

Data Structures

struct  AttrRec_s
struct  DepMsg_t
struct  FileList_s
 Package file tree walk data. More...

struct  FileListRec_s
struct  VFA

Defines

#define MYALLPERMS   07777
#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')

Typedefs

typedef enum specdFlags_e  specdFlags
typedef struct FileListRec_s *  FileListRec
typedef struct AttrRec_s *  AttrRec
typedef struct FileList_s *  FileList
 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

void nullAttrRec (AttrRec ar)
void freeAttrRec (AttrRec ar)
void dupAttrRec (const AttrRec oar, AttrRec nar)
char* strtokWithQuotes (char *s, char *delim)
void timeCheck (int tc, Header h)
int parseForVerify (char *buf, FileList fl)
int parseForDev (char *buf, FileList fl)
 Parse dev from file manifest. More...

int parseForAttr (char *buf, FileList fl)
 Parse attr and defattr from file manifest. More...

int parseForConfig (char *buf, FileList fl)
int langCmp (const void *ap, const void *bp)
int parseForLang (char *buf, FileList fl)
int parseForRegexLang (const char *fileName, char **lang)
int parseForRegexMultiLib (const char *fileName)
int parseForSimple (Spec spec, Package pkg, char *buf, FileList fl, const char **fileName)
int compareFileListRecs (const void *ap, const void *bp)
int isDoc (FileList fl, const char *fileName)
int checkHardLinks (FileList fl)
 Verify that file attributes scope over hardlinks correctly. More...

void genCpioListAndHeader (FileList fl, TFI_t *cpioList, Header h, int isSrc)
FileListRec freeFileList (FileListRec fileList, int count)
int addFile (FileList fl, const char *diskURL, struct stat *statp)
int processBinaryFile (Package pkg, FileList fl, const char *fileURL)
int processPackageFiles (Spec spec, Package pkg, int installSpecialDoc, int test)
void initSourceHeader (Spec spec)
int processSourceFiles (Spec spec)
StringBuf getOutputFrom (char *dir, char *argv[], const char *writePtr, int writeBytesLeft, int failNonZero)
int generateDepends (Spec spec, Package pkg, TFI_t cpioList, int multiLib)
void printDepMsg (DepMsg_t *dm, int count, const char **names, const char **versions, int *flags)
void printDeps (Header h)
int processBinaryFiles (Spec spec, int installSpecialDoc, int test)

Variables

int _noDirTokens = 0
int multiLib = 0
VFA_t verifyAttrs []
VFA_t virtualFileAttributes []
DepMsg_t depMsgs []


Detailed Description

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

Definition in file files.c.


Define Documentation

#define MAXDOCDIR   1024
 

Definition at line 31 of file files.c.

#define MYALLPERMS   07777
 

Definition at line 9 of file files.c.

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

Definition at line 29 of file files.c.

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

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

Definition at line 28 of file files.c.

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

#define fl_dev   fl_st.st_dev
 

Definition at line 57 of file files.c.

#define fl_gid   fl_st.st_gid
 

Definition at line 62 of file files.c.

#define fl_ino   fl_st.st_ino
 

Definition at line 58 of file files.c.

#define fl_mode   fl_st.st_mode
 

Definition at line 59 of file files.c.

#define fl_mtime   fl_st.st_mtime
 

Definition at line 65 of file files.c.

#define fl_nlink   fl_st.st_nlink
 

Definition at line 60 of file files.c.

#define fl_rdev   fl_st.st_rdev
 

Definition at line 63 of file files.c.

#define fl_size   fl_st.st_size
 

Definition at line 64 of file files.c.

#define fl_uid   fl_st.st_uid
 

Definition at line 61 of file files.c.

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

Definition at line 394 of file files.c.

Referenced by parseForAttr().


Typedef Documentation

typedef struct AttrRec_s * AttrRec
 

typedef struct FileList_s * FileList
 

Package file tree walk data.

typedef struct FileListRec_s * FileListRec
 

typedef struct VFA VFA_t
 

typedef enum specdFlags_e specdFlags
 


Enumeration Type Documentation

enum specdFlags_e
 

Enumeration values:
SPECD_DEFFILEMODE  
SPECD_DEFDIRMODE  
SPECD_DEFUID  
SPECD_DEFGID  
SPECD_DEFVERIFY  
SPECD_FILEMODE  
SPECD_DIRMODE  
SPECD_UID  
SPECD_GID  
SPECD_VERIFY  

Definition at line 39 of file files.c.


Function Documentation

int addFile ( FileList fl,
const char * diskURL,
struct stat * statp ) [static]
 

Parameters:
fl   package file tree walk data

Definition at line 1451 of file files.c.

Referenced by processBinaryFile().

int checkHardLinks ( FileList fl ) [static]
 

Verify that file attributes scope over hardlinks correctly.

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

Todo:
Only lang coloring is checked, doc et al also need doing.
Parameters:
fl   package file tree walk data
Returns:
1 if partial hardlink sets can exist, 0 otherwise.

Definition at line 1041 of file files.c.

Referenced by processPackageFiles().

int compareFileListRecs ( const void * ap,
const void * bp ) [static]
 

Definition at line 1013 of file files.c.

void dupAttrRec ( const AttrRec oar,
AttrRec nar ) [static]
 

Definition at line 162 of file files.c.

Referenced by parseForAttr(), and processPackageFiles().

void freeAttrRec ( AttrRec ar ) [static]
 

Definition at line 148 of file files.c.

Referenced by dupAttrRec(), and processPackageFiles().

FileListRec freeFileList ( FileListRec fileList,
int count ) [static]
 

Definition at line 1435 of file files.c.

Referenced by processPackageFiles(), and processSourceFiles().

void genCpioListAndHeader ( FileList fl,
TFI_t * cpioList,
Header h,
int isSrc ) [static]
 

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

Remove RPMTAG_OLDFILENAMES, add dirname/basename instead.

Parameters:
fl   package file tree walk data

Definition at line 1086 of file files.c.

Referenced by processPackageFiles(), and processSourceFiles().

int generateDepends ( Spec spec,
Package pkg,
TFI_t cpioList,
int multiLib ) [static]
 

Definition at line 2405 of file files.c.

Referenced by processBinaryFiles().

StringBuf getOutputFrom ( char * dir,
char * argv[],
const char * writePtr,
int writeBytesLeft,
int failNonZero ) [static]
 

Definition at line 2208 of file files.c.

Referenced by generateDepends().

int isDoc ( FileList fl,
const char * fileName ) [static]
 

Parameters:
fl   package file tree walk data

Definition at line 1023 of file files.c.

Referenced by genCpioListAndHeader().

int langCmp ( const void * ap,
const void * bp ) [static]
 

Definition at line 686 of file files.c.

void nullAttrRec ( AttrRec ar ) [static]
 

Definition at line 136 of file files.c.

Referenced by parseForAttr(), and processPackageFiles().

int parseForAttr ( char * buf,
FileList fl ) [static]
 

Parse attr and defattr from file manifest.

Parameters:
fl   package file tree walk data

Definition at line 498 of file files.c.

Referenced by processPackageFiles().

int parseForConfig ( char * buf,
FileList fl ) [static]
 

Parameters:
fl   package file tree walk data

Definition at line 626 of file files.c.

Referenced by processPackageFiles().

int parseForDev ( char * buf,
FileList fl ) [static]
 

Parse dev from file manifest.

Parameters:
fl   package file tree walk data

Definition at line 400 of file files.c.

Referenced by processPackageFiles().

int parseForLang ( char * buf,
FileList fl ) [static]
 

Parameters:
fl   package file tree walk data

Definition at line 694 of file files.c.

Referenced by processPackageFiles().

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

Definition at line 783 of file files.c.

Referenced by addFile().

int parseForRegexMultiLib ( const char * fileName ) [static]
 

Definition at line 827 of file files.c.

Referenced by addFile().

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

Parameters:
fl   package file tree walk data

Definition at line 885 of file files.c.

Referenced by processPackageFiles().

int parseForVerify ( char * buf,
FileList fl ) [static]
 

Parameters:
fl   package file tree walk data

Definition at line 306 of file files.c.

Referenced by processPackageFiles().

void printDepMsg ( DepMsg_t * dm,
int count,
const char ** names,
const char ** versions,
int * flags ) [static]
 

Definition at line 2551 of file files.c.

Referenced by printDeps().

void printDeps ( Header h ) [static]
 

Definition at line 2593 of file files.c.

Referenced by processBinaryFiles().

int processBinaryFile ( Package pkg,
FileList fl,
const char * fileURL ) [static]
 

Parameters:
fl   package file tree walk data

Definition at line 1668 of file files.c.

Referenced by processPackageFiles().

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

Definition at line 1743 of file files.c.

Referenced by processBinaryFiles().

char * strtokWithQuotes ( char * s,
char * delim ) [static]
 

Definition at line 214 of file files.c.

Referenced by parseForSimple().

void timeCheck ( int tc,
Header h ) [static]
 

Definition at line 257 of file files.c.

Referenced by processPackageFiles().


Variable Documentation

DepMsg_t depMsgs
 

Definition at line 2362 of file files.c.

int multiLib = 0 [static]
 

Definition at line 91 of file files.c.

VFA_t verifyAttrs
 

Initial value:

 {
    { "md5",    RPMVERIFY_MD5 },
    { "size",   RPMVERIFY_FILESIZE },
    { "link",   RPMVERIFY_LINKTO },
    { "user",   RPMVERIFY_USER },
    { "group",  RPMVERIFY_GROUP },
    { "mtime",  RPMVERIFY_MTIME },
    { "mode",   RPMVERIFY_MODE },
    { "rdev",   RPMVERIFY_RDEV },
    { NULL, 0 }
}

Definition at line 290 of file files.c.

VFA_t virtualFileAttributes
 

Initial value:

 {
        { "%dir",       0 },    
        { "%doc",       RPMFILE_DOC },
        { "%ghost",     RPMFILE_GHOST },
        { "%exclude",   RPMFILE_EXCLUDE },
        { "%readme",    RPMFILE_README },
        { "%license",   RPMFILE_LICENSE },
        { "%multilib",  0 },









        { NULL, 0 }
}

Definition at line 861 of file files.c.


Generated at Fri Feb 15 10:36:02 2002 for rpm by doxygen1.2.8.1 written by Dimitri van Heesch, © 1997-2001