[bitbake-devel] [PATCH] When sorting packages, also sort by version at the lowest level
Cody P Schafer
dev at codyps.com
Thu Jun 18 19:06:50 UTC 2015
This makes sure we chose the highest versioned package when there is an
option to choose among multiple packages (for example, if
PREFERRED_VERSION contains a wildcard like PREFERRED_VERSION_foo =
"4.%")
Signed-off-by: Cody P Schafer <dev at codyps.com>
---
lib/bb/providers.py | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/lib/bb/providers.py b/lib/bb/providers.py
index 637e1fa..40b7fd1 100644
--- a/lib/bb/providers.py
+++ b/lib/bb/providers.py
@@ -26,6 +26,7 @@ import logging
from bb import data, utils
from collections import defaultdict
import bb
+from functools import cmp_to_key
logger = logging.getLogger("BitBake.Provider")
@@ -77,6 +78,8 @@ def sortPriorities(pn, dataCache, pkg_pn = None):
"""
Reorder pkg_pn by file priority and default preference
"""
+ def version_cmp(f1, f2):
+ utils.vercmp(dataCache.pkg_pepvpr[f1], dataCache.pkg_pepvpr[f2])
if not pkg_pn:
pkg_pn = dataCache.pkg_pn
@@ -95,7 +98,7 @@ def sortPriorities(pn, dataCache, pkg_pn = None):
for pri in sorted(priorities):
tmp_pref = []
for pref in sorted(priorities[pri]):
- tmp_pref.extend(priorities[pri][pref])
+ tmp_pref.extend(sorted(priorities[pri][pref], key=cmp_to_key(version_cmp)))
tmp_pn = [tmp_pref] + tmp_pn
return tmp_pn
--
2.4.3
More information about the bitbake-devel
mailing list