Anyone who uses wine actively knows, that for particular applications only particular wine versions are working at best. Newer versions may suffer from regressions, while adding some features vital for other applications. So, it would be very useful to have wine slotted. I'm starting this bug, just to get official devs opinion if it could be done. If answer would be positive I'm up to doing it and posting new ebuilds. My plan to separate man-pages in different package (not slotted), make include, lib dirs and binaries suffixed with ${PV}. Then only 'eselect wine' module would be required to switch between wine versions. P.S. Please, do not consider this as 'hiding issues under the carpet' (as no-one will test wine for new regressions) - wine is sometimes vital for particular business, so this is absolutely not an option to make users test new versions, if older ones are working perfectly (with particular application). Reproducible: Always
i have no problem adding support for USE=multislot to wine. but setting SLOT is obviously the easy part ... it's going to take quite a lot of work i think to have versions install side by side. everything would have to be versioned. i.e. /usr/lib/wine-${PV}/... instead of /usr/lib/wine/ honestly, i dont plan on working on this for a long time ...
*** Bug 496456 has been marked as a duplicate of this bug. ***
In my somewhat limited testing on wine-1.7.26 (which unfortunately has not entered Gentoo yet), it seems wine works fine with slotted installation. Testing includes creation of a WINEPREFIX, playing a round of winemine and building a Hello world! with winegcc. I suggest passing `--prefix=/usr/lib/wine-${SLOT} --datadir=/usr/lib/wine-${SLOT} --mandir=/usr/lib/wine-${SLOT}/man` to ./configure , updating the *_install* phases to match and creating wrappers (eg. wine-${SLOT}) for the binaries in $PATH with make_wrapper() (symlinks break the prefix handling in wine). An eselect module symlinking the binaries ( wine -> wine-${SLOT} ) and man pages, perhaps based on the existance of /usr/lib/wine-${SLOT}/bin/wine should enable the normally expected interfaces to work. Notes: wine.desktop needs a bit of further thinking, perhaps it should be renamed wine-${SLOT}.desktop and/or be installed/linked by the eselect module. My testing does not extend to the un-upstreamed patchsets and loose files installed by the current Gentoo ebuilds as I have no interest in these. An additional benefit of enabling slotted installation is making it possible to migrate these patchsets to separate wine-whatever packages that can be installed side-by-side with vanilla wine and be selected with the eselect module. In this setup, bumping of vanilla wine would not be delayed by the need to port patchsets to newer versions.
Created attachment 384422 [details, diff] wine-1.7.21.ebuild USE=multislot patch I'll upload my attempt at implementing USE=multislot for the current wine version in gentoo. The biggest unsolved issue is the $WINE_GENTOO tarball not being slottable as-is. I believe the simplest solution to this is a separate (wine-common?) package or installing it along with the eselect module. There might be a better way to block other slots when USE=-multislot, but repoman didn't complain about this. I don't know what wine uses sysconfdir for, perhaps that should be slotted too :|
Created attachment 384424 [details] wine.eselect
Created attachment 384432 [details] eselect-wine-0.1.ebuild
I'm against adding slotted version. If there is introduced bug or big slowdown, it should be bisected or reported and fixed. There shouldn't be need for using older version (except for testing).
(In reply to David Heidelberger (okias) from comment #7) > I'm against adding slotted version. > > If there is introduced bug or big slowdown, it should be bisected or > reported and fixed. There shouldn't be need for using older version (except > for testing). No one prevents you from doing that, even if wine is slotted.
Created attachment 384582 [details, diff] wine-1.7.21.ebuild USE=multislot patch v2 Please find attached revised version implementing USE=multislot for wine-1.2.21. Notably, there is now a wine-gentoo package for installing the downstream icons and launchers and the eselect module and ebuilds are tweaked to reduce the chance of broken symlinks. v1 missed that wine-1.7.21 double-installs libwine when installed with a prefix. AFAICT this is not required for runtime. wine-1.7.26 does not double-install the library.
Created attachment 384584 [details] wine.eselect v0.2
Created attachment 384586 [details] eselect-wine-0.2.ebuild
Created attachment 384588 [details] wine-gentoo-2013.06.24.ebuild
Created attachment 386100 [details, diff] wine-1.7.28.ebuild USE=multislot patch Updated patch to match newly added wine-1.7.28 (thanks ryao!) Fwiw, I currently maintain slotted wine versions in my overlay[1] ("eroen" in layman), with separate packages with and without the compholio patchset selectable through eselect or by calling wine binaries by suffixed names. http://eroen.eu/cgit/cgit.cgi/eroen-overlay/tree/app-emulation
(In reply to eroen from comment #13) > Created attachment 386100 [details, diff] [details, diff] > wine-1.7.28.ebuild USE=multislot patch > > Updated patch to match newly added wine-1.7.28 (thanks ryao!) > > Fwiw, I currently maintain slotted wine versions in my overlay[1] ("eroen" > in layman), with separate packages with and without the compholio patchset > selectable through eselect or by calling wine binaries by suffixed names. > > http://eroen.eu/cgit/cgit.cgi/eroen-overlay/tree/app-emulation I'm the proxy maintainer for wine. eroen's work is currently available in 2 locations: the slotted_wine branch of wine-overlay (https://git.io/wine-overlay) and wine-a-holics (https://git.io/wine-overlay). Both overlays have slotted versions for wine from 1.7.33 to present. I personally have been using slotted (via wine-a-holics) for about a month now. If I get user testing and direct feedback to confirm there are no outstanding issues with the current implementation, we might be able to move forward on this.
one option is just to commit p.u.med USE=multislot.
available in portage now, see: https://www.gentoo.org/support/news-items/2017-04-10-split-and-slotted-wine.html
Thanks for updating the bug. Currently waiting on fixing a bug in winegcc to unmask it.
@NP-Hardass: Is there any URL to see the status of that winegcc bug? Just wonder, if one may be able to help.
If the winegcc bug in question is bug 625560, it looks like it's no longer considered a blocker for unmasking this. I have been using the slotted wine for a couple months now and can confirm that it is quite nice, haven't had any issues :)
Alright, we are unmasked.