[Yum-devel] [PATCH] Deal with local pkgs that only obsolete something installed, BZ 600969.

Seth Vidal skvidal at fedoraproject.org
Wed Jun 9 13:42:07 UTC 2010



On Tue, 8 Jun 2010, James Antill wrote:

> ---
> yum/__init__.py |    8 +++++---
> 1 files changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/yum/__init__.py b/yum/__init__.py
> index eaeb275..70294ba 100644
> --- a/yum/__init__.py
> +++ b/yum/__init__.py
> @@ -3490,8 +3490,8 @@ class YumBase(depsolve.Depsolve):
>                 for obsoleting_pkg in packagesNewestByName(obs_pkgs):
>                     tx_return.extend(self.install(po=obsoleting_pkg))
>             for available_pkg in availpkgs:
> -                for obsoleted in self.up.obsoleting_dict.get(available_pkg.pkgtup, []):
> -                    obsoleted_pkg = self.getInstalledPackageObject(obsoleted)
> +                for obsoleted_pkg in self._find_obsoletees(available_pkg):
> +                    obsoleted = obsoleted_pkg.pkgtup
>                     txmbr = self.tsInfo.addObsoleting(available_pkg, obsoleted_pkg)
>                     if requiringPo:
>                         txmbr.setAsDep(requiringPo)
> @@ -3736,7 +3736,9 @@ class YumBase(depsolve.Depsolve):
>         # be fixed later but a fair bit of that is a pebkac and should be
>         # said as "don't do that". potential 'fixme'
>         for txmbr in tx_return:
> -            if txmbr.po.obsoletes:
> +            #  We don't want to do this twice, so only bother if the txmbr
> +            # doesn't already obsolete anything.
> +            if txmbr.po.obsoletes and not txmbr.obsoletes:
>                 for obs_pkg in self._find_obsoletees(txmbr.po):
>                     self.tsInfo.addObsoleted(obs_pkg, txmbr.po)
>                     txmbr.obsoletes.append(obs_pkg)
> --

ACK - but I coulda sworn we've done this before.

-sv



More information about the Yum-devel mailing list