Hello community, here is the log from the commit of package rpm for openSUSE:Factory checked in at 2013-09-27 19:48:37 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/rpm (Old) and /work/SRC/openSUSE:Factory/.rpm.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "rpm" Changes: -------- rpm-python.changes: same change --- /work/SRC/openSUSE:Factory/rpm/rpm.changes 2013-09-26 11:52:18.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.rpm.new/rpm.changes 2013-09-27 19:48:38.000000000 +0200 @@ -1,0 +2,6 @@ +Fri Sep 27 15:13:45 CEST 2013 - mls@suse.de + +- add selfconflicts.diff: fix self-conflicts and self-obsoletes + handling for verify operations [bnc#838133] + +------------------------------------------------------------------- New: ---- selfconflicts.diff ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ rpm-python.spec: same change ++++++ rpm.spec ++++++ --- /var/tmp/diff_new_pack.jeIgBP/_old 2013-09-27 19:48:41.000000000 +0200 +++ /var/tmp/diff_new_pack.jeIgBP/_new 2013-09-27 19:48:41.000000000 +0200 @@ -139,6 +139,7 @@ Patch85: brp-compress-no-img.patch Patch86: strpoolrehash.diff Patch87: ignore_poolstr_dummy_entries.diff +Patch88: selfconflicts.diff Patch6464: auto-config-update-aarch64.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build # @@ -225,7 +226,7 @@ %patch -P 50 -P 51 -P 52 -P 53 -P 54 -P 55 -P 56 -P 57 -P 58 -P 59 %patch -P 60 -P 61 -P 62 -P 63 -P 64 -P 65 -P 66 -P 67 -P 68 -P 69 %patch -P 70 -P 71 -P 72 -P 73 -P 74 -P 75 -P 76 -P 77 -P 78 -P 79 -%patch -P 80 -P 81 -P 82 -P 83 -P 84 -P 85 -P 86 -P 87 +%patch -P 80 -P 81 -P 82 -P 83 -P 84 -P 85 -P 86 -P 87 -P 88 %ifarch aarch64 %patch6464 %endif ++++++ selfconflicts.diff ++++++
From fae0eef24582dd9e071be8e884ff0851d4b57437 Mon Sep 17 00:00:00 2001 From: Michael Schroeder
Date: Fri, 27 Sep 2013 15:09:20 +0200 Subject: [PATCH] Ignore self-obsoletes and self-conflicts in dependency check code
We already ignored them when checking against the added package list, but not when checking against installed packages. Thus, rpm -V reported them as errors. --- lib/depends.c | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git lib/depends.c lib/depends.c index 3d70e68..3ef27bc 100644 --- lib/depends.c +++ lib/depends.c @@ -504,6 +504,12 @@ static int rpmdbProvides(rpmts ts, depCache dcache, rpmds dep) if (deptag != RPMTAG_OBSOLETENAME && Name[0] == '/') { mi = rpmtsPrunedIterator(ts, RPMDBI_INSTFILENAMES, Name, prune); while ((h = rpmdbNextIterator(mi)) != NULL) { + /* Ignore self-conflicts */ + if (deptag == RPMTAG_CONFLICTNAME) { + unsigned int instance = headerGetInstance(h); + if (instance && instance == rpmdsInstance(dep)) + continue; + } rpmdsNotify(dep, "(db files)", rc); break; } @@ -527,6 +533,12 @@ static int rpmdbProvides(rpmts ts, depCache dcache, rpmds dep) int prix = (selfevr) ? -1 : rpmdbGetIteratorFileNum(mi); int match = rpmdsMatches(tspool, h, prix, dep, selfevr, _rpmds_nopromote); + /* Ignore self-obsoletes and self-conflicts */ + if (match && (deptag == RPMTAG_OBSOLETENAME || deptag == RPMTAG_CONFLICTNAME)) { + unsigned int instance = headerGetInstance(h); + if (instance && instance == rpmdsInstance(dep)) + match = 0; + } if (match) { rpmdsNotify(dep, "(db provides)", rc); break; @@ -672,8 +684,18 @@ static void checkInstDeps(rpmts ts, depCache dcache, rpmte te, rpmstrPool pool = rpmtsPool(ts); while ((h = rpmdbNextIterator(mi)) != NULL) { - char * pkgNEVRA = headerGetAsString(h, RPMTAG_NEVRA); - rpmds ds = rpmdsNewPool(pool, h, depTag, 0); + char * pkgNEVRA; + rpmds ds; + + /* Ignore self-obsoletes and self-conflicts */ + if (depTag == RPMTAG_OBSOLETENAME || depTag == RPMTAG_CONFLICTNAME) { + unsigned int instance = headerGetInstance(h); + if (instance && instance == rpmteDBInstance(te)) + continue; + } + + pkgNEVRA = headerGetAsString(h, RPMTAG_NEVRA); + ds = rpmdsNewPool(pool, h, depTag, 0); checkDS(ts, dcache, te, pkgNEVRA, ds, dep, 0); -- 1.8.1.4 -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org