package_rpm: enhance strip_multilib function
authorDongxiao Xu <dongxiao.xu@intel.com>
Wed, 3 Aug 2011 14:52:48 +0000 (22:52 +0800)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 17 Aug 2011 14:14:55 +0000 (15:14 +0100)
The previous logic could only strip MLPREFIX from the first element in
an array, take an example, strip_multilib the [lib32-a lib32-b lib32-c]
will result in [a lib32-b lib32-c]. We need to strip prefix one by one.

This commit change the logic to strip all elements' multilib prefix.

[YOCTO #1368]

CC: Mark Hatle <mark.hatle@windriver.com>
(From OE-Core rev: ca729de4b261e4feba74fdf0b2578890bc80ea90)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/package_rpm.bbclass

index b15786d..7a0c6da 100644 (file)
@@ -357,8 +357,8 @@ python write_specfile () {
                multilibs = d.getVar('MULTILIBS', True) or ""
                for ext in multilibs.split():
                        eext = ext.split(':')
-                       if len(eext) > 1 and eext[0] == 'multilib' and name and name.find(eext[1] + '-') == 0:
-                               name = (eext[1] + '-').join(name.split(eext[1] + '-', 1)[1:])
+                       if len(eext) > 1 and eext[0] == 'multilib' and name and name.find(eext[1] + '-') >= 0:
+                               name = "".join(name.split(eext[1] + '-'))
                return name
 
 #              ml = bb.data.getVar("MLPREFIX", d, True)
@@ -755,8 +755,8 @@ python do_package_rpm () {
        # and dependency information...
        def strip_multilib(name, d):
                ml = bb.data.getVar("MLPREFIX", d, True)
-               if ml and name and len(ml) != 0 and name.find(ml) == 0:
-                       return ml.join(name.split(ml, 1)[1:])
+               if ml and name and len(ml) != 0 and name.find(ml) >= 0:
+                       return "".join(name.split(ml))
                return name
 
        workdir = bb.data.getVar('WORKDIR', d, True)