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... | ||||
Typedefs | ||||
typedef enum rpmBuildFlags_e | rpmBuildFlags | |||
Bit(s) to control buildSpec() operation. | ||||
typedef enum rpmParseState_e | rpmParseState | |||
Spec file parser states. | ||||
typedef Package_s * | Package | |||
typedef ReadLevelEntry | RLE_t | |||
typedef OpenFileInfo | OFI_t | |||
typedef spectag_s * | spectag | |||
typedef spectags_s * | spectags | |||
typedef speclines_s * | speclines | |||
typedef Spec_s * | Spec | |||
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_RMSPEC = (1 << 11) } | |||
Bit(s) to control buildSpec() operation. More... | ||||
enum | rpmParseState_e { PART_NONE = 0, PART_PREAMBLE = 1, PART_PREP = 2, PART_BUILD = 3, PART_INSTALL = 4, PART_CHECK = 5, PART_CLEAN = 6, PART_FILES = 7, PART_PRE = 8, PART_POST = 9, PART_PREUN = 10, PART_POSTUN = 11, PART_PRETRANS = 12, PART_POSTTRANS = 13, PART_DESCRIPTION = 14, PART_CHANGELOG = 15, PART_TRIGGERIN = 16, PART_TRIGGERUN = 17, PART_VERIFYSCRIPT = 18, PART_BUILDARCHITECTURES = 19, PART_TRIGGERPOSTUN = 20, PART_LAST = 21 } | |||
Spec file parser states. 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 *const | buildHost (void) | |||
Return build hostname. | ||||
int_32 *const | 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 (const char *line) | |||
Check line for section separator, return next parser state. | ||||
int | parseNum (const char *line, int *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) | |||
Parse %prep section of a spec file. | ||||
int | parseRCPOT (Spec spec, Package pkg, const char *field, rpmTag tagN, int 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. | ||||
int | doScript (Spec spec, int what, const char *name, StringBuf sb, int test) | |||
Run a build script, assembled from spec file scriptlet section. | ||||
int | 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, int index) | |||
Add dependency to header, filtering duplicates. | ||||
int | rpmlibNeedsFeature (Header h, const char *feature, const char *featureEVR) | |||
Add rpmlib feature dependency. | ||||
int | processBinaryFiles (Spec spec, int installSpecialDoc, int test) | |||
Post-build processing for binary package(s). | ||||
void | initSourceHeader (Spec spec) | |||
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, const char *buildRootURL, int recursing, const char *passPhrase, char *cookie, int anyarch, int force) | |||
Parse spec file into spec control structure. | ||||
int | buildSpec (rpmts ts, Spec spec, int what, int test) | |||
Build stages state machine driver. | ||||
int | packageBinaries (Spec spec) | |||
Generate binary package(s). | ||||
int | packageSources (Spec spec) | |||
Generate source package. | ||||
static StringBuf | getOutputFrom (const char *dir, ARGV_t argv, const char *writePtr, int writeBytesLeft, int failNonZero) | |||
Return output from helper script. | ||||
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). | ||||
OpenFileInfo * | newOpenFileInfo (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) | |||
|
typedef struct OpenFileInfo OFI_t |
typedef struct ReadLevelEntry RLE_t |
typedef enum rpmBuildFlags_e rpmBuildFlags |
Bit(s) to control buildSpec() operation.
typedef enum rpmParseState_e rpmParseState |
Spec file parser states.
typedef struct speclines_s * speclines |
typedef struct spectags_s * spectags |
enum rpmBuildFlags_e |
Bit(s) to control buildSpec() operation.
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_RMSPEC | Remove spec file. |
Definition at line 22 of file rpmbuild.h.
enum rpmParseState_e |
Spec file parser states.
Definition at line 52 of file rpmbuild.h.
void addChangelogEntry | ( | Header | h, | |
time_t | time, | |||
const char * | name, | |||
const char * | text | |||
) |
Add changelog entry to header.
h | header | |
time | time of change | |
name | person who made the change | |
text | description of change |
Definition at line 11 of file parseChangelog.c.
References headerAddEntry(), headerAppendEntry(), headerIsEntry(), RPM_INT32_TYPE, RPM_STRING_ARRAY_TYPE, RPMTAG_CHANGELOGNAME, RPMTAG_CHANGELOGTEXT, and RPMTAG_CHANGELOGTIME.
Referenced by addChangelog(), and headerInject().
int addReqProv | ( | Spec | spec, | |
Header | h, | |||
rpmTag | tagN, | |||
const char * | N, | |||
const char * | EVR, | |||
rpmsenseFlags | Flags, | |||
int | index | |||
) |
Add dependency to header, filtering duplicates.
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) |
Definition at line 11 of file reqprov.c.
References _ALL_REQUIRES_MASK, headerAddOrAppendEntry(), headerFreeData(), headerGetEntryMinMemory(), RPM_INT32_TYPE, RPM_STRING_ARRAY_TYPE, RPMSENSE_ANY, RPMSENSE_CONFLICTS, RPMSENSE_FIND_PROVIDES, RPMSENSE_OBSOLETES, RPMSENSE_PREREQ, RPMSENSE_PROVIDES, RPMSENSE_SENSEMASK, RPMSENSE_TRIGGER, 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, and RPMTAG_TRIGGERVERSION.
Referenced by parseRCPOT(), parseScript(), and rpmlibNeedsFeature().
spec | spec file control structure |
pkg | package control | |
field | ||
tag |
Definition at line 257 of file spec.c.
References _, _free(), addMacro(), body(), Package_s::icon, Spec_s::line, Spec_s::lineNum, Spec_s::macros, Source::next, Source::num, Spec_s::numSources, parseNum(), RMIL_SPEC, RPMBUILD_ISICON, RPMBUILD_ISPATCH, RPMBUILD_ISSOURCE, RPMERR_BADSPEC, rpmError, rpmGetPath(), RPMTAG_ICON, RPMTAG_PATCH, RPMTAG_SOURCE, SKIPSPACE, Spec_s::sources, xmalloc(), and xstrdup().
Referenced by handlePreambleTag().
const char* const buildHost | ( | void | ) |
Return build hostname.
Definition at line 220 of file names.c.
References _, RPMMESS_WARNING, and rpmMessage.
Referenced by headerInject(), packageBinaries(), packageSources(), and writeRPM().
Build stages state machine driver.
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 |
Definition at line 293 of file build.c.
References Spec_s::BACount, Spec_s::BASpecs, buildSpec(), Spec_s::recursing, RPMBUILD_PACKAGESOURCE, and RPMBUILD_RMSOURCE.
Referenced by buildForTarget(), and buildSpec().
void closeSpec | ( | Spec | spec | ) |
Stop reading from spec file, freeing resources.
spec | spec file control structure |
Definition at line 419 of file parseSpec.c.
References _free(), Fclose(), OpenFileInfo::fd, OpenFileInfo::fileName, Spec_s::fileStack, and OpenFileInfo::next.
Referenced by freeSpec(), and parseSpec().
Run a build script, assembled from spec file scriptlet section.
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 |
Definition at line 56 of file build.c.
References _, _build_debug, _free(), addMacro(), argv, Spec_s::build, Spec_s::buildSubdir, Spec_s::check, Spec_s::clean, delMacro(), errno, Fclose(), fdGetFp(), Fdopen(), Ferror(), Fileno(), getStringBuf(), urlinfo_s::host, Spec_s::install, Spec_s::macros, makeTempFile(), Spec_s::prep, RMIL_SPEC, Spec_s::rootURL, RPMBUILD_BUILD, RPMBUILD_CHECK, RPMBUILD_CLEAN, RPMBUILD_INSTALL, RPMBUILD_PREP, RPMBUILD_RMBUILD, RPMBUILD_STRINGBUF, RPMERR_SCRIPT, rpmError, rpmExpand(), rpmGenPath(), RPMMESS_NORMAL, rpmMessage, strerror, Unlink(), URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, URL_IS_PATH, URL_IS_UNKNOWN, urlPath(), urlSplit(), and urlinfo_s::urltype.
Referenced by processPackageFiles().
void freeNames | ( | void | ) |
Destroy package control structure.
pkg | package control structure |
Definition at line 157 of file spec.c.
References _free(), Package_s::cpioList, Package_s::ds, Package_s::fileFile, Package_s::fileList, freeSources(), freeStringBuf(), freeTriggerFiles(), Package_s::header, headerFree(), Package_s::icon, Package_s::postInFile, Package_s::postUnFile, Package_s::preInFile, Package_s::preUnFile, rpmdsFree(), rpmfiFree(), Package_s::specialDoc, Package_s::triggerFiles, and Package_s::verifyFile.
Referenced by freePackages().
Destroy all packages associated with spec file.
packages | package control structure chain |
Definition at line 185 of file spec.c.
References freePackage(), and Package_s::next.
Referenced by freeSpec().
Destroy Spec structure.
spec | spec file control structure |
Definition at line 480 of file spec.c.
References _free(), Spec_s::BACount, Spec_s::BANames, Spec_s::BASpecs, Spec_s::build, Spec_s::buildRestrictions, Spec_s::buildRootURL, Spec_s::buildSubdir, Spec_s::check, Spec_s::clean, closeSpec(), Spec_s::cookie, OpenFileInfo::fileName, Spec_s::fileStack, freePackages(), freeSl(), freeSources(), freeSpec(), freeSt(), freeStringBuf(), headerFree(), Spec_s::install, OpenFileInfo::next, ReadLevelEntry::next, Spec_s::packages, Spec_s::passPhrase, Spec_s::prep, Spec_s::readStack, Spec_s::recursing, Spec_s::rootURL, rpmfiFree(), Spec_s::sl, Spec_s::sourceCpioList, Spec_s::sourceHeader, Spec_s::sourcePkgId, Spec_s::sourceRpmName, Spec_s::sources, Spec_s::specFile, and Spec_s::st.
Referenced by buildForTarget(), freeSpec(), parseSpec(), readRPM(), and rpmspecQuery().
int_32* const getBuildTime | ( | void | ) |
Return build time stamp.
Definition at line 208 of file names.c.
Referenced by headerInject(), packageBinaries(), packageSources(), and writeRPM().
gid_t getGidS | ( | const char * | gname | ) |
const char* getGname | ( | gid_t | gid | ) |
Return cached group name from group id.
gid | group id |
Definition at line 125 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 | ) |
static StringBuf getOutputFrom | ( | const char * | dir, | |
ARGV_t | argv, | |||
const char * | writePtr, | |||
int | writeBytesLeft, | |||
int | failNonZero | |||
) | [static] |
Return output from helper script.
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? |
Definition at line 59 of file rpmfc.c.
References _, appendStringBuf, errno, EXIT_FAILURE, ibits, newStringBuf(), obits, RPMERR_EXEC, RPMERR_FORK, rpmError, RPMMESS_DEBUG, rpmMessage, strerror, and unsetenv().
Referenced by rpmfcExec().
uid_t getUidS | ( | const char * | uname | ) |
const char* getUname | ( | uid_t | uid | ) |
Return cached user name from user id.
uid | user id |
Definition at line 41 of file names.c.
References _, rpmlog(), RPMLOG_CRIT, uid_used, uids, unames, and xstrdup().
Referenced by addFile(), checkOwners(), headerInject(), and processSourceFiles().
const char* getUnameS | ( | const char * | uname | ) |
void handleComments | ( | char * | s | ) |
Truncate comment lines.
s | skip white space, truncate line at '#' |
Definition at line 107 of file parseSpec.c.
References SKIPSPACE.
Referenced by copyNextLine(), and processPackageFiles().
void initSourceHeader | ( | Spec | spec | ) |
Create and initialize header for source package.
spec | spec file control structure |
Definition at line 2208 of file files.c.
References Spec_s::BACount, Spec_s::BANames, Spec_s::buildRestrictions, Package_s::header, HEADER_I18NTABLE, headerAddEntry(), headerFreeData(), headerFreeIterator(), headerInitIterator(), headerNew(), headerNextIterator(), Spec_s::packages, RPM_STRING_ARRAY_TYPE, RPMTAG_ARCH, RPMTAG_BUILDARCHS, RPMTAG_CHANGELOGNAME, RPMTAG_CHANGELOGTEXT, RPMTAG_CHANGELOGTIME, RPMTAG_DESCRIPTION, RPMTAG_DISTRIBUTION, RPMTAG_DISTURL, RPMTAG_EPOCH, RPMTAG_GROUP, RPMTAG_LICENSE, RPMTAG_NAME, RPMTAG_OS, RPMTAG_PACKAGER, RPMTAG_RELEASE, RPMTAG_SUMMARY, RPMTAG_URL, RPMTAG_VENDOR, RPMTAG_VERSION, and Spec_s::sourceHeader.
Referenced by buildForTarget(), and processSourceFiles().
rpmParseState isPart | ( | const char * | line | ) |
Check line for section separator, return next parser state.
line | from spec file |
Definition at line 57 of file parseSpec.c.
References initParts(), PartRec::len, PartRec::part, PART_NONE, partList, PartRec::token, xisspace(), and xstrncasecmp().
Referenced by parseBuildInstallClean(), parseChangelog(), parseDescription(), parseFiles(), parsePreamble(), parsePrep(), and parseScript().
Find sub-package control structure by name.
spec | spec file control structure | |
name | (sub-)package name | |
flag | if PART_SUBNAME, then 1st package name is prepended |
pkg | package control structure |
Definition at line 67 of file spec.c.
References alloca(), Package_s::header, headerNVR(), Package_s::next, Spec_s::packages, and PART_SUBNAME.
Referenced by parseDescription(), parseFiles(), parsePreamble(), and parseScript().
struct OpenFileInfo* newOpenFileInfo | ( | void | ) | [read] |
Definition at line 563 of file spec.c.
References xmalloc().
Referenced by forceIncludeFile(), and parseSpec().
Create and initialize package control structure.
spec | spec file control structure |
Definition at line 109 of file spec.c.
References headerNew(), Package_s::next, Spec_s::packages, and xcalloc().
Referenced by parsePreamble(), and readRPM().
Spec newSpec | ( | void | ) |
Create and initialize Spec structure.
Definition at line 420 of file spec.c.
References headerNew(), newSl(), newSt(), rpmGlobalMacroContext, and xcalloc().
Referenced by parseSpec(), and readRPM().
int packageBinaries | ( | Spec | spec | ) |
Generate binary package(s).
spec | spec file control structure |
Definition at line 755 of file pack.c.
References _, _free(), buildHost(), Spec_s::cookie, copyTags, Package_s::cpioList, errno, fdFree, fdNew, Package_s::fileList, genSourceRpmName(), getBuildTime(), Package_s::header, headerAddEntry(), headerCopyTags(), headerNVR(), headerSprintf(), Mkdir(), Package_s::next, Spec_s::packages, Spec_s::passPhrase, processScriptFiles(), providePackageNVR(), RPM_BIN_TYPE, RPM_INT32_TYPE, RPM_STRING_TYPE, RPMERR_BADFILENAME, rpmError, rpmExpand(), rpmfiFree(), rpmfiLink, rpmGetPath(), rpmHeaderFormats, RPMLEAD_BINARY, RPMTAG_BUILDHOST, RPMTAG_BUILDTIME, RPMTAG_COOKIE, RPMTAG_OPTFLAGS, RPMTAG_RPMVERSION, RPMTAG_SOURCEPKGID, RPMTAG_SOURCERPM, rpmTagTable, Spec_s::sourcePkgId, Spec_s::sourceRpmName, Stat(), strerror, VERSION, and writeRPM().
int packageSources | ( | Spec | spec | ) |
Generate source package.
spec | spec file control structure |
Definition at line 862 of file pack.c.
References _free(), buildHost(), Spec_s::cookie, fdFree, fdNew, genSourceRpmName(), getBuildTime(), headerAddEntry(), Spec_s::passPhrase, RPM_INT32_TYPE, RPM_STRING_TYPE, rpmfiFree(), rpmfiLink, rpmGetPath(), RPMLEAD_SOURCE, RPMTAG_BUILDHOST, RPMTAG_BUILDTIME, RPMTAG_RPMVERSION, Spec_s::sourceCpioList, Spec_s::sourceHeader, Spec_s::sourcePkgId, Spec_s::sourceRpmName, VERSION, and writeRPM().
int parseBuildInstallClean | ( | Spec | spec, | |
rpmParseState | parsePart | |||
) |
Parse %build/%install/%clean section(s) of a spec file.
spec | spec file control structure | |
parsePart | current rpmParseState |
Definition at line 13 of file parseBuildInstallClean.c.
References _, appendStringBuf, Spec_s::build, Spec_s::check, Spec_s::clean, Spec_s::install, isPart(), Spec_s::line, Spec_s::lineNum, newStringBuf(), PART_BUILD, PART_CHECK, PART_CLEAN, PART_INSTALL, PART_NONE, readLine(), RPMERR_BADSPEC, rpmError, and STRIP_NOTHING.
Referenced by parseSpec().
int parseChangelog | ( | Spec | spec | ) |
Parse %changelog section of a spec file.
spec | spec file control structure |
Definition at line 209 of file parseChangelog.c.
References addChangelog(), appendStringBuf, freeStringBuf(), Package_s::header, isPart(), Spec_s::line, newStringBuf(), Spec_s::packages, PART_NONE, readLine(), and STRIP_COMMENTS.
Referenced by parseSpec().
int parseDescription | ( | Spec | spec | ) |
Parse %description section of a spec file.
spec | spec file control structure |
Definition at line 29 of file parseDescription.c.
References _, _free(), appendLineStringBuf, argv, freeStringBuf(), getStringBuf(), Package_s::header, headerAddI18NString(), headerIsEntry(), isPart(), lang, Spec_s::line, Spec_s::lineNum, lookupPackage(), newStringBuf(), noLang, optionsTable, PART_NAME, PART_NONE, PART_SUBNAME, readLine(), RPMBUILD_DEFAULT_LANG, RPMERR_BADSPEC, rpmError, RPMTAG_DESCRIPTION, stashSt(), STRIP_COMMENTS, STRIP_TRAILINGSPACE, stripTrailingBlanksStringBuf(), and spectag_s::t_nlines.
Referenced by parseSpec().
int parseExpressionBoolean | ( | Spec | spec, | |
const char * | expr | |||
) |
Evaluate boolean expression.
spec | spec file control structure | |
expr | expression to parse |
Definition at line 688 of file expression.c.
References _, _free(), DEBUG, doLogical(), _parseState::nextToken, _parseState::p, rdToken(), RPMERR_BADSPEC, rpmError, _parseState::spec, _parseState::str, TOK_EOF, _parseState::tokenValue, valueFree(), and xstrdup().
Referenced by readLine().
char* parseExpressionString | ( | Spec | spec, | |
const char * | expr | |||
) |
Evaluate string expression.
spec | spec file control structure | |
expr | expression to parse |
Definition at line 737 of file expression.c.
References _, _free(), DEBUG, doLogical(), _parseState::nextToken, _parseState::p, rdToken(), RPMERR_BADSPEC, rpmError, _parseState::spec, _parseState::str, TOK_EOF, _parseState::tokenValue, valueFree(), and xstrdup().
int parseFiles | ( | Spec | spec | ) |
Parse %files section of a spec file.
spec | spec file control structure |
Definition at line 26 of file parseFiles.c.
References _, _free(), appendStringBuf, argv, file, Package_s::fileFile, Package_s::fileList, isPart(), Spec_s::line, Spec_s::lineNum, lookupPackage(), newStringBuf(), optionsTable, PART_NAME, PART_NONE, PART_SUBNAME, readLine(), RPMERR_BADSPEC, rpmError, rpmGetPath(), and STRIP_COMMENTS.
Referenced by parseSpec().
int parseNoSource | ( | Spec | spec, | |
const char * | field, | |||
int | tag | |||
) |
spec | spec file control structure |
field | ||
tag |
Definition at line 211 of file spec.c.
References _, findSource(), Spec_s::lineNum, Source::num, parseNum(), RPMBUILD_ISNO, RPMBUILD_ISPATCH, RPMBUILD_ISSOURCE, RPMERR_BADSPEC, rpmError, RPMTAG_NOSOURCE, SKIPNONWHITE, and SKIPWHITE.
Referenced by handlePreambleTag().
int parseNum | ( | const char * | line, | |
int * | res | |||
) |
Parse a number.
line | from spec file |
res | pointer to int |
Definition at line 10 of file misc.c.
References strtoul.
Referenced by addSource(), doPatchMacro(), doSetupMacro(), handlePreambleTag(), and parseNoSource().
int parsePreamble | ( | Spec | spec, | |
int | initialPackage | |||
) |
Parse tags from preamble of a spec file.
spec | spec file control structure | |
initialPackage |
Definition at line 869 of file parsePreamble.c.
References _, Spec_s::anyarch, Spec_s::BANames, Spec_s::buildRootURL, checkForDuplicates(), checkForRequired(), checkForValidArchitectures(), copyTagsDuringParse, fillOutMainPackage(), findPreambleTag(), Spec_s::gotBuildRootURL, handlePreambleTag(), Package_s::header, headerAddEntry(), headerCopyTags(), headerNVR(), isPart(), lang, Spec_s::line, Spec_s::lineNum, lookupPackage(), newPackage(), Spec_s::packages, parseSimplePart(), PART_BUILDARCHITECTURES, PART_NONE, PART_SUBNAME, readLine(), Spec_s::recursing, RPM_STRING_TYPE, RPMERR_BADSPEC, rpmError, RPMTAG_NAME, SKIPSPACE, STRIP_COMMENTS, STRIP_TRAILINGSPACE, and PreambleRec_s::tag.
Referenced by parseSpec().
int parsePrep | ( | Spec | spec | ) |
Parse %prep section of a spec file.
spec | spec file control structure |
Definition at line 575 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, readLine(), RPMERR_BADSPEC, rpmError, splitString(), and STRIP_NOTHING.
Referenced by parseSpec().
int parseRCPOT | ( | Spec | spec, | |
Package | pkg, | |||
const char * | field, | |||
rpmTag | tagN, | |||
int | index, | |||
rpmsenseFlags | tagflags | |||
) |
Parse dependency relations from spec file and/or autogenerated output buffer.
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 |
Definition at line 35 of file parseReqs.c.
References _, _free(), addReqProv(), Spec_s::buildRestrictions, Package_s::header, Spec_s::line, Spec_s::lineNum, ReqComparisons, RPMERR_BADSPEC, rpmError, rpmExpandNumeric(), rpmlibNeedsFeature(), RPMSENSE_ANY, RPMSENSE_CONFLICTS, RPMSENSE_OBSOLETES, RPMSENSE_PREREQ, RPMSENSE_PROVIDES, RPMSENSE_SENSEMASK, RPMSENSE_TRIGGERIN, RPMSENSE_TRIGGERPOSTUN, RPMSENSE_TRIGGERUN, RPMTAG_BUILDCONFLICTS, RPMTAG_BUILDPREREQ, RPMTAG_BUILDREQUIRES, RPMTAG_CONFLICTFLAGS, RPMTAG_OBSOLETEFLAGS, RPMTAG_PREREQ, RPMTAG_PROVIDEFLAGS, RPMTAG_REQUIREFLAGS, RPMTAG_TRIGGERIN, RPMTAG_TRIGGERPOSTUN, RPMTAG_TRIGGERUN, ReqComp::sense, SKIPNONWHITE, SKIPWHITE, ReqComp::token, xisalnum(), and xmalloc().
Referenced by handlePreambleTag(), parseScript(), and rpmfcGenerateDependsHelper().
int parseScript | ( | Spec | spec, | |
int | parsePart | |||
) |
Parse %pre et al scriptlets from a spec file.
spec | spec file control structure | |
parsePart | current rpmParseState |
Definition at line 72 of file parseScript.c.
References _, _free(), addReqProv(), addTriggerIndex(), appendStringBuf, argv, file, freeStringBuf(), getStringBuf(), Package_s::header, headerAddEntry(), headerIsEntry(), isPart(), Spec_s::line, Spec_s::lineNum, lookupPackage(), newStringBuf(), optionsTable, parseRCPOT(), PART_NAME, PART_NONE, PART_POST, PART_POSTTRANS, PART_POSTUN, PART_PRE, PART_PRETRANS, PART_PREUN, PART_SUBNAME, PART_TRIGGERIN, PART_TRIGGERPOSTUN, 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, RPMERR_BADSPEC, rpmError, rpmlibNeedsFeature(), RPMRC_OK, RPMSENSE_INTERP, RPMSENSE_SCRIPT_POST, RPMSENSE_SCRIPT_POSTUN, RPMSENSE_SCRIPT_PRE, RPMSENSE_SCRIPT_PREUN, RPMSENSE_SCRIPT_VERIFY, 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_TRIGGERIN, RPMTAG_TRIGGERPOSTUN, RPMTAG_TRIGGERSCRIPTPROG, RPMTAG_TRIGGERSCRIPTS, RPMTAG_TRIGGERUN, RPMTAG_VERIFYSCRIPT, RPMTAG_VERIFYSCRIPTPROG, STRIP_NOTHING, stripTrailingBlanksStringBuf(), Package_s::verifyFile, and xstrdup().
Referenced by parseSpec().
int parseSpec | ( | rpmts | ts, | |
const char * | specFile, | |||
const char * | rootURL, | |||
const char * | buildRootURL, | |||
int | recursing, | |||
const char * | passPhrase, | |||
char * | cookie, | |||
int | anyarch, | |||
int | force | |||
) |
Parse spec file into spec control structure.
ts | transaction set (spec file control in ts->spec) | |
specFile | ||
rootURL | ||
buildRootURL | ||
recursing | parse is recursive? | |
passPhrase | ||
cookie | ||
anyarch | ||
force |
Definition at line 439 of file parseSpec.c.
References _, _free(), addMacro(), Spec_s::anyarch, Spec_s::BACount, Spec_s::BANames, Spec_s::BASpecs, Spec_s::buildRootURL, closeSpec(), Spec_s::cookie, delMacro(), Package_s::ds, OpenFileInfo::fileName, Spec_s::fileStack, Spec_s::force, freeSpec(), Spec_s::gotBuildRootURL, Package_s::header, headerAddEntry(), headerIsEntry(), headerNVR(), Spec_s::macros, newOpenFileInfo(), newSpec(), Package_s::next, Spec_s::packages, parseBuildInstallClean(), parseChangelog(), parseDescription(), parseFiles(), parsePreamble(), parsePrep(), parseScript(), parseSpec(), 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_TRIGGERIN, PART_TRIGGERPOSTUN, PART_TRIGGERUN, PART_VERIFYSCRIPT, Spec_s::passPhrase, platform, Spec_s::recursing, RMIL_RPMRC, RMIL_SPEC, Spec_s::rootURL, RPM_MACHTABLE_BUILDARCH, RPM_STRING_TYPE, rpmdsThis(), RPMERR_BADSPEC, rpmError, rpmExpand(), rpmExpandNumeric(), rpmGetArchInfo(), rpmGetMachine(), rpmGetOsInfo(), rpmGetPath(), rpmMachineScore(), RPMSENSE_EQUAL, rpmSetMachine(), RPMTAG_ARCH, RPMTAG_DESCRIPTION, RPMTAG_OS, RPMTAG_PLATFORM, RPMTAG_REQUIRENAME, RPMTAG_RHNPLATFORM, rpmtsSetSpec(), Spec_s::specFile, Spec_s::timeCheck, urlPath(), xcalloc(), and xstrdup().
Referenced by buildForTarget(), parseSpec(), rpmspecQuery(), and spec_Parse().
int processBinaryFiles | ( | Spec | spec, | |
int | installSpecialDoc, | |||
int | test | |||
) |
Post-build processing for binary package(s).
spec | spec file control structure | |
installSpecialDoc | ||
test | don't execute scripts or package if testing |
Definition at line 2487 of file files.c.
References _, check_fileList, checkFiles(), Package_s::fileList, freeStringBuf(), Package_s::header, headerNVR(), newStringBuf(), Package_s::next, Spec_s::packages, processPackageFiles(), rpmfcGenerateDepends(), RPMMESS_NORMAL, and rpmMessage.
int processSourceFiles | ( | Spec | spec | ) |
Post-build processing for source package.
spec | spec file control structure |
Definition at line 2271 of file files.c.
References _, _free(), appendLineStringBuf, FileListRec_s::diskURL, errno, FileListRec_s::fileURL, FileListRec_s::fl_st, FileListRec_s::flags, Source::flags, freeAttrRec(), freeFileList(), freeSplitString(), freeStringBuf(), genCpioListAndHeader(), getGname(), getGnameS(), getStringBuf(), getUname(), getUnameS(), FileListRec_s::gname, headerAddOrAppendEntry(), Package_s::icon, initSourceHeader(), FileListRec_s::langs, newStringBuf(), Package_s::next, Source::next, Source::num, parseForAttr(), RPM_INT32_TYPE, RPM_STRING_ARRAY_TYPE, RPMBUILD_ISNO, RPMBUILD_ISPATCH, RPMBUILD_ISSOURCE, rpmError, rpmExpand(), RPMFILE_GHOST, RPMFILE_SPECFILE, rpmGetPath(), RPMTAG_NOPATCH, RPMTAG_NOSOURCE, RPMTAG_PATCH, RPMTAG_SOURCE, RPMVERIFY_ALL, SKIPSPACE, Source::source, Spec_s::sourceHeader, splitString(), Stat(), strerror, FileListRec_s::uname, urlPath(), FileListRec_s::verifyFlags, xcalloc(), xmalloc(), and xstrdup().
int readLine | ( | Spec | spec, | |
int | strip | |||
) |
Read next line from spec file.
spec | spec file control structure | |
strip | truncate comments? |
Definition at line 234 of file parseSpec.c.
References _, _free(), copyNextLine(), Fclose(), OpenFileInfo::fd, fdGetFp(), Ferror(), OpenFileInfo::fileName, Spec_s::fileStack, Fopen(), forceIncludeFile(), Fstrerror(), Spec_s::line, OpenFileInfo::lineNum, Spec_s::lineNum, match(), matchTok(), OpenFileInfo::next, ReadLevelEntry::next, parseExpressionBoolean(), OpenFileInfo::readBuf, ReadLevelEntry::reading, OpenFileInfo::readPtr, Spec_s::readStack, RPMERR_BADSPEC, RPMERR_UNMATCHEDIF, rpmError, rpmExpand(), rpmGetArchInfo(), rpmGetOsInfo(), SKIPNONSPACE, SKIPSPACE, Spec_s::sl, speclines_s::sl_lines, speclines_s::sl_nalloc, speclines_s::sl_nlines, xisspace(), xmalloc(), xrealloc(), and xstrdup().
Referenced by parseBuildInstallClean(), parseChangelog(), parseDescription(), parseFiles(), parsePreamble(), parsePrep(), and parseScript().
int rpmlibNeedsFeature | ( | Header | h, | |
const char * | feature, | |||
const char * | featureEVR | |||
) |
Add rpmlib feature dependency.
h | header | |
feature | rpm feature name (i.e. "rpmlib(Foo)" for feature Foo) | |
featureEVR | rpm feature epoch/version/release |
Definition at line 118 of file reqprov.c.
References addReqProv(), alloca(), RPMSENSE_EQUAL, RPMSENSE_LESS, RPMSENSE_RPMLIB, RPMTAG_REQUIRENAME, and stpcpy().
Referenced by genCpioListAndHeader(), parseRCPOT(), parseScript(), processPackageFiles(), and writeRPM().
Function to query spec file(s).
ts | transaction set | |
qva | parsed query/verify options | |
arg | query argument |
Definition at line 695 of file spec.c.
References _, freeSpec(), Package_s::header, Package_s::next, Spec_s::packages, parseSpec(), printNewSpecfile(), rpmQVKArguments_s::qva_showPackage, RPMERR_QUERY, rpmError, rpmtsSetSpec(), and specedit.
Referenced by main().
spec | spec file control structure |
h | ||
tag | ||
lang |
Definition at line 418 of file parsePreamble.c.
References headerGetEntryMinMemory(), Spec_s::lineNum, RPMBUILD_DEFAULT_LANG, RPMTAG_NAME, Spec_s::st, spectags_s::st_nalloc, spectags_s::st_ntags, spectags_s::st_t, spectag_s::t_lang, spectag_s::t_msgid, spectag_s::t_nlines, spectag_s::t_startx, spectag_s::t_tag, tagName(), xrealloc(), and xstrdup().
Referenced by handlePreambleTag(), and parseDescription().