--- rpm-4.4.2/build/rpmfc.c.skip 2006-05-04 14:38:26.000000000 -0400 +++ rpm-4.4.2/build/rpmfc.c 2006-05-04 14:45:10.000000000 -0400 @@ -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@*/