• Main Page
  • Related Pages
  • Modules
  • Data Structures
  • Files
  • File List
  • Globals

build/rpmbuild.h

Go to the documentation of this file.
00001 #ifndef _H_RPMBUILD_
00002 #define _H_RPMBUILD_
00003 
00009 #include <rpmcli.h>
00010 
00011 /* and it shouldn't need these :-( */
00012 #include "stringbuf.h"
00013 #include "misc.h"
00014 
00015 /* but this will be needed */
00016 #include "rpmspec.h"
00017 
00021 /*@-typeuse@*/
00022 typedef enum rpmBuildFlags_e {
00023 /*@-enummemuse@*/
00024     RPMBUILD_NONE       = 0,
00025 /*@=enummemuse@*/
00026     RPMBUILD_PREP       = (1 <<  0),    
00027     RPMBUILD_BUILD      = (1 <<  1),    
00028     RPMBUILD_INSTALL    = (1 <<  2),    
00029     RPMBUILD_CHECK      = (1 <<  3),    
00030     RPMBUILD_CLEAN      = (1 <<  4),    
00031     RPMBUILD_FILECHECK  = (1 <<  5),    
00032     RPMBUILD_PACKAGESOURCE = (1 <<  6), 
00033     RPMBUILD_PACKAGEBINARY = (1 <<  7), 
00034     RPMBUILD_RMSOURCE   = (1 <<  8),    
00035     RPMBUILD_RMBUILD    = (1 <<  9),    
00036     RPMBUILD_STRINGBUF  = (1 << 10),    
00037     RPMBUILD_TRACK      = (1 << 11),    
00038     RPMBUILD_RMSPEC     = (1 << 12),    
00039     RPMBUILD_FETCHSOURCE= (1 << 13)     
00040 } rpmBuildFlags;
00041 /*@=typeuse@*/
00042 
00043 #define SKIPSPACE(s) { while (*(s) && xisspace(*(s))) (s)++; }
00044 #define SKIPNONSPACE(s) { while (*(s) && !xisspace(*(s))) (s)++; }
00045 
00046 #define PART_SUBNAME  0
00047 #define PART_NAME     1
00048 
00052 #define PART_BASE       100
00053 typedef enum rpmParseState_e {
00054     PART_NONE           =  0+PART_BASE, 
00055     /* leave room for RPMRC_NOTFOUND returns. */
00056     PART_PREAMBLE       = 11+PART_BASE, 
00057     PART_PREP           = 12+PART_BASE, 
00058     PART_BUILD          = 13+PART_BASE, 
00059     PART_INSTALL        = 14+PART_BASE, 
00060     PART_CHECK          = 15+PART_BASE, 
00061     PART_CLEAN          = 16+PART_BASE, 
00062     PART_FILES          = 17+PART_BASE, 
00063     PART_PRE            = 18+PART_BASE, 
00064     PART_POST           = 19+PART_BASE, 
00065     PART_PREUN          = 20+PART_BASE, 
00066     PART_POSTUN         = 21+PART_BASE, 
00067     PART_PRETRANS       = 22+PART_BASE, 
00068     PART_POSTTRANS      = 23+PART_BASE, 
00069     PART_DESCRIPTION    = 24+PART_BASE, 
00070     PART_CHANGELOG      = 25+PART_BASE, 
00071     PART_TRIGGERIN      = 26+PART_BASE, 
00072     PART_TRIGGERUN      = 27+PART_BASE, 
00073     PART_VERIFYSCRIPT   = 28+PART_BASE, 
00074     PART_BUILDARCHITECTURES= 29+PART_BASE,
00075     PART_TRIGGERPOSTUN  = 30+PART_BASE, 
00076     PART_TRIGGERPREIN   = 31+PART_BASE, 
00077     /* support "%sanitycheck" script */
00078     PART_SANITYCHECK    = 32+PART_BASE, 
00079     PART_ARBITRARY      = 33+PART_BASE, 
00080     PART_LAST           = 34+PART_BASE  
00081 } rpmParseState;
00082 
00083 #define STRIP_NOTHING             0
00084 #define STRIP_TRAILINGSPACE (1 << 0)
00085 #define STRIP_COMMENTS      (1 << 1)
00086 
00087 /*@unchecked@*/
00088 extern int _rpmbuildFlags;
00089 
00090 #ifdef __cplusplus
00091 extern "C" {
00092 #endif
00093 /*@-redecl@*/
00094 
00098 void freeNames(void)
00099         /*@globals internalState@*/
00100         /*@modifies internalState */;
00101 
00108 extern /*@observer@*/ const char * getUname(uid_t uid)
00109         /*@globals internalState @*/
00110         /*@modifies internalState @*/;
00111 
00118 extern /*@observer@*/ const char * getUnameS(const char * uname)
00119         /*@globals internalState @*/
00120         /*@modifies internalState @*/;
00121 
00128 uid_t getUidS(const char * uname)
00129         /*@globals internalState @*/
00130         /*@modifies internalState @*/;
00131 
00138 extern /*@observer@*/ const char * getGname(gid_t gid)
00139         /*@globals internalState @*/
00140         /*@modifies internalState @*/;
00141 
00148 extern /*@observer@*/ const char * getGnameS(const char * gname)
00149         /*@globals internalState @*/
00150         /*@modifies internalState @*/;
00151 
00158 gid_t getGidS(const char * gname)
00159         /*@globals internalState @*/
00160         /*@modifies internalState @*/;
00161 
00166 /*@observer@*/
00167 extern const char * buildHost(void)
00168         /*@*/;
00169 
00174 /*@observer@*/
00175 extern uint32_t * getBuildTime(void)
00176         /*@*/;
00177 
00184 int readLine(Spec spec, int strip)
00185         /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
00186         /*@modifies spec->fileStack, spec->readStack, spec->line, spec->lineNum,
00187                 spec->nextline, spec->nextpeekc, spec->lbuf, spec->sl,
00188                 rpmGlobalMacroContext, fileSystem, internalState  @*/;
00189 
00194 void closeSpec(/*@partial@*/ Spec spec)
00195         /*@globals fileSystem, internalState @*/
00196         /*@modifies spec->fileStack, fileSystem, internalState @*/;
00197 
00202 void handleComments(char * s)
00203         /*@modifies s @*/;
00204 
00210 rpmParseState isPart(Spec spec)
00211         /*@*/;
00212 
00219 int parseNum(/*@null@*/ const char * line, /*@null@*/ /*@out@*/uint32_t * res)
00220         /*@modifies *res @*/;
00221 
00230 void addChangelogEntry(Header h, time_t time, const char * name,
00231                 const char * text)
00232         /*@modifies h @*/;
00233 
00240 int parseBuildInstallClean(Spec spec, rpmParseState parsePart)
00241         /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
00242         /*@modifies spec->build, spec->install, spec->check, spec->clean,
00243                 spec->macros,
00244                 spec->fileStack, spec->readStack, spec->line, spec->lineNum,
00245                 spec->nextline, spec->nextpeekc, spec->lbuf, spec->sl,
00246                 rpmGlobalMacroContext, fileSystem, internalState @*/;
00247 
00253 int parseChangelog(Spec spec)
00254         /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
00255         /*@modifies spec->fileStack, spec->readStack, spec->line, spec->lineNum,
00256                 spec->nextline, spec->nextpeekc, spec->lbuf, spec->sl,
00257                 spec->packages->header,
00258                 rpmGlobalMacroContext, fileSystem, internalState @*/;
00259 
00265 int parseDescription(Spec spec)
00266         /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
00267         /*@modifies spec->packages,
00268                 spec->fileStack, spec->readStack, spec->line, spec->lineNum,
00269                 spec->nextline, spec->nextpeekc, spec->lbuf, spec->sl,
00270                 spec->st,
00271                 rpmGlobalMacroContext, fileSystem, internalState  @*/;
00272 
00278 int parseFiles(Spec spec)
00279         /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
00280         /*@modifies spec->packages,
00281                 spec->fileStack, spec->readStack, spec->line, spec->lineNum,
00282                 spec->nextline, spec->nextpeekc, spec->lbuf, spec->sl,
00283                 rpmGlobalMacroContext, fileSystem, internalState @*/;
00284 
00291 int parsePreamble(Spec spec, int initialPackage)
00292         /*@globals rpmGlobalMacroContext, h_errno,
00293                 fileSystem, internalState @*/
00294         /*@modifies spec->packages,
00295                 spec->fileStack, spec->readStack, spec->line, spec->lineNum,
00296                 spec->buildSubdir,
00297                 spec->macros, spec->st,
00298                 spec->sources, spec->numSources, spec->noSource,
00299                 spec->sourceHeader, spec->BANames, spec->BACount,
00300                 spec->nextline, spec->nextpeekc, spec->lbuf, spec->sl,
00301                 rpmGlobalMacroContext, fileSystem, internalState @*/;
00302 
00309 int parsePrep(Spec spec, int verify)
00310         /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
00311         /*@modifies spec->prep, spec->buildSubdir, spec->macros,
00312                 spec->fileStack, spec->readStack, spec->line, spec->lineNum,
00313                 spec->nextline, spec->nextpeekc, spec->lbuf, spec->sl,
00314                 spec->packages->header,
00315                 rpmGlobalMacroContext, fileSystem, internalState @*/;
00316 
00327 rpmRC parseRCPOT(Spec spec, Package pkg, const char * field, rpmTag tagN,
00328                 uint32_t index, rpmsenseFlags tagflags)
00329         /*@*/;
00330 
00337 int parseScript(Spec spec, int parsePart)
00338         /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
00339         /*@modifies spec->packages,
00340                 spec->fileStack, spec->readStack, spec->line, spec->lineNum,
00341                 spec->nextline, spec->nextpeekc, spec->lbuf, spec->sl,
00342                 rpmGlobalMacroContext, fileSystem, internalState  @*/;
00343 
00350 int parseExpressionBoolean(Spec spec, const char * expr)
00351         /*@globals rpmGlobalMacroContext, h_errno @*/
00352         /*@modifies rpmGlobalMacroContext @*/;
00353 
00360 /*@unused@*/ /*@null@*/
00361 char * parseExpressionString(Spec spec, const char * expr)
00362         /*@globals rpmGlobalMacroContext, h_errno @*/
00363         /*@modifies rpmGlobalMacroContext @*/;
00364 
00375 rpmRC doScript(Spec spec, int what, /*@null@*/ const char * name,
00376                 /*@null@*/ StringBuf sb, int test)
00377         /*@globals rpmGlobalMacroContext, h_errno,
00378                 fileSystem, internalState @*/
00379         /*@modifies spec->macros,
00380                 rpmGlobalMacroContext, fileSystem, internalState @*/;
00381 
00390 rpmRC lookupPackage(Spec spec, /*@null@*/ const char * name, int flag,
00391                 /*@out@*/ Package * pkg)
00392         /*@modifies spec->packages, *pkg @*/;
00393 
00399 /*@only@*/
00400 Package newPackage(Spec spec)
00401         /*@modifies spec->packages, spec->packages->next @*/;
00402 
00408 /*@null@*/
00409 Package freePackages(/*@only@*/ /*@null@*/ Package packages)
00410         /*@globals fileSystem @*/
00411         /*@modifies packages, fileSystem @*/;
00412 
00418 /*@null@*/
00419 Package  freePackage(/*@only@*/ /*@null@*/ Package pkg)
00420         /*@globals fileSystem @*/
00421         /*@modifies pkg, fileSystem @*/;
00422 
00434 int addReqProv(/*@unused@*/Spec spec, Header h, rpmTag tagN,
00435                 const char * N, const char * EVR, rpmsenseFlags Flags,
00436                 uint32_t index)
00437         /*@modifies h @*/;
00438 
00445 rpmRC processScriptFiles(Spec spec, Package pkg)
00446         /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
00447         /*@modifies pkg->header, rpmGlobalMacroContext,
00448                 fileSystem, internalState @*/;
00449 
00455 void providePackageNVR(Header h)
00456         /*@modifies h @*/;
00457 
00465 int rpmlibNeedsFeature(Header h, const char * feature, const char * featureEVR)
00466         /*@modifies h @*/;
00467 
00475 rpmRC processBinaryFiles(Spec spec, int installSpecialDoc, int test)
00476         /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
00477         /*@modifies spec->macros, *spec->packages,
00478                 spec->packages->cpioList, spec->packages->fileList,
00479                 spec->packages->specialDoc, spec->packages->header,
00480                 rpmGlobalMacroContext, fileSystem, internalState @*/;
00481 
00488 int initSourceHeader(Spec spec, /*@null@*/ StringBuf *sfp)
00489         /*@globals rpmGlobalMacroContext, h_errno @*/
00490         /*@modifies spec->sourceHeader, spec->sourceHdrInit,
00491                 spec->BANames, *sfp,
00492                 spec->packages->header,
00493                 rpmGlobalMacroContext @*/;
00494 
00500 int processSourceFiles(Spec spec)
00501         /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
00502         /*@modifies spec->sourceHeader, spec->sourceCpioList,
00503                 spec->BANames, spec->sourceHdrInit,
00504                 spec->packages->header,
00505                 rpmGlobalMacroContext, fileSystem, internalState @*/;
00506 
00520 int parseSpec(rpmts ts, const char * specFile,
00521                 /*@null@*/ const char * rootURL,
00522                 int recursing,
00523                 /*@null@*/ const char * passPhrase,
00524                 /*@null@*/ const char * cookie,
00525                 int anyarch, int force, int verify)
00526         /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
00527         /*@modifies ts, rpmGlobalMacroContext, fileSystem, internalState @*/;
00528 
00537 rpmRC buildSpec(rpmts ts, Spec spec, int what, int test)
00538         /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
00539         /*@modifies spec->sourceHeader, spec->sourceCpioList, spec->cookie,
00540                 spec->sourceRpmName, spec->sourcePkgId, spec->sourceHdrInit,
00541                 spec->macros, spec->BASpecs,
00542                 spec->BANames, *spec->packages,
00543                 spec->packages->cpioList, spec->packages->fileList,
00544                 spec->packages->specialDoc, spec->packages->header,
00545                 rpmGlobalMacroContext, fileSystem, internalState @*/;
00546 
00552 rpmRC packageBinaries(Spec spec)
00553         /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
00554         /*@modifies spec->packages->header, spec->packages->cpioList,
00555                 spec->sourceRpmName, spec->cookie, spec->sourcePkgId,
00556                 rpmGlobalMacroContext, fileSystem, internalState @*/;
00557 
00563 rpmRC packageSources(Spec spec)
00564         /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
00565         /*@modifies spec->sourceHeader, spec->cookie, spec->sourceCpioList,
00566                 spec->sourceRpmName, spec->sourcePkgId, spec->packages->header,
00567                 rpmGlobalMacroContext, fileSystem, internalState @*/;
00568 
00569 /*@=redecl@*/
00570 #ifdef __cplusplus
00571 }
00572 #endif
00573 
00574 #endif  /* _H_RPMBUILD_ */

Generated on Mon Nov 29 2010 05:18:42 for rpm by  doxygen 1.7.2