rebuilt-binaries: prefer newer unbuilt
authorZac Medico <zmedico@gentoo.org>
Thu, 26 May 2011 00:30:36 +0000 (17:30 -0700)
committerZac Medico <zmedico@gentoo.org>
Thu, 26 May 2011 00:30:36 +0000 (17:30 -0700)
pym/_emerge/depgraph.py

index 341b3a67ca28941b685d4249521d06fe2acfff4b..d7ddd1af09911ce68a09882740c6cb5385f79c8a 100644 (file)
@@ -3902,11 +3902,15 @@ class depgraph(object):
                        if rebuilt_binaries:
                                inst_pkg = None
                                built_pkg = None
+                               unbuilt_pkg = None
                                for pkg in matched_packages:
                                        if pkg.installed:
                                                inst_pkg = pkg
                                        elif pkg.built:
                                                built_pkg = pkg
+                                       else:
+                                               if unbuilt_pkg is None or pkg > unbuilt_pkg:
+                                                       unbuilt_pkg = pkg
                                if built_pkg is not None and inst_pkg is not None:
                                        # Only reinstall if binary package BUILD_TIME is
                                        # non-empty, in order to avoid cases like to
@@ -3922,7 +3926,9 @@ class depgraph(object):
                                        except (KeyError, ValueError):
                                                installed_timestamp = 0
 
-                                       if "--rebuilt-binaries-timestamp" in self._frozen_config.myopts:
+                                       if unbuilt_pkg is not None and unbuilt_pkg > built_pkg:
+                                               pass
+                                       elif "--rebuilt-binaries-timestamp" in self._frozen_config.myopts:
                                                minimal_timestamp = self._frozen_config.myopts["--rebuilt-binaries-timestamp"]
                                                if built_timestamp and \
                                                        built_timestamp > installed_timestamp and \