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