rpm  4.5
Functions | Variables
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
static

Definition at line 18 of file parsePrep.c.

Referenced by doSetupMacro(), and doUntar().

int skipDefaultAction
static

Definition at line 16 of file parsePrep.c.

Referenced by doSetupMacro().