Main Page   Modules   Compound List   File List   Compound Members   File Members   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 <rpmmacro.h>
#include "buildio.h"
#include "myftw.h"
#include "md5.h"
#include "debug.h"

Go to the source code of this file.

Compounds

struct  AttrRec
struct  DepMsg_t
struct  FileList
 Package file tree walk data. More...

struct  FileListRec
struct  VFA

Defines

#define MYALLPERMS   07777
#define SKIPWHITE(_x)    {while(*(_x) && (isspace(*_x) || *(_x) == ',')) (_x)++;}
#define SKIPNONWHITE(_x)   {while(*(_x) &&!(isspace(*_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 struct VFA  VFA_t

Functions

void nullAttrRec (AttrRec *ar)
void freeAttrRec (AttrRec *ar)
void dupAttrRec (AttrRec *oar, AttrRec *nar)
char* strtokWithQuotes (char *s, char *delim)
void timeCheck (int tc, Header h)
int parseForVerify (char *buf, struct FileList *fl)
int parseForAttr (char *buf, struct FileList *fl)
int parseForConfig (char *buf, struct FileList *fl)
int langCmp (const void *ap, const void *bp)
int parseForLang (char *buf, struct FileList *fl)
int parseForRegexLang (const char *fileName, char **lang)
int parseForRegexMultiLib (const char *fileName)
int parseForSimple (Spec spec, Package pkg, char *buf, struct FileList *fl, const char **fileName)
int compareFileListRecs (const void *ap, const void *bp)
int isDoc (struct FileList *fl, const char *fileName)
void checkHardLinks (struct FileList *fl)
 Verify that file attributes scope over hardlinks correctly. More...

void genCpioListAndHeader (struct FileList *fl, struct cpioFileMapping **cpioList, int *cpioCount, Header h, int isSrc)
void freeFileList (FileListRec *fileList, int count)
int addFile (struct FileList *fl, const char *diskURL, struct stat *statp)
int processBinaryFile (Package pkg, struct 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, struct cpioFileMapping *cpioList, int cpioCount, 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 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 27 of file files.c.

#define MYALLPERMS   07777
 

Definition at line 9 of file files.c.

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

Definition at line 25 of file files.c.

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

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

Definition at line 24 of file files.c.

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

#define fl_dev   fl_st.st_dev
 

Definition at line 33 of file files.c.

#define fl_gid   fl_st.st_gid
 

Definition at line 38 of file files.c.

#define fl_ino   fl_st.st_ino
 

Definition at line 34 of file files.c.

#define fl_mode   fl_st.st_mode
 

Definition at line 35 of file files.c.

#define fl_mtime   fl_st.st_mtime
 

Definition at line 41 of file files.c.

#define fl_nlink   fl_st.st_nlink
 

Definition at line 36 of file files.c.

#define fl_rdev   fl_st.st_rdev
 

Definition at line 39 of file files.c.

#define fl_size   fl_st.st_size
 

Definition at line 40 of file files.c.

#define fl_uid   fl_st.st_uid
 

Definition at line 37 of file files.c.

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

Definition at line 338 of file files.c.

Referenced by parseForAttr().


Typedef Documentation

typedef struct VFA VFA_t
 


Function Documentation

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

Parameters:
fl   package file tree walk data

Definition at line 1112 of file files.c.

Referenced by processBinaryFile().

void checkHardLinks ( struct FileList * fl ) [static]
 

Verify that file attributes scope over hardlinks correctly.

Todo:
only lang for now, finish other attributes later.
Parameters:
fl   package file tree walk data

Definition at line 851 of file files.c.

Referenced by processPackageFiles().

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

Definition at line 824 of file files.c.

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

Definition at line 126 of file files.c.

Referenced by parseForAttr(), and processPackageFiles().

void freeAttrRec ( AttrRec * ar ) [static]
 

Definition at line 115 of file files.c.

Referenced by dupAttrRec(), and processPackageFiles().

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

Definition at line 1099 of file files.c.

Referenced by processPackageFiles(), and processSourceFiles().

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

Todo:
Should directories have doc/config attributes? (#14531)
Parameters:
fl   package file tree walk data

Definition at line 920 of file files.c.

Referenced by processPackageFiles(), and processSourceFiles().

int generateDepends ( Spec spec,
Package pkg,
struct cpioFileMapping * cpioList,
int cpioCount,
int multiLib ) [static]
 

Definition at line 1942 of file files.c.

Referenced by processBinaryFiles().

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

Definition at line 1754 of file files.c.

Referenced by generateDepends().

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

Parameters:
fl   package file tree walk data

Definition at line 834 of file files.c.

Referenced by genCpioListAndHeader().

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

Definition at line 519 of file files.c.

void nullAttrRec ( AttrRec * ar ) [static]
 

Definition at line 103 of file files.c.

Referenced by parseForAttr(), and processPackageFiles().

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

Parameters:
fl   package file tree walk data

Definition at line 343 of file files.c.

Referenced by processPackageFiles().

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

Parameters:
fl   package file tree walk data

Definition at line 461 of file files.c.

Referenced by processPackageFiles().

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

Parameters:
fl   package file tree walk data

Definition at line 526 of file files.c.

Referenced by processPackageFiles().

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

Definition at line 613 of file files.c.

Referenced by addFile().

int parseForRegexMultiLib ( const char * fileName ) [static]
 

Definition at line 654 of file files.c.

Referenced by addFile().

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

Parameters:
fl   package file tree walk data

Definition at line 706 of file files.c.

Referenced by processPackageFiles().

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

Parameters:
fl   package file tree walk data

Definition at line 257 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 2058 of file files.c.

Referenced by printDeps().

void printDeps ( Header h ) [static]
 

Definition at line 2099 of file files.c.

Referenced by processBinaryFiles().

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

Parameters:
fl   package file tree walk data

Definition at line 1284 of file files.c.

Referenced by processPackageFiles().

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

Definition at line 1345 of file files.c.

Referenced by processBinaryFiles().

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

Definition at line 174 of file files.c.

Referenced by parseForSimple().

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

Definition at line 214 of file files.c.

Referenced by processPackageFiles().


Variable Documentation

DepMsg_t depMsgs
 

Definition at line 1900 of file files.c.

int multiLib = 0 [static]
 

Definition at line 65 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 242 of file files.c.

VFA_t virtualFileAttributes
 

Initial value:

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









        { NULL, 0 }
}

Definition at line 684 of file files.c.


Generated at Mon May 21 08:53:41 2001 for rpm by doxygen1.2.6 written by Dimitri van Heesch, © 1997-2001