|
|
2ff057 |
#ifndef _H_SPEC_
|
|
|
2ff057 |
#define _H_SPEC_
|
|
|
2ff057 |
|
|
|
2ff057 |
/** \ingroup rpmbuild
|
|
|
2ff057 |
* \file build/rpmspec.h
|
|
|
2ff057 |
* The rpmSpec and Package data structures used during build.
|
|
|
2ff057 |
*/
|
|
|
2ff057 |
|
|
|
2ff057 |
#include <rpm/rpmstring.h> /* StringBuf */
|
|
|
2ff057 |
#include <rpm/rpmcli.h> /* for QVA_t */
|
|
|
2ff057 |
|
|
|
2ff057 |
#ifdef __cplusplus
|
|
|
2ff057 |
extern "C" {
|
|
|
2ff057 |
#endif
|
|
|
2ff057 |
|
|
|
2ff057 |
/** \ingroup rpmbuild
|
|
|
2ff057 |
*/
|
|
|
2ff057 |
typedef struct Package_s * rpmSpecPkg;
|
|
|
2ff057 |
typedef struct Source * rpmSpecSrc;
|
|
|
2ff057 |
typedef struct rpmSpecIter_s * rpmSpecPkgIter;
|
|
|
2ff057 |
typedef struct rpmSpecIter_s * rpmSpecSrcIter;
|
|
|
2ff057 |
|
|
|
2ff057 |
enum rpmSourceFlags_e {
|
|
|
2ff057 |
RPMBUILD_ISSOURCE = (1 << 0),
|
|
|
2ff057 |
RPMBUILD_ISPATCH = (1 << 1),
|
|
|
2ff057 |
RPMBUILD_ISICON = (1 << 2),
|
|
|
2ff057 |
RPMBUILD_ISNO = (1 << 3),
|
|
|
2ff057 |
};
|
|
|
2ff057 |
|
|
|
2ff057 |
typedef rpmFlags rpmSourceFlags;
|
|
|
2ff057 |
|
|
|
2ff057 |
#define RPMBUILD_DEFAULT_LANG "C"
|
|
|
2ff057 |
|
|
|
2ff057 |
enum rpmSpecFlags_e {
|
|
|
2ff057 |
RPMSPEC_NONE = 0,
|
|
|
2ff057 |
RPMSPEC_ANYARCH = (1 << 0),
|
|
|
2ff057 |
RPMSPEC_FORCE = (1 << 1),
|
|
|
2ff057 |
RPMSPEC_NOLANG = (1 << 2),
|
|
|
2ff057 |
RPMSPEC_NOUTF8 = (1 << 3),
|
|
|
2ff057 |
};
|
|
|
2ff057 |
|
|
|
2ff057 |
typedef rpmFlags rpmSpecFlags;
|
|
|
2ff057 |
|
|
|
2ff057 |
/** \ingroup rpmbuild
|
|
|
2ff057 |
* Destroy Spec structure.
|
|
|
2ff057 |
* @param spec spec file control structure
|
|
|
2ff057 |
* @return NULL always
|
|
|
2ff057 |
*/
|
|
|
2ff057 |
rpmSpec rpmSpecFree(rpmSpec spec);
|
|
|
2ff057 |
|
|
|
2ff057 |
/* Iterator for spec packages */
|
|
|
2ff057 |
rpmSpecPkgIter rpmSpecPkgIterInit(rpmSpec spec);
|
|
|
2ff057 |
rpmSpecPkg rpmSpecPkgIterNext(rpmSpecPkgIter iter);
|
|
|
2ff057 |
rpmSpecPkgIter rpmSpecPkgIterFree(rpmSpecPkgIter iter);
|
|
|
2ff057 |
|
|
|
2ff057 |
/* Getters for spec package attributes */
|
|
|
2ff057 |
Header rpmSpecPkgHeader(rpmSpecPkg pkg);
|
|
|
2ff057 |
|
|
|
2ff057 |
/*
|
|
|
2ff057 |
* Retrieve package specific parsed spec script section (RPMBUILD_FILE_LIST,
|
|
|
2ff057 |
* RPMBUILD_FILE_FILE, RPMBUILD_POLICY) as a malloc'ed string.
|
|
|
2ff057 |
*/
|
|
|
2ff057 |
char * rpmSpecPkgGetSection(rpmSpecPkg pkg, int section);
|
|
|
2ff057 |
|
|
|
2ff057 |
|
|
|
2ff057 |
/* Iterator for spec sources */
|
|
|
2ff057 |
rpmSpecSrcIter rpmSpecSrcIterInit(rpmSpec spec);
|
|
|
2ff057 |
rpmSpecSrc rpmSpecSrcIterNext(rpmSpecSrcIter iter);
|
|
|
2ff057 |
rpmSpecSrcIter rpmSpecSrcIterFree(rpmSpecSrcIter iter);
|
|
|
2ff057 |
|
|
|
2ff057 |
/* Getters for spec source attributes */
|
|
|
2ff057 |
rpmSourceFlags rpmSpecSrcFlags(rpmSpecSrc src);
|
|
|
2ff057 |
int rpmSpecSrcNum(rpmSpecSrc src);
|
|
|
2ff057 |
const char * rpmSpecSrcFilename(rpmSpecSrc src, int full);
|
|
|
2ff057 |
|
|
|
2ff057 |
/*
|
|
|
2ff057 |
* Retrieve parsed spec script section (RPMBUILD_PREP, RPMBUILD_BUILD etc).
|
|
|
2ff057 |
* As a special case, RPMBUILD_NONE as section returns the entire spec in
|
|
|
2ff057 |
* preprocessed (macros expanded etc) format.
|
|
|
2ff057 |
*/
|
|
|
2ff057 |
const char * rpmSpecGetSection(rpmSpec spec, int section);
|
|
|
2ff057 |
|
|
|
2ff057 |
/** \ingroup rpmbuild
|
|
|
2ff057 |
* Function to query spec file(s).
|
|
|
2ff057 |
* @param ts transaction set
|
|
|
2ff057 |
* @param qva parsed query/verify options
|
|
|
2ff057 |
* @param arg query argument
|
|
|
2ff057 |
* @return 0 on success, else no. of failures
|
|
|
2ff057 |
*/
|
|
|
2ff057 |
int rpmspecQuery(rpmts ts, QVA_t qva, const char * arg);
|
|
|
2ff057 |
|
|
|
2ff057 |
#ifdef __cplusplus
|
|
|
2ff057 |
}
|
|
|
2ff057 |
#endif
|
|
|
2ff057 |
|
|
|
2ff057 |
#endif /* _H_SPEC_ */
|