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"

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.
int parsePrep (Spec spec)
 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:
urlfn file url
Returns:
0 on success

Definition at line 38 of file parsePrep.c.

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

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:
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?
fuzz include -F?
removeEmpties include -E?
Returns:
expanded patch macro (NULL on error)

Definition at line 70 of file parsePrep.c.

References _, _free(), checkOwners(), COMPRESSED_BZIP2, COMPRESSED_NOT, Source::flags, Spec_s::force, isCompressed(), Source::next, Source::num, RPMBUILD_ISPATCH, RPMERR_BADSPEC, rpmError, 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:
spec build info
line current line from spec file
Returns:
0 on success

Definition at line 448 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:
spec build info
line current line from spec file
Returns:
0 on success

Definition at line 292 of file parsePrep.c.

References _, _free(), addMacro(), appendLineStringBuf, appendStringBuf, argv, Spec_s::buildSubdir, createDir, dirName, doUntar(), freeStringBuf(), getStringBuf(), Package_s::header, headerNVR(), leaveDirs, Spec_s::lineNum, Spec_s::macros, MKDIR_P, newStringBuf(), 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:
spec build info
c source index
quietly should -vv be omitted from tar?
Returns:
expanded setup macro (NULL on error)

Definition at line 169 of file parsePrep.c.

References _, _free(), checkOwners(), COMPRESSED_BZIP2, COMPRESSED_NOT, COMPRESSED_OTHER, COMPRESSED_ZIP, errno, Source::flags, Spec_s::force, ftpStrerror(), Source::fullSource, isCompressed(), Lstat(), Source::next, Source::num, RPMBUILD_ISSOURCE, RPMERR_BADFILENAME, RPMERR_BADSPEC, rpmError, rpmGetPath(), rpmIsVerbose, RPMTAG_NOSOURCE, 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, urlGetFile(), and urlPath().

Referenced by doSetupMacro().


Variable Documentation

int createDir [static]

Definition at line 18 of file parsePrep.c.

Referenced by doSetupMacro().

const char* dirName = NULL [static]

Definition at line 20 of file parsePrep.c.

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

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.

int quietly [static]

Definition at line 18 of file parsePrep.c.

Referenced by doSetupMacro().

int skipDefaultAction [static]

Definition at line 16 of file parsePrep.c.

Referenced by doSetupMacro().


Generated on Fri Oct 12 08:44:55 2007 for rpm by  doxygen 1.5.2