If you emerge a particular version of wine and then (for one reason or another) reemerge the same version, it gets deselected. I wouldn't call that an expected behavior.
eselect-wine rather inflexible and ideally needs a complete rewrite (original author is gone), the register/deregister model with /usr/bin modification is mostly broken. Not something I want to do now, but may be possible to semi-workaround this in the ebuilds by not deregistering if REPLACED_BY_VERSION is the exact same version (I'll give this a try later).
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fcdfbd6877cf396c503f78d59fa1579e9ca31ab4 commit fcdfbd6877cf396c503f78d59fa1579e9ca31ab4 Author: Ionen Wolkens <ionen@gentoo.org> AuthorDate: 2022-11-12 02:00:24 +0000 Commit: Ionen Wolkens <ionen@gentoo.org> CommitDate: 2022-11-12 02:49:50 +0000 app-emulation/wine-proton: skip deregister for rebuilds Not ideal given still doesn't handle the issue where variant can be switched rather than pick same-variant+new-version. Not to mention it further increase chances of register mismatch as it cannot update itself into a clean state (requires eselect-wine rewrite). Closes: https://bugs.gentoo.org/881035 Signed-off-by: Ionen Wolkens <ionen@gentoo.org> app-emulation/wine-proton/wine-proton-7.0.4.ebuild | 4 +++- app-emulation/wine-proton/wine-proton-7.0.9999.ebuild | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) Additionally, it has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c23364e17e393930a21c29db8b3b713aa300d98a commit c23364e17e393930a21c29db8b3b713aa300d98a Author: Ionen Wolkens <ionen@gentoo.org> AuthorDate: 2022-11-12 01:59:10 +0000 Commit: Ionen Wolkens <ionen@gentoo.org> CommitDate: 2022-11-12 02:49:50 +0000 app-emulation/wine-staging: skip deregister for rebuilds Not ideal given still doesn't handle the issue where variant can be switched rather than pick same-variant+new-version. Not to mention it further increase chances of register mismatch as it cannot update itself into a clean state (requires eselect-wine rewrite). Bug: https://bugs.gentoo.org/881035 Signed-off-by: Ionen Wolkens <ionen@gentoo.org> app-emulation/wine-staging/wine-staging-7.17.ebuild | 4 +++- app-emulation/wine-staging/wine-staging-7.18.ebuild | 4 +++- app-emulation/wine-staging/wine-staging-7.19.ebuild | 4 +++- app-emulation/wine-staging/wine-staging-7.20.ebuild | 4 +++- app-emulation/wine-staging/wine-staging-9999.ebuild | 4 +++- 5 files changed, 15 insertions(+), 5 deletions(-) https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=22d30be85512fc4f3964668077f8e4c544c241a6 commit 22d30be85512fc4f3964668077f8e4c544c241a6 Author: Ionen Wolkens <ionen@gentoo.org> AuthorDate: 2022-11-12 00:56:01 +0000 Commit: Ionen Wolkens <ionen@gentoo.org> CommitDate: 2022-11-12 02:49:50 +0000 app-emulation/wine-vanilla: skip deregister for rebuilds Not ideal given still doesn't handle the issue where variant can be switched rather than pick same-variant+new-version. Not to mention it further increase chances of register mismatch as it cannot update itself into a clean state (requires eselect-wine rewrite). Bug: https://bugs.gentoo.org/881035 Signed-off-by: Ionen Wolkens <ionen@gentoo.org> app-emulation/wine-vanilla/wine-vanilla-7.0-r3.ebuild | 4 +++- app-emulation/wine-vanilla/wine-vanilla-7.0.1.ebuild | 4 +++- app-emulation/wine-vanilla/wine-vanilla-7.17.ebuild | 4 +++- app-emulation/wine-vanilla/wine-vanilla-7.18.ebuild | 4 +++- app-emulation/wine-vanilla/wine-vanilla-7.19.ebuild | 4 +++- app-emulation/wine-vanilla/wine-vanilla-7.20.ebuild | 4 +++- app-emulation/wine-vanilla/wine-vanilla-9999.ebuild | 4 +++- 7 files changed, 21 insertions(+), 7 deletions(-)
Note that this will come in effect only with freshly installed copies, i.e. the currently installed wines will keep their old prerm() that still deregister, so you'll see this work after a 2nd rebuild and beyond.
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1954598a4b9fee10c063f6be17d07b47e7e93e4b commit 1954598a4b9fee10c063f6be17d07b47e7e93e4b Author: Ionen Wolkens <ionen@gentoo.org> AuthorDate: 2022-11-16 03:30:33 +0000 Commit: Ionen Wolkens <ionen@gentoo.org> CommitDate: 2022-11-16 15:01:04 +0000 app-eselect/eselect-wine: add 2.0.0, unkeyworded for testing Complete rewrite but for notable bits: - removes register/deregister, can auto-update without this - no longer touch files in /usr at runtime wrt bug #632576, in this case it was particularly invasive doing *many* modifications to /usr/bin and /usr/share/man - handle /usr/lib/wine fwiw wrt bug #657748 (installed by the ebuild), albeit winebuild can find the right path nowadays - fix prefix wrt bug #717470 - give feedback when switching wrt bug #874612 - tries harder to not unexpectedly switch variant/version, and no longer need ebuild checks wrt bug #881035 - no longer hardcodes variants and so can support any random ones, i.e. an overlay can do wine-tkg or wine-myfunnyfork - --all, --vanilla, etc.. options were removed, but can still perform similar actions (see `help`) - `list` can now show selections for all variants at once - `unset` removed, not seeing a motivation (esp if not polluting /usr) - half+ the original size, and switches variant noticeably faster Still experimental and subject to changes, so unkeyworded for now. See README.rst for more notes, or the tarball's impl.rst for details. ebuild itself needs some nonsense largely caused by being difficult to get rid of the old eselect plus portage limitations. Bug: https://bugs.gentoo.org/632576 Bug: https://bugs.gentoo.org/657748 Bug: https://bugs.gentoo.org/717470 Bug: https://bugs.gentoo.org/874612 Bug: https://bugs.gentoo.org/881035 Signed-off-by: Ionen Wolkens <ionen@gentoo.org> app-eselect/eselect-wine/Manifest | 1 + app-eselect/eselect-wine/eselect-wine-2.0.0.ebuild | 88 ++++++++++++++++++++++ 2 files changed, 89 insertions(+)