# build/rpmbuild.h File Reference

This is the *only* module users of librpmbuild should need to include. More...

`#include <rpmcli.h>`
`#include "stringbuf.h"`
`#include "misc.h"`
`#include "rpmspec.h"`
`#include <ctype.h>`

Go to the source code of this file.

## Defines

#define | SKIPSPACE(s) { while (*(s) && xisspace(*(s))) (s)++; }
#define | SKIPNONSPACE(s) { while (*(s) && !xisspace(*(s))) (s)++; }
#define | PART_SUBNAME 0
#define | PART_NAME 1
#define | STRIP_NOTHING 0
#define | STRIP_TRAILINGSPACE (1 << 0)
#define | STRIP_COMMENTS (1 << 1)

## Typedefs

typedef enum rpmBuildFlags_e | rpmBuildFlags
| Bit(s) to control buildSpec() operation.
typedef enum rpmParseState_e | rpmParseState
| Spec file parser states.

## Enumerations

enum | rpmBuildFlags_e { RPMBUILD_NONE = 0, RPMBUILD_PREP = (1 << 0), RPMBUILD_BUILD = (1 << 1), RPMBUILD_INSTALL = (1 << 2), RPMBUILD_CLEAN = (1 << 3), RPMBUILD_FILECHECK = (1 << 4), RPMBUILD_PACKAGESOURCE = (1 << 5), RPMBUILD_PACKAGEBINARY = (1 << 6), RPMBUILD_RMSOURCE = (1 << 7), RPMBUILD_RMBUILD = (1 << 8), RPMBUILD_STRINGBUF = (1 << 9), RPMBUILD_RMSPEC = (1 << 10) }
| 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_CLEAN = 5, PART_FILES = 6, PART_PRE = 7, PART_POST = 8, PART_PREUN = 9, PART_POSTUN = 10, PART_DESCRIPTION = 11, PART_CHANGELOG = 12, PART_TRIGGERIN = 13, PART_TRIGGERUN = 14, PART_VERIFYSCRIPT = 15, PART_BUILDARCHITECTURES = 16, PART_TRIGGERPOSTUN = 17, PART_LAST = 18 }
| 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, int tag, 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, rpmsenseFlags depFlags, const char *depName, const char *depEVR, 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 (Spec *specp, 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 (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.

## Variables

int(* | parseSpecVec )(Spec *specp, const char *specFile, const char *rootdir, const char *buildRoot, int recursing, const char *passPhrase, char *cookie, int anyarch, int force)

## Detailed Description

This is the *only* module users of librpmbuild should need to include.

Definition in file rpmbuild.h.

## Define Documentation

#define PART_NAME 1

| Definition at line 46 of file rpmbuild.h. Referenced by parseDescription(), parseFiles(), parseScript(), and parseSimplePart().

#define PART_SUBNAME 0

| Definition at line 45 of file rpmbuild.h. Referenced by lookupPackage(), parseDescription(), parseFiles(), parsePreamble(), parseScript(), and parseSimplePart().

#define SKIPNONSPACE | ( | s |  | ) | { while (*(s) && !xisspace(*(s))) (s)++; }

| Definition at line 43 of file rpmbuild.h. Referenced by addChangelog(), dateToTimet(), handlePreambleTag(), matchTok(), and readLine().

#define SKIPSPACE | ( | s |  | ) | { while (*(s) && xisspace(*(s))) (s)++; }

| Definition at line 42 of file rpmbuild.h. Referenced by addChangelog(), addSource(), dateToTimet(), handleComments(), handlePreambleTag(), matchTok(), parseForAttr(), parseForConfig(), parseForDev(), parseForLang(), parseForVerify(), parsePreamble(), processPackageFiles(), processSourceFiles(), and readLine().

#define STRIP_COMMENTS (1 << 1)

| Definition at line 75 of file rpmbuild.h. Referenced by copyNextLine(), parseChangelog(), parseDescription(), parseFiles(), and parsePreamble().

#define STRIP_NOTHING 0

| Definition at line 73 of file rpmbuild.h. Referenced by parseBuildInstallClean(), parsePrep(), and parseScript().

#define STRIP_TRAILINGSPACE (1 << 0)

| Definition at line 74 of file rpmbuild.h. Referenced by copyNextLine(), parseDescription(), and parsePreamble().