Viewing file:      rpmspec.h (6.02 KB)      -rw-r--r-- Select action/file-type:    (+) |   (+) |   (+) | Code (+) | Session (+) |   (+) | SDB (+) |   (+) |   (+) |   (+) |   (+) |   (+) |
 
#ifndef _H_SPEC_ #define _H_SPEC_
  /** \ingroup rpmbuild  * \file build/rpmspec.h  *  The Spec and Package data structures used during build.  */
  /** \ingroup rpmbuild  */ typedef struct Package_s * Package;
  /** \ingroup rpmbuild  */ struct TriggerFileEntry {     int index; /*@only@*/ char * fileName; /*@only@*/ char * script; /*@only@*/ char * prog; /*@owned@*/ struct TriggerFileEntry * next; };
  #define RPMBUILD_ISSOURCE    (1 << 0) #define RPMBUILD_ISPATCH    (1 << 1) #define RPMBUILD_ISICON        (1 << 2) #define RPMBUILD_ISNO        (1 << 3)
  #define RPMBUILD_DEFAULT_LANG "C"
  /** \ingroup rpmbuild  */ struct Source { /*@owned@*/ char * fullSource; /*@dependent@*/ char * source;     /* Pointer into fullSource */     int flags;     int num; /*@owned@*/ struct Source * next; };
  /** \ingroup rpmbuild  */ /*@-typeuse@*/ typedef struct ReadLevelEntry {     int reading; /*@dependent@*/     struct ReadLevelEntry * next; } RLE_t; /*@=typeuse@*/
  /** \ingroup rpmbuild  */ typedef struct OpenFileInfo { /*@only@*/ const char * fileName;     FD_t fd;     int lineNum;     char readBuf[BUFSIZ]; /*@dependent@*/     char * readPtr; /*@owned@*/     struct OpenFileInfo * next; } OFI_t;
  /** \ingroup rpmbuild  */ typedef struct spectag_s {     int t_tag;     int t_startx;     int t_nlines; /*@only@*/ const char * t_lang; /*@only@*/ const char * t_msgid; } * spectag;
  /** \ingroup rpmbuild  */ typedef struct spectags_s { /*@owned@*/ spectag st_t;     int st_nalloc;     int st_ntags; } * spectags;
  /** \ingroup rpmbuild  */ typedef struct speclines_s { /*@only@*/ char **sl_lines;     int sl_nalloc;     int sl_nlines; } * speclines;
  /** \ingroup rpmbuild  * The structure used to store values parsed from a spec file.  */ struct Spec_s { /*@only@*/     const char * specFile;    /*!< Name of the spec file. */ /*@only@*/     const char * buildRootURL; /*@only@*/     const char * buildSubdir; /*@only@*/     const char * rootURL;
  /*@owned@*/ /*@null@*/     speclines sl; /*@owned@*/ /*@null@*/     spectags st;
  /*@owned@*/     struct OpenFileInfo * fileStack;     char lbuf[10*BUFSIZ]; /*@dependent@*/     char *lbufPtr;     char nextpeekc; /*@dependent@*/     char * nextline; /*@dependent@*/     char * line;     int lineNum;
  /*@owned@*/     struct ReadLevelEntry * readStack;
  /*@refcounted@*/     Header buildRestrictions; /*@owned@*/ /*@null@*/     Spec * BASpecs; /*@only@*/ /*@null@*/     const char ** BANames;     int BACount;     int recursing;        /*!< parse is recursive? */
      int force;     int anyarch;
      int gotBuildRootURL;
  /*@null@*/     char * passPhrase;     int timeCheck; /*@null@*/     const char * cookie;
  /*@owned@*/     struct Source * sources;     int numSources;     int noSource;
  /*@only@*/     const char * sourceRpmName; /*@only@*/     unsigned char * sourcePkgId; /*@refcounted@*/     Header sourceHeader; /*@refcounted@*/     rpmfi sourceCpioList;
  /*@dependent@*/ /*@null@*/     MacroContext macros;
  /*@only@*/     StringBuf prep;        /*!< %prep scriptlet. */ /*@only@*/     StringBuf build;        /*!< %build scriptlet. */ /*@only@*/     StringBuf install;        /*!< %install scriptlet. */ /*@only@*/     StringBuf check;        /*!< %check scriptlet. */ /*@only@*/     StringBuf clean;        /*!< %clean scriptlet. */
  /*@owned@*/     Package packages;        /*!< Package list. */ };
  /** \ingroup rpmbuild  * The structure used to store values for a package.  */ struct Package_s { /*@refcounted@*/     Header header; /*@refcounted@*/     rpmds ds;            /*!< Requires: N = EVR */ /*@refcounted@*/     rpmfi cpioList;
  /*@owned@*/     struct Source * icon;
      int autoReq;     int autoProv;
  /*@only@*/     const char * preInFile;    /*!< %pre scriptlet. */ /*@only@*/     const char * postInFile;    /*!< %post scriptlet. */ /*@only@*/     const char * preUnFile;    /*!< %preun scriptlet. */ /*@only@*/     const char * postUnFile;    /*!< %postun scriptlet. */ /*@only@*/     const char * preTransFile;    /*!< %pretrans scriptlet. */ /*@only@*/     const char * postTransFile;    /*!< %posttrans scriptlet. */ /*@only@*/     const char * verifyFile;    /*!< %verifyscript scriptlet. */
  /*@only@*/     StringBuf specialDoc;
  /*@only@*/     struct TriggerFileEntry * triggerFiles;
  /*@only@*/     const char * fileFile; /*@only@*/     StringBuf fileList;        /* If NULL, package will not be written */
  /*@dependent@*/     Package next; };
  #ifdef __cplusplus extern "C" { #endif
  /** \ingroup rpmbuild  * Create and initialize Spec structure.  * @return spec        spec file control structure  */ /*@only@*/ Spec newSpec(void)     /*@globals rpmGlobalMacroContext @*/     /*@modifies rpmGlobalMacroContext @*/;
  /** \ingroup rpmbuild  * Destroy Spec structure.  * @param spec        spec file control structure  * @return        NULL always  */ /*@null@*/ Spec freeSpec(/*@only@*/ /*@null@*/ Spec spec)     /*@globals fileSystem, internalState @*/     /*@modifies spec, fileSystem, internalState @*/;
  /** \ingroup rpmbuild  * Function to query spec file(s).  * @param ts        transaction set  * @param qva        parsed query/verify options  * @param arg        query argument  * @return        0 on success, else no. of failures  */ int rpmspecQuery(rpmts ts, QVA_t qva, const char * arg)     /*@globals rpmGlobalMacroContext, h_errno,         fileSystem, internalState @*/     /*@modifies ts, qva, rpmGlobalMacroContext,         fileSystem, internalState @*/;
  /** \ingroup rpmbuild  */ struct OpenFileInfo * newOpenFileInfo(void)     /*@*/;
  /** \ingroup rpmbuild  * @param spec        spec file control structure  * @param h  * @param tag  * @param lang  */ spectag stashSt(Spec spec, Header h, int tag, const char * lang)     /*@modifies spec->st @*/;
  /** \ingroup rpmbuild  * @param spec        spec file control structure  * @param pkg        package control  * @param field  * @param tag  */ int addSource(Spec spec, Package pkg, const char * field, int tag)     /*@globals rpmGlobalMacroContext, h_errno @*/     /*@modifies spec->sources, spec->numSources,         spec->st, spec->macros,         pkg->icon,         rpmGlobalMacroContext @*/;
  /** \ingroup rpmbuild  * @param spec        spec file control structure  * @param field  * @param tag  */ int parseNoSource(Spec spec, const char * field, int tag)     /*@modifies nothing @*/;
  #ifdef __cplusplus } #endif
  #endif /* _H_SPEC_ */ 
  |