summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/rpm
diff options
context:
space:
mode:
authorMark Hatle <mark.hatle@windriver.com>2012-04-12 16:21:23 -0500
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-04-13 12:05:53 +0100
commit100e3c9b75c17299ea8eaac94c94c078412b0800 (patch)
tree18626561d5dfc5f8fd6f4e6368f678f2d1593c6d /meta/recipes-devtools/rpm
parent554cac7d13bae47999aabaa5cabb4173e7e75812 (diff)
downloadpoky-100e3c9b75c17299ea8eaac94c94c078412b0800.tar.gz
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>
Diffstat (limited to 'meta/recipes-devtools/rpm')
-rw-r--r--meta/recipes-devtools/rpm/rpm/rpm-resolvedep.patch36
-rw-r--r--meta/recipes-devtools/rpm/rpm_5.4.0.bb3
2 files changed, 38 insertions, 1 deletions
diff --git a/meta/recipes-devtools/rpm/rpm/rpm-resolvedep.patch b/meta/recipes-devtools/rpm/rpm/rpm-resolvedep.patch
new file mode 100644
index 0000000000..8c01a30651
--- /dev/null
+++ b/meta/recipes-devtools/rpm/rpm/rpm-resolvedep.patch
@@ -0,0 +1,36 @@
1lib/rpmts.c: Ensure that we check both providename and filepaths
2
3When looking up a missing dependencies, such as /bin/sh, we need to lookup
4in both the providename and filepaths DB, not just the filepaths DB.
5
6Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
7
8--- rpm-5.4.0.orig/lib/rpmts.c 2010-12-27 16:08:25.000000000 -0600
9+++ rpm-5.4.0/lib/rpmts.c 2012-04-12 15:01:12.990184067 -0500
10@@ -403,8 +403,8 @@
11 if (sdb == NULL)
12 continue;
13
14- /* Look for a matching Provides: in suggested universe. */
15- rpmtag = (*keyp == '/' ? RPMTAG_FILEPATHS : RPMTAG_PROVIDENAME);
16+ rpmtag = RPMTAG_PROVIDENAME;
17+ do {
18 mi = rpmmiInit(sdb, rpmtag, keyp, keylen);
19 while ((h = rpmmiNext(mi)) != NULL) {
20 size_t hnamelen;
21@@ -439,6 +439,15 @@
22 bhnamelen = hnamelen;
23 }
24 mi = rpmmiFree(mi);
25+
26+ if (bh == NULL && *keyp == '/' && rpmtag == RPMTAG_PROVIDENAME) {
27+ rpmtag = RPMTAG_FILEPATHS;
28+ continue;
29+ }
30+
31+ break;
32+ } while (1);
33+
34 }
35
36 /* Is there a suggested resolution? */
diff --git a/meta/recipes-devtools/rpm/rpm_5.4.0.bb b/meta/recipes-devtools/rpm/rpm_5.4.0.bb
index 4576f67627..a9c96287f6 100644
--- a/meta/recipes-devtools/rpm/rpm_5.4.0.bb
+++ b/meta/recipes-devtools/rpm/rpm_5.4.0.bb
@@ -45,7 +45,7 @@ LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1"
45DEPENDS = "bzip2 zlib db openssl elfutils expat libpcre attr acl popt ${extrarpmdeps}" 45DEPENDS = "bzip2 zlib db openssl elfutils expat libpcre attr acl popt ${extrarpmdeps}"
46extrarpmdeps = "python perl file" 46extrarpmdeps = "python perl file"
47extrarpmdeps_virtclass-native = "file-native" 47extrarpmdeps_virtclass-native = "file-native"
48PR = "r35" 48PR = "r36"
49 49
50# rpm2cpio is a shell script, which is part of the rpm src.rpm. It is needed 50# rpm2cpio is a shell script, which is part of the rpm src.rpm. It is needed
51# in order to extract the distribution SRPM into a format we can extract... 51# 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
69 file://fix_for_automake_1.11.2.patch \ 69 file://fix_for_automake_1.11.2.patch \
70 file://pythondeps.sh \ 70 file://pythondeps.sh \
71 file://rpmdeps-oecore.patch \ 71 file://rpmdeps-oecore.patch \
72 file://rpm-resolvedep.patch \
72 " 73 "
73 74
74# file://rpm-autoconf.patch \ 75# file://rpm-autoconf.patch \