rpm  4.5
Functions | Variables
build/parsePrep.c File Reference

Parse prep section from spec file. More...

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

Go to the source code of this file.

Functions

static int 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)
 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 int doPatchMacro (Spec spec, char *line)
 Parse patch line.
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 int checkOwners ( const char *  urlfn) [static]

Check that file owner and group are known.

Parameters:
urlfnfile url
Returns:
0 on success

Definition at line 38 of file parsePrep.c.

References _, errno, getGname(), getUname(), Lstat(), RPMERR_BADSPEC, and rpmError.

Referenced by doPatch(), and doUntar().

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

Expand patchN macro into prep scriptlet.

Parameters:
specbuild info
cpatch index
strippatch level (i.e. patch -p argument)
dbsaved file suffix (i.e. patch --suffix argument)
reverseinclude -R?
removeEmptiesinclude -E?
fuzzinclude -F?
Returns:
expanded patch macro (NULL on error)

Definition at line 70 of file parsePrep.c.

References _, _free(), checkOwners(), COMPRESSED_BZIP2, COMPRESSED_LZMA, COMPRESSED_LZOP, COMPRESSED_NOT, COMPRESSED_OTHER, COMPRESSED_ZIP, Source::flags, Spec_s::force, isCompressed(), Source::next, Source::num, RPMERR_BADSPEC, rpmError, RPMFILE_PATCH, rpmGenPath(), rpmGetPath(), 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, and urlPath().

Referenced by doPatchMacro().

static int doPatchMacro ( Spec  spec,
char *  line 
) [static]

Parse patch line.

Parameters:
specbuild info
linecurrent line from spec file
Returns:
0 on success

Definition at line 453 of file parsePrep.c.

References _, appendLineStringBuf, doPatch(), Spec_s::line, Spec_s::lineNum, parseNum(), Spec_s::prep, RPMERR_BADSPEC, and rpmError.

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:
specbuild info
linecurrent line from spec file
Returns:
0 on success

Definition at line 297 of file parsePrep.c.

References _, _free(), addMacro(), appendLineStringBuf, appendStringBuf, Spec_s::buildSubdir, createDir, dirName, doUntar(), freeStringBuf(), getStringBuf(), Package_s::header, headerNVR(), leaveDirs, Spec_s::lineNum, Spec_s::macros, MKDIR_P, name, newStringBuf(), Source::num, optionsTable, Spec_s::packages, parseNum(), Spec_s::prep, quietly, RMIL_SPEC, Spec_s::rootURL, RPMERR_BADSPEC, rpmError, rpmExpand(), rpmGenPath(), skipDefaultAction, urlPath(), and xstrdup().

Referenced by parsePrep().

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

Expand setup macro into prep scriptlet.

Parameters:
specbuild info
csource index
quietlyshould -vv be omitted from tar?
Returns:
expanded setup macro (NULL on error)

Definition at line 186 of file parsePrep.c.

References _, _free(), checkOwners(), COMPRESSED_BZIP2, COMPRESSED_LZMA, COMPRESSED_LZOP, COMPRESSED_NOT, COMPRESSED_OTHER, COMPRESSED_ZIP, Source::flags, Spec_s::force, isCompressed(), Source::next, Source::num, quietly, RPMERR_BADSPEC, rpmError, RPMFILE_SOURCE, rpmGenPath(), rpmGetPath(), rpmIsVerbose, 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, and urlPath().

Referenced by doSetupMacro().

static int prepFetch ( Spec  spec) [static]

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

Definition at line 579 of file parsePrep.c.

References _, _free(), errno, Source::flags, ftpStrerror(), Lstat(), Source::next, Source::num, RPMERR_BADFILENAME, rpmError, RPMFILE_ICON, RPMFILE_PATCH, RPMFILE_SOURCE, rpmGenPath(), rpmMkdirPath(), RPMRC_OK, Source::source, Spec_s::sources, and urlGetFile().

Referenced by parsePrep().


Variable Documentation

int createDir [static]

Definition at line 18 of file parsePrep.c.

Referenced by doSetupMacro().

const char* dirName = NULL [static]
int leaveDirs [static]

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

Referenced by doSetupMacro().

int quietly

Definition at line 18 of file parsePrep.c.

Referenced by doSetupMacro(), and doUntar().

Definition at line 16 of file parsePrep.c.

Referenced by doSetupMacro().