rpm  5.2.1
Functions | Variables
parsePrep.c File Reference

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. More...
 
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. More...
 
static const char * doUntar (Spec spec, rpmuint32_t c, int quietly)
 Expand setup macro into prep scriptlet. More...
 
static int doSetupMacro (Spec spec, const char *line)
 Parse setup macro. More...
 
static rpmRC doPatchMacro (Spec spec, const char *line)
 Parse patch line. More...
 
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. More...
 
int parsePrep (Spec spec, int verify)
 Parse %prep section of a spec file. More...
 

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 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
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? (fuzz<0 means no)
subdirsub-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
specbuild info
linecurrent 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
specbuild info
linecurrent 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
static int prepFetch ( Spec  spec)
static
static void prepFetchVerbose ( struct Source sp,
struct stat *  st 
)
static

Variable Documentation

int createDir
static

Definition at line 26 of file parsePrep.c.

Referenced by doSetupMacro().

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