rpm
5.4.14
|
Parse tags in global section from spec file. More...
#include "system.h"
#include <rpmio.h>
#include <rpmiotypes.h>
#include <rpmlog.h>
#include <rpmurl.h>
#include <argv.h>
#include <mire.h>
#include <rpmbuild.h>
#include "debug.h"
Go to the source code of this file.
Data Structures | |
struct | tokenBits_s |
struct | optionalTag |
struct | PreambleRec_s |
Macros | |
#define | _RPMEVR_INTERNAL |
#define | _RPMTAG_INTERNAL /* XXX rpmTags->aTags */ |
#define | SINGLE_TOKEN_ONLY |
Typedefs | |
typedef struct tokenBits_s * | tokenBits |
typedef struct PreambleRec_s * | PreambleRec |
Functions | |
static void | addOrAppendListEntry (Header h, rpmTag tag, char *line) |
static int | parseSimplePart (Spec spec, char **Np, rpmParseState *flag) |
static int | parseYesNo (const char *s) |
static int | parseBits (const char *s, const tokenBits tokbits, rpmsenseFlags *bp) |
static char * | findLastChar (char *s) |
static int | isMemberInEntry (Header h, const char *name, rpmTag tag) |
static int | checkForValidArchitectures (Spec spec) |
static rpmRC | checkForRequired (Header h, const char *NVR) |
Check that required tags are present in header. More... | |
static rpmRC | checkForDuplicates (Header h, const char *NVR) |
Check that no duplicate tags are present in header. More... | |
static void | fillOutMainPackage (Header h) |
static int | doIcon (Spec spec, Header h) |
spectag | stashSt (Spec spec, Header h, rpmTag tag, const char *lang) |
stashSt. More... | |
static rpmRC | tagValidate (Spec spec, rpmTag tag, const char *value) |
static rpmRC | handlePreambleTag (Spec spec, Package pkg, rpmTag tag, const char *macro, const char *lang) |
static int | findPreambleTag (Spec spec, rpmTag *tagp, const char **macro, char *lang) |
int | parsePreamble (Spec spec, int initialPackage) |
Parse tags from preamble of a spec file. More... | |
Variables | |
static rpmTag | copyTagsDuringParse [] |
static rpmTag | requiredTags [] |
static struct tokenBits_s | installScriptBits [] |
static struct tokenBits_s | buildScriptBits [] |
static struct optionalTag | optionalTags [] |
int | noLang |
static struct PreambleRec_s | preambleList [] |
Parse tags in global section from spec file.
Definition in file parsePreamble.c.
#define _RPMEVR_INTERNAL |
Definition at line 15 of file parsePreamble.c.
#define _RPMTAG_INTERNAL /* XXX rpmTags->aTags */ |
Definition at line 16 of file parsePreamble.c.
#define SINGLE_TOKEN_ONLY |
Definition at line 558 of file parsePreamble.c.
Referenced by handlePreambleTag().
typedef struct PreambleRec_s * PreambleRec |
typedef struct tokenBits_s * tokenBits |
Definition at line 75 of file parsePreamble.c.
References _free(), alloca(), _HE_s::append, rpmDataType_u::argv, argv, _HE_s::c, headerPut(), memset(), _HE_s::p, RPM_STRING_ARRAY_TYPE, _HE_s::t, _HE_s::tag, tag, and xx.
Referenced by handlePreambleTag().
Check that no duplicate tags are present in header.
h | header |
NVR | package name-version-release |
Definition at line 335 of file parsePreamble.c.
References _, _free(), alloca(), headerFini(), headerInit(), headerNext(), memset(), _HE_s::p, rpmDataType_u::ptr, rc, rpmlog(), RPMLOG_ERR, RPMRC_FAIL, RPMRC_OK, _HE_s::tag, and tagName().
Referenced by parsePreamble().
Check that required tags are present in header.
h | header |
NVR | package name-version-release |
Definition at line 311 of file parsePreamble.c.
References _, headerIsEntry(), p, rc, requiredTags, rpmlog(), RPMLOG_ERR, RPMRC_FAIL, RPMRC_OK, and tagName().
Referenced by parsePreamble().
Definition at line 274 of file parsePreamble.c.
References _, _free(), exit, isMemberInEntry(), NULL, rc, rpmExpand(), rpmlog(), RPMLOG_ERR, RPMRC_FAIL, RPMTAG_EXCLUDEARCH, RPMTAG_EXCLUDEOS, RPMTAG_EXCLUSIVEARCH, RPMTAG_EXCLUSIVEOS, and Spec_s::sourceHeader.
Referenced by parsePreamble().
Definition at line 419 of file parsePreamble.c.
References _, _free(), alloca(), _HE_s::c, exit, F_OK, Fclose(), fd, Ferror(), Source::flags, fn, Fopen(), Fread(), Fstrerror(), headerPut(), memset(), nb, Source::next, NULL, _HE_s::p, rc, RPM_BIN_TYPE, rpmExpandNumeric(), RPMFILE_ICON, rpmGenPath(), rpmlog(), RPMLOG_ERR, RPMRC_FAIL, RPMTAG_GIF, RPMTAG_XPM, Source::source, Spec_s::sources, _HE_s::t, _HE_s::tag, tagValue(), rpmDataType_u::ui8p, URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, URL_IS_MONGO, URL_IS_PATH, URL_IS_UNKNOWN, urlPath(), void, and xx.
Referenced by handlePreambleTag().
Definition at line 382 of file parsePreamble.c.
References _free(), alloca(), _HE_s::c, headerIsEntry(), headerPut(), memset(), NULL, optionalTags, optionalTag::ot_mac, optionalTag::ot_tag, _HE_s::p, RPM_STRING_TYPE, rpmExpand(), rpmDataType_u::str, _HE_s::t, _HE_s::tag, tag, tagCanonicalize(), tagGenerate(), val, and xx.
Referenced by parsePreamble().
|
inlinestatic |
Definition at line 227 of file parsePreamble.c.
Referenced by handlePreambleTag().
Definition at line 1007 of file parsePreamble.c.
References _, _free(), argvSearch(), argvStrcasecmp(), av, len, Spec_s::line, PreambleRec_s::multiLang, NULL, PreambleRec_s::obsolete, p, rc, RPMBUILD_DEFAULT_LANG, rpmlog(), RPMLOG_ERR, RPMTAG_PATCH, RPMTAG_SOURCE, rpmTags, s, SKIPSPACE, PreambleRec_s::tag, tagCanonicalize(), tagGenerate(), tagName(), PreambleRec_s::token, void, xisspace(), and xstrncasecmp().
Referenced by parsePreamble().
|
static |
Definition at line 604 of file parsePreamble.c.
References _, _free(), addMacro(), addOrAppendListEntry(), addSource(), alloca(), _HE_s::append, rpmDataType_u::argv, Package_s::autoProv, Package_s::autoReq, Spec_s::BACount, Spec_s::BANames, buildRootURL, _HE_s::c, delMacro(), doIcon(), findLastChar(), Package_s::header, headerGet(), headerPut(), int, len, Spec_s::line, Spec_s::lineNum, Spec_s::macros, memset(), Package_s::noarch, noLang, Spec_s::noSource, NULL, Source::num, _HE_s::p, parseBits(), parseNoSource(), parseNum(), parseRCPOT(), parseYesNo(), rpmDataType_u::ptr, rc, RMIL_OLDSPEC, RMIL_SPEC, Spec_s::rootURL, RPM_STRING_ARRAY_TYPE, RPM_STRING_TYPE, RPM_UINT32_TYPE, RPMBUILD_DEFAULT_LANG, rpmGenPath(), rpmlog(), RPMLOG_ERR, RPMRC_FAIL, RPMRC_OK, RPMTAG_AUTOPROV, RPMTAG_AUTOREQ, RPMTAG_AUTOREQPROV, RPMTAG_BUGURL, RPMTAG_BUILDARCHS, RPMTAG_BUILDCONFLICTS, RPMTAG_BUILDENHANCES, RPMTAG_BUILDOBSOLETES, RPMTAG_BUILDPLATFORMS, RPMTAG_BUILDPREREQ, RPMTAG_BUILDPROVIDES, RPMTAG_BUILDREQUIRES, RPMTAG_BUILDROOT, RPMTAG_BUILDSUGGESTS, RPMTAG_CLASS, RPMTAG_CONFLICTFLAGS, RPMTAG_CVSID, RPMTAG_DISTEPOCH, RPMTAG_DISTRIBUTION, RPMTAG_DISTTAG, RPMTAG_DOCDIR, RPMTAG_ENHANCESFLAGS, RPMTAG_EPOCH, RPMTAG_EXCLUDEARCH, RPMTAG_EXCLUDEOS, RPMTAG_EXCLUSIVEARCH, RPMTAG_EXCLUSIVEOS, RPMTAG_GROUP, RPMTAG_ICON, RPMTAG_KEYWORDS, RPMTAG_LICENSE, RPMTAG_NAME, RPMTAG_NOPATCH, RPMTAG_NOSOURCE, RPMTAG_OBSOLETEFLAGS, RPMTAG_PACKAGER, RPMTAG_PATCH, RPMTAG_PREFIXES, RPMTAG_PREREQ, RPMTAG_PROVIDEFLAGS, RPMTAG_RELEASE, RPMTAG_REPOTAG, RPMTAG_REQUIREFLAGS, RPMTAG_SOURCE, RPMTAG_SUGGESTSFLAGS, RPMTAG_SUMMARY, RPMTAG_URL, RPMTAG_VARIANTS, RPMTAG_VENDOR, RPMTAG_VERSION, RPMTAG_XMAJOR, RPMTAG_XMINOR, SINGLE_TOKEN_ONLY, SKIPNONSPACE, SKIPSPACE, Spec_s::sourceHeader, stashSt(), rpmDataType_u::str, strcmp(), _HE_s::t, _HE_s::tag, tag, tagName(), tagValidate(), Spec_s::toplevel, rpmDataType_u::ui32p, urlPath(), void, and xx.
Referenced by parsePreamble().
Definition at line 248 of file parsePreamble.c.
References _free(), alloca(), rpmDataType_u::argv, _HE_s::c, headerGet(), memset(), _HE_s::p, rpmDataType_u::ptr, rc, _HE_s::tag, tag, xstrcasecmp(), and xx.
Referenced by checkForValidArchitectures().
|
static |
Definition at line 190 of file parsePreamble.c.
References tokenBits_s::bits, c, tokenBits_s::name, NULL, RPMRC_FAIL, RPMRC_OK, s, se, xisalpha(), and xisspace().
Referenced by handlePreambleTag().
|
static |
Definition at line 101 of file parsePreamble.c.
References _free(), exit, Spec_s::line, NULL, PART_NAME, PART_SUBNAME, rc, s, se, strcmp(), void, and xstrdup().
Referenced by parsePreamble().
|
inlinestatic |
Definition at line 147 of file parsePreamble.c.
References xstrcasecmp().
Referenced by handlePreambleTag().
Definition at line 569 of file parsePreamble.c.
References _, _free(), ec, Spec_s::line, Spec_s::lineNum, mireFree(), mireNew(), mireRegcomp(), mireRegexec(), mireSetCOptions(), NULL, pattern, rpmExpand(), rpmlog(), RPMLOG_ERR, RPMMIRE_REGEX, RPMRC_FAIL, RPMRC_OK, tagName(), and xx.
Referenced by handlePreambleTag().
|
static |
Definition at line 179 of file parsePreamble.c.
|
static |
Definition at line 26 of file parsePreamble.c.
Referenced by parsePreamble().
|
static |
Definition at line 164 of file parsePreamble.c.
|
static |
Referenced by fillOutMainPackage().
|
static |
Definition at line 937 of file parsePreamble.c.
|
static |
Definition at line 63 of file parsePreamble.c.
Referenced by checkForRequired().