csomh / source-git / rpm

Forked from source-git/rpm 4 years ago
Clone
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_ */