160 lines
4.3 KiB
C
160 lines
4.3 KiB
C
#ifndef _H_RPMBUILD_
|
|
#define _H_RPMBUILD_
|
|
|
|
/* This is the *only* module users of librpmbuild should need to include */
|
|
#include "rpmlib.h"
|
|
|
|
/* and it shouldn't need these :-( */
|
|
#include "stringbuf.h"
|
|
#include "misc.h"
|
|
|
|
/* but this will be needed */
|
|
#include "rpmspec.h"
|
|
|
|
/* from build/build.h */
|
|
|
|
#define RPMBUILD_PREP (1 << 0)
|
|
#define RPMBUILD_BUILD (1 << 1)
|
|
#define RPMBUILD_INSTALL (1 << 2)
|
|
#define RPMBUILD_CLEAN (1 << 3)
|
|
#define RPMBUILD_FILECHECK (1 << 4)
|
|
#define RPMBUILD_PACKAGESOURCE (1 << 5)
|
|
#define RPMBUILD_PACKAGEBINARY (1 << 6)
|
|
#define RPMBUILD_RMSOURCE (1 << 7)
|
|
#define RPMBUILD_RMBUILD (1 << 8)
|
|
#define RPMBUILD_STRINGBUF (1 << 9) /* only for doScript() */
|
|
#define RPMBUILD_RMSPEC (1 << 10)
|
|
|
|
/* from build/misc.h */
|
|
|
|
#include <ctype.h>
|
|
|
|
#define FREE(x) { if (x) free((void *)x); x = NULL; }
|
|
#define SKIPSPACE(s) { while (*(s) && isspace(*(s))) (s)++; }
|
|
#define SKIPNONSPACE(s) { while (*(s) && !isspace(*(s))) (s)++; }
|
|
|
|
#define PART_SUBNAME 0
|
|
#define PART_NAME 1
|
|
|
|
/* from build/part.h */
|
|
|
|
#define PART_NONE 0
|
|
#define PART_PREAMBLE 1
|
|
#define PART_PREP 2
|
|
#define PART_BUILD 3
|
|
#define PART_INSTALL 4
|
|
#define PART_CLEAN 5
|
|
#define PART_FILES 6
|
|
#define PART_PRE 7
|
|
#define PART_POST 8
|
|
#define PART_PREUN 9
|
|
#define PART_POSTUN 10
|
|
#define PART_DESCRIPTION 11
|
|
#define PART_CHANGELOG 12
|
|
#define PART_TRIGGERIN 13
|
|
#define PART_TRIGGERUN 14
|
|
#define PART_VERIFYSCRIPT 15
|
|
#define PART_BUILDARCHITECTURES 16
|
|
#define PART_TRIGGERPOSTUN 17
|
|
|
|
/* from build/read.h */
|
|
|
|
#define STRIP_NOTHING 0
|
|
#define STRIP_TRAILINGSPACE (1 << 0)
|
|
#define STRIP_COMMENTS (1 << 1)
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* from build/names.h */
|
|
|
|
void freeNames(void);
|
|
/*@observer@*/ const char *getUname(uid_t uid);
|
|
/*@observer@*/ const char *getUnameS(const char *uname);
|
|
/*@observer@*/ const char *getGname(gid_t gid);
|
|
/*@observer@*/ const char *getGnameS(const char *gname);
|
|
|
|
/*@observer@*/ const char *const buildHost(void);
|
|
/*@observer@*/ time_t *const getBuildTime(void);
|
|
|
|
/* from build/read.h */
|
|
|
|
/* returns 0 - success */
|
|
/* 1 - EOF */
|
|
/* <0 - error */
|
|
int readLine(Spec spec, int strip);
|
|
|
|
void closeSpec(Spec spec);
|
|
void handleComments(char *s);
|
|
|
|
/* from build/part.h */
|
|
|
|
int isPart(char *line);
|
|
|
|
/* from build/misc.h */
|
|
|
|
int parseNum(const char *line, /*@out@*/int *res);
|
|
/*@observer@*/ const char *cleanFileName(const char *name);
|
|
|
|
/* from build/parse.h */
|
|
|
|
void addChangelogEntry(Header h, time_t time, const char *name, const char *text);
|
|
int parseChangelog(Spec spec);
|
|
int parseDescription(Spec spec);
|
|
int parseFiles(Spec spec);
|
|
int parsePreamble(Spec spec, int initialPackage);
|
|
int parsePrep(Spec spec);
|
|
int parseRCPOT(Spec spec, Package pkg, const char *field, int tag, int index);
|
|
int parseTrigger(Spec spec, Package pkg, char *field, int tag);
|
|
int parseScript(Spec spec, int parsePart);
|
|
int parseBuildInstallClean(Spec spec, int parsePart);
|
|
|
|
/* from build/expression.h */
|
|
|
|
int parseExpressionBoolean(Spec, char *);
|
|
char *parseExpressionString(Spec, char *);
|
|
|
|
/* from build/build.h */
|
|
|
|
int doScript(Spec spec, int what, const char *name, StringBuf sb, int test);
|
|
|
|
/* from build/package.h */
|
|
|
|
int lookupPackage(Spec spec, const char *name, int flag, /*@out@*/Package *pkg);
|
|
/*@only@*/ Package newPackage(Spec spec);
|
|
void freePackages(Spec spec);
|
|
void freePackage(/*@only@*/ Package p);
|
|
|
|
/* from build/reqprov.h */
|
|
|
|
int addReqProv(/*@unused@*/Spec spec, Header h,
|
|
int flag, const char *name, const char *version, int index);
|
|
|
|
/* from build/files.h */
|
|
|
|
int processBinaryFiles(Spec spec, int installSpecialDoc, int test);
|
|
void initSourceHeader(Spec spec);
|
|
int processSourceFiles(Spec spec);
|
|
|
|
/* global entry points */
|
|
|
|
int parseSpec(Spec *specp, const char *specFile, const char *buildRoot,
|
|
int inBuildArch, const char *passPhrase, char *cookie, int anyarch,
|
|
int force);
|
|
|
|
extern int (*parseSpecVec) (Spec *specp, const char *specFile, const char *buildRoot,
|
|
int inBuildArch, const char *passPhrase, char *cookie, int anyarch,
|
|
int force); /* XXX FIXME */
|
|
|
|
int buildSpec(Spec spec, int what, int test);
|
|
|
|
int packageBinaries(Spec spec);
|
|
int packageSources(Spec spec);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* _H_RPMBUILD_ */
|