teknoraver / rpms / rpm

Forked from rpms/rpm 4 months ago
Clone

Blame rpm-4.4.2-rpmfc-skip.patch

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