Added AutoReq: and AutoProv:
authormarc <devnull@localhost>
Fri, 17 Apr 1998 04:25:27 +0000 (04:25 +0000)
committermarc <devnull@localhost>
Fri, 17 Apr 1998 04:25:27 +0000 (04:25 +0000)
CVS patchset: 2093
CVS date: 1998/04/17 04:25:27

CHANGES
build/parsePreamble.c
build/reqprov.c
build/spec.c
build/spec.h
lib/rpmlib.h

diff --git a/CHANGES b/CHANGES
index 7c12c41..07a7fb2 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -3,6 +3,7 @@
        - do macro expansion before %if processing
        - dep ordering returns w/ an error as soon as a prereq loop is found
        - autoreqprov flag was being ignored during builds
+       - add autoreq: and autoprov:
 
 2.4.108 -> 2.4.109:
         - remove icons with --rmsource
index f0aa025..6b8b03a 100644 (file)
@@ -405,7 +405,14 @@ static int handlePreambleTag(Spec spec, Package pkg, int tag, char *macro,
        headerAddEntry(pkg->header, tag, RPM_INT32_TYPE, &num, 1);
        break;
       case RPMTAG_AUTOREQPROV:
-       spec->autoReqProv = parseYesNo(field);
+       spec->autoReq = parseYesNo(field);
+       spec->autoProv = spec->autoReq;
+       break;
+      case RPMTAG_AUTOREQ:
+       spec->autoReq = parseYesNo(field);
+       break;
+      case RPMTAG_AUTOPROV:
+       spec->autoProv = parseYesNo(field);
        break;
       case RPMTAG_SOURCE:
       case RPMTAG_PATCH:
@@ -521,6 +528,8 @@ static struct PreambleRec {
     {RPMTAG_BUILDARCHS,    0, 0, "buildarchitectures"},
     {RPMTAG_BUILDARCHS,    0, 0, "buildarch"},
     {RPMTAG_AUTOREQPROV,   0, 0, "autoreqprov"},
+    {RPMTAG_AUTOREQ,       0, 0, "autoreq"},
+    {RPMTAG_AUTOPROV,      0, 0, "autoprov"},
     {RPMTAG_DOCDIR,        0, 0, "docdir"},
     {0, 0, 0, 0}
 };
index baa6e53..dfb9237 100644 (file)
@@ -107,10 +107,14 @@ int generateAutoReqProv(Spec spec, Package pkg,
     char *argv[2];
     char **f, **fsave;
 
-    if (!cpioCount || !spec->autoReqProv) {
+    if (!cpioCount) {
        return 0;
     }
 
+    if (! (spec->autoReq || spec->autoProv)) {
+       return 0;
+    }
+    
     writeBuf = newStringBuf();
     writeBytes = 0;
     while (cpioCount--) {
@@ -121,53 +125,57 @@ int generateAutoReqProv(Spec spec, Package pkg,
 
     /*** Do Provides ***/
 
-    rpmMessage(RPMMESS_NORMAL, "Finding provides...\n");
+    if (spec->autoProv) {
+       rpmMessage(RPMMESS_NORMAL, "Finding provides...\n");
     
-    argv[0] = "find-provides";
-    argv[1] = NULL;
-    readBuf = getOutputFrom(NULL, argv,
-                            getStringBuf(writeBuf), writeBytes, 1);
-    if (!readBuf) {
-       rpmError(RPMERR_EXEC, "Failed to find provides");
-       freeStringBuf(writeBuf);
-       return RPMERR_EXEC;
-    }
-    
-    f = fsave = splitString(getStringBuf(readBuf),
-                           strlen(getStringBuf(readBuf)), '\n');
-    freeStringBuf(readBuf);
-    while (*f) {
-       if (**f) {
-           addReqProv(spec, pkg, RPMSENSE_PROVIDES, *f, NULL, 0);
+       argv[0] = "find-provides";
+       argv[1] = NULL;
+       readBuf = getOutputFrom(NULL, argv,
+                               getStringBuf(writeBuf), writeBytes, 1);
+       if (!readBuf) {
+           rpmError(RPMERR_EXEC, "Failed to find provides");
+           freeStringBuf(writeBuf);
+           return RPMERR_EXEC;
+       }
+       
+       f = fsave = splitString(getStringBuf(readBuf),
+                               strlen(getStringBuf(readBuf)), '\n');
+       freeStringBuf(readBuf);
+       while (*f) {
+           if (**f) {
+               addReqProv(spec, pkg, RPMSENSE_PROVIDES, *f, NULL, 0);
+           }
+           f++;
        }
-       f++;
+       freeSplitString(fsave);
     }
-    freeSplitString(fsave);
 
     /*** Do Requires ***/
-    
-    rpmMessage(RPMMESS_NORMAL, "Finding requires...\n");
-
-    argv[0] = "find-requires";
-    argv[1] = NULL;
-    readBuf = getOutputFrom(NULL, argv,
-                            getStringBuf(writeBuf), writeBytes, 0);
-    if (!readBuf) {
-       rpmError(RPMERR_EXEC, "Failed to find requires");
-       freeStringBuf(writeBuf);
-       return RPMERR_EXEC;
-    }
 
-    f = fsave = splitString(getStringBuf(readBuf),
-                           strlen(getStringBuf(readBuf)), '\n');
-    freeStringBuf(readBuf);
-    while (*f) {
-       if (**f) {
-           addReqProv(spec, pkg, RPMSENSE_ANY, *f, NULL, 0);
+    if (spec->autoReq) {
+       rpmMessage(RPMMESS_NORMAL, "Finding requires...\n");
+
+       argv[0] = "find-requires";
+       argv[1] = NULL;
+       readBuf = getOutputFrom(NULL, argv,
+                               getStringBuf(writeBuf), writeBytes, 0);
+       if (!readBuf) {
+           rpmError(RPMERR_EXEC, "Failed to find requires");
+           freeStringBuf(writeBuf);
+           return RPMERR_EXEC;
+       }
+
+       f = fsave = splitString(getStringBuf(readBuf),
+                               strlen(getStringBuf(readBuf)), '\n');
+       freeStringBuf(readBuf);
+       while (*f) {
+           if (**f) {
+               addReqProv(spec, pkg, RPMSENSE_ANY, *f, NULL, 0);
+           }
+           f++;
        }
-       f++;
+       freeSplitString(fsave);
     }
-    freeSplitString(fsave);
 
     /*** Clean Up ***/
 
index 1be377c..d5410ea 100644 (file)
@@ -64,7 +64,8 @@ Spec newSpec(void)
 
     initMacros(&spec->macros);
     
-    spec->autoReqProv = 1;
+    spec->autoReq = 1;
+    spec->autoProv = 1;
 
     return spec;
 }
index 3da2460..a252f98 100644 (file)
@@ -81,7 +81,8 @@ struct SpecStruct {
     
     struct MacroContext macros;
 
-    int autoReqProv;
+    int autoReq;
+    int autoProv;
     
     StringBuf prep;
     StringBuf build;
index 1a1ebfa..764e9fe 100644 (file)
@@ -123,6 +123,8 @@ extern const struct headerSprintfExtension rpmHeaderFormats[];
 #define RPMTAG_TRIGGERIN                1100 /* internal */
 #define RPMTAG_TRIGGERUN                1101 /* internal */
 #define RPMTAG_TRIGGERPOSTUN            1102 /* internal */
+#define RPMTAG_AUTOREQ                  1103 /* internal */
+#define RPMTAG_AUTOPROV                 1104 /* internal */
     
 #define RPMTAG_EXTERNAL_TAG            1000000