Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 881035 - app-eselect/eselect-wine mishandles wine re-emerges
Summary: app-eselect/eselect-wine mishandles wine re-emerges
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Wine Maintainers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-11-11 22:25 UTC by Rafał Mużyło
Modified: 2022-11-16 15:02 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Rafał Mużyło 2022-11-11 22:25:00 UTC
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.
Comment 1 Ionen Wolkens gentoo-dev 2022-11-12 00:34:59 UTC
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).
Comment 2 Larry the Git Cow gentoo-dev 2022-11-12 02:50:29 UTC
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(-)
Comment 3 Ionen Wolkens gentoo-dev 2022-11-12 02:50:54 UTC
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.
Comment 4 Larry the Git Cow gentoo-dev 2022-11-16 15:02:34 UTC
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(+)