1 --- rpm-5.4.9/lib/rpmfc.c.drop_deps~ 2012-05-07 22:41:45.000000000 +0200
2 +++ rpm-5.4.9/lib/rpmfc.c 2012-05-15 01:58:00.071056896 +0200
3 @@ -1696,6 +1696,65 @@ static int rpmfcGenerateScriptletDeps(co
7 +static void removeSillyDeps(Header h) {
8 + HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he));
9 + int xx, i, rnum, removed = 0;
10 + const char **deps = NULL;
11 + const char **versions = NULL;
12 + evrFlags *flags = NULL;
14 + he->tag = RPMTAG_REQUIRENAME;
15 + xx = headerGet(h, he, 0);
19 + he->tag = RPMTAG_REQUIREVERSION;
20 + xx = headerGet(h, he, 0);
21 + versions = he->p.argv;
23 + he->tag = RPMTAG_REQUIREFLAGS;
24 + xx = headerGet(h, he, 0);
25 + flags = (evrFlags*)he->p.ui32p;
27 + for (i = 0; i < rnum-removed; i++) {
29 + deps[i] = deps[i+removed];
30 + versions[i] = versions[i+removed];
31 + flags[i] = flags[i+removed];
33 + rpmds req = rpmdsSingle(RPMTAG_REQUIRENAME, deps[i], versions[i], flags[i]);
34 + rpmds prov = rpmdsNew(h, (*deps[i] == '/' && !*versions[i]) ? RPMTAG_BASENAMES : RPMTAG_PROVIDENAME, 0);
35 + if (rpmdsMatch(req, prov)) {
36 + if (flags[i] & RPMSENSE_SCRIPT_PRE)
37 + rpmlog(RPMLOG_ERR, "Requires(pre): on dependency provided by self: %s\n", rpmdsDNEVR(req));
39 + rpmlog(RPMLOG_NOTICE, "Removing dependency on self: %s\n", rpmdsDNEVR(req));
44 + req = rpmdsFree(req);
45 + prov = rpmdsFree(prov);
48 + he->tag = RPMTAG_REQUIRENAME;
49 + he->t = RPM_STRING_ARRAY_TYPE;
52 + headerMod(h, he, 0);
54 + he->tag = RPMTAG_REQUIREVERSION;
55 + he->p.argv = versions;
56 + headerMod(h, he, 0);
58 + he->tag = RPMTAG_REQUIREFLAGS;
59 + he->t = RPM_UINT32_TYPE;
60 + he->p.ui32p = (uint32_t*)flags;
61 + headerMod(h, he, 0);
66 rpmRC rpmfcGenerateDepends(void * _spec, void * _pkg)
68 HE_t he = (HE_t) memset(alloca(sizeof(*he)), 0, sizeof(*he));
69 @@ -1729,6 +1788,7 @@ rpmRC rpmfcGenerateDepends(void * _spec,
70 if (internaldeps == 0) {
71 /* ... then generate dependencies using %{__find_requires} et al. */
72 rc = rpmfcGenerateDependsHelper(spec, pkg, fi);
73 + removeSillyDeps(pkg->header);
74 printDeps(pkg->header);
77 @@ -1946,6 +2006,8 @@ assert(ac == (int)he->c);
78 xx = headerPut(pkg->header, he, 0);
81 + removeSillyDeps(pkg->header);
83 printDeps(pkg->header);
85 if (fc != NULL && _rpmfc_debug) {