summaryrefslogtreecommitdiff
path: root/app-emulation/wine-staging/wine-staging-8.13.ebuild
diff options
context:
space:
mode:
Diffstat (limited to 'app-emulation/wine-staging/wine-staging-8.13.ebuild')
-rw-r--r--app-emulation/wine-staging/wine-staging-8.13.ebuild49
1 files changed, 29 insertions, 20 deletions
diff --git a/app-emulation/wine-staging/wine-staging-8.13.ebuild b/app-emulation/wine-staging/wine-staging-8.13.ebuild
index 9f7c5dfd6147..d93f2f74f1f5 100644
--- a/app-emulation/wine-staging/wine-staging-8.13.ebuild
+++ b/app-emulation/wine-staging/wine-staging-8.13.ebuild
@@ -230,12 +230,16 @@ src_prepare() {
if tc-is-clang; then
if use mingw; then
# -mabi=ms was ignored by <clang:16 then turned error in :17
- # and it still gets used in install phase despite USE=mingw,
- # drop as a quick fix for now which hopefully should be safe
+ # if used without --target *-windows, then gets used in install
+ # phase despite USE=mingw, drop as a quick fix for now
sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die
else
- # known broken due to bug #912237, require mingw for now
- die "building ${PN} with clang requires USE=mingw to be enabled"
+ # fails in ./configure unless --enable-archs is passed, allow to
+ # bypass with EXTRA_ECONF but is currently considered unsupported
+ # (by Gentoo) as additional work is needed for (proper) support
+ # note: also fails w/ :17, but unsure if safe to drop w/o mingw
+ [[ ${EXTRA_ECONF} == *--enable-archs* ]] ||
+ die "building ${PN} with clang is only supported with USE=mingw"
fi
fi
@@ -384,22 +388,27 @@ src_install() {
use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install
use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last
- if use wow64; then
- # compat symlinks, albeit ideally no one should call "wine64"
- dosym wine ${WINE_PREFIX}/bin/wine64
- dosym wine-preloader ${WINE_PREFIX}/bin/wine64-preloader
- elif use abi_x86_64 && use !abi_x86_32; then
- # if no 32bit support it instead only installs "wine64" which may
- # come as unexpected, so provide "wine" alongside its man page
- dosym wine64 ${WINE_PREFIX}/bin/wine
- dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader
- local man
- for man in ../build64/loader/wine.*man; do
- : "${man##*/wine}"
- : "${_%.*}"
- insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1
- newins ${man} wine.1
- done
+ # Ensure both wine64 and wine are available if USE=abi_x86_64 (wow64,
+ # -abi_x86_32, and/or EXTRA_ECONF could cause varying scenarios where
+ # one or the other could be missing and that is unexpected for users
+ # and some tools like winetricks)
+ if use abi_x86_64; then
+ if [[ -e ${ED}${WINE_PREFIX}/bin/wine64 && ! -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine64 ${WINE_PREFIX}/bin/wine
+ dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader
+
+ # also install wine(1) man pages (incl. translations)
+ local man
+ for man in ../build64/loader/wine.*man; do
+ : "${man##*/wine}"
+ : "${_%.*}"
+ insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1
+ newins ${man} wine.1
+ done
+ elif [[ ! -e ${ED}${WINE_PREFIX}/bin/wine64 && -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine ${WINE_PREFIX}/bin/wine64
+ dosym wine-preloader ${WINE_PREFIX}/bin/wine64-preloader
+ fi
fi
use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \