rpm 5.2.1

- Main Page
- Related Pages
- Modules
- Data Structures
- Files

- File List
- Globals

Functions | Variables
build/parsePrep.c File Reference
RPMBUILD.

Parse prep section from spec file. More...

`#include "system.h"`
`#include <rpmio.h>`
`#include <rpmiotypes.h>`
`#include <argv.h>`
`#include <rpmcb.h>`
`#include <rpmurl.h>`
`#include <rpmbuild.h>`
`#include "misc.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, rpmuint32_t 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, rpmuint32_t c, int quietly)
| Expand setup macro into prep scriptlet.
static int | doSetupMacro (Spec spec, const char *line)
| Parse setup macro.
static rpmRC | doPatchMacro (Spec spec, const 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 46 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,
|  | rpmuint32_t | 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? (fuzz<0 means no)
  subdir | sub-directory (i.e patch -d argument);

Returns:
  expanded patch macro (NULL on error)

Definition at line 79 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, rpmExpand(), 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,
|  | const char * | line
| ) |  | `[static]`

Parse patch line.

Parameters:

  spec | build info
  line | current line from spec file

Returns:
  RPMRC_OK on success

Definition at line 531 of file parsePrep.c.

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

Referenced by parsePrep().

static int doSetupMacro | ( | Spec | spec,
|  | const 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 367 of file parsePrep.c.

References _, _free(), addMacro(), Spec_s::buildSubdir, createDir, dirName, doUntar(), Package_s::header, headerNEVRA(), leaveDirs, Spec_s::lineNum, Spec_s::macros, Source::num, optionsTable, Spec_s::packages, parseNum(), Spec_s::prep, quietly, RMIL_SPEC, Spec_s::rootURL, rpmExpand(), rpmGenPath(), rpmiobAppend(), rpmiobFree(), rpmiobNew(), rpmiobStr(), rpmioMkpath(), rpmlog(), RPMLOG_ERR, RPMRC_FAIL, skipDefaultAction, snprintf(), urlPath(), and xstrdup().

Referenced by parsePrep().

static const char* doUntar | ( | Spec | spec,
|  | rpmuint32_t | 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 215 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 698 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 666 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 26 of file parsePrep.c.

Referenced by doSetupMacro().

const char* dirName = NULL`[static]`

Definition at line 28 of file parsePrep.c.

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

int leaveDirs `[static]`

Definition at line 24 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 30 of file parsePrep.c.

Referenced by doSetupMacro().

int quietly `[static]`

Definition at line 26 of file parsePrep.c.

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

int skipDefaultAction `[static]`

Definition at line 24 of file parsePrep.c.

Referenced by doSetupMacro().