diff options
| author | Mark Hatle <mark.hatle@windriver.com> | 2012-04-12 16:21:23 -0500 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-04-13 12:05:53 +0100 |
| commit | 100e3c9b75c17299ea8eaac94c94c078412b0800 (patch) | |
| tree | 18626561d5dfc5f8fd6f4e6368f678f2d1593c6d | |
| parent | 554cac7d13bae47999aabaa5cabb4173e7e75812 (diff) | |
| download | poky-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>
| -rw-r--r-- | meta/recipes-devtools/rpm/rpm/rpm-resolvedep.patch | 36 | ||||
| -rw-r--r-- | meta/recipes-devtools/rpm/rpm_5.4.0.bb | 3 |
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 @@ | |||
| 1 | lib/rpmts.c: Ensure that we check both providename and filepaths | ||
| 2 | |||
| 3 | When looking up a missing dependencies, such as /bin/sh, we need to lookup | ||
| 4 | in both the providename and filepaths DB, not just the filepaths DB. | ||
| 5 | |||
| 6 | Signed-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" | |||
| 45 | DEPENDS = "bzip2 zlib db openssl elfutils expat libpcre attr acl popt ${extrarpmdeps}" | 45 | DEPENDS = "bzip2 zlib db openssl elfutils expat libpcre attr acl popt ${extrarpmdeps}" |
| 46 | extrarpmdeps = "python perl file" | 46 | extrarpmdeps = "python perl file" |
| 47 | extrarpmdeps_virtclass-native = "file-native" | 47 | extrarpmdeps_virtclass-native = "file-native" |
| 48 | PR = "r35" | 48 | PR = "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 \ |
