On 02/07/2012 09:22 PM, James Antill wrote:
---
  docs/yum.conf.5 |    7 +++++++
  yum/config.py   |    3 +++
  yum/depsolve.py |    7 +++++--
  3 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/docs/yum.conf.5 b/docs/yum.conf.5
index e766cb0..59bd779 100644
--- a/docs/yum.conf.5
+++ b/docs/yum.conf.5
@@ -647,6 +647,13 @@ installed dependencies and check for an update.
  Boolean (1, 0, True, False, yes,no) Defaults to False

  .IP
+\fBrecheck_installed_requires \fR
+When upgrading a package do we recheck any requirements that existed in the old
+package. Turning this on shouldn't do anything but slow yum depsolving down,
+however using rpm --nodeps etc. can break the rpmdb and then this will help.
+Boolean (1, 0, True, False, yes,no) Defaults to False
+
+.IP
  \fBreset_nice \fR
  If set to true then yum will try to reset the nice value to zero, before
  running an rpm transaction. Defaults to False.
diff --git a/yum/config.py b/yum/config.py
index 982c0c5..cdb0c2b 100644
--- a/yum/config.py
+++ b/yum/config.py
@@ -856,6 +856,9 @@ class YumConf(StartupConf):
                                           'commands'),
                                       mapper={'cmds'          : 'commands',
                                               'default' 
:'single-user-commands'})
+
+    recheck_installed_requires = BoolOption(False)
+
      _reposlist = []

      def dump(self):
diff --git a/yum/depsolve.py b/yum/depsolve.py
index de01582..6b386c2 100644
--- a/yum/depsolve.py
+++ b/yum/depsolve.py
@@ -998,9 +998,12 @@ class Depsolve(object):

          # if this is an update, we should check what the old
          # requires were to make things faster
+        #  Note that if the rpmdb is broken, this gets annoying. So we provide
+        # a way to turn it off.
          oldreqs = []
-        for oldpo in txmbr.updates:
-            oldreqs.extend(oldpo.returnPrco('requires'))
+        if not self.conf.recheck_installed_requires:
+            for oldpo in txmbr.updates:
+                oldreqs.extend(oldpo.returnPrco('requires'))
          oldreqs = set(oldreqs)

          ret = []

Mmh, what sort of performance degration are we talking about here? I could understand it being an "--fix-broken" style option if it were just a workaround for --nodeps abuse, but since #785690 is really about a perfectly legal removal causing yum to break down because of an optimization...

        - Panu -
_______________________________________________
Yum-devel mailing list
[email protected]
http://lists.baseurl.org/mailman/listinfo/yum-devel

Reply via email to