Build API.
Building & signing packages:

API for building packages. More...

Collaboration diagram for Build API.:

## Files

file | rpmcli.h
file | rpmbuild.h
file | rpmfc.h
file | rpmspec.h

## Data Structures

struct | rpmBuildArguments_s

## Typedefs

typedef struct rpmBuildArguments_s * | BTA_t
typedef struct Package_s * | rpmSpecPkg

## 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), RPMBUILD_FILE_FILE = (1 << 16), RPMBUILD_FILE_LIST = (1 << 17), RPMBUILD_POLICY = (1 << 18),
RPMBUILD_CHECKBUILDREQUIRES = (1 << 19), RPMBUILD_BUILDREQUIRES = (1 << 20), RPMBUILD_DUMPBUILDREQUIRES = (1 << 21), RPMBUILD_NOBUILD = (1 << 31)
}

enum | rpmBuildPkgFlags_e { RPMBUILD_PKG_NONE = 0, RPMBUILD_PKG_NODIRTOKENS = (1 << 0) }

## Functions

rpmSpec | rpmSpecParse (const char *specFile, rpmSpecFlags flags, const char *buildRoot)
Header | rpmSpecSourceHeader (rpmSpec spec)
rpmps | rpmSpecCheckDeps (rpmts ts, rpmSpec spec)
rpmds | rpmSpecDS (rpmSpec spec, rpmTagVal tag)
int | rpmSpecBuild (rpmts ts, rpmSpec spec, BTA_t buildArgs)
rpmSpec | rpmSpecFree (rpmSpec spec)
int | rpmspecQuery (rpmts ts, QVA_t qva, const char *arg)

## Detailed Description

API for building packages.

## Typedef Documentation

## BTA_t

typedef struct rpmBuildArguments_s* BTA_t

Definition at line 72 of file rpmbuild.h.

## rpmSpecPkg

typedef struct Package_s* rpmSpecPkg

Definition at line 18 of file rpmspec.h.

## Enumeration Type Documentation

## rpmBuildFlags_e

enum rpmBuildFlags_e

Bit(s) to control rpmSpecBuild() operation. Also used as argument to rpmSpecGetSection and rpmSpecPkgGetSection.

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 | Internal use only
RPMBUILD_RMSPEC | Remove spec file.
RPMBUILD_FILE_FILE | rpmSpecPkgGetSection: files -f
RPMBUILD_FILE_LIST | rpmSpecPkgGetSection: files
RPMBUILD_POLICY | rpmSpecPkgGetSection: policy
RPMBUILD_CHECKBUILDREQUIRES | Check %buildrequires.
RPMBUILD_BUILDREQUIRES | Execute %buildrequires.
RPMBUILD_DUMPBUILDREQUIRES | Write buildrequires.nosrc.rpm.
RPMBUILD_NOBUILD | Don't execute or package.

Definition at line 21 of file rpmbuild.h.

## rpmBuildPkgFlags_e

enum rpmBuildPkgFlags_e

Bit(s) to control package generation

Enumerator
RPMBUILD_PKG_NONE |
RPMBUILD_PKG_NODIRTOKENS | Legacy filename layout

Definition at line 50 of file rpmbuild.h.

## Function Documentation

## rpmSpecBuild()

int rpmSpecBuild | ( | rpmts | ts,
|  | rpmSpec | spec,
|  | BTA_t | buildArgs
| ) |  |

Spec build stages state machine driver.

Parameters

  ts | rpm transaction set
  spec | spec file control structure
  buildArgs | build arguments

Returns
  0 on success, 1 on build error, RPMRC_MISSINGBUILDREQUIRES on missing build requirements

## rpmSpecCheckDeps()

rpmps rpmSpecCheckDeps | ( | rpmts | ts,
|  | rpmSpec | spec
| ) |  |

Verify build depencies of a spec against.

Parameters

  ts | (empty) transaction set
  spec | parsed spec control structure

Returns
  rpm problem set or NULL on no problems

## rpmSpecDS()

rpmds rpmSpecDS | ( | rpmSpec | spec,
|  | rpmTagVal | tag
| ) |  |

Retrieve build dependency set from spec.

Parameters

  spec | parsed spec control structure
  tag | dependency tag

Returns
  dependency set of tag (or NULL)

## rpmSpecFree()

rpmSpec rpmSpecFree | ( | rpmSpec | spec | ) |

Destroy Spec structure.

Parameters

  spec | spec file control structure

Returns
  NULL always

## rpmSpecParse()

rpmSpec rpmSpecParse | ( | const char * | specFile,
|  | rpmSpecFlags | flags,
|  | const char * | buildRoot
| ) |  |

Parse spec file into spec control structure.

Todo:
  Eliminate buildRoot from here, its a build, not spec property

Parameters

  specFile | path to spec file
  flags | flags to control operation
  buildRoot | buildRoot override or NULL for default

Returns
  new spec control structure

## rpmspecQuery()

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

## rpmSpecSourceHeader()

Header rpmSpecSourceHeader | ( | rpmSpec | spec | ) |

Return the headers of the SRPM that would be built from the spec file

Parameters

  spec | path to spec file

Returns
  Header