- add selfconflicts.diff
OBS-URL: https://build.opensuse.org/package/show/Base:System/rpm?expand=0&rev=295
This commit is contained in:
parent
2c5ee86d6c
commit
d3791d0083
@ -1,3 +1,9 @@
|
||||
-------------------------------------------------------------------
|
||||
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]
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Sep 24 10:36:15 UTC 2013 - mail@bernhard-voelker.de
|
||||
|
||||
@ -9,7 +15,7 @@ Tue Sep 24 10:36:15 UTC 2013 - mail@bernhard-voelker.de
|
||||
Wed Sep 11 18:28:39 CEST 2013 - mls@suse.de
|
||||
|
||||
- fix two bugs in the rpmstrPoolRehash() function:
|
||||
adding strpoolrehash.diff and ignore_poolstr_dummy_entries.diff
|
||||
adding strpoolrehash.diff and ignore_poolstr_dummy_entries.diff
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Sep 5 12:01:51 UTC 2013 - schwab@linux-m68k.org
|
||||
|
3
rpm.spec
3
rpm.spec
@ -139,6 +139,7 @@ Patch84: beedigest.diff
|
||||
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 @@ rm -f rpmdb/db.h
|
||||
%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
|
||||
|
67
selfconflicts.diff
Normal file
67
selfconflicts.diff
Normal file
@ -0,0 +1,67 @@
|
||||
From fae0eef24582dd9e071be8e884ff0851d4b57437 Mon Sep 17 00:00:00 2001
|
||||
From: Michael Schroeder <mls@suse.de>
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user