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

_______________________________________________
Yum-devel mailing list
Yum-devel@lists.baseurl.org
http://lists.baseurl.org/mailman/listinfo/yum-devel

Reply via email to