diff --git a/yum/__init__.py b/yum/__init__.py index 1f03840..25f8729 100644 --- a/yum/__init__.py +++ b/yum/__init__.py @@ -2541,6 +2541,17 @@ class YumBase(depsolve.Depsolve): tx_return.extend(txmbrs) continue + # Make sure we're not installing a package which is obsoleted by + # something else in the repo. Unless there is a obsoletion loop, + # at which point ignore everything. + obsoleting_pkg = self._test_loop(po, self._pkg2obspkg) + if obsoleting_pkg is not None: + self.verbose_logger.warning(_('Package %s is obsoleted by %s, trying to install %s instead'), + po.name, obsoleting_pkg.name, obsoleting_pkg) + self.install(po=obsoleting_pkg) + continue + + # make sure it's not already installed if self.rpmdb.contains(po=po): if not self.tsInfo.getMembersWithState(po.pkgtup, TS_REMOVE_STATES): @@ -2556,16 +2567,6 @@ class YumBase(depsolve.Depsolve): tx_return.extend(txmbrs) continue - # Make sure we're not installing a package which is obsoleted by - # something else in the repo. Unless there is a obsoletion loop, - # at which point ignore everything. - obsoleting_pkg = self._test_loop(po, self._pkg2obspkg) - if obsoleting_pkg is not None: - self.verbose_logger.warning(_('Package %s is obsoleted by %s, trying to install %s instead'), - po.name, obsoleting_pkg.name, obsoleting_pkg) - self.install(po=obsoleting_pkg) - continue - # at this point we are going to mark the pkg to be installed, make sure # it doesn't obsolete anything. If it does, mark that in the tsInfo, too if po.pkgtup in self.up.getObsoletesList(name=po.name, arch=po.arch):