rpm: Ensure that we check both providename and filepaths
In lib/rpmts.c we need to make sure to look for missing dependencies, such as /bin/sh, in both the providename and filepaths DB. Previously the system would key off an initial '/' and only look in the filepaths DB. This causes problems when a package such as "bash", has a Provides: /bin/sh. (From OE-Core rev: 08fb526c42e85c89135960344745e878c5fb633a) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
554cac7d13
commit
100e3c9b75
|
@ -0,0 +1,36 @@
|
|||
lib/rpmts.c: Ensure that we check both providename and filepaths
|
||||
|
||||
When looking up a missing dependencies, such as /bin/sh, we need to lookup
|
||||
in both the providename and filepaths DB, not just the filepaths DB.
|
||||
|
||||
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
|
||||
|
||||
--- rpm-5.4.0.orig/lib/rpmts.c 2010-12-27 16:08:25.000000000 -0600
|
||||
+++ rpm-5.4.0/lib/rpmts.c 2012-04-12 15:01:12.990184067 -0500
|
||||
@@ -403,8 +403,8 @@
|
||||
if (sdb == NULL)
|
||||
continue;
|
||||
|
||||
- /* Look for a matching Provides: in suggested universe. */
|
||||
- rpmtag = (*keyp == '/' ? RPMTAG_FILEPATHS : RPMTAG_PROVIDENAME);
|
||||
+ rpmtag = RPMTAG_PROVIDENAME;
|
||||
+ do {
|
||||
mi = rpmmiInit(sdb, rpmtag, keyp, keylen);
|
||||
while ((h = rpmmiNext(mi)) != NULL) {
|
||||
size_t hnamelen;
|
||||
@@ -439,6 +439,15 @@
|
||||
bhnamelen = hnamelen;
|
||||
}
|
||||
mi = rpmmiFree(mi);
|
||||
+
|
||||
+ if (bh == NULL && *keyp == '/' && rpmtag == RPMTAG_PROVIDENAME) {
|
||||
+ rpmtag = RPMTAG_FILEPATHS;
|
||||
+ continue;
|
||||
+ }
|
||||
+
|
||||
+ break;
|
||||
+ } while (1);
|
||||
+
|
||||
}
|
||||
|
||||
/* Is there a suggested resolution? */
|
|
@ -45,7 +45,7 @@ LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1"
|
|||
DEPENDS = "bzip2 zlib db openssl elfutils expat libpcre attr acl popt ${extrarpmdeps}"
|
||||
extrarpmdeps = "python perl file"
|
||||
extrarpmdeps_virtclass-native = "file-native"
|
||||
PR = "r35"
|
||||
PR = "r36"
|
||||
|
||||
# rpm2cpio is a shell script, which is part of the rpm src.rpm. It is needed
|
||||
# in order to extract the distribution SRPM into a format we can extract...
|
||||
|
@ -69,6 +69,7 @@ SRC_URI = "http://www.rpm5.org/files/rpm/rpm-5.4/rpm-5.4.0-0.20101229.src.rpm;ex
|
|||
file://fix_for_automake_1.11.2.patch \
|
||||
file://pythondeps.sh \
|
||||
file://rpmdeps-oecore.patch \
|
||||
file://rpm-resolvedep.patch \
|
||||
"
|
||||
|
||||
# file://rpm-autoconf.patch \
|
||||
|
|
Loading…
Reference in New Issue