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:
urlfnfile 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:
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 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:
specbuild info
linecurrent 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:
specbuild info
linecurrent 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]
static int prepFetch ( Spec  spec ) [static]
static void prepFetchVerbose ( struct Source sp,
struct stat *  st 
) [static]

Variable Documentation

int createDir [static]

Definition at line 21 of file parsePrep.c.

Referenced by doSetupMacro().

const char* dirName = NULL [static]
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().

Definition at line 19 of file parsePrep.c.

Referenced by doSetupMacro().