diff options
author | Zac Medico <zmedico@gentoo.org> | 2011-02-11 00:57:11 -0800 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2011-02-11 00:57:11 -0800 |
commit | e4bcbdace3e0c28c39fdc9a92da38b21611638bf (patch) | |
tree | 06e68a2efa04ae3d8fe672208dd22fb02a7bbbe1 | |
parent | 88249c4a47c0354724f1d7e387c1695e4953e2d6 (diff) | |
download | portage-e4bcbdace3e0c28c39fdc9a92da38b21611638bf.tar.gz portage-e4bcbdace3e0c28c39fdc9a92da38b21611638bf.tar.bz2 portage-e4bcbdace3e0c28c39fdc9a92da38b21611638bf.zip |
depgraph: avoid reinstall of identical binpkg
This will fix bug #354441.
-rw-r--r-- | pym/_emerge/depgraph.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py index 245e38e59..0cfd1137d 100644 --- a/pym/_emerge/depgraph.py +++ b/pym/_emerge/depgraph.py @@ -3006,6 +3006,7 @@ class depgraph(object): existing_node = None myeb = None rebuilt_binaries = 'rebuilt_binaries' in self._dynamic_config.myparams + usepkg = "--usepkg" in self._frozen_config.myopts usepkgonly = "--usepkgonly" in self._frozen_config.myopts empty = "empty" in self._dynamic_config.myparams selective = "selective" in self._dynamic_config.myparams @@ -3117,6 +3118,20 @@ class depgraph(object): # to a KEYWORDS mask. See bug #252167. if pkg.type_name != "ebuild" and matched_packages: + # Don't re-install a binary package that is + # identical to the currently installed package + # (see bug #354441). + identical_binary = False + if usepkg and pkg.installed: + for selected_pkg in matched_packages: + if selected_pkg.type_name == "binary" and \ + selected_pkg.cpv == pkg.cpv and \ + selected_pkg.metadata.get('BUILD_TIME') == \ + pkg.metadata.get('BUILD_TIME'): + identical_binary = True + break + + if not identical_binary: # If the ebuild no longer exists or it's # keywords have been dropped, reject built # instances (installed or binary). |