rpm  4.5
Macros | Functions | Variables
spec.c File Reference

Handle spec data structure. More...

#include "system.h"
#include "buildio.h"
#include "rpmds.h"
#include "rpmfi.h"
#include "rpmts.h"
#include "debug.h"
Include dependency graph for spec.c:

Go to the source code of this file.

Macros

#define SKIPWHITE(_x)   {while(*(_x) && (xisspace(*_x) || *(_x) == ',')) (_x)++;}
 
#define SKIPNONWHITE(_x)   {while(*(_x) &&!(xisspace(*_x) || *(_x) == ',')) (_x)++;}
 

Functions

static struct TriggerFileEntryfreeTriggerFiles (struct TriggerFileEntry *p)
 
static struct SourcefreeSources (struct Source *s)
 Destroy source component chain. More...
 
int lookupPackage (Spec spec, const char *name, int flag, Package *pkg)
 Find sub-package control structure by name. More...
 
Package newPackage (Spec spec)
 Create and initialize package control structure. More...
 
Package freePackage (Package pkg)
 Destroy package control structure. More...
 
Package freePackages (Package packages)
 Destroy all packages associated with spec file. More...
 
static struct SourcefindSource (Spec spec, int num, int flag)
 
int parseNoSource (Spec spec, const char *field, int tag)
 
int addSource (Spec spec, Package pkg, const char *field, int tag)
 
static speclines newSl (void)
 
static speclines freeSl (speclines sl)
 
static spectags newSt (void)
 
static spectags freeSt (spectags st)
 
Spec newSpec (void)
 Create and initialize Spec structure. More...
 
Spec freeSpec (Spec spec)
 Destroy Spec structure. More...
 
struct OpenFileInfonewOpenFileInfo (void)
 
static void printNewSpecfile (Spec spec)
 Print copy of spec file, filling in Group/Description/Summary from specspo. More...
 
static int initSourceHeaderScriptlet (Header h, rpmTag progTag, rpmTag scriptTag, StringBuf sb)
 Add expanded build scriptlet to srpm header. More...
 
static int initSourceHeaderScriptlets (Spec spec)
 Add expanded build scriptlets to srpm header. More...
 
static int _specQuery (rpmts ts, QVA_t qva, const char *specName, const char *target)
 Parse a spec file, and query the resultant header. More...
 
int rpmspecQuery (rpmts ts, QVA_t qva, const char *arg)
 Function to query spec file(s). More...
 

Variables

int specedit
 

Detailed Description

Handle spec data structure.

Definition in file spec.c.

Macro Definition Documentation

#define SKIPNONWHITE (   _x)    {while(*(_x) &&!(xisspace(*_x) || *(_x) == ',')) (_x)++;}

Definition at line 20 of file spec.c.

Referenced by parseNoSource().

#define SKIPWHITE (   _x)    {while(*(_x) && (xisspace(*_x) || *(_x) == ',')) (_x)++;}

Definition at line 19 of file spec.c.

Referenced by parseNoSource().

Function Documentation

static int _specQuery ( rpmts  ts,
QVA_t  qva,
const char *  specName,
const char *  target 
)
static

Parse a spec file, and query the resultant header.

Parameters
tsrpm transaction
qvaquery args
specNamespecfile to parse
targetcpu-vender-os platform for query (NULL is current)
Returns
0 on success

Definition at line 747 of file spec.c.

References _, Package_s::fileList, freeSpec(), Package_s::header, initSourceHeader(), initSourceHeaderScriptlets(), Package_s::next, Spec_s::packages, parseSpec(), printNewSpecfile(), rpmQVKArguments_s::qva_showPackage, rpmQVKArguments_s::qva_source, RPMERR_QUERY, rpmError, RPMQV_SPECFILE, RPMQV_SPECSRPM, rpmtsSetSpec(), Spec_s::sourceHeader, and specedit.

Referenced by rpmspecQuery().

static struct Source* findSource ( Spec  spec,
int  num,
int  flag 
)
staticread

Definition at line 197 of file spec.c.

References Source::flags, Source::next, Source::num, and Spec_s::sources.

Referenced by parseNoSource().

static speclines freeSl ( speclines  sl)
inlinestatic

Definition at line 369 of file spec.c.

References _free(), speclines_s::sl_lines, and speclines_s::sl_nlines.

Referenced by freeSpec().

static struct Source* freeSources ( struct Source s)
staticread

Destroy source component chain.

Parameters
ssource component chain
Returns
NULL always

Definition at line 52 of file spec.c.

References _free(), Source::fullSource, and Source::next.

Referenced by freeSpec().

static spectags freeSt ( spectags  st)
inlinestatic

Definition at line 402 of file spec.c.

References _free(), spectags_s::st_ntags, spectags_s::st_t, spectag_s::t_lang, and spectag_s::t_msgid.

Referenced by freeSpec().

static struct TriggerFileEntry* freeTriggerFiles ( struct TriggerFileEntry p)
staticread
Parameters
ptrigger entry chain
Returns
NULL always

Definition at line 30 of file spec.c.

References _free(), TriggerFileEntry::fileName, TriggerFileEntry::next, TriggerFileEntry::prog, and TriggerFileEntry::script.

Referenced by freePackage().

static int initSourceHeaderScriptlet ( Header  h,
rpmTag  progTag,
rpmTag  scriptTag,
StringBuf  sb 
)
static

Add expanded build scriptlet to srpm header.

Parameters
hsrpm header
progTaginterpreter tag (0 disables)
scriptTagscript tag (0 disables)
sbscript body sting buf (NULL disables)
Returns
0 always

Definition at line 693 of file spec.c.

References getStringBuf(), headerAddEntry(), prog, and RPM_STRING_TYPE.

Referenced by initSourceHeaderScriptlets().

static int initSourceHeaderScriptlets ( Spec  spec)
static
static speclines newSl ( void  )
inlinestatic

Definition at line 351 of file spec.c.

References speclines_s::sl_lines, speclines_s::sl_nalloc, speclines_s::sl_nlines, specedit, and xmalloc().

Referenced by newSpec().

static spectags newSt ( void  )
inlinestatic

Definition at line 385 of file spec.c.

References specedit, spectags_s::st_nalloc, spectags_s::st_ntags, spectags_s::st_t, and xmalloc().

Referenced by newSpec().

static void printNewSpecfile ( Spec  spec)
static

Variable Documentation

int specedit

Definition at line 18 of file poptQV.c.

Referenced by _specQuery(), newSl(), and newSt().