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.

(From OE-Core rev: 40e92de46489bdab0af48fedc46c0d153355f15c)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Chen Qi 2016-11-15 14:31:06 +08:00 committed by Richard Purdie
parent 40c07e1041
commit 43a135b0c8
1 changed files with 6 additions and 2 deletions

View File

@ -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