summaryrefslogtreecommitdiff
path: root/app-emulation/wine-vanilla
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-08-10 15:32:41 +0100
committerV3n3RiX <venerix@koprulu.sector>2023-08-10 15:32:41 +0100
commit56e9cc62c11546e2c081f8dc14a9cc965f14787c (patch)
tree6dd5cbe22a937288e8c471e95a9f92bffb5d5707 /app-emulation/wine-vanilla
parentd087665a0d6764fc223d2f88a04db01d76af9cc0 (diff)
gentoo auto-resync : 10:08:2023 - 15:32:40
Diffstat (limited to 'app-emulation/wine-vanilla')
-rw-r--r--app-emulation/wine-vanilla/Manifest16
-rw-r--r--app-emulation/wine-vanilla/metadata.xml5
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-7.0.2.ebuild8
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-8.0.1.ebuild8
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-8.0.2.ebuild8
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-8.11-r1.ebuild8
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-8.12.ebuild8
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-8.13.ebuild115
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-9999.ebuild115
9 files changed, 197 insertions, 94 deletions
diff --git a/app-emulation/wine-vanilla/Manifest b/app-emulation/wine-vanilla/Manifest
index dfd41590a80a..bd4789c5e15f 100644
--- a/app-emulation/wine-vanilla/Manifest
+++ b/app-emulation/wine-vanilla/Manifest
@@ -7,11 +7,11 @@ DIST wine-8.0.2.tar.xz 29060452 BLAKE2B dcffaba6c90c4e02a7bc591a81e11aced06c0063
DIST wine-8.11.tar.xz 29236492 BLAKE2B db97b9abde6e1f4c854b449d27bdbafbc91bd75b835d84da401777c6ae2f4f623f2130f470d2e9a3aaf7e737f75d143a07191d38b409c06596373bece3df23c5 SHA512 f3e37f51f0a13aacbd41b017fc3d35e197614b03c00f5b9959c0fabc4e89975b5c3f411b38329e45ce6f9d2a2d82952b95e0907fbe2d6ae35cc4bec293825769
DIST wine-8.12.tar.xz 29276732 BLAKE2B c1bf0d32eaf17f06b47dd7ffc495db4874f72ffec7cfca9edd9b2b9def8ab16db2583349950c3af447d85d476aa013914554f990d5f42d5bc8243b9effbaf869 SHA512 6b9eab7ca1ed5a13202b1250d8d95f6bd8ee5176f0c39b5358aedaf28f7f23543f4a73bf0782c3b4e50936813fc2a459582b5d294569c976ace784fbd9e0af1b
DIST wine-8.13.tar.xz 29379824 BLAKE2B fa07edba8e45ef17813e63f793ca18cd05fd421b803d416421ec0fb7aeb4223ae44376a7e75a195e91c30259f27b48c3ed4ab0b613cbb9464b824f51e85ea240 SHA512 952c670635f91879cf6908343a04c0f41ae54e213123242e24fc282f9705fbe3b800dc1de454b6cfb1ebb89431b0e6eb3df3b094c1d9f4e69835d0f1b8f4fcb5
-EBUILD wine-vanilla-7.0.2.ebuild 10800 BLAKE2B e4cfdd976d435c77273888585d94100874043c0865e0db93f7f6d2f78ded0ca5d1500f2ac3afb6792d230c0e50ebd069b4ac65726d2e00a14bf94ff1458713be SHA512 1b5a919a9023ef7e0c01a9942f8bab1bd186d7faf4a9226c279d441fd991d2f5dc63a65381a7c884431d9267a8339e46e775546b5a046ac5e531fbd867dc35f1
-EBUILD wine-vanilla-8.0.1.ebuild 10818 BLAKE2B 8a1baeb0b48aaa82e61a75654d4c8fb59cddc2208753eaaba82a11fa7f9dacba2921be78bec86ed753e027c68fba4a8dd6942b384734244d802bfff59d6f0d8d SHA512 98788ebac348ee717c50c7f99693882ab14234d869798ff4402ed3912a6409d6071829dcc147c111ce906aa67fa2ffaa02253b3e25e2846ca93a974bf34484b0
-EBUILD wine-vanilla-8.0.2.ebuild 10892 BLAKE2B 6218ab6a2251b052ab809bd839f5285aaf9d253e97905368ef07059fa7e04a0523ecaa36b950f80ef6231fface574463e30d93952edd65be6e4ba97bef005722 SHA512 7b038adc259191f588344222098126610a4b844d320e724145a0ef8b5e882d484610407880094d09131c6d1206815612bb4295f5f869a5f73436907375d91688
-EBUILD wine-vanilla-8.11-r1.ebuild 11001 BLAKE2B 170aafaeb4b0dfab12dbf7a5843d37c0ac2bbd93040ec12e408b401bbbd107cd8f6e65a8bac3bd4a21fa6a113c4859391003c14ae344e45760f41ea92594d4c9 SHA512 f7bd217518a701f03e5459c0ab323d735872b4b1128a43e4650441e64834e7ce771a0ca95e5e2ecba4858b30ed36d0ff602cf8467d52b45afa37bc0123b0355d
-EBUILD wine-vanilla-8.12.ebuild 11001 BLAKE2B 170aafaeb4b0dfab12dbf7a5843d37c0ac2bbd93040ec12e408b401bbbd107cd8f6e65a8bac3bd4a21fa6a113c4859391003c14ae344e45760f41ea92594d4c9 SHA512 f7bd217518a701f03e5459c0ab323d735872b4b1128a43e4650441e64834e7ce771a0ca95e5e2ecba4858b30ed36d0ff602cf8467d52b45afa37bc0123b0355d
-EBUILD wine-vanilla-8.13.ebuild 11001 BLAKE2B 170aafaeb4b0dfab12dbf7a5843d37c0ac2bbd93040ec12e408b401bbbd107cd8f6e65a8bac3bd4a21fa6a113c4859391003c14ae344e45760f41ea92594d4c9 SHA512 f7bd217518a701f03e5459c0ab323d735872b4b1128a43e4650441e64834e7ce771a0ca95e5e2ecba4858b30ed36d0ff602cf8467d52b45afa37bc0123b0355d
-EBUILD wine-vanilla-9999.ebuild 11001 BLAKE2B 170aafaeb4b0dfab12dbf7a5843d37c0ac2bbd93040ec12e408b401bbbd107cd8f6e65a8bac3bd4a21fa6a113c4859391003c14ae344e45760f41ea92594d4c9 SHA512 f7bd217518a701f03e5459c0ab323d735872b4b1128a43e4650441e64834e7ce771a0ca95e5e2ecba4858b30ed36d0ff602cf8467d52b45afa37bc0123b0355d
-MISC metadata.xml 2406 BLAKE2B 3632339181cdc1fa339771f8d98fcd871930704a15acd4d91fff21964ce31f6892bf980c563851efda257503930adecaf6c8311c81ac16de66908127d2d5a1e7 SHA512 94f9ee47e3dd04f0908f6a0fa934ed64b74b906b89010717aa3180078edc2391fac54987fd4ab12aa25fa5891399a205c5ccd7b852ab7bb3814f16851b25ab38
+EBUILD wine-vanilla-7.0.2.ebuild 10967 BLAKE2B bb7d128114fe10630ad356de3be55ec24efcb23b78d07de69ac2bca936dd16ea6a8846d1abd2a878ce989eec8a13b31504f74a9cd9de8a3ceab796845f063140 SHA512 c3ae177905e552f1d83bdc298d8f1fe36812ee11352e27998861eb7e92aa8acf52de5576c42700fd803b10747f1c3f14357e394a2f6fac49d867337a131e9d27
+EBUILD wine-vanilla-8.0.1.ebuild 10985 BLAKE2B 7b93e79599ebcf73c6fc743ffd3fe883e495505627ee77ebce11cd2b726503c3668dbe49483378fcb6918f1698e5bd4f59ab48c270564877fe56288c4482cbe0 SHA512 d5a2df24f0102283086831bd3eac762f5d8d0d6e3b784f3648b383a98c2346c324f09d851b20ce5ad9f21487a3a720cb6f049b1437186e80e24fbec3ad581a50
+EBUILD wine-vanilla-8.0.2.ebuild 11059 BLAKE2B 7a9da133c7eb9402d6fd96a907cf9cb7fae17e12f960839628ceea2f01ace53a3c20217eba0ad9857b65c5536c0a40baacad43049757a9f1883b0300e884badd SHA512 228319c47c2f9962aa12edde4eaec14da3142f00f80b5546b03dec93749c5be030339abc123ebe328cc57b423d75a51770b1b9ae68410d5eb245f0b2563a586d
+EBUILD wine-vanilla-8.11-r1.ebuild 11168 BLAKE2B aa9617531bb05bc9fc27881772062da0982ece732a269adcb7b09a31b9e63ffef84bf795c10a34d1475d7a3c52910bd0012652bb2f4875365b0fb0d8e853984a SHA512 fb6cf93d21420a893a20d5738a4f57e9530eeb7af4a2080667b29820a8d1a1f87e3f48075b90e3ed4705eaf65af72e5982a6300579fe321d1f34e15d4e5e40c2
+EBUILD wine-vanilla-8.12.ebuild 11168 BLAKE2B aa9617531bb05bc9fc27881772062da0982ece732a269adcb7b09a31b9e63ffef84bf795c10a34d1475d7a3c52910bd0012652bb2f4875365b0fb0d8e853984a SHA512 fb6cf93d21420a893a20d5738a4f57e9530eeb7af4a2080667b29820a8d1a1f87e3f48075b90e3ed4705eaf65af72e5982a6300579fe321d1f34e15d4e5e40c2
+EBUILD wine-vanilla-8.13.ebuild 12103 BLAKE2B 3905dad0cff9feb25e4b5aaebf10b2169b4b40b1e962d930834c7f3a51d14921cb69cebd77a5e5da16dc807d81ca917f1848c685334871d076a9125be8339f5b SHA512 9500db758da61237e41d1ff3a938c0a48e6664f12a50c0a3ae73535aaf3e7caba867fffa174efdd4e41a4380c9a1c7c3ce653f8947540bec5d5b36930b3028c2
+EBUILD wine-vanilla-9999.ebuild 12103 BLAKE2B 3905dad0cff9feb25e4b5aaebf10b2169b4b40b1e962d930834c7f3a51d14921cb69cebd77a5e5da16dc807d81ca917f1848c685334871d076a9125be8339f5b SHA512 9500db758da61237e41d1ff3a938c0a48e6664f12a50c0a3ae73535aaf3e7caba867fffa174efdd4e41a4380c9a1c7c3ce653f8947540bec5d5b36930b3028c2
+MISC metadata.xml 2601 BLAKE2B 7ea5c29a376394f61536668a7a675f6206bad0e3abdd07b361d8652189ccc81e9b508c60c22994c520927686ec20b81ca50de9da39718ffc594c71e16745985a SHA512 286b346dd6785331f26b75c0437b4cd90f2d8041b6b7d079f0ce9d39b55de45fab8ae2823a4550f2f95312de491e7cdbe29e0ee34d283303523cd22f489b6641
diff --git a/app-emulation/wine-vanilla/metadata.xml b/app-emulation/wine-vanilla/metadata.xml
index c9f0e02fc1eb..08f1c1fa3035 100644
--- a/app-emulation/wine-vanilla/metadata.xml
+++ b/app-emulation/wine-vanilla/metadata.xml
@@ -30,6 +30,11 @@ This variant of the Wine packaging does not include external patchsets
<flag name="samba">Pull in <pkg>net-fs/samba</pkg> with winbind for NTLM auth support</flag>
<flag name="sdl">Enable gamepad support using <pkg>media-libs/libsdl2</pkg></flag>
<flag name="vkd3d">Enable DirectX 12 support using <pkg>app-emulation/vkd3d</pkg></flag>
+ <flag name="wow64">
+ Enable running 32bit applications without 32bit ELF
+ multilib by mapping to 64bit calls (experimental,
+ USE=abi_x86_32 is recommended for complete support)
+ </flag>
</use>
<upstream>
<bugs-to>https://bugs.winehq.org/describecomponents.cgi?product=Wine</bugs-to>
diff --git a/app-emulation/wine-vanilla/wine-vanilla-7.0.2.ebuild b/app-emulation/wine-vanilla/wine-vanilla-7.0.2.ebuild
index fe54aab83894..31bb2a4e7fdf 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-7.0.2.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-7.0.2.ebuild
@@ -4,7 +4,8 @@
EAPI=8
MULTILIB_COMPAT=( abi_x86_{32,64} )
-inherit autotools flag-o-matic multilib multilib-build toolchain-funcs wrapper
+inherit autotools flag-o-matic multilib multilib-build
+inherit prefix toolchain-funcs wrapper
WINE_GECKO=2.47.2
WINE_MONO=7.0.0
@@ -173,6 +174,9 @@ src_prepare() {
# ensure .desktop calls this variant + slot
sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
+ # datadir is not where wine-mono is installed, so prefixy alternate paths
+ hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c
+
# always update for patches (including user's wrt #432348)
eautoreconf
tools/make_requests || die # perl
@@ -271,7 +275,7 @@ src_configure() {
# disabling is seen as safer, e.g. `WINEARCH=win32 winecfg`
# crashes with -march=skylake >=wine-8.10, similar issues with
# znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273
- append-cflags -mno-avx
+ use custom-cflags || append-cflags -mno-avx
CC=${CROSSCC} test-flags-CC ${CFLAGS:--O2})}"
: "${CROSSLDFLAGS:=$(
filter-flags '-fuse-ld=*'
diff --git a/app-emulation/wine-vanilla/wine-vanilla-8.0.1.ebuild b/app-emulation/wine-vanilla/wine-vanilla-8.0.1.ebuild
index 6aa6458e6edd..289ad34feeb6 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-8.0.1.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-8.0.1.ebuild
@@ -4,7 +4,8 @@
EAPI=8
MULTILIB_COMPAT=( abi_x86_{32,64} )
-inherit autotools flag-o-matic multilib multilib-build toolchain-funcs wrapper
+inherit autotools flag-o-matic multilib multilib-build
+inherit prefix toolchain-funcs wrapper
WINE_GECKO=2.47.3
WINE_MONO=7.4.0
@@ -171,6 +172,9 @@ src_prepare() {
# ensure .desktop calls this variant + slot
sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
+ # datadir is not where wine-mono is installed, so prefixy alternate paths
+ hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c
+
# always update for patches (including user's wrt #432348)
eautoreconf
tools/make_requests || die # perl
@@ -273,7 +277,7 @@ src_configure() {
# disabling is seen as safer, e.g. `WINEARCH=win32 winecfg`
# crashes with -march=skylake >=wine-8.10, similar issues with
# znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273
- append-cflags -mno-avx
+ use custom-cflags || append-cflags -mno-avx
CC=${CROSSCC} test-flags-CC ${CFLAGS:--O2})}"
: "${CROSSLDFLAGS:=$(
filter-flags '-fuse-ld=*'
diff --git a/app-emulation/wine-vanilla/wine-vanilla-8.0.2.ebuild b/app-emulation/wine-vanilla/wine-vanilla-8.0.2.ebuild
index 4603de37abfd..155c0a95a312 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-8.0.2.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-8.0.2.ebuild
@@ -4,7 +4,8 @@
EAPI=8
MULTILIB_COMPAT=( abi_x86_{32,64} )
-inherit autotools flag-o-matic multilib multilib-build toolchain-funcs wrapper
+inherit autotools flag-o-matic multilib multilib-build
+inherit prefix toolchain-funcs wrapper
WINE_GECKO=2.47.3
WINE_MONO=7.4.0
@@ -171,6 +172,9 @@ src_prepare() {
# ensure .desktop calls this variant + slot
sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
+ # datadir is not where wine-mono is installed, so prefixy alternate paths
+ hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c
+
# always update for patches (including user's wrt #432348)
eautoreconf
tools/make_requests || die # perl
@@ -273,7 +277,7 @@ src_configure() {
# disabling is seen as safer, e.g. `WINEARCH=win32 winecfg`
# crashes with -march=skylake >=wine-8.10, similar issues with
# znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273
- append-cflags -mno-avx
+ use custom-cflags || append-cflags -mno-avx
CC=${CROSSCC} test-flags-CC ${CFLAGS:--O2})}"
: "${CROSSLDFLAGS:=$(
filter-flags '-fuse-ld=*'
diff --git a/app-emulation/wine-vanilla/wine-vanilla-8.11-r1.ebuild b/app-emulation/wine-vanilla/wine-vanilla-8.11-r1.ebuild
index 11ed198a2f98..28ee8cb167cc 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-8.11-r1.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-8.11-r1.ebuild
@@ -4,7 +4,8 @@
EAPI=8
MULTILIB_COMPAT=( abi_x86_{32,64} )
-inherit autotools flag-o-matic multilib multilib-build toolchain-funcs wrapper
+inherit autotools flag-o-matic multilib multilib-build
+inherit prefix toolchain-funcs wrapper
WINE_GECKO=2.47.4
WINE_MONO=8.0.0
@@ -175,6 +176,9 @@ src_prepare() {
# ensure .desktop calls this variant + slot
sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
+ # datadir is not where wine-mono is installed, so prefixy alternate paths
+ hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c
+
# always update for patches (including user's wrt #432348)
eautoreconf
tools/make_requests || die # perl
@@ -277,7 +281,7 @@ src_configure() {
# disabling is seen as safer, e.g. `WINEARCH=win32 winecfg`
# crashes with -march=skylake >=wine-8.10, similar issues with
# znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273
- append-cflags -mno-avx
+ use custom-cflags || append-cflags -mno-avx
CC=${CROSSCC} test-flags-CC ${CFLAGS:--O2})}"
: "${CROSSLDFLAGS:=$(
filter-flags '-fuse-ld=*'
diff --git a/app-emulation/wine-vanilla/wine-vanilla-8.12.ebuild b/app-emulation/wine-vanilla/wine-vanilla-8.12.ebuild
index 11ed198a2f98..28ee8cb167cc 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-8.12.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-8.12.ebuild
@@ -4,7 +4,8 @@
EAPI=8
MULTILIB_COMPAT=( abi_x86_{32,64} )
-inherit autotools flag-o-matic multilib multilib-build toolchain-funcs wrapper
+inherit autotools flag-o-matic multilib multilib-build
+inherit prefix toolchain-funcs wrapper
WINE_GECKO=2.47.4
WINE_MONO=8.0.0
@@ -175,6 +176,9 @@ src_prepare() {
# ensure .desktop calls this variant + slot
sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
+ # datadir is not where wine-mono is installed, so prefixy alternate paths
+ hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c
+
# always update for patches (including user's wrt #432348)
eautoreconf
tools/make_requests || die # perl
@@ -277,7 +281,7 @@ src_configure() {
# disabling is seen as safer, e.g. `WINEARCH=win32 winecfg`
# crashes with -march=skylake >=wine-8.10, similar issues with
# znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273
- append-cflags -mno-avx
+ use custom-cflags || append-cflags -mno-avx
CC=${CROSSCC} test-flags-CC ${CFLAGS:--O2})}"
: "${CROSSLDFLAGS:=$(
filter-flags '-fuse-ld=*'
diff --git a/app-emulation/wine-vanilla/wine-vanilla-8.13.ebuild b/app-emulation/wine-vanilla/wine-vanilla-8.13.ebuild
index 11ed198a2f98..6a19271a4121 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-8.13.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-8.13.ebuild
@@ -4,7 +4,8 @@
EAPI=8
MULTILIB_COMPAT=( abi_x86_{32,64} )
-inherit autotools flag-o-matic multilib multilib-build toolchain-funcs wrapper
+inherit autotools flag-o-matic multilib multilib-build
+inherit prefix toolchain-funcs wrapper
WINE_GECKO=2.47.4
WINE_MONO=8.0.0
@@ -31,11 +32,13 @@ IUSE="
llvm-libunwind custom-cflags +fontconfig +gecko gphoto2 +gstreamer
kerberos +mingw +mono netapi nls odbc opencl +opengl osmesa pcap
perl pulseaudio samba scanner +sdl selinux smartcard +ssl +strip
- +truetype udev udisks +unwind usb v4l +vulkan wayland +xcomposite
- xinerama"
+ +truetype udev udisks +unwind usb v4l +vulkan wayland wow64
+ +xcomposite xinerama"
+# bug #551124 for truetype
REQUIRED_USE="
X? ( truetype )
- crossdev-mingw? ( mingw )" # bug #551124 for truetype
+ crossdev-mingw? ( mingw )
+ wow64? ( abi_x86_64 !abi_x86_32 mingw )"
# tests are non-trivial to run, can hang easily, don't play well with
# sandbox, and several need real opengl/vulkan or network access
@@ -103,7 +106,10 @@ RDEPEND="
games-emulation/dosbox-staging
)
)
- gecko? ( app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}] )
+ gecko? (
+ app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}]
+ wow64? ( app-emulation/wine-gecko[abi_x86_32] )
+ )
gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] )
mono? ( app-emulation/wine-mono:${WINE_MONO} )
perl? (
@@ -125,6 +131,7 @@ BDEPEND="
virtual/pkgconfig
mingw? ( !crossdev-mingw? (
>=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}]
+ wow64? ( dev-util/mingw64-toolchain[abi_x86_32] )
) )
nls? ( sys-devel/gettext )
wayland? ( dev-util/wayland-scanner )"
@@ -146,7 +153,8 @@ pkg_pretend() {
if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
local mingw=-w64-mingw32
- for mingw in $(usev abi_x86_64 x86_64${mingw}) $(usev abi_x86_32 i686${mingw}); do
+ for mingw in $(usev abi_x86_64 x86_64${mingw}) \
+ $(use abi_x86_32 || use wow64 && echo i686${mingw}); do
if ! type -P ${mingw}-gcc >/dev/null; then
eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain"
eerror "yourself by installing sys-devel/crossdev then running:"
@@ -175,6 +183,9 @@ src_prepare() {
# ensure .desktop calls this variant + slot
sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
+ # datadir is not where wine-mono is installed, so prefixy alternate paths
+ hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c
+
# always update for patches (including user's wrt #432348)
eautoreconf
tools/make_requests || die # perl
@@ -190,9 +201,13 @@ src_configure() {
--includedir="${EPREFIX}"/usr/include/${P}
--libdir="${EPREFIX}"${WINE_PREFIX}
--mandir="${EPREFIX}"${WINE_DATADIR}/man
+
+ $(usev wow64 --enable-archs=x86_64,i386)
+
$(use_enable gecko mshtml)
$(use_enable mono mscoree)
--disable-tests
+
$(use_with X x)
$(use_with alsa)
$(use_with capi)
@@ -228,19 +243,56 @@ src_configure() {
$(usev !odbc ac_cv_lib_soname_odbc=)
)
- tc-ld-force-bfd # builds with non-bfd but broken at runtime (bug #867097)
+ # builds with non-bfd but broken at runtime (bug #867097)
+ # TODO: retest mold and lld, and figure out what's wrong if
+ # still broken given (at least) lld is supposed to work
+ tc-ld-force-bfd
+
filter-lto # build failure
- use mingw || filter-flags -fno-plt # build failure
use custom-cflags || strip-flags # can break in obscure ways at runtime
- use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
# temporary workaround for tc-ld-force-bfd not yet enforcing with mold
# https://github.com/gentoo/gentoo/pull/28355
[[ $($(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) == mold* ]] &&
append-ldflags -fuse-ld=bfd
- # build using upstream's way (--with-wine64)
- # order matters: configure+compile 64->32, install 32->64
+ if use mingw; then
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+
+ filter-flags -fno-plt # build failure
+
+ # CROSSCC was formerly recognized by wine, thus been using similar
+ # variables (subject to change, esp. if ever make a mingw.eclass).
+ local mingwcc_amd64=${CROSSCC:-${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}
+ local mingwcc_x86=${CROSSCC:-${CROSSCC_x86:-i686-w64-mingw32-gcc}}
+ local -n mingwcc=mingwcc_$(usex abi_x86_64 amd64 x86)
+
+ conf+=(
+ ac_cv_prog_x86_64_CC="${mingwcc_amd64}"
+ ac_cv_prog_i386_CC="${mingwcc_x86}"
+
+ CROSSCFLAGS="$(
+ filter-flags '-fstack-protector*' #870136
+ filter-flags '-mfunction-return=thunk*' #878849
+
+ # -mavx with mingw-gcc has a history of obscure issues and
+ # disabling is seen as safer, e.g. `WINEARCH=win32 winecfg`
+ # crashes with -march=skylake >=wine-8.10, similar issues with
+ # znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273
+ use custom-cflags || append-cflags -mno-avx
+
+ CC=${mingwcc} test-flags-CC ${CFLAGS:--O2}
+ )"
+
+ CROSSLDFLAGS="$(
+ filter-flags '-fuse-ld=*'
+
+ CC=${mingwcc} test-flags-CCLD ${LDFLAGS}
+ )"
+ )
+ fi
+
+ # order matters with multilib: configure+compile 64->32, install 32->64
local -i bits
for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do
(
@@ -249,10 +301,7 @@ src_configure() {
mkdir ../build${bits} || die
cd ../build${bits} || die
- pe_arch=i386
if (( bits == 64 )); then
- pe_arch=x86_64
- : "${CROSSCC:=${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}"
conf+=( --enable-win64 )
elif use amd64; then
conf+=(
@@ -262,28 +311,6 @@ src_configure() {
# _setup is optional, but use over Wine's auto-detect (+#472038)
multilib_toolchain_setup x86
fi
- : "${CROSSCC:=${CROSSCC_x86:-i686-w64-mingw32-gcc}}"
-
- if use mingw; then
- # CROSSCC is no longer recognized by Wine, but still use for now
- # (future handling for CROSS* variables is subject to changes)
- conf+=( ac_cv_prog_${pe_arch}_CC="${CROSSCC}" )
-
- # use *FLAGS for mingw, but strip unsupported
- : "${CROSSCFLAGS:=$(
- filter-flags '-fstack-protector*' #870136
- filter-flags '-mfunction-return=thunk*' #878849
- # -mavx with mingw-gcc has a history of obscure issues and
- # disabling is seen as safer, e.g. `WINEARCH=win32 winecfg`
- # crashes with -march=skylake >=wine-8.10, similar issues with
- # znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273
- append-cflags -mno-avx
- CC=${CROSSCC} test-flags-CC ${CFLAGS:--O2})}"
- : "${CROSSLDFLAGS:=$(
- filter-flags '-fuse-ld=*'
- CC=${CROSSCC} test-flags-CCLD ${LDFLAGS})}"
- export CROSS{C,LD}FLAGS
- fi
ECONF_SOURCE=${S} econf "${conf[@]}"
)
@@ -299,8 +326,13 @@ src_install() {
use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install
use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last
- # symlink for plain 'wine' and install its man pages if 64bit-only #404331
- if use abi_x86_64 && use !abi_x86_32; then
+ 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
@@ -338,6 +370,13 @@ src_install() {
}
pkg_postinst() {
+ if use !abi_x86_32 && use !wow64; then
+ ewarn "32bit support is disabled. While 64bit applications themselves will"
+ ewarn "work, be warned that it is not unusual that installers or other helpers"
+ ewarn "will attempt to use 32bit and fail. If do not want full USE=abi_x86_32,"
+ ewarn "note that the experimental USE=wow64 can allow 32bit without multilib."
+ fi
+
eselect wine update --if-unset || die
}
diff --git a/app-emulation/wine-vanilla/wine-vanilla-9999.ebuild b/app-emulation/wine-vanilla/wine-vanilla-9999.ebuild
index 11ed198a2f98..6a19271a4121 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-9999.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-9999.ebuild
@@ -4,7 +4,8 @@
EAPI=8
MULTILIB_COMPAT=( abi_x86_{32,64} )
-inherit autotools flag-o-matic multilib multilib-build toolchain-funcs wrapper
+inherit autotools flag-o-matic multilib multilib-build
+inherit prefix toolchain-funcs wrapper
WINE_GECKO=2.47.4
WINE_MONO=8.0.0
@@ -31,11 +32,13 @@ IUSE="
llvm-libunwind custom-cflags +fontconfig +gecko gphoto2 +gstreamer
kerberos +mingw +mono netapi nls odbc opencl +opengl osmesa pcap
perl pulseaudio samba scanner +sdl selinux smartcard +ssl +strip
- +truetype udev udisks +unwind usb v4l +vulkan wayland +xcomposite
- xinerama"
+ +truetype udev udisks +unwind usb v4l +vulkan wayland wow64
+ +xcomposite xinerama"
+# bug #551124 for truetype
REQUIRED_USE="
X? ( truetype )
- crossdev-mingw? ( mingw )" # bug #551124 for truetype
+ crossdev-mingw? ( mingw )
+ wow64? ( abi_x86_64 !abi_x86_32 mingw )"
# tests are non-trivial to run, can hang easily, don't play well with
# sandbox, and several need real opengl/vulkan or network access
@@ -103,7 +106,10 @@ RDEPEND="
games-emulation/dosbox-staging
)
)
- gecko? ( app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}] )
+ gecko? (
+ app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}]
+ wow64? ( app-emulation/wine-gecko[abi_x86_32] )
+ )
gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] )
mono? ( app-emulation/wine-mono:${WINE_MONO} )
perl? (
@@ -125,6 +131,7 @@ BDEPEND="
virtual/pkgconfig
mingw? ( !crossdev-mingw? (
>=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}]
+ wow64? ( dev-util/mingw64-toolchain[abi_x86_32] )
) )
nls? ( sys-devel/gettext )
wayland? ( dev-util/wayland-scanner )"
@@ -146,7 +153,8 @@ pkg_pretend() {
if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
local mingw=-w64-mingw32
- for mingw in $(usev abi_x86_64 x86_64${mingw}) $(usev abi_x86_32 i686${mingw}); do
+ for mingw in $(usev abi_x86_64 x86_64${mingw}) \
+ $(use abi_x86_32 || use wow64 && echo i686${mingw}); do
if ! type -P ${mingw}-gcc >/dev/null; then
eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain"
eerror "yourself by installing sys-devel/crossdev then running:"
@@ -175,6 +183,9 @@ src_prepare() {
# ensure .desktop calls this variant + slot
sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
+ # datadir is not where wine-mono is installed, so prefixy alternate paths
+ hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c
+
# always update for patches (including user's wrt #432348)
eautoreconf
tools/make_requests || die # perl
@@ -190,9 +201,13 @@ src_configure() {
--includedir="${EPREFIX}"/usr/include/${P}
--libdir="${EPREFIX}"${WINE_PREFIX}
--mandir="${EPREFIX}"${WINE_DATADIR}/man
+
+ $(usev wow64 --enable-archs=x86_64,i386)
+
$(use_enable gecko mshtml)
$(use_enable mono mscoree)
--disable-tests
+
$(use_with X x)
$(use_with alsa)
$(use_with capi)
@@ -228,19 +243,56 @@ src_configure() {
$(usev !odbc ac_cv_lib_soname_odbc=)
)
- tc-ld-force-bfd # builds with non-bfd but broken at runtime (bug #867097)
+ # builds with non-bfd but broken at runtime (bug #867097)
+ # TODO: retest mold and lld, and figure out what's wrong if
+ # still broken given (at least) lld is supposed to work
+ tc-ld-force-bfd
+
filter-lto # build failure
- use mingw || filter-flags -fno-plt # build failure
use custom-cflags || strip-flags # can break in obscure ways at runtime
- use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
# temporary workaround for tc-ld-force-bfd not yet enforcing with mold
# https://github.com/gentoo/gentoo/pull/28355
[[ $($(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) == mold* ]] &&
append-ldflags -fuse-ld=bfd
- # build using upstream's way (--with-wine64)
- # order matters: configure+compile 64->32, install 32->64
+ if use mingw; then
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+
+ filter-flags -fno-plt # build failure
+
+ # CROSSCC was formerly recognized by wine, thus been using similar
+ # variables (subject to change, esp. if ever make a mingw.eclass).
+ local mingwcc_amd64=${CROSSCC:-${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}
+ local mingwcc_x86=${CROSSCC:-${CROSSCC_x86:-i686-w64-mingw32-gcc}}
+ local -n mingwcc=mingwcc_$(usex abi_x86_64 amd64 x86)
+
+ conf+=(
+ ac_cv_prog_x86_64_CC="${mingwcc_amd64}"
+ ac_cv_prog_i386_CC="${mingwcc_x86}"
+
+ CROSSCFLAGS="$(
+ filter-flags '-fstack-protector*' #870136
+ filter-flags '-mfunction-return=thunk*' #878849
+
+ # -mavx with mingw-gcc has a history of obscure issues and
+ # disabling is seen as safer, e.g. `WINEARCH=win32 winecfg`
+ # crashes with -march=skylake >=wine-8.10, similar issues with
+ # znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273
+ use custom-cflags || append-cflags -mno-avx
+
+ CC=${mingwcc} test-flags-CC ${CFLAGS:--O2}
+ )"
+
+ CROSSLDFLAGS="$(
+ filter-flags '-fuse-ld=*'
+
+ CC=${mingwcc} test-flags-CCLD ${LDFLAGS}
+ )"
+ )
+ fi
+
+ # order matters with multilib: configure+compile 64->32, install 32->64
local -i bits
for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do
(
@@ -249,10 +301,7 @@ src_configure() {
mkdir ../build${bits} || die
cd ../build${bits} || die
- pe_arch=i386
if (( bits == 64 )); then
- pe_arch=x86_64
- : "${CROSSCC:=${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}"
conf+=( --enable-win64 )
elif use amd64; then
conf+=(
@@ -262,28 +311,6 @@ src_configure() {
# _setup is optional, but use over Wine's auto-detect (+#472038)
multilib_toolchain_setup x86
fi
- : "${CROSSCC:=${CROSSCC_x86:-i686-w64-mingw32-gcc}}"
-
- if use mingw; then
- # CROSSCC is no longer recognized by Wine, but still use for now
- # (future handling for CROSS* variables is subject to changes)
- conf+=( ac_cv_prog_${pe_arch}_CC="${CROSSCC}" )
-
- # use *FLAGS for mingw, but strip unsupported
- : "${CROSSCFLAGS:=$(
- filter-flags '-fstack-protector*' #870136
- filter-flags '-mfunction-return=thunk*' #878849
- # -mavx with mingw-gcc has a history of obscure issues and
- # disabling is seen as safer, e.g. `WINEARCH=win32 winecfg`
- # crashes with -march=skylake >=wine-8.10, similar issues with
- # znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273
- append-cflags -mno-avx
- CC=${CROSSCC} test-flags-CC ${CFLAGS:--O2})}"
- : "${CROSSLDFLAGS:=$(
- filter-flags '-fuse-ld=*'
- CC=${CROSSCC} test-flags-CCLD ${LDFLAGS})}"
- export CROSS{C,LD}FLAGS
- fi
ECONF_SOURCE=${S} econf "${conf[@]}"
)
@@ -299,8 +326,13 @@ src_install() {
use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install
use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last
- # symlink for plain 'wine' and install its man pages if 64bit-only #404331
- if use abi_x86_64 && use !abi_x86_32; then
+ 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
@@ -338,6 +370,13 @@ src_install() {
}
pkg_postinst() {
+ if use !abi_x86_32 && use !wow64; then
+ ewarn "32bit support is disabled. While 64bit applications themselves will"
+ ewarn "work, be warned that it is not unusual that installers or other helpers"
+ ewarn "will attempt to use 32bit and fail. If do not want full USE=abi_x86_32,"
+ ewarn "note that the experimental USE=wow64 can allow 32bit without multilib."
+ fi
+
eselect wine update --if-unset || die
}