rpm  4.8.1
rpmspec.h
Go to the documentation of this file.
1 #ifndef _H_SPEC_
2 #define _H_SPEC_
3 
9 #include <rpm/rpmstring.h> /* StringBuf */
10 #include <rpm/rpmcli.h> /* for QVA_t */
11 
12 #ifdef __cplusplus
13 extern "C" {
14 #endif
15 
18 typedef struct Package_s * Package;
19 
23  int index;
24  char * fileName;
25  char * script;
26  char * prog;
28 };
29 
30 #define RPMBUILD_ISSOURCE (1 << 0)
31 #define RPMBUILD_ISPATCH (1 << 1)
32 #define RPMBUILD_ISICON (1 << 2)
33 #define RPMBUILD_ISNO (1 << 3)
34 
35 #define RPMBUILD_DEFAULT_LANG "C"
36 
39 struct Source {
40  char * fullSource;
41  char * source; /* Pointer into fullSource */
42  int flags;
43  uint32_t num;
44 struct Source * next;
45 };
46 
49 typedef struct ReadLevelEntry {
50  int reading;
51  struct ReadLevelEntry * next;
52 } RLE_t;
53 
56 typedef struct OpenFileInfo {
57  char * fileName;
58  FILE *fp;
59  int lineNum;
60  char readBuf[BUFSIZ];
61  char * readPtr;
62  struct OpenFileInfo * next;
63 } OFI_t;
64 
67 typedef struct spectag_s {
68  int t_tag;
69  int t_startx;
70  int t_nlines;
71  char * t_lang;
72  char * t_msgid;
73 } * spectag;
74 
77 typedef struct spectags_s {
79  int st_nalloc;
80  int st_ntags;
81 } * spectags;
82 
85 typedef struct speclines_s {
86  char **sl_lines;
87  int sl_nalloc;
88  int sl_nlines;
89 } * speclines;
90 
94 struct rpmSpec_s {
95  char * specFile;
96  char * buildRoot;
97  char * buildSubdir;
98  char * rootDir;
99 
102 
104  char lbuf[10*BUFSIZ];
105  char *lbufPtr;
106  char nextpeekc;
107  char * nextline;
108  char * line;
109  int lineNum;
110 
112 
115  const char ** BANames;
116  int BACount;
117  int recursing;
119  int force;
120  int anyarch;
121 
122  char * passPhrase;
124  char * cookie;
125 
126  struct Source * sources;
128  int noSource;
129 
131  unsigned char * sourcePkgId;
134 
136 
143  Package packages;
144 };
145 
149 struct Package_s {
153 
154  struct Source * icon;
155 
156  int autoReq;
157  int autoProv;
158 
159  char * preInFile;
160  char * postInFile;
161  char * preUnFile;
162  char * postUnFile;
163  char * preTransFile;
164  char * postTransFile;
165  char * verifyFile;
169 
171 
173  StringBuf fileList; /* If NULL, package will not be written */
174 
175  Package next;
176 };
177 
182 rpmSpec newSpec(void);
183 
189 rpmSpec freeSpec(rpmSpec spec);
190 
198 int rpmspecQuery(rpmts ts, QVA_t qva, const char * arg);
199 
202 struct OpenFileInfo * newOpenFileInfo(void);
203 
211 spectag stashSt(rpmSpec spec, Header h, rpmTag tag, const char * lang);
212 
220 int addSource(rpmSpec spec, Package pkg, const char * field, rpmTag tag);
221 
228 int parseNoSource(rpmSpec spec, const char * field, rpmTag tag);
229 
230 #ifdef __cplusplus
231 }
232 #endif
233 
234 #endif /* _H_SPEC_ */
rpmfi sourceCpioList
Definition: rpmspec.h:133
char * fileName
Definition: rpmspec.h:24
int timeCheck
Definition: rpmspec.h:123
char * fileName
Definition: rpmspec.h:57
Header buildRestrictions
Definition: rpmspec.h:113
char ** sl_lines
Definition: rpmspec.h:86
struct OpenFileInfo * fileStack
Definition: rpmspec.h:103
struct rpmMacroContext_s * rpmMacroContext
Definition: rpmmacro.h:20
struct spectags_s * spectags
struct speclines_s * speclines
spectags st
Definition: rpmspec.h:101
Package next
Definition: rpmspec.h:175
struct OpenFileInfo * next
Definition: rpmspec.h:62
int recursing
Definition: rpmspec.h:117
char * nextline
Definition: rpmspec.h:107
spectag st_t
Definition: rpmspec.h:78
StringBuf build
Definition: rpmspec.h:138
rpmSpec newSpec(void)
Create and initialize rpmSpec structure.
char * prog
Definition: rpmspec.h:26
struct OpenFileInfo OFI_t
char * line
Definition: rpmspec.h:108
enum rpmTag_e rpmTag
Tags identify data in package headers.
char * t_lang
Definition: rpmspec.h:71
int sl_nalloc
Definition: rpmspec.h:87
rpmMacroContext macros
Definition: rpmspec.h:135
char * verifyFile
Definition: rpmspec.h:165
StringBuf prep
Definition: rpmspec.h:137
struct rpmds_s * rpmds
Definition: rpmtypes.h:61
rpmSpec * BASpecs
Definition: rpmspec.h:114
int numSources
Definition: rpmspec.h:127
struct Source * next
Definition: rpmspec.h:44
Describe query/verify/signature command line operation.
Definition: rpmcli.h:173
int t_tag
Definition: rpmspec.h:68
char * specFile
Definition: rpmspec.h:95
struct rpmfi_s * rpmfi
Definition: rpmtypes.h:62
Definition: rpmspec.h:39
int lineNum
Definition: rpmspec.h:109
char * t_msgid
Definition: rpmspec.h:72
speclines sl
Definition: rpmspec.h:100
int lineNum
Definition: rpmspec.h:59
StringBuf specialDoc
Definition: rpmspec.h:167
Header header
Definition: rpmspec.h:150
spectag stashSt(rpmSpec spec, Header h, rpmTag tag, const char *lang)
stashSt.
The structure used to store values parsed from a spec file.
Definition: rpmspec.h:94
char * postTransFile
Definition: rpmspec.h:164
FILE * fp
Definition: rpmspec.h:58
StringBuf clean
Definition: rpmspec.h:141
int force
Definition: rpmspec.h:119
struct Source * sources
Definition: rpmspec.h:126
char * postInFile
Definition: rpmspec.h:160
char * preInFile
Definition: rpmspec.h:159
int noSource
Definition: rpmspec.h:128
char * passPhrase
Definition: rpmspec.h:122
struct ReadLevelEntry * readStack
Definition: rpmspec.h:111
char * preUnFile
Definition: rpmspec.h:161
struct TriggerFileEntry * triggerFiles
Definition: rpmspec.h:170
int t_startx
Definition: rpmspec.h:69
int autoProv
Definition: rpmspec.h:157
struct spectag_s * spectag
struct ReadLevelEntry RLE_t
struct Package_s * Package
Definition: rpmspec.h:18
struct TriggerFileEntry * next
Definition: rpmspec.h:27
struct StringBufRec * StringBuf
Definition: rpmstring.h:185
char * script
Definition: rpmspec.h:25
uint32_t num
Definition: rpmspec.h:43
int parseNoSource(rpmSpec spec, const char *field, rpmTag tag)
parseNoSource.
const char ** BANames
Definition: rpmspec.h:115
unsigned char * sourcePkgId
Definition: rpmspec.h:131
Package packages
Definition: rpmspec.h:143
StringBuf fileFile
Definition: rpmspec.h:172
rpmSpec freeSpec(rpmSpec spec)
Destroy Spec structure.
int rpmspecQuery(rpmts ts, QVA_t qva, const char *arg)
Function to query spec file(s).
char * readPtr
Definition: rpmspec.h:61
char * postUnFile
Definition: rpmspec.h:162
struct rpmts_s * rpmts
The main types involved in transaction manipulation.
Definition: rpmtypes.h:59
rpmfi cpioList
Definition: rpmspec.h:152
int addSource(rpmSpec spec, Package pkg, const char *field, rpmTag tag)
addSource.
char * cookie
Definition: rpmspec.h:124
int sl_nlines
Definition: rpmspec.h:88
int BACount
Definition: rpmspec.h:116
char * source
Definition: rpmspec.h:41
rpmds ds
Definition: rpmspec.h:151
StringBuf fileList
Definition: rpmspec.h:173
int t_nlines
Definition: rpmspec.h:70
struct Source * icon
Definition: rpmspec.h:154
char * buildRoot
Definition: rpmspec.h:96
StringBuf install
Definition: rpmspec.h:139
char nextpeekc
Definition: rpmspec.h:106
char * rootDir
Definition: rpmspec.h:98
The structure used to store values for a package.
Definition: rpmspec.h:149
int st_nalloc
Definition: rpmspec.h:79
StringBuf check
Definition: rpmspec.h:140
struct OpenFileInfo * newOpenFileInfo(void)
char * lbufPtr
Definition: rpmspec.h:105
char * preTransFile
Definition: rpmspec.h:163
char * buildSubdir
Definition: rpmspec.h:97
int st_ntags
Definition: rpmspec.h:80
char * fullSource
Definition: rpmspec.h:40
char * sourceRpmName
Definition: rpmspec.h:130
int flags
Definition: rpmspec.h:42
int anyarch
Definition: rpmspec.h:120
struct ReadLevelEntry * next
Definition: rpmspec.h:51
char * specialDocDir
Definition: rpmspec.h:168
int autoReq
Definition: rpmspec.h:156
Header sourceHeader
Definition: rpmspec.h:132
struct headerToken_s * Header
RPM header and data retrieval types.
Definition: rpmtypes.h:24