This happens even though dev-lang/rust-1.19.0 is installed: $ emerge -pu --deep=2 virtual/rust These are the packages that would be merged, in reverse order: Calculating dependencies... done! [nomerge ] virtual/rust-1.19.0 [ebuild N ~] dev-lang/rust-bin-1.19.0 USE="doc" Reverting this commit from bug 643974 suppresses the problem: https://gitweb.gentoo.org/proj/portage.git/commit/?id=86ba22da7a2f34848cdb5a6f1090c22c264e577e Where dep_zapdeps sets installed_downgrade = True, pdb shows this: -> installed_downgrade = True (Pdb) p avail_pkg <Package ('installed', '/', 'dev-lang/rust-1.19.0', 'nomerge', 'installed')> (Pdb) p highest_in_slot[-1] <Package ('ebuild', '/', 'dev-lang/rust-1.23.0', 'merge', 'gentoo')>
Pulling in dev-lang/rust-bin-1.19.0 here does make it possible to upgrade to dev-lang/rust-1.23.0 here, so it might be the "correct" thing to do in some cases.
Patch posted for review: https://archives.gentoo.org/gentoo-portage-dev/message/bdc942d3d347c556afc0c8a59ce09dc6 https://github.com/gentoo/portage/pull/246
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/proj/portage.git/commit/?id=5c888fcd2e87270523f55fb180ced5c3c8689f76 commit 5c888fcd2e87270523f55fb180ced5c3c8689f76 Author: Zac Medico <zmedico@gentoo.org> AuthorDate: 2018-01-23 06:08:10 +0000 Commit: Zac Medico <zmedico@gentoo.org> CommitDate: 2018-01-27 20:52:53 +0000 dep_zapdeps: fix virtual/rust handling (bug 645416) Fix the code from bug 643974 to set the installed_downgrade flag only if the selected newer package is either installed or in the graph. This is currently needed for appropriate handling of virtual/rust-1.19.0, since there's an upgrade to dev-lang/rust-1.23.0 available which may not be desired since it would mean that dev-lang/rust-bin-1.19.0 has to be installed in order to satisfy virtual/rust-1.19.0: || ( =dev-lang/rust-1.19.0* =dev-lang/rust-bin-1.19.0* ) So, the rust-bin choice is desirable only if the rust-1.23.0 package is already installed or in the graph. Fixes: 86ba22da7a2f ("dep_zapdeps: install new package, allow upgrade (bug 643974)") Bug: https://bugs.gentoo.org/645416 pym/portage/dep/dep_check.py | 10 ++-- .../tests/resolver/test_or_upgrade_installed.py | 59 ++++++++++++++++++++++ 2 files changed, 66 insertions(+), 3 deletions(-)}
Can this patch be applied to portage-2.3.20 without any issues?
(In reply to tt_1 from comment #4) > Can this patch be applied to portage-2.3.20 without any issues? Yes, it can.
Can the maintainers please push out a -r1 or make a point release, to have this fix included into tree?
Yes, I'll do a portage-2.3.21 release soon, which will also include changed deps reporting (bug 645780).