sgallagh / rpms / rpm

Forked from rpms/rpm 4 years ago
Clone
Paul Nasrat 8793c7c
--- rpm-4.4.2/build/rpmfc.c.skip	2006-05-04 14:38:26.000000000 -0400
Paul Nasrat 8793c7c
+++ rpm-4.4.2/build/rpmfc.c	2006-05-04 14:45:10.000000000 -0400
Paul Nasrat 8793c7c
@@ -722,11 +722,13 @@
Paul Nasrat 8793c7c
 #endif
Paul Nasrat 8793c7c
           t++;
Paul Nasrat 8793c7c
           /* Add to package dependencies. */
Paul Nasrat 8793c7c
-          ds = rpmdsSingle(RPMTAG_REQUIRENAME,
Paul Nasrat 8793c7c
+          if (!fc->skipReq) {
Paul Nasrat 8793c7c
+              ds = rpmdsSingle(RPMTAG_REQUIRENAME,
Paul Nasrat 8793c7c
                            buf, "", RPMSENSE_FIND_REQUIRES);
Paul Nasrat 8793c7c
-          rpmdsMerge(&fc->requires, ds);
Paul Nasrat 8793c7c
-          rpmfcSaveArg(&fc->ddict, rpmfcFileDep(t, fc->ix, ds));
Paul Nasrat 8793c7c
-          ds = rpmdsFree(ds);
Paul Nasrat 8793c7c
+              rpmdsMerge(&fc->requires, ds);
Paul Nasrat 8793c7c
+              rpmfcSaveArg(&fc->ddict, rpmfcFileDep(t, fc->ix, ds));
Paul Nasrat 8793c7c
+              ds = rpmdsFree(ds);
Paul Nasrat 8793c7c
+          }
Paul Nasrat 8793c7c
           break;
Paul Nasrat 8793c7c
       }
Paul Nasrat 8793c7c
     }
Paul Nasrat 8793c7c
@@ -1187,6 +1189,7 @@
Paul Nasrat 8793c7c
     int ix;
Paul Nasrat 8793c7c
     int i;
Paul Nasrat 8793c7c
     int xx;
Paul Nasrat 8793c7c
+    int skipping;
Paul Nasrat 8793c7c
 
Paul Nasrat 8793c7c
     /* Generate package and per-file dependencies. */
Paul Nasrat 8793c7c
     for (fc->ix = 0; fc->fn[fc->ix] != NULL; fc->ix++) {
Paul Nasrat 8793c7c
@@ -1234,15 +1237,18 @@
Paul Nasrat 8793c7c
 	Flags = strtol(se, NULL, 16);
Paul Nasrat 8793c7c
 
Paul Nasrat 8793c7c
 	dix = -1;
Paul Nasrat 8793c7c
+        skipping = 0;
Paul Nasrat 8793c7c
 	switch (deptype) {
Paul Nasrat 8793c7c
 	default:
Paul Nasrat 8793c7c
 	    /*@switchbreak@*/ break;
Paul Nasrat 8793c7c
 	case 'P':	
Paul Nasrat 8793c7c
+            skipping = fc->skipProv;
Paul Nasrat 8793c7c
 	    ds = rpmdsSingle(RPMTAG_PROVIDENAME, N, EVR, Flags);
Paul Nasrat 8793c7c
 	    dix = rpmdsFind(fc->provides, ds);
Paul Nasrat 8793c7c
 	    ds = rpmdsFree(ds);
Paul Nasrat 8793c7c
 	    /*@switchbreak@*/ break;
Paul Nasrat 8793c7c
 	case 'R':
Paul Nasrat 8793c7c
+            skipping = fc->skipReq;
Paul Nasrat 8793c7c
 	    ds = rpmdsSingle(RPMTAG_REQUIRENAME, N, EVR, Flags);
Paul Nasrat 8793c7c
 	    dix = rpmdsFind(fc->requires, ds);
Paul Nasrat 8793c7c
 	    ds = rpmdsFree(ds);
Paul Nasrat 8793c7c
@@ -1264,7 +1270,7 @@
Paul Nasrat 8793c7c
 	    previx = ix;
Paul Nasrat 8793c7c
 	    xx = argiAdd(&fc->fddictx, ix, argiCount(fc->ddictx)-1);
Paul Nasrat 8793c7c
 	}
Paul Nasrat 8793c7c
-	if (fc->fddictn && fc->fddictn->vals)
Paul Nasrat 8793c7c
+	if (fc->fddictn && fc->fddictn->vals && !skipping)
Paul Nasrat 8793c7c
 	    fc->fddictn->vals[ix]++;
Paul Nasrat 8793c7c
     }
Paul Nasrat 8793c7c
 /*@=boundswrite@*/