From: Dongxiao Xu Date: Wed, 3 Aug 2011 14:53:15 +0000 (+0800) Subject: package_rpm: Fix package rename issue in multilib case X-Git-Tag: lucaceresoli/bug-15201-perf-libtraceevent-missing~44487 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=216a1cfe7973e99e3e79585040e91f7a6e298884;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git package_rpm: Fix package rename issue in multilib case do_package task will write information into pkgdata and do_package_write_rpm will read them out. Take lib32-dates as an example, one of its RDEPENDS is li32-gtk+, and PKG_lib32-gtk+ = "libgtk-2.0", these info is stored at: tmp/pkgdata/x86_64-pokymllib32-linux/runtime/lib32-dates. Function "mapping_rename_hook" in do_package_write_rpm is to handle those renamed packages. However before it executes, translate_vers has stripped the multilib prefix out, making it failed to find PKG_gtk+ value in pkgdata. This commit moves the strip_multilib out of translate_vers and call it after "mapping_rename_hook". [YOCTO #1368] CC: Mark Hatle Signed-off-by: Dongxiao Xu Signed-off-by: Lianhao Lu --- diff --git a/meta/classes/package_rpm.bbclass b/meta/classes/package_rpm.bbclass index 7a0c6daae11..9ef1acd475b 100644 --- a/meta/classes/package_rpm.bbclass +++ b/meta/classes/package_rpm.bbclass @@ -394,7 +394,7 @@ python write_specfile () { pv = subd['PKGV'] reppv = pv.replace('-', '+') ver = ver.replace(pv, reppv) - newdeps_dict[strip_multilib(dep, d)] = ver + newdeps_dict[dep] = ver depends = bb.utils.join_deps(newdeps_dict) bb.data.setVar(varname, depends.strip(), d) @@ -516,12 +516,12 @@ python write_specfile () { # Map the dependencies into their final form bb.build.exec_func("mapping_rename_hook", localdata) - splitrdepends = bb.data.getVar('RDEPENDS', localdata, True) or "" - splitrrecommends = bb.data.getVar('RRECOMMENDS', localdata, True) or "" - splitrsuggests = bb.data.getVar('RSUGGESTS', localdata, True) or "" - splitrprovides = bb.data.getVar('RPROVIDES', localdata, True) or "" - splitrreplaces = bb.data.getVar('RREPLACES', localdata, True) or "" - splitrconflicts = bb.data.getVar('RCONFLICTS', localdata, True) or "" + splitrdepends = strip_multilib(bb.data.getVar('RDEPENDS', localdata, True), d) or "" + splitrrecommends = strip_multilib(bb.data.getVar('RRECOMMENDS', localdata, True), d) or "" + splitrsuggests = strip_multilib(bb.data.getVar('RSUGGESTS', localdata, True), d) or "" + splitrprovides = strip_multilib(bb.data.getVar('RPROVIDES', localdata, True), d) or "" + splitrreplaces = strip_multilib(bb.data.getVar('RREPLACES', localdata, True), d) or "" + splitrconflicts = strip_multilib(bb.data.getVar('RCONFLICTS', localdata, True), d) or "" splitrobsoletes = [] # For now we need to manually supplement RPROVIDES with any update-alternatives links