[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