[Yum-devel] [PATCH 1/2] Remove erase transactions on reinstall, fixes BZ 512393.

James Antill james at and.org
Thu Aug 20 14:57:31 UTC 2009


 The main problem here is that yum doesn't let a user install blah-1, if
blah-1 is already installed ... so we require a remove transaction, and
then an install transaction of the same thing.
 However _rpm_ only wants to see the install transaction, and gets upset
with the remove transaction as well (it has an implicit remove as part
of the install, and so tries to remove twice).

 So this fix just removes the "remove transaction" when we add the
reinstall "install transaction".
---
 yum/__init__.py |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/yum/__init__.py b/yum/__init__.py
index 0df32a3..3f75528 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -2802,6 +2802,11 @@ class YumBase(depsolve.Depsolve):
                     self._add_prob_flags(rpm.RPMPROB_FILTER_REPLACEPKG,
                                          rpm.RPMPROB_FILTER_REPLACENEWFILES,
                                          rpm.RPMPROB_FILTER_REPLACEOLDFILES)
+                    #  Yum needs the remove to happen before we allow the
+                    # install of the same version. But rpm doesn't like that
+                    # as it then has an install which removes the old version
+                    # and a remove, which also tries to remove the old version.
+                    self.tsInfo.remove(ipkg.pkgtup)
                     break
                 if ipkg.verGT(po):
                     self._add_prob_flags(rpm.RPMPROB_FILTER_OLDPACKAGE)
-- 
1.6.2.5



More information about the Yum-devel mailing list