python: respect package order in manifest
Don't sort the manifest when using it to generate packaging rules, so
ordering can be used to have complex packaging rules.
This is a backport of the same changes done by Ross Burton for python3
Changes since v1:
- Rebase
(From OE-Core rev: 5a5a97b1c3914ad4a3e94981bf53897d0a3f4fb3)
(From poky rev: b0ce2e842a4f36672d2aab424d63b09e31eec048)
Change-Id: I8b2edafc7203015a62c2a2bcfee5a73b3e1239ff
Signed-off-by: Andrew Geissler <geissonator@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/poky/meta/recipes-devtools/python/python_2.7.14.bb b/poky/meta/recipes-devtools/python/python_2.7.14.bb
index b923b92..ea54fb9 100644
--- a/poky/meta/recipes-devtools/python/python_2.7.14.bb
+++ b/poky/meta/recipes-devtools/python/python_2.7.14.bb
@@ -207,7 +207,7 @@
INCLUDE_PYCS ?= "1"
python(){
- import json
+ import collections, json
filename = os.path.join(d.getVar('THISDIR'), 'python', 'python2-manifest.json')
# This python changes the datastore based on the contents of a file, so mark
@@ -215,7 +215,7 @@
bb.parse.mark_dependency(d, filename)
with open(filename) as manifest_file:
- python_manifest=json.load(manifest_file)
+ python_manifest=json.load(manifest_file, object_pairs_hook=collections.OrderedDict)
include_pycs = d.getVar('INCLUDE_PYCS')
@@ -248,8 +248,6 @@
d.appendVar('RDEPENDS_' + pypackage, ' ' + pn + '-' + value)
d.setVar('SUMMARY_' + pypackage, python_manifest[key]['summary'])
- # We need to ensure staticdev packages match for files first so we sort in reverse
- newpackages.sort(reverse=True)
# Prepending so to avoid python-misc getting everything
packages = newpackages + packages
d.setVar('PACKAGES', ' '.join(packages))