[OE-core] [PATCH] python-smartpm: multilib fixes
Mark Hatle
mark.hatle at windriver.com
Mon Jan 28 19:38:02 UTC 2013
On 1/28/13 9:33 AM, Bogdan Marinescu wrote:
> To fix some multilib issues, change the way smart's RPM backend decides
> if two packages can coexist:
>
> - don't test the "multi-version" flag on the packet. In Yocto,
> almost every package can be "multi-version" in a multilib configuration.
> - let two packages coexist if they have different versions OR different
> architectures (which is fundamental for multilib).
>
> [YOCTO #3681]
>
> Signed-off-by: Bogdan Marinescu <bogdan.a.marinescu at intel.com>
> ---
> .../python-smartpm/smart-multilib-fixes.patch | 31 ++++++++++++++++++++
> .../python/python-smartpm_1.4.1.bb | 3 +-
> 2 files changed, 33 insertions(+), 1 deletion(-)
> create mode 100644 meta/recipes-devtools/python/python-smartpm/smart-multilib-fixes.patch
>
> diff --git a/meta/recipes-devtools/python/python-smartpm/smart-multilib-fixes.patch b/meta/recipes-devtools/python/python-smartpm/smart-multilib-fixes.patch
> new file mode 100644
> index 0000000..6051ef3
> --- /dev/null
> +++ b/meta/recipes-devtools/python/python-smartpm/smart-multilib-fixes.patch
> @@ -0,0 +1,31 @@
> +smart multilib fixes
> +
> +To fix some multilib issues, change the way the RPM backend decides
> +if two packages can coexist:
> +
> + - don't test the "multi-version" flag on the packet. In Yocto,
> +almost every package can be "multi-version" in a multilib configuration.
> + - let two packages coexist if they have different versions OR different
> +architectures (which is fundamental for multilib).
> +
> +Upstream-Status: Pending
> +
> +Signed-off-by: Bogdan Marinescu <bogdan.a.marinescu at intel.com>
> +
> +diff --git a/smart/backends/rpm/base.py b/smart/backends/rpm/base.py
> +index 6e83d40..72eb8a9 100644
> +--- a/smart/backends/rpm/base.py
> ++++ b/smart/backends/rpm/base.py
> +@@ -233,9 +233,9 @@ class RPMPackage(Package):
> + if (selfcolor and othercolor and selfcolor != othercolor and
> + not sysconf.get("rpm-strict-multilib")):
> + return True
> +- if not pkgconf.testFlag("multi-version", self):
> +- return False
> +- return selfver != otherver
> ++ #if not pkgconf.testFlag("multi-version", self):
> ++ # return False
> ++ return selfver != otherver or selfarch != otherarch
I'm not sure this is right. There is a need one some RPM systems to allow for
"multiple versions" of a package to be installable. It's fairly normal for
kernel upgrades to allow this.
The multi-arch however should always ben enabled in our configuration. The
check really should be that if selfarch != otherarch then it's an 'ok'
configuration. The version check should only happen based on the multi-version.
--Mark
> +
> + def matches(self, relation, version):
> + if not relation:
> 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 4d0f96b..06641ad 100644
> --- a/meta/recipes-devtools/python/python-smartpm_1.4.1.bb
> +++ b/meta/recipes-devtools/python/python-smartpm_1.4.1.bb
> @@ -11,7 +11,7 @@ LICENSE = "GPLv2"
> LIC_FILES_CHKSUM = "file://LICENSE;md5=393a5ca445f6965873eca0259a17f833"
>
> DEPENDS = "python rpm"
> -PR = "r7"
> +PR = "r8"
> SRCNAME = "smart"
>
> SRC_URI = "\
> @@ -25,6 +25,7 @@ SRC_URI = "\
> file://smart-tmpdir.patch \
> file://smart-metadata-match.patch \
> file://smart-improve-error-reporting.patch \
> + file://smart-multilib-fixes.patch \
> "
>
> SRC_URI[md5sum] = "573ef32ba177a6b3c4bf7ef04873fcb6"
>
More information about the Openembedded-core
mailing list