diff options
Diffstat (limited to 'build/rpmspec.h')
-rw-r--r-- | build/rpmspec.h | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/build/rpmspec.h b/build/rpmspec.h new file mode 100644 index 0000000..195fc72 --- /dev/null +++ b/build/rpmspec.h @@ -0,0 +1,88 @@ +#ifndef _H_SPEC_ +#define _H_SPEC_ + +/** \ingroup rpmbuild + * \file build/rpmspec.h + * The rpmSpec and Package data structures used during build. + */ + +#include <rpm/rpmstring.h> /* StringBuf */ +#include <rpm/rpmcli.h> /* for QVA_t */ + +#ifdef __cplusplus +extern "C" { +#endif + +/** \ingroup rpmbuild + */ +typedef struct Package_s * rpmSpecPkg; +typedef struct Source * rpmSpecSrc; +typedef struct rpmSpecIter_s * rpmSpecPkgIter; +typedef struct rpmSpecIter_s * rpmSpecSrcIter; + +enum rpmSourceFlags_e { + RPMBUILD_ISSOURCE = (1 << 0), + RPMBUILD_ISPATCH = (1 << 1), + RPMBUILD_ISICON = (1 << 2), + RPMBUILD_ISNO = (1 << 3), +}; + +typedef rpmFlags rpmSourceFlags; + +#define RPMBUILD_DEFAULT_LANG "C" + +enum rpmSpecFlags_e { + RPMSPEC_NONE = 0, + RPMSPEC_ANYARCH = (1 << 0), + RPMSPEC_FORCE = (1 << 1), + RPMSPEC_NOLANG = (1 << 2), +}; + +typedef rpmFlags rpmSpecFlags; + +/** \ingroup rpmbuild + * Destroy Spec structure. + * @param spec spec file control structure + * @return NULL always + */ +rpmSpec rpmSpecFree(rpmSpec spec); + +/* Iterator for spec packages */ +rpmSpecPkgIter rpmSpecPkgIterInit(rpmSpec spec); +rpmSpecPkg rpmSpecPkgIterNext(rpmSpecPkgIter iter); +rpmSpecPkgIter rpmSpecPkgIterFree(rpmSpecPkgIter iter); + +/* Getters for spec package attributes */ +Header rpmSpecPkgHeader(rpmSpecPkg pkg); + +/* Iterator for spec sources */ +rpmSpecSrcIter rpmSpecSrcIterInit(rpmSpec spec); +rpmSpecSrc rpmSpecSrcIterNext(rpmSpecSrcIter iter); +rpmSpecSrcIter rpmSpecSrcIterFree(rpmSpecSrcIter iter); + +/* Getters for spec source attributes */ +rpmSourceFlags rpmSpecSrcFlags(rpmSpecSrc src); +int rpmSpecSrcNum(rpmSpecSrc src); +const char * rpmSpecSrcFilename(rpmSpecSrc src, int full); + +/* + * Retrieve parsed spec script section (RPMBUILD_PREP, RPMBUILD_BUILD etc). + * As a special case, RPMBUILD_NONE as section returns the entire spec in + * preprocessed (macros expanded etc) format. + */ +const char * rpmSpecGetSection(rpmSpec spec, int section); + +/** \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); + +#ifdef __cplusplus +} +#endif + +#endif /* _H_SPEC_ */ |