Functions | Variables

# build/parsePrep.c File Reference

Parse prep section from spec file. More...

`#include "system.h"`
`#include <rpmio.h>`
`#include <rpmbuild.h>`
`#include "debug.h"`
Include dependency graph for parsePrep.c:

Go to the source code of this file.

## Functions
static rpmRC | checkOwners (const char *urlfn)
| Check that file owner and group are known.
static char * | doPatch (Spec spec, int c, int strip, const char *db, int reverse, int removeEmpties, int fuzz, const char *subdir)
| Expand patchN macro into prep scriptlet.
static const char * | doUntar (Spec spec, int c, int quietly)
| Expand setup macro into prep scriptlet.
static int | doSetupMacro (Spec spec, char *line)
| Parse setup macro.
static rpmRC | doPatchMacro (Spec spec, char *line)
| Parse patch line.
static void | prepFetchVerbose (struct Source *sp, struct stat *st)
static int | prepFetch (Spec spec)
| Check that all sources/patches/icons exist locally, fetching if necessary.
int | parsePrep (Spec spec, int verify)
| Parse %prep section of a spec file.
## Variables
static int | leaveDirs
static int | skipDefaultAction
static int | createDir
static int | quietly
static const char * | dirName = NULL
static struct poptOption | optionsTable []

## Detailed Description

Parse prep section from spec file.

Definition in file parsePrep.c.

## Function Documentation

static rpmRC checkOwners | ( | const char * | urlfn ) | `[static]`

Check that file owner and group are known.

Parameters:

  urlfn | file url

Returns:
  RPMRC_OK on success

Definition at line 41 of file parsePrep.c.

References _, errno, getGname(), getUname(), Lstat(), rpmlog(), RPMLOG_ERR, RPMRC_FAIL, and RPMRC_OK.

Referenced by doPatch(), and doUntar().

static char* doPatch | ( | Spec | spec,
|  | int | c,
|  | int | strip,
|  | const char * | db,
|  | int | reverse,
|  | int | removeEmpties,
|  | int | fuzz,
|  | const char * | subdir
| ) |  | `[static]`

Expand patchN macro into prep scriptlet.

Parameters:

  spec | build info
  c | patch index
  strip | patch level (i.e. patch -p argument)
  db | saved file suffix (i.e. patch --suffix argument)
  reverse | include -R?
  removeEmpties | include -E?
  fuzz | include -F?

Returns:
  expanded patch macro (NULL on error)

Definition at line 73 of file parsePrep.c.

References _, _free(), checkOwners(), COMPRESSED_BZIP2, COMPRESSED_LZMA, COMPRESSED_LZOP, COMPRESSED_NOT, COMPRESSED_OTHER, COMPRESSED_XZ, COMPRESSED_ZIP, Source::flags, Spec_s::force, isCompressed(), Source::next, Source::num, RPMFILE_PATCH, rpmGenPath(), rpmGetPath(), rpmlog(), RPMLOG_ERR, Source::source, Spec_s::sources, stpcpy(), URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, URL_IS_PATH, URL_IS_UNKNOWN, urlPath(), and xstrdup().

Referenced by doPatchMacro().

static rpmRC doPatchMacro | ( | Spec | spec,
|  | char * | line
| ) |  | `[static]`

Parse patch line.

Parameters:

  spec | build info
  line | current line from spec file

Returns:
  RPMRC_OK on success

Definition at line 511 of file parsePrep.c.

References _, appendLineStringBuf, doPatch(), Spec_s::line, Spec_s::lineNum, parseNum(), Spec_s::prep, rpmlog(), RPMLOG_ERR, RPMRC_FAIL, and RPMRC_OK.

Referenced by parsePrep().

static int doSetupMacro | ( | Spec | spec,
|  | char * | line
| ) |  | `[static]`

Parse setup macro.

Todo:
  FIXME: Option -q broken when not immediately after setup.

Parameters:

  spec | build info
  line | current line from spec file

Returns:
  0 on success

Definition at line 348 of file parsePrep.c.

References _, _free(), addMacro(), appendLineStringBuf, appendStringBuf, Spec_s::buildSubdir, createDir, dirName, doUntar(), freeStringBuf(), getStringBuf(), Package_s::header, headerNEVRA(), leaveDirs, Spec_s::lineNum, Spec_s::macros, newStringBuf(), Source::num, optionsTable, Spec_s::packages, parseNum(), Spec_s::prep, quietly, RMIL_SPEC, Spec_s::rootURL, rpmExpand(), rpmGenPath(), rpmlog(), RPMLOG_ERR, RPMRC_FAIL, skipDefaultAction, snprintf(), urlPath(), and xstrdup().

Referenced by parsePrep().

static const char* doUntar | ( | Spec | spec,
|  | int | c,
|  | int | quietly
| ) |  | `[static]`

Expand setup macro into prep scriptlet.

Parameters:

  spec | build info
  c | source index
  quietly | should -vv be omitted from tar?

Returns:
  expanded setup macro (NULL on error)

Definition at line 206 of file parsePrep.c.

References _, _free(), _rpmmg_debug, checkOwners(), COMPRESSED_BZIP2, COMPRESSED_LZMA, COMPRESSED_LZOP, COMPRESSED_NOT, COMPRESSED_OTHER, COMPRESSED_XZ, COMPRESSED_ZIP, Source::flags, Spec_s::force, getSourceDir(), isCompressed(), Source::next, Source::num, quietly, RPMFILE_SOURCE, rpmGenPath(), rpmGetPath(), rpmIsVerbose, rpmlog(), RPMLOG_ERR, rpmmgFile(), rpmmgFree(), rpmmgNew(), Source::source, Spec_s::sources, stpcpy(), URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, URL_IS_PATH, URL_IS_UNKNOWN, urlPath(), and xstrdup().

Referenced by doSetupMacro().

static int prepFetch | ( | Spec | spec ) | `[static]`

Check that all sources/patches/icons exist locally, fetching if necessary.

Definition at line 675 of file parsePrep.c.

References _, _free(), rpmBuildArguments_s::buildAmount, errno, Source::flags, ftpStrerror(), Source::fullSource, getSourceDir(), Lstat(), Source::next, Source::num, prepFetchVerbose(), quietly, rpmBTArgs, RPMBUILD_FETCHSOURCE, rpmExpand(), RPMFILE_ICON, RPMFILE_PATCH, RPMFILE_SOURCE, rpmGenPath(), rpmIsVerbose, rpmlog(), RPMLOG_ERR, RPMLOG_NOTICE, rpmMkdirPath(), RPMRC_OK, Source::source, Spec_s::sources, and urlGetFile().

Referenced by parsePrep().

static void prepFetchVerbose | ( | struct Source * | sp,
|  | struct stat * | st
| ) |  | `[static]`

Definition at line 645 of file parsePrep.c.

References _free(), rpmBuildArguments_s::buildAmount, Source::flags, Source::num, quietly, rpmBTArgs, RPMBUILD_FETCHSOURCE, RPMFILE_SOURCE, rpmIsVerbose, rpmlog(), RPMLOG_NOTICE, snprintf(), and Source::source.

Referenced by prepFetch().

## Variable Documentation

int createDir`[static]`

Definition at line 21 of file parsePrep.c.

Referenced by doSetupMacro().

const char* dirName = NULL`[static]`

Definition at line 23 of file parsePrep.c.

Referenced by doLookup(), doSetupMacro(), rpmalAllFileSatisfiesDepend(), rpmdbFindByFile(), and rpmGetFilesystemUsage().

int leaveDirs`[static]`

Definition at line 19 of file parsePrep.c.

Referenced by doSetupMacro().

struct poptOption optionsTable[]`[static]`

Initial value:

     {
                { NULL, 'a', POPT_ARG_STRING, NULL, 'a',    NULL, NULL},
                { NULL, 'b', POPT_ARG_STRING, NULL, 'b',    NULL, NULL},
                { NULL, 'c', 0, &createDir, 0,              NULL, NULL},
                { NULL, 'D', 0, &leaveDirs, 0,              NULL, NULL},
                { NULL, 'n', POPT_ARG_STRING, &dirName, 0,  NULL, NULL},
                { NULL, 'T', 0, &skipDefaultAction, 0,      NULL, NULL},
                { NULL, 'q', 0, &quietly, 0,                NULL, NULL},
                { 0, 0, 0, 0, 0,    NULL, NULL}
        }

Definition at line 25 of file parsePrep.c.

Referenced by doSetupMacro().

int quietly

Definition at line 21 of file parsePrep.c.

Referenced by doSetupMacro(), doUntar(), prepFetch(), and prepFetchVerbose().

int skipDefaultAction

Definition at line 19 of file parsePrep.c.

Referenced by doSetupMacro().