Closed leycec closed 9 years ago
I should note that, after applying these changes, I still receive an (apparently) non-fatal installation error:
--- /usr/bin/
>>> /usr/bin/wmc-1.7.40
>>> /usr/bin/notepad-1.7.40
>>> /usr/bin/winecpp-1.7.40
>>> /usr/bin/regsvr32-1.7.40
>>> /usr/bin/winedbg-1.7.40
>>> /usr/bin/msiexec-1.7.40
>>> /usr/bin/wine-preloader-1.7.40
>>> /usr/bin/winegcc-1.7.40
>>> /usr/bin/regedit-1.7.40
>>> /usr/bin/function_grep.pl-1.7.40
>>> /usr/bin/wineconsole-1.7.40
>>> /usr/bin/wineboot-1.7.40
>>> /usr/bin/winedump-1.7.40
>>> /usr/bin/winemine-1.7.40
>>> /usr/bin/winebuild-1.7.40
>>> /usr/bin/wine64-1.7.40
>>> /usr/bin/wine64-preloader-1.7.40
>>> /usr/bin/wine-1.7.40
>>> /usr/bin/wrc-1.7.40
>>> /usr/bin/wineserver-1.7.40
>>> /usr/bin/winepath-1.7.40
>>> /usr/bin/winemaker-1.7.40
>>> /usr/bin/winecfg-1.7.40
>>> /usr/bin/winefile-1.7.40
>>> /usr/bin/wineg++-1.7.40
>>> /usr/bin/widl-1.7.40
>>> /usr/lib64/wine-1.7.40/lib32/libwine.so.1 -> libwine.so.1.0
>>> /usr/lib64/wine-1.7.40/lib64/libwine.so.1 -> libwine.so.1.0
>>> /usr/lib64/wine-1.7.40/man/man1/winecpp.1 -> winegcc.1
Current wine is not valid, will update to newest
Updating desktop mime database ...
Updating desktop mime database ...
Current wine-staging is not valid, will update to newest
/usr/share/eselect/modules/wine.eselect: line 187: targets: bad array subscript
!!! Error: Target "" doesn't appear to be valid!
Call stack:
* set_variant_symlinks (wine.eselect:191)
* do_set (wine.eselect:381)
* do_update (wine.eselect:447)
* do_update (wine.eselect:412)
* check_do (core.bash:24)
* do_action (core.bash:105)
* main (eselect:179)
exiting
* Updating desktop mime database ...
>>> app-emulation/wine-1.7.40 merged.
>>> Regenerating /etc/ld.so.cache...
>>> Recording app-emulation/wine in "world" favorites file...
Despite that, running eselect wine list
after installation suggests that wine.eselect
properly activated the recently installed version of Wine:
Available wine versions:
[1] wine-1.7.40 *
In other words, app-admin/eselect-wine
is non-fatally bugged. Also, that package should probably be moved to app-eselect/eselect-wine
(in light of recent Portage refactorings). :hurtrealbad:
Possibly you meant to put EPREFIX in stead of EROOT?
Good catch. I'd happily fix this, but... see below.
If so, it would be nice if you explicitly say whether it has been tested on a Gentoo/Prefix system. :-)
I absolutely didn't! Take that, reliability.
Given that the current Wine ebuilds are broken with respect to Gentoo Prefix anyway, I presumed untested changes not breaking anything else to be better than nothing. ¯_(ツ)_/¯
Additionally, modifying MY_PREFIX requires at least modifying eselect-wine at the same time,
Tragically, you're right. It's a trivial change. Unfortunately, modifying eselect-wine
in that way requires modifying every other Wine ebuild as well. I was rather hoping to avoid that. Since (A) I obviously can't, (B) I don't have time to pursue this to its logical conclusion, and (C) I'm unsure how you'd even like this to be pursued (e.g., by adding a new wine.eclass
or by duplicating this changeset across every Wine ebuild), I'm dutifully closing this.
That said, these ebuilds remain broken with respect to both multilib-strict
and Gentoo Prefix. Something should be done, but I'm clearly not the doe-eyed volunteer for that job. Best of bug-hunting luck. And thanks for all the tireless work.
This pull request installs Wine shared libraries to multilib- and Gentoo Prefix-aware directories, fixing issue #1. Specifically, absolute paths defined by
pkg_setup()
are:${EROOT}
, improving (strictly hypothetical) integration with Gentoo Prefix.${EROOT}
was added by EAPI 3 for this exact purpose, which was quite nice of them really./usr/lib
by/usr/$(get_libdir)
, as required by themultilib-strict
Portage FEATURE. Consider enablingmultilib-strict
locally, too. It's pretty sweet... until you hit things like this.For simplicity, these changes apply only to the 1.7.40 ebuild. While they could be manually backported to the other Wine ebuilds, I'd recommend a different tact. To avoid these sorts of DRY issues in the future, consider a new
wine.eclass
defining at least the following common phase functions:pkg_pretend()
,pkg_setup()
,src_configure()
,multilib_src_test()
,pkg_preinst()
,pkg_postinst()
, andpkg_postrm()
. Those appear to be reduplicated in entirety between the various Wine ebuilds, and could probably benefit from refactoring out.Thanks for the Sisyphean amount of hard work here, NP-Hardass and eroen. It'd be awesome to see your efforts eventually wind up in Portage. But even if that never happens (...and let's be honest, this is Gentoo), you've both done a legendary job.
Your names shall be preserved into antiquity.