lib/oe/package_manager: keep platform_extra and default_platform_extra lists ordered

In RpmPM:insert_feeds_uris, the paths are kept in sets, which are unordered,
but they are later used to set the priority for the Smart channels, so
unexpected results could occur. Change the sets to lists and use the same
code as in create_configs() to add items to the list, rather than the set
operators.

[YOCTO #9717]

(From OE-Core rev: ce4137f4bb955207fede0c4ef338835d9a461f59)

Signed-off-by: Bill Randle <william.c.randle@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Bill Randle 2016-06-24 21:22:31 -07:00 committed by Richard Purdie
parent 6d2bcc2473
commit 58643b74ee
1 changed files with 7 additions and 6 deletions

View File

@ -700,18 +700,19 @@ class RpmPM(PackageManager):
arch_list = self.feed_archs.split()
else:
# List must be prefered to least preferred order
default_platform_extra = set()
platform_extra = set()
default_platform_extra = list()
platform_extra = list()
bbextendvariant = self.d.getVar('BBEXTENDVARIANT', True) or ""
for mlib in self.ml_os_list:
for arch in self.ml_prefix_list[mlib]:
plt = arch.replace('-', '_') + '-.*-' + self.ml_os_list[mlib]
if mlib == bbextendvariant:
default_platform_extra.add(plt)
if plt not in default_platform_extra:
default_platform_extra.append(plt)
else:
platform_extra.add(plt)
platform_extra = platform_extra.union(default_platform_extra)
if plt not in platform_extra:
platform_extra.append(plt)
platform_extra = default_platform_extra + platform_extra
for canonical_arch in platform_extra:
arch = canonical_arch.split('-')[0]