[Yum-devel] [PATCH] Update from noarch pkg to arch pkg and vice versa. BZ 709225

James Antill james at fedoraproject.org
Wed Sep 21 16:58:46 UTC 2011


On Wed, 2011-09-21 at 10:26 +0200, Zdeněk Pavlas wrote:
> ---
>  yum/__init__.py |   11 ++++++++++-
>  1 files changed, 10 insertions(+), 1 deletions(-)
> 
> diff --git a/yum/__init__.py b/yum/__init__.py
> index 5fb7c00..756472b 100644
> --- a/yum/__init__.py
> +++ b/yum/__init__.py
> @@ -4271,7 +4271,16 @@ class YumBase(depsolve.Depsolve):
>                      
>              # check to see if the pkg we want to install is not _quite_ the newest
>              # one but still technically an update over what is installed.
> -            pot_updated = self.rpmdb.searchNevra(name=available_pkg.name, arch=available_pkg.arch)
> +            pot_updated = []
> +            for p in self.rpmdb.searchNevra(name=available_pkg.name):
> +                if (

 Again, please try and match the style of the rest of yum ... it is far
from perfect already.
 You should also probably add a comment here saying what you are trying
to do and way ... and how it's better than just name+arch (what we had
before).

> +                    p.arch == available_pkg.arch # exact arch match
> +                    or self.conf.obsoletes and (
> +                        p.arch == 'noarch' # from noarch
> +                        or available_pkg.arch == 'noarch' # to noarch
> +                    )
> +                ):

 So if available_pkg.arch == 'noarch' we allow anything, right? Might
even be worth having it's own "top level" test for that.
 Also I've no idea what the conf.obsoletes test is here for ... I meant
that traditionally to have packages "move arch" we had them obsolete
older versions of themselves in their specfiles.

> +                    pot_updated.append(p)
>              if pot_updated and self.allowedMultipleInstalls(available_pkg):
>                  # only compare against the newest of what's installed for kernel
>                  pot_updated = sorted(pot_updated)[-1:]




More information about the Yum-devel mailing list