aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThierry Vignaud <thierry.vignaud@gmail.com>2014-08-26 14:29:35 +0200
committerThierry Vignaud <thierry.vignaud@gmail.com>2014-09-14 15:18:54 +0200
commite3439c2e9f9e02b0c95f892978c6ea16aa3afc1e (patch)
tree7a78a0e54192802adb6ea5e905bf5b8bfb2fdd9b
parent5a26955635dc64cbdbde945acaeffa12f96fdbb6 (diff)
downloadperl-URPM-e3439c2e9f9e02b0c95f892978c6ea16aa3afc1e.tar
perl-URPM-e3439c2e9f9e02b0c95f892978c6ea16aa3afc1e.tar.gz
perl-URPM-e3439c2e9f9e02b0c95f892978c6ea16aa3afc1e.tar.bz2
perl-URPM-e3439c2e9f9e02b0c95f892978c6ea16aa3afc1e.tar.xz
perl-URPM-e3439c2e9f9e02b0c95f892978c6ea16aa3afc1e.zip
make it compatible with rpm-4.12.0
rpm-4.12.0 introduces a new weak deps implementation (the 3rd one to be used in mdv/mga!) The tag we used to use (RPMTAG_SUGGESTSNAME) is now OLDSUGGESTSNAME => we need to handle both old & new tags Hopefully rpm-4.12.x enables to check both old & new tags when using xxxNVRS variants We thus have a choice between RECOMMEND & SUGGEST tags, that both fallback on older SUGGESTS tags if no new ones are found. The difference is that they filter old suggests depending on RPMSENSE_STRONG hint. As we used suggests in the recommends role, this is the perfect time to switch from suggests to recommends (with a patch on rpm in order to fallback RECOMMEND on weak (old) SUGGESTS instead of on strong (old) ENHANCES as we didn't used the later in mga) Our rpm is patched so that RECOMMENDNAME fallbacks too. In Suse, only RECOMMENDNEVRS is the only RECOMMEND variant that handle the fallback on old tags. However, using RPMTAG_RECOMMENDNEVRS makes URPM->suggest_nosense to return versionated suggests, which while not supported by urpmi, do are used by a couple packages (such as git or gnome-user-share) This breaks urpmi as suggests on "foo >= x.y" is not interpreted by urpmi which thinks that "foo" is a new suggests and reinstalls a previously removed suggests Hence we patched rpm. Conflicts: NEWS URPM.xs
-rw-r--r--NEWS3
-rw-r--r--URPM.xs4
2 files changed, 5 insertions, 2 deletions
diff --git a/NEWS b/NEWS
index 6e54e76..d906b20 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,6 @@
+- make it compatible with rpm-4.12.0
+- use new recommends tags instead of suggests ones
+
Version 3.40 - 16 March 2012
- add URPM::traverse_tag_find() for urpme --env
diff --git a/URPM.xs b/URPM.xs
index 62ab588..c8c6eee 100644
--- a/URPM.xs
+++ b/URPM.xs
@@ -805,7 +805,7 @@ pack_header(URPM__Package pkg) {
if (has_old_suggests)
pkg->suggests = pack_list(pkg->h, RPMTAG_REQUIRENAME, RPMTAG_REQUIREFLAGS, RPMTAG_REQUIREVERSION, is_old_suggests);
else
- pkg->suggests = pack_list(pkg->h, RPMTAG_SUGGESTSNAME, 0, 0, NULL);
+ pkg->suggests = pack_list(pkg->h, RPMTAG_RECOMMENDNAME, 0, 0, NULL);
if (pkg->obsoletes == NULL)
pkg->obsoletes = pack_list(pkg->h, RPMTAG_OBSOLETENAME, RPMTAG_OBSOLETEFLAGS, RPMTAG_OBSOLETEVERSION, NULL);
if (pkg->conflicts == NULL)
@@ -1978,7 +1978,7 @@ Pkg_suggests(pkg)
URPM::Package pkg
PPCODE:
PUTBACK;
- int count = return_list_str(pkg->suggests, pkg->h, RPMTAG_SUGGESTSNAME, 0, 0, callback_list_str_xpush, NULL);
+ int count = return_list_str(pkg->suggests, pkg->h, RPMTAG_RECOMMENDNAME, 0, 0, callback_list_str_xpush, NULL);
if (count == 0)
return_list_str(pkg->suggests, pkg->h, RPMTAG_REQUIRENAME, RPMTAG_REQUIREFLAGS, 0,
callback_list_str_xpush_old_suggests, NULL);