From: Chen Qi Date: Tue, 15 Nov 2016 06:31:06 +0000 (+0800) Subject: rpm: fix multilib macro installation X-Git-Tag: lucaceresoli/bug-15201-perf-libtraceevent-missing~23564 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=40e92de46489bdab0af48fedc46c0d153355f15c;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git rpm: fix multilib macro installation For now, the rpm macro for multilib is not installed correctly. For example, in x86-64 lib32 situation, the macro is installed under tmp/work/x86-pokymllib32-linux/rpm/5.4.16-r0/image/usr/lib/rpm/poky/i686-linux/. The directory is even not under WORKDIR. And it will of course not be packaged. We need to save necessary values before updating the localdata and restore them so that the macros could be installed into the correct directory. Signed-off-by: Chen Qi Signed-off-by: Ross Burton --- diff --git a/meta/recipes-devtools/rpm/rpm_5.4.16.bb b/meta/recipes-devtools/rpm/rpm_5.4.16.bb index 85eb5fef1e6..182818ee091 100644 --- a/meta/recipes-devtools/rpm/rpm_5.4.16.bb +++ b/meta/recipes-devtools/rpm/rpm_5.4.16.bb @@ -626,8 +626,9 @@ def multilib_rpmmacros(d): localdata.delVar('TOOLCHAIN_OPTIONS') # Set 'localdata' values to be consistent with 'd' values. - localdata.setVar('distromacrodir', d.getVar('distromacrodir', True)) - localdata.setVar('WORKDIR', d.getVar('WORKDIR', True)) + distromacrodirVal = d.getVar('distromacrodir', True) + workdirVal = d.getVar('WORKDIR', True) + dval = d.getVar('D', True) ret = gen_arch_macro(localdata) @@ -639,6 +640,9 @@ def multilib_rpmmacros(d): localdata.setVar("OVERRIDES", overrides) localdata.setVar("MLPREFIX", item + "-") bb.data.update_data(localdata) + localdata.setVar('WORKDIR', workdirVal) + localdata.setVar('distromacrodir', distromacrodirVal) + localdata.setVar('D', dval) ret += gen_arch_macro(localdata) return ret