]> code.ossystems Code Review - openembedded-core.git/commitdiff
rpm: fix multilib macro installation
authorChen Qi <Qi.Chen@windriver.com>
Tue, 15 Nov 2016 06:31:06 +0000 (14:31 +0800)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 23 Nov 2016 11:02:29 +0000 (11:02 +0000)
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 <Qi.Chen@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
meta/recipes-devtools/rpm/rpm_5.4.16.bb

index 85eb5fef1e60f33afe66b8c4234d369993720903..182818ee091292baa55e3c723e8b8edb745de769 100644 (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