RPMBUILD.


Files

file  build.c
 Top-level build dispatcher.
file  buildio.h
 Routines to read and write packages.
file  expression.c
 Simple logical expression parser.
file  files.c
 The post-build, pre-packaging file tree walk to assemble the package manifest.
file  misc.c
file  names.c
 Simple user/group name/id cache (plus hostname and buildtime).
file  pack.c
 Assemble components of an RPM package.
file  parseBuildInstallClean.c
 Parse build/install/clean section from spec file.
file  parseChangelog.c
 Parse changelog section from spec file.
file  parseDescription.c
 Parse description section from spec file.
file  parseFiles.c
 Parse files section from spec file.
file  parsePreamble.c
 Parse tags in global section from spec file.
file  parsePrep.c
 Parse prep section from spec file.
file  parseReqs.c
 Parse dependency tag from spec file or from auto-dependency generator.
file  parseScript.c
 Parse install-time script section from spec file.
file  parseSpec.c
 Top level dispatcher for spec file parsing.
file  reqprov.c
 Add dependency tags to package header(s).
file  rpmbuild.h
 This is the *only* module users of librpmbuild should need to include.
file  rpmspec.h
 The Spec and Package data structures used during build.
file  spec.c
 Handle spec data structure.
file  rpmcli.h

Data Structures

struct  TriggerFileEntry
struct  Source
struct  ReadLevelEntry
struct  OpenFileInfo
struct  spectag_s
struct  spectags_s
struct  speclines_s
struct  Spec_s
 The structure used to store values parsed from a spec file. More...
struct  Package_s
 The structure used to store values for a package. More...

Defines

#define PART_BASE   100
 Spec file parser states.

Typedefs

typedef enum rpmBuildFlags_e rpmBuildFlags
 Bit(s) to control buildSpec() operation.
typedef struct Package_sPackage
typedef struct SourceSpecSource
typedef struct ReadLevelEntry RLE_t
typedef struct OpenFileInfo OFI_t
typedef struct spectag_sspectag
typedef struct spectags_sspectags
typedef struct speclines_sspeclines
typedef struct Spec_sSpec

Enumerations

enum  rpmBuildFlags_e {
  RPMBUILD_NONE = 0, RPMBUILD_PREP = (1 << 0), RPMBUILD_BUILD = (1 << 1), RPMBUILD_INSTALL = (1 << 2),
  RPMBUILD_CHECK = (1 << 3), RPMBUILD_CLEAN = (1 << 4), RPMBUILD_FILECHECK = (1 << 5), RPMBUILD_PACKAGESOURCE = (1 << 6),
  RPMBUILD_PACKAGEBINARY = (1 << 7), RPMBUILD_RMSOURCE = (1 << 8), RPMBUILD_RMBUILD = (1 << 9), RPMBUILD_STRINGBUF = (1 << 10),
  RPMBUILD_TRACK = (1 << 11), RPMBUILD_RMSPEC = (1 << 12), RPMBUILD_FETCHSOURCE = (1 << 13)
}
 Bit(s) to control buildSpec() operation. More...

Functions

void freeNames (void)
 Destroy uid/gid caches.
const char * getUname (uid_t uid)
 Return cached user name from user id.
const char * getUnameS (const char *uname)
 Return cached user name.
uid_t getUidS (const char *uname)
 Return cached user id.
const char * getGname (gid_t gid)
 Return cached group name from group id.
const char * getGnameS (const char *gname)
 Return cached group name.
gid_t getGidS (const char *gname)
 Return cached group id.
const char * buildHost (void)
 Return build hostname.
uint32_t * getBuildTime (void)
 Return build time stamp.
int readLine (Spec spec, int strip)
 Read next line from spec file.
void closeSpec (Spec spec)
 Stop reading from spec file, freeing resources.
void handleComments (char *s)
 Truncate comment lines.
rpmParseState isPart (Spec spec)
 Check line for section separator, return next parser state.
int parseNum (const char *line, uint32_t *res)
 Parse a number.
void addChangelogEntry (Header h, time_t time, const char *name, const char *text)
 Add changelog entry to header.
int parseBuildInstallClean (Spec spec, rpmParseState parsePart)
 Parse %build/%install/%clean section(s) of a spec file.
int parseChangelog (Spec spec)
 Parse %changelog section of a spec file.
int parseDescription (Spec spec)
 Parse %description section of a spec file.
int parseFiles (Spec spec)
 Parse %files section of a spec file.
int parsePreamble (Spec spec, int initialPackage)
 Parse tags from preamble of a spec file.
int parsePrep (Spec spec, int verify)
 Parse %prep section of a spec file.
rpmRC parseRCPOT (Spec spec, Package pkg, const char *field, rpmTag tagN, uint32_t index, rpmsenseFlags tagflags)
 Parse dependency relations from spec file and/or autogenerated output buffer.
int parseScript (Spec spec, int parsePart)
 Parse %pre et al scriptlets from a spec file.
int parseExpressionBoolean (Spec spec, const char *expr)
 Evaluate boolean expression.
char * parseExpressionString (Spec spec, const char *expr)
 Evaluate string expression.
rpmRC doScript (Spec spec, int what, const char *name, StringBuf sb, int test)
 Run a build script, assembled from spec file scriptlet section.
rpmRC lookupPackage (Spec spec, const char *name, int flag, Package *pkg)
 Find sub-package control structure by name.
Package newPackage (Spec spec)
 Create and initialize package control structure.
Package freePackages (Package packages)
 Destroy all packages associated with spec file.
Package freePackage (Package pkg)
 Destroy package control structure.
int addReqProv (Spec spec, Header h, rpmTag tagN, const char *N, const char *EVR, rpmsenseFlags Flags, uint32_t index)
 Add dependency to header, filtering duplicates.
int rpmlibNeedsFeature (Header h, const char *feature, const char *featureEVR)
 Add rpmlib feature dependency.
rpmRC processBinaryFiles (Spec spec, int installSpecialDoc, int test)
 Post-build processing for binary package(s).
int initSourceHeader (Spec spec, StringBuf *sfp)
 Create and initialize header for source package.
int processSourceFiles (Spec spec)
 Post-build processing for source package.
int parseSpec (rpmts ts, const char *specFile, const char *rootURL, int recursing, const char *passPhrase, const char *cookie, int anyarch, int force, int verify)
 Parse spec file into spec control structure.
rpmRC buildSpec (rpmts ts, Spec spec, int what, int test)
 Build stages state machine driver.
rpmRC packageBinaries (Spec spec)
 Generate binary package(s).
rpmRC packageSources (Spec spec)
 Generate source package.
Spec newSpec (void)
 Create and initialize Spec structure.
Spec freeSpec (Spec spec)
 Destroy Spec structure.
int rpmspecQuery (rpmts ts, QVA_t qva, const char *arg)
 Function to query spec file(s).
struct OpenFileInfonewOpenFileInfo (void)
spectag stashSt (Spec spec, Header h, int tag, const char *lang)
int addSource (Spec spec, Package pkg, const char *field, int tag)
int parseNoSource (Spec spec, const char *field, int tag)
int SpecSourceCount (Spec spec)
 Return the count of source set in specfile.
SpecSource getSource (Spec spec, int num)
 Return a source control structure.
const char * specSourceName (SpecSource source)
 Return a ptr to the source file name.
const char * specFullSourceName (SpecSource source)
 Return a ptr to the full url of the source.
int specSourceNum (SpecSource source)
 Return the spec or source patch number.
int specSourceFlags (SpecSource source)
 Return flags set for the source.
const char * getSourceDir (rpmfileAttrs attr)
 Return the macro directory location from source file flags.
static StringBuf getOutputFrom (const char *dir, ARGV_t argv, const char *writePtr, int writeBytesLeft, int failNonZero)
 Return output from helper script.

Define Documentation

#define PART_BASE   100

Spec file parser states.

Definition at line 52 of file rpmbuild.h.


Typedef Documentation

typedef struct OpenFileInfo OFI_t

typedef struct Package_s* Package

Definition at line 13 of file rpmspec.h.

typedef struct ReadLevelEntry RLE_t

Bit(s) to control buildSpec() operation.

typedef struct Spec_s* Spec

Definition at line 66 of file rpmlib.h.

typedef struct speclines_s * speclines

typedef struct Source* SpecSource

Definition at line 17 of file rpmspec.h.

typedef struct spectag_s * spectag

typedef struct spectags_s * spectags


Enumeration Type Documentation

Bit(s) to control buildSpec() operation.

Enumerator:
RPMBUILD_NONE 
RPMBUILD_PREP  Execute %prep.
RPMBUILD_BUILD  Execute %build.
RPMBUILD_INSTALL  Execute %install.
RPMBUILD_CHECK  Execute %check.
RPMBUILD_CLEAN  Execute %clean.
RPMBUILD_FILECHECK  Check %files manifest.
RPMBUILD_PACKAGESOURCE  Create source package.
RPMBUILD_PACKAGEBINARY  Create binary package(s).
RPMBUILD_RMSOURCE  Remove source(s) and patch(s).
RPMBUILD_RMBUILD  Remove build sub-tree.
RPMBUILD_STRINGBUF  only for doScript()
RPMBUILD_TRACK  Execute %track.
RPMBUILD_RMSPEC  Remove spec file.
RPMBUILD_FETCHSOURCE  Fetch source(s) and patch(s).

Definition at line 22 of file rpmbuild.h.


Function Documentation

void addChangelogEntry ( Header  h,
time_t  time,
const char *  name,
const char *  text 
)

Add changelog entry to header.

Todo:
addChangelogEntry should be static.
Parameters:
h header
time time of change
name person who made the change
text description of change

Definition at line 15 of file parseChangelog.c.

References alloca(), _HE_s::append, rpmDataType_u::argv, _HE_s::c, headerPut(), _HE_s::p, RPM_STRING_ARRAY_TYPE, RPM_UINT32_TYPE, RPMTAG_CHANGELOGNAME, RPMTAG_CHANGELOGTEXT, RPMTAG_CHANGELOGTIME, _HE_s::t, _HE_s::tag, and rpmDataType_u::ui32p.

Referenced by addChangelog().

int addReqProv ( Spec  spec,
Header  h,
rpmTag  tagN,
const char *  N,
const char *  EVR,
rpmsenseFlags  Flags,
uint32_t  index 
)

Add dependency to header, filtering duplicates.

Parameters:
spec spec file control structure
h header
tagN tag, identifies type of dependency
N (e.g. Requires: foo < 0:1.2-3, "foo")
EVR (e.g. Requires: foo < 0:1.2-3, "0:1.2-3")
Flags (e.g. Requires: foo < 0:1.2-3, both "Requires:" and "<")
index (0 always)
Returns:
0 always

Definition at line 13 of file reqprov.c.

References _free(), alloca(), _HE_s::append, rpmDataType_u::argv, _HE_s::c, headerGet(), headerPut(), _HE_s::p, RPM_STRING_ARRAY_TYPE, RPM_UINT32_TYPE, RPMSENSE_SENSEMASK, RPMTAG_CONFLICTFLAGS, RPMTAG_CONFLICTNAME, RPMTAG_CONFLICTVERSION, RPMTAG_OBSOLETEFLAGS, RPMTAG_OBSOLETENAME, RPMTAG_OBSOLETEVERSION, RPMTAG_PROVIDEFLAGS, RPMTAG_PROVIDENAME, RPMTAG_PROVIDEVERSION, RPMTAG_REQUIREFLAGS, RPMTAG_REQUIRENAME, RPMTAG_REQUIREVERSION, RPMTAG_TRIGGERFLAGS, RPMTAG_TRIGGERINDEX, RPMTAG_TRIGGERNAME, RPMTAG_TRIGGERVERSION, _HE_s::t, _HE_s::tag, and rpmDataType_u::ui32p.

Referenced by parseRCPOT(), parseScript(), and rpmlibNeedsFeature().

int addSource ( Spec  spec,
Package  pkg,
const char *  field,
int  tag 
)

const char* buildHost ( void   ) 

Return build hostname.

Returns:
build hostname

Definition at line 204 of file names.c.

References _, rpmlog(), and RPMLOG_WARNING.

Referenced by rpmlibMarkers(), and writeRPM().

rpmRC buildSpec ( rpmts  ts,
Spec  spec,
int  what,
int  test 
)

Build stages state machine driver.

Parameters:
ts transaction set
spec spec file control structure
what bit(s) to enable stages of build
test don't execute scripts or package if testing
Returns:
RPMRC_OK on success

Definition at line 334 of file build.c.

References _, _free(), Spec_s::BACount, Spec_s::BASpecs, buildSpec(), doRmSource(), doScript(), packageBinaries(), packageSources(), processBinaryFiles(), processSourceFiles(), Spec_s::recursing, Rmdir(), RPMBUILD_BUILD, RPMBUILD_CHECK, RPMBUILD_CLEAN, RPMBUILD_FILECHECK, RPMBUILD_INSTALL, RPMBUILD_PACKAGEBINARY, RPMBUILD_PACKAGESOURCE, RPMBUILD_PREP, RPMBUILD_RMBUILD, RPMBUILD_RMSOURCE, RPMBUILD_RMSPEC, RPMBUILD_TRACK, rpmGetPath(), rpmlog(), RPMLOG_NOTICE, rpmlogGetNrecs(), rpmlogPrint(), RPMRC_OK, Spec_s::specFile, and Unlink().

Referenced by buildSpec().

void closeSpec ( Spec  spec  ) 

Stop reading from spec file, freeing resources.

Parameters:
spec spec file control structure

Definition at line 462 of file parseSpec.c.

References _free(), Fclose(), OpenFileInfo::fd, OpenFileInfo::fileName, Spec_s::fileStack, and OpenFileInfo::next.

Referenced by freeSpec(), and parseSpec().

rpmRC doScript ( Spec  spec,
int  what,
const char *  name,
StringBuf  sb,
int  test 
)

Run a build script, assembled from spec file scriptlet section.

Parameters:
spec spec file control structure
what type of script
name name of scriptlet section
sb lines that compose script body
test don't execute scripts or package if testing
Returns:
RPMRC_OK on success, RPMRC_FAIL on failure

Definition at line 89 of file build.c.

References Spec_s::rootURL.

Referenced by buildSpec(), and processPackageFiles().

void freeNames ( void   ) 

Destroy uid/gid caches.

Definition at line 30 of file names.c.

References _free(), gid_used, gnames, uid_used, and unames.

Referenced by main().

Package freePackage ( Package  pkg  ) 

Package freePackages ( Package  packages  ) 

Destroy all packages associated with spec file.

Parameters:
packages package control structure chain
Returns:
NULL

Definition at line 191 of file spec.c.

References freePackage(), and Package_s::next.

Referenced by freeSpec().

Spec freeSpec ( Spec  spec  ) 

uint32_t* getBuildTime ( void   ) 

Return build time stamp.

Returns:
build time stamp

Definition at line 195 of file names.c.

Referenced by rpmlibMarkers(), and writeRPM().

gid_t getGidS ( const char *  gname  ) 

Return cached group id.

Todo:
Implement using hash.
Parameters:
gname group name
Returns:
cached gid

Definition at line 168 of file names.c.

References _, gid_used, gids, gnames, rpmlog(), RPMLOG_CRIT, and xstrdup().

const char* getGname ( gid_t  gid  ) 

Return cached group name from group id.

Todo:
Implement using hash.
Parameters:
gid group id
Returns:
cached group name

Definition at line 117 of file names.c.

References _, gid_used, gids, gnames, rpmlog(), RPMLOG_CRIT, and xstrdup().

Referenced by addFile(), checkOwners(), and processSourceFiles().

const char* getGnameS ( const char *  gname  ) 

Return cached group name.

Todo:
Implement using hash.
Parameters:
gname group name
Returns:
cached group name

Definition at line 141 of file names.c.

References _, gid_used, gids, gnames, rpmlog(), RPMLOG_CRIT, and xstrdup().

Referenced by addFile(), and processSourceFiles().

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

Return output from helper script.

Todo:
Use poll(2) rather than select(2), if available.
Parameters:
dir directory to run in (or NULL)
argv program and arguments to run
writePtr bytes to feed to script on stdin (or NULL)
writeBytesLeft no. of bytes to feed to script on stdin
failNonZero is script failure an error?
Returns:
buffered stdout from script, NULL on error

Definition at line 58 of file rpmfc.c.

References _, _free(), appendStringBuf, argvJoin(), Chdir(), D_, errno, EXIT_FAILURE, newStringBuf(), rpmlog(), RPMLOG_DEBUG, RPMLOG_ERR, and unsetenv().

Referenced by rpmfcExec().

SpecSource getSource ( Spec  spec,
int  num 
)

Return a source control structure.

Parameters:
spec spec file control structure
num the number of the wanted source (starting from 0)
Returns:
a SpecSource structure, NULL if not found

Definition at line 225 of file spec.c.

References Source::next, and Spec_s::sources.

const char* getSourceDir ( rpmfileAttrs  attr  ) 

Return the macro directory location from source file flags.

Parameters:
attr rpmfileAttrs from source
Returns:
string containings macros about location, NULL on failure

Definition at line 23 of file build.c.

Referenced by addSource(), doRmSource(), doUntar(), initSourceHeader(), and prepFetch().

uid_t getUidS ( const char *  uname  ) 

Return cached user id.

Todo:
Implement using hash.
Parameters:
uname user name
Returns:
cached uid

Definition at line 90 of file names.c.

References _, rpmlog(), RPMLOG_CRIT, uid_used, uids, unames, and xstrdup().

const char* getUname ( uid_t  uid  ) 

Return cached user name from user id.

Todo:
Implement using hash.
Parameters:
uid user id
Returns:
cached user name

Definition at line 39 of file names.c.

References _, rpmlog(), RPMLOG_CRIT, uid_used, uids, unames, and xstrdup().

Referenced by addFile(), checkOwners(), and processSourceFiles().

const char* getUnameS ( const char *  uname  ) 

Return cached user name.

Todo:
Implement using hash.
Parameters:
uname user name
Returns:
cached user name

Definition at line 63 of file names.c.

References _, rpmlog(), RPMLOG_CRIT, uid_used, uids, unames, and xstrdup().

Referenced by addFile(), and processSourceFiles().

void handleComments ( char *  s  ) 

Truncate comment lines.

Parameters:
s skip white space, truncate line at '#'

Definition at line 135 of file parseSpec.c.

References SKIPSPACE.

Referenced by copyNextLineFinish(), and processPackageFiles().

int initSourceHeader ( Spec  spec,
StringBuf sfp 
)

rpmParseState isPart ( Spec  spec  ) 

Check line for section separator, return next parser state.

Parameters:
spec spec file control structure
Returns:
next parser state

Definition at line 60 of file parseSpec.c.

References _free(), argvSearch(), argvStrcasecmp(), Spec_s::foo, initParts(), PartRec::len, Spec_s::line, Spec_s::nfoo, PartRec::part, PART_ARBITRARY, PART_NONE, partList, rpmTags, tagCanonicalize(), tagGenerate(), tagName(), PartRec::token, xisspace(), xrealloc(), xstrdup(), and xstrncasecmp().

Referenced by parseBuildInstallClean(), parseChangelog(), parseDescription(), parseFiles(), parsePreamble(), parsePrep(), and parseScript().

rpmRC lookupPackage ( Spec  spec,
const char *  name,
int  flag,
Package pkg 
)

Find sub-package control structure by name.

Parameters:
spec spec file control structure
name (sub-)package name
flag if PART_SUBNAME, then 1st package name is prepended
Return values:
pkg package control structure
Returns:
RPMRC_OK on success

Definition at line 67 of file spec.c.

References _free(), alloca(), Package_s::header, headerGet(), Package_s::next, _HE_s::p, Spec_s::packages, PART_SUBNAME, rpmDataType_u::ptr, RPMRC_FAIL, RPMRC_OK, RPMTAG_NAME, stpcpy(), rpmDataType_u::str, and _HE_s::tag.

Referenced by parseDescription(), parseFiles(), parsePreamble(), and parseScript().

struct OpenFileInfo* newOpenFileInfo ( void   )  [read]

Package newPackage ( Spec  spec  ) 

Spec newSpec ( void   ) 

rpmRC packageBinaries ( Spec  spec  ) 

rpmRC packageSources ( Spec  spec  ) 

int parseBuildInstallClean ( Spec  spec,
rpmParseState  parsePart 
)

Parse %build/%install/%clean section(s) of a spec file.

Parameters:
spec spec file control structure
parsePart current rpmParseState
Returns:
>= 0 next rpmParseState, < 0 on error

Definition at line 14 of file parseBuildInstallClean.c.

References _, _free(), appendStringBuf, Spec_s::build, Spec_s::check, Spec_s::clean, Spec_s::foo, Spec_s::install, isPart(), Spec_s::line, Spec_s::lineNum, newStringBuf(), Spec_s::nfoo, PART_ARBITRARY, PART_BUILD, PART_CHECK, PART_CLEAN, PART_INSTALL, PART_NONE, readLine(), rpmExpand(), rpmlog(), RPMLOG_ERR, RPMRC_FAIL, RPMRC_OK, and STRIP_NOTHING.

Referenced by parseSpec().

int parseChangelog ( Spec  spec  ) 

Parse %changelog section of a spec file.

Parameters:
spec spec file control structure
Returns:
>= 0 next rpmParseState, < 0 on error

Definition at line 261 of file parseChangelog.c.

References _free(), addChangelog(), appendStringBuf, freeStringBuf(), Package_s::header, isPart(), Spec_s::line, newStringBuf(), Spec_s::packages, PART_NONE, readLine(), RPMRC_OK, STRIP_COMMENTS, xstrdup(), and xstrtolocale().

Referenced by parseSpec().

int parseDescription ( Spec  spec  ) 

int parseExpressionBoolean ( Spec  spec,
const char *  expr 
)

Evaluate boolean expression.

Parameters:
spec spec file control structure
expr expression to parse
Returns:

Definition at line 675 of file expression.c.

References _, _free(), DEBUG, doLogical(), _parseState::nextToken, _parseState::p, rdToken(), rpmlog(), RPMLOG_ERR, _parseState::spec, _parseState::str, TOK_EOF, _parseState::tokenValue, valueFree(), and xstrdup().

Referenced by readLine().

char* parseExpressionString ( Spec  spec,
const char *  expr 
)

Evaluate string expression.

Parameters:
spec spec file control structure
expr expression to parse
Returns:

Definition at line 722 of file expression.c.

References _, _free(), DEBUG, doLogical(), _parseState::nextToken, _parseState::p, rdToken(), rpmlog(), RPMLOG_ERR, _parseState::spec, _parseState::str, TOK_EOF, _parseState::tokenValue, valueFree(), and xstrdup().

int parseFiles ( Spec  spec  ) 

Parse %files section of a spec file.

Parameters:
spec spec file control structure
Returns:
>= 0 next rpmParseState, < 0 on error

Definition at line 27 of file parseFiles.c.

References _, _free(), appendStringBuf, file, Package_s::fileFile, Package_s::fileList, isPart(), Spec_s::line, Spec_s::lineNum, lookupPackage(), newStringBuf(), optionsTable, PART_NAME, PART_NONE, PART_SUBNAME, readLine(), rpmGetPath(), rpmlog(), RPMLOG_ERR, RPMRC_FAIL, RPMRC_OK, and STRIP_COMMENTS.

Referenced by parseSpec().

int parseNoSource ( Spec  spec,
const char *  field,
int  tag 
)

Parameters:
spec spec file control structure
field field to parse
tag tag

Definition at line 265 of file spec.c.

References _, findSource(), Source::flags, Spec_s::lineNum, Source::num, parseNum(), RPMFILE_GHOST, RPMFILE_PATCH, RPMFILE_SOURCE, rpmlog(), RPMLOG_ERR, RPMRC_FAIL, RPMTAG_NOSOURCE, SKIPNONWHITE, and SKIPWHITE.

Referenced by handlePreambleTag().

int parseNum ( const char *  line,
uint32_t *  res 
)

Parse a number.

Parameters:
line from spec file
Return values:
res pointer to int
Returns:
0 on success, 1 on failure

Definition at line 10 of file misc.c.

Referenced by addSource(), doPatchMacro(), doSetupMacro(), handlePreambleTag(), and parseNoSource().

int parsePreamble ( Spec  spec,
int  initialPackage 
)

int parsePrep ( Spec  spec,
int  verify 
)

Parse %prep section of a spec file.

Parameters:
spec spec file control structure
verify verify existence of sources/patches?
Returns:
>= 0 next rpmParseState, < 0 on error

Definition at line 812 of file parsePrep.c.

References _, appendLineStringBuf, appendStringBuf, doPatchMacro(), doSetupMacro(), Spec_s::force, freeSplitString(), freeStringBuf(), getStringBuf(), isPart(), Spec_s::line, Spec_s::lineNum, newStringBuf(), PART_NONE, Spec_s::prep, prepFetch(), readLine(), rpmlog(), RPMLOG_ERR, RPMRC_FAIL, splitString(), and STRIP_NOTHING.

Referenced by parseSpec().

rpmRC parseRCPOT ( Spec  spec,
Package  pkg,
const char *  field,
rpmTag  tagN,
uint32_t  index,
rpmsenseFlags  tagflags 
)

Parse dependency relations from spec file and/or autogenerated output buffer.

Parameters:
spec spec file control structure
pkg package control structure
field text to parse (e.g. "foo < 0:1.2-3, bar = 5:6.7")
tagN tag, identifies type of dependency
index (0 always)
tagflags dependency flags already known from context
Returns:
RPMRC_OK on success

Definition at line 16 of file parseReqs.c.

References _, _free(), addReqProv(), Package_s::header, Spec_s::line, Spec_s::lineNum, rpmEVRflags(), rpmlog(), RPMLOG_ERR, RPMRC_FAIL, RPMRC_OK, RPMSENSE_SENSEMASK, RPMTAG_BUILDCONFLICTS, RPMTAG_BUILDENHANCES, RPMTAG_BUILDOBSOLETES, RPMTAG_BUILDPREREQ, RPMTAG_BUILDPROVIDES, RPMTAG_BUILDREQUIRES, RPMTAG_BUILDSUGGESTS, RPMTAG_CONFLICTFLAGS, RPMTAG_OBSOLETEFLAGS, RPMTAG_PREREQ, RPMTAG_PROVIDEFLAGS, RPMTAG_REQUIREFLAGS, RPMTAG_TRIGGERIN, RPMTAG_TRIGGERPOSTUN, RPMTAG_TRIGGERPREIN, RPMTAG_TRIGGERUN, SKIPNONWHITE, SKIPWHITE, Spec_s::sourceHeader, xisalnum(), and xmalloc().

Referenced by handlePreambleTag(), newSpec(), and parseScript().

int parseScript ( Spec  spec,
int  parsePart 
)

Parse %pre et al scriptlets from a spec file.

Parameters:
spec spec file control structure
parsePart current rpmParseState
Returns:
>= 0 next rpmParseState, < 0 on error

Definition at line 73 of file parseScript.c.

References _, _free(), addReqProv(), addTriggerIndex(), alloca(), appendStringBuf, rpmDataType_u::argv, _HE_s::c, file, freeStringBuf(), getStringBuf(), Package_s::header, headerIsEntry(), headerPut(), isPart(), Spec_s::line, Spec_s::lineNum, lookupPackage(), newStringBuf(), optionsTable, _HE_s::p, parseRCPOT(), PART_NAME, PART_NONE, PART_POST, PART_POSTTRANS, PART_POSTUN, PART_PRE, PART_PRETRANS, PART_PREUN, PART_SANITYCHECK, PART_SUBNAME, PART_TRIGGERIN, PART_TRIGGERPOSTUN, PART_TRIGGERPREIN, PART_TRIGGERUN, PART_VERIFYSCRIPT, Package_s::postInFile, Package_s::postTransFile, Package_s::postUnFile, Package_s::preInFile, Package_s::preTransFile, Package_s::preUnFile, prog, readLine(), RPM_STRING_ARRAY_TYPE, RPM_STRING_TYPE, rpmExpandNumeric(), rpmlibNeedsFeature(), rpmlog(), RPMLOG_ERR, RPMRC_FAIL, RPMRC_OK, RPMTAG_POSTIN, RPMTAG_POSTINPROG, RPMTAG_POSTTRANS, RPMTAG_POSTTRANSPROG, RPMTAG_POSTUN, RPMTAG_POSTUNPROG, RPMTAG_PREIN, RPMTAG_PREINPROG, RPMTAG_PRETRANS, RPMTAG_PRETRANSPROG, RPMTAG_PREUN, RPMTAG_PREUNPROG, RPMTAG_REQUIRENAME, RPMTAG_SANITYCHECK, RPMTAG_SANITYCHECKPROG, RPMTAG_TRIGGERIN, RPMTAG_TRIGGERPOSTUN, RPMTAG_TRIGGERPREIN, RPMTAG_TRIGGERSCRIPTPROG, RPMTAG_TRIGGERSCRIPTS, RPMTAG_TRIGGERUN, RPMTAG_VERIFYSCRIPT, RPMTAG_VERIFYSCRIPTPROG, Package_s::sanityCheckFile, rpmDataType_u::str, STRIP_NOTHING, stripTrailingBlanksStringBuf(), _HE_s::t, _HE_s::tag, Package_s::verifyFile, and xstrdup().

Referenced by parseSpec().

int parseSpec ( rpmts  ts,
const char *  specFile,
const char *  rootURL,
int  recursing,
const char *  passPhrase,
const char *  cookie,
int  anyarch,
int  force,
int  verify 
)

Parse spec file into spec control structure.

Parameters:
ts transaction set (spec file control in ts->spec)
specFile 
rootURL 
recursing parse is recursive?
passPhrase 
cookie 
anyarch 
force 
verify 
Returns:

Definition at line 481 of file parseSpec.c.

References _, _free(), addMacro(), alloca(), Spec_s::anyarch, Spec_s::BACount, Spec_s::BANames, Spec_s::BASpecs, _HE_s::c, closeSpec(), Spec_s::cookie, delMacro(), Package_s::ds, OpenFileInfo::fileName, Spec_s::fileStack, Spec_s::force, freeSpec(), Package_s::header, headerGet(), headerIsEntry(), headerPut(), newOpenFileInfo(), newSpec(), Package_s::next, _HE_s::p, Spec_s::packages, parseBuildInstallClean(), parseChangelog(), parseDescription(), parseFiles(), parsePreamble(), parsePrep(), parseScript(), parseSpec(), PART_ARBITRARY, PART_BUILD, PART_BUILDARCHITECTURES, PART_CHANGELOG, PART_CHECK, PART_CLEAN, PART_DESCRIPTION, PART_FILES, PART_INSTALL, PART_LAST, PART_NONE, PART_POST, PART_POSTTRANS, PART_POSTUN, PART_PRE, PART_PREAMBLE, PART_PREP, PART_PRETRANS, PART_PREUN, PART_SANITYCHECK, PART_TRIGGERIN, PART_TRIGGERPOSTUN, PART_TRIGGERPREIN, PART_TRIGGERUN, PART_VERIFYSCRIPT, Spec_s::passPhrase, platform, rpmDataType_u::ptr, Spec_s::recursing, RMIL_RPMRC, RMIL_SPEC, Spec_s::rootURL, RPM_STRING_TYPE, rpmdsThis(), rpmExpand(), rpmExpandNumeric(), rpmGetPath(), rpmlog(), RPMLOG_ERR, RPMRC_FAIL, RPMSENSE_EQUAL, RPMTAG_ARCH, RPMTAG_DESCRIPTION, RPMTAG_NVRA, RPMTAG_OS, RPMTAG_PLATFORM, RPMTAG_REQUIRENAME, rpmtsSetSpec(), Spec_s::specFile, rpmDataType_u::str, _HE_s::t, _HE_s::tag, Spec_s::timeCheck, xcalloc(), and xstrdup().

Referenced by _specQuery(), parseSpec(), and spec_Parse().

rpmRC processBinaryFiles ( Spec  spec,
int  installSpecialDoc,
int  test 
)

Post-build processing for binary package(s).

Parameters:
spec spec file control structure
installSpecialDoc 
test don't execute scripts or package if testing
Returns:
RPMRC_OK on success

Definition at line 2840 of file files.c.

References _, _free(), alloca(), checkFiles(), Package_s::fileList, freeStringBuf(), Package_s::header, headerGet(), headerMacrosLoad(), headerMacrosUnload(), newStringBuf(), Package_s::next, _HE_s::p, Spec_s::packages, processPackageFiles(), processScriptFiles(), providePackageNVR(), rpmDataType_u::ptr, rpmfcGenerateDepends(), rpmlog(), RPMLOG_NOTICE, RPMRC_FAIL, RPMRC_OK, RPMTAG_NVRA, rpmDataType_u::str, and _HE_s::tag.

Referenced by buildSpec().

int processSourceFiles ( Spec  spec  ) 

int readLine ( Spec  spec,
int  strip 
)

int rpmlibNeedsFeature ( Header  h,
const char *  feature,
const char *  featureEVR 
)

Add rpmlib feature dependency.

Parameters:
h header
feature rpm feature name (i.e. "rpmlib(Foo)" for feature Foo)
featureEVR rpm feature epoch/version/release
Returns:
0 always

Definition at line 145 of file reqprov.c.

References addReqProv(), alloca(), RPMSENSE_EQUAL, RPMSENSE_LESS, RPMTAG_REQUIRENAME, and stpcpy().

Referenced by genCpioListAndHeader(), parseScript(), processPackageFiles(), and writeRPM().

int rpmspecQuery ( rpmts  ts,
QVA_t  qva,
const char *  arg 
)

Function to query spec file(s).

Parameters:
ts transaction set
qva parsed query/verify options
arg query argument
Returns:
0 on success, else no. of failures

Definition at line 796 of file spec.c.

References _, _specQuery(), alloca(), rpmQVKArguments_s::qva_showPackage, rpmcliTargets, rpmFreeMacros(), rpmFreeRpmrc(), rpmlog(), RPMLOG_DEBUG, and rpmReadConfigFiles().

Referenced by main().

const char* specFullSourceName ( SpecSource  source  ) 

Return a ptr to the full url of the source.

Parameters:
source SpecSource control structure
Returns:
ptr to url

Definition at line 246 of file spec.c.

References Source::fullSource.

int SpecSourceCount ( Spec  spec  ) 

Return the count of source set in specfile.

Parameters:
spec spec file control structure
Returns:
the count of source

Definition at line 218 of file spec.c.

References Spec_s::numSources.

int specSourceFlags ( SpecSource  source  ) 

Return flags set for the source.

Parameters:
source SpecSource control structure
Returns:
flags

Definition at line 260 of file spec.c.

References Source::flags.

const char* specSourceName ( SpecSource  source  ) 

Return a ptr to the source file name.

Parameters:
source SpecSource control structure
Returns:
ptr to filename

Definition at line 239 of file spec.c.

References Source::source.

int specSourceNum ( SpecSource  source  ) 

Return the spec or source patch number.

Parameters:
source SpecSource control structure
Returns:
the number of the source

Definition at line 253 of file spec.c.

References Source::num.

spectag stashSt ( Spec  spec,
Header  h,
int  tag,
const char *  lang 
)


Generated on Wed Dec 10 00:34:32 2008 for rpm by  doxygen 1.5.6