diff options
author | Saul Wold <sgw@linux.intel.com> | 2014-09-30 10:16:53 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-09-30 20:55:13 +0100 |
commit | 756e499a95cc928688684cc52bde8e31306e6bbc (patch) | |
tree | 33a1dd2e790fe183e4921cf22635897d54c93e5b /meta | |
parent | a3598f87bd22354cce2f2be06f09c2b24f2adb63 (diff) | |
download | openembedded-core-756e499a95cc928688684cc52bde8e31306e6bbc.tar.gz openembedded-core-756e499a95cc928688684cc52bde8e31306e6bbc.tar.bz2 openembedded-core-756e499a95cc928688684cc52bde8e31306e6bbc.zip |
python-smartpm: Add patches for rpm4
Add DEPENDS for python-rpm package from either rpm4 or rpm5
Extend the smart-dflags patch to catch an exception if the api does exist
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
3 files changed, 81 insertions, 26 deletions
diff --git a/meta/recipes-devtools/python/python-smartpm/smart-dflags.patch b/meta/recipes-devtools/python/python-smartpm/smart-dflags.patch index 3f27262156..531ea51cad 100644 --- a/meta/recipes-devtools/python/python-smartpm/smart-dflags.patch +++ b/meta/recipes-devtools/python/python-smartpm/smart-dflags.patch @@ -7,34 +7,39 @@ Upstream-Status: Pending Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> -diff --git a/smart/backends/rpm/pm.py b/smart/backends/rpm/pm.py -index 707a146..aec82e7 100644 ---- a/smart/backends/rpm/pm.py -+++ b/smart/backends/rpm/pm.py -@@ -106,6 +106,23 @@ class RPMPackageManager(PackageManager): +[sgw - Added try/catch for rpm4 since it does not have setDFlags() API] + +Signed-off-by: Saul Wold <sgw@linux.intel.com> + + +Index: smart-1.4.1/smart/backends/rpm/pm.py +=================================================================== +--- smart-1.4.1.orig/smart/backends/rpm/pm.py ++++ smart-1.4.1/smart/backends/rpm/pm.py +@@ -106,6 +106,26 @@ class RPMPackageManager(PackageManager): flags |= rpm.RPMTRANS_FLAG_TEST ts.setFlags(flags) -+ dflags = ts.setDFlags(0) -+ if sysconf.get("rpm-noupgrade", False): -+ dflags |= rpm.RPMDEPS_FLAG_NOUPGRADE -+ if sysconf.get("rpm-norequires", False): -+ dflags |= rpm.RPMDEPS_FLAG_NOREQUIRES -+ if sysconf.get("rpm-noconflicts", False): -+ dflags |= rpm.RPMDEPS_FLAG_NOCONFLICTS -+ if sysconf.get("rpm-noobsoletes", False): -+ dflags |= rpm.RPMDEPS_FLAG_NOOBSOLETES -+ if sysconf.get("rpm-noparentdirs", False): -+ dflags |= rpm.RPMDEPS_FLAG_NOPARENTDIRS -+ if sysconf.get("rpm-nolinktos", False): -+ dflags |= rpm.RPMDEPS_FLAG_NOLINKTOS -+ if sysconf.get("rpm-nosuggest", False): -+ dflags |= rpm.RPMDEPS_FLAG_NOSUGGEST -+ ts.setDFlags(dflags) ++ try: ++ dflags = ts.setDFlags(0) ++ if sysconf.get("rpm-noupgrade", False): ++ dflags |= rpm.RPMDEPS_FLAG_NOUPGRADE ++ if sysconf.get("rpm-norequires", False): ++ dflags |= rpm.RPMDEPS_FLAG_NOREQUIRES ++ if sysconf.get("rpm-noconflicts", False): ++ dflags |= rpm.RPMDEPS_FLAG_NOCONFLICTS ++ if sysconf.get("rpm-noobsoletes", False): ++ dflags |= rpm.RPMDEPS_FLAG_NOOBSOLETES ++ if sysconf.get("rpm-noparentdirs", False): ++ dflags |= rpm.RPMDEPS_FLAG_NOPARENTDIRS ++ if sysconf.get("rpm-nolinktos", False): ++ dflags |= rpm.RPMDEPS_FLAG_NOLINKTOS ++ if sysconf.get("rpm-nosuggest", False): ++ dflags |= rpm.RPMDEPS_FLAG_NOSUGGEST ++ ts.setDFlags(dflags) ++ except AttributeError, ae: ++ pass + # Set rpm verbosity level. levelname = sysconf.get('rpm-log-level') level = { --- -1.7.9.5 - diff --git a/meta/recipes-devtools/python/python-smartpm/smart-rpm4-fixes.patch b/meta/recipes-devtools/python/python-smartpm/smart-rpm4-fixes.patch new file mode 100644 index 0000000000..708ffe67d3 --- /dev/null +++ b/meta/recipes-devtools/python/python-smartpm/smart-rpm4-fixes.patch @@ -0,0 +1,49 @@ + +This patch checks for rpm5 related functions in order to allow rpm4 +to work correctly. Currently the rpm4 archscore and filter work +differently enough that they need to be changed. + +Upstream-Status: Inappropriate [OE-Core Specific] + +Signed-off-by: Saul Wold <sgw@linux.intel.com> + +Index: smart-1.4.1/smart/backends/rpm/base.py +=================================================================== +--- smart-1.4.1.orig/smart/backends/rpm/base.py ++++ smart-1.4.1/smart/backends/rpm/base.py +@@ -338,10 +338,14 @@ class RPMObsoletes(Depends): + + _SCOREMAP = {} + def getArchScore(arch, _sm=_SCOREMAP): +- if arch not in _sm: +- score = rpm.archscore(arch) +- _sm[arch] = score +- return _sm.get(arch, 0) ++ try: ++ rpm.platformscore(arch) ++ if arch not in _sm: ++ score = rpm.archscore(arch) ++ _sm[arch] = score ++ return _sm.get(arch, 0) ++ except AttributeError: ++ return 1 + + # TODO: Embed color into nameprovides and obsoletes relations. + _COLORMAP = {"noarch": 0, "x86_64": 2, "ppc64": 2, "s390x": 2, "sparc64": 2} +Index: smart-1.4.1/smart/backends/rpm/pm.py +=================================================================== +--- smart-1.4.1.orig/smart/backends/rpm/pm.py ++++ smart-1.4.1/smart/backends/rpm/pm.py +@@ -235,6 +235,12 @@ class RPMPackageManager(PackageManager): + if sysconf.get("rpm-order"): + ts.order() + probfilter = rpm.RPMPROB_FILTER_OLDPACKAGE ++ try: ++ # Test for RPM5 function ++ rpm.platformscore("") ++ except AttributeError: ++ probfilter |= rpm.RPMPROB_FILTER_IGNOREARCH ++ + if force or reinstall: + probfilter |= rpm.RPMPROB_FILTER_REPLACEPKG + probfilter |= rpm.RPMPROB_FILTER_REPLACEOLDFILES diff --git a/meta/recipes-devtools/python/python-smartpm_1.4.1.bb b/meta/recipes-devtools/python/python-smartpm_1.4.1.bb index 09715794b3..f2eb33d3a3 100644 --- a/meta/recipes-devtools/python/python-smartpm_1.4.1.bb +++ b/meta/recipes-devtools/python/python-smartpm_1.4.1.bb @@ -8,7 +8,7 @@ SECTION = "devel/python" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://LICENSE;md5=393a5ca445f6965873eca0259a17f833" -DEPENDS = "python rpm gettext-native" +DEPENDS = "python rpm gettext-native python-rpm" PR = "r9" SRCNAME = "smart" @@ -32,7 +32,8 @@ SRC_URI = "\ file://smart-config-ignore-all-recommends.patch \ file://smart-attempt.patch \ file://smart-filename-NAME_MAX.patch \ - " + file://smart-rpm4-fixes.patch \ + " SRC_URI[md5sum] = "573ef32ba177a6b3c4bf7ef04873fcb6" SRC_URI[sha256sum] = "b1d519ddb43d60f293b065c28870a5d9e8b591cd49e8c68caea48ace91085eba" |