summaryrefslogtreecommitdiff
path: root/build/spec.h
diff options
context:
space:
mode:
Diffstat (limited to 'build/spec.h')
-rw-r--r--build/spec.h130
1 files changed, 117 insertions, 13 deletions
diff --git a/build/spec.h b/build/spec.h
index d6d967c0e..28d73697a 100644
--- a/build/spec.h
+++ b/build/spec.h
@@ -1,23 +1,127 @@
-/* RPM - Copyright (C) 1995 Red Hat Software
- *
- * spec.h - routines for parsing are looking up info in a spec file
- */
-
#ifndef _SPEC_H_
#define _SPEC_H_
-#include <stdio.h>
+#include "header.h"
+#include "stringbuf.h"
+#include "macro.h"
+
+#if 0
+struct ReqProvTrigger {
+ int flags;
+ char *name;
+ char *version;
+ int index; /* Only used for triggers */
+ struct ReqProvTrigger *next;
+};
+#endif
+
+#define RPMBUILD_ISSOURCE 1
+#define RPMBUILD_ISPATCH (1 << 1)
+#define RPMBUILD_ISICON (1 << 2)
+#define RPMBUILD_ISNO (1 << 3)
+
+#define RPMBUILD_DEFAULT_LANG "C"
+
+struct Source {
+ char *fullSource;
+ char *source; /* Pointer into fullSource */
+ int flags;
+ int num;
+ struct Source *next;
+};
+
+struct ReadLevelEntry {
+ int reading;
+ struct ReadLevelEntry *next;
+};
+
+struct SpecStruct {
+ char *specFile;
+ char *sourceRpmName;
+
+ FILE *file;
+ char readBuf[BUFSIZ];
+ char *readPtr;
+ char line[BUFSIZ];
+ int lineNum;
+
+ struct ReadLevelEntry *readStack;
+
+ Header buildRestrictions;
+ struct SpecStruct **buildArchitectureSpecs;
+ char ** buildArchitectures;
+ int buildArchitectureCount;
+ int inBuildArchitectures;
+
+ int gotBuildRoot;
+ char *buildRoot;
+ char *buildSubdir;
+
+ char *docDir;
+
+ char *passPhrase;
+ int timeCheck;
+ char *cookie;
+
+ struct Source *sources;
+ int numSources;
+ int noSource;
+
+ Header sourceHeader;
+ int sourceCpioCount;
+ struct cpioFileMapping *sourceCpioList;
+
+ struct MacroContext macros;
+
+ int autoReqProv;
+
+ StringBuf prep;
+ StringBuf build;
+ StringBuf install;
+ StringBuf clean;
+
+ struct PackageStruct *packages;
+};
+
+struct PackageStruct {
+ Header header;
+
+ int cpioCount;
+ struct cpioFileMapping *cpioList;
+
+ struct Source *icon;
+
+ int autoReqProv;
+
+ char *preInFile;
+ char *postInFile;
+ char *preUnFile;
+ char *postUnFile;
+ char *verifyFile;
-typedef struct SpecRec *Spec;
+ StringBuf specialDoc;
+
+#if 0
+ struct ReqProvTrigger *triggers;
+ char *triggerScripts;
+#endif
+
+ char *fileFile;
+ StringBuf fileList; /* If NULL, package will not be written */
-Spec *parseSpec(FILE *f, char *specfile, char *buildRootOverride);
-void freeSpec(Spec s);
+ struct PackageStruct *next;
+};
-void dumpSpec(Spec s, FILE *f);
+typedef struct SpecStruct *Spec;
+typedef struct PackageStruct *Package;
-char *getSource(Spec s, int ispatch, int num);
-char *getFullSource(Spec s, int ispatch, int num);
+Spec newSpec(void);
+void freeSpec(Spec spec);
-int verifySpec(Spec s);
+int addSource(Spec spec, Package pkg, char *field, int tag);
+char *getSource(Spec spec, int num, int flag);
+char *getFullSource(Spec spec, int num, int flag);
+void freeSources(Spec spec);
+int parseNoSource(Spec spec, char *field, int tag);
#endif _SPEC_H_