diff options
author | V3n3RiX <venerix@koprulu.sector> | 2025-03-09 01:48:35 +0000 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2025-03-09 01:48:35 +0000 |
commit | 0b832a429ecd6081aa9faa0eb262303b019d87ea (patch) | |
tree | c39bb9eaa7bc30cec17f3a3bdef0cf5ed27c6a75 /app-emulation | |
parent | 80e87db4d9ed551615eb2d0309bf370e79500716 (diff) |
gentoo auto-resync : 09:03:2025 - 01:48:35
Diffstat (limited to 'app-emulation')
-rw-r--r-- | app-emulation/Manifest.gz | bin | 15508 -> 15503 bytes | |||
-rw-r--r-- | app-emulation/faudio/Manifest | 6 | ||||
-rw-r--r-- | app-emulation/faudio/faudio-25.02.ebuild | 2 | ||||
-rw-r--r-- | app-emulation/faudio/faudio-25.03.ebuild (renamed from app-emulation/faudio/faudio-25.01.ebuild) | 2 | ||||
-rw-r--r-- | app-emulation/wine-vanilla/Manifest | 2 | ||||
-rw-r--r-- | app-emulation/wine-vanilla/wine-vanilla-10.3.ebuild | 430 |
6 files changed, 437 insertions, 5 deletions
diff --git a/app-emulation/Manifest.gz b/app-emulation/Manifest.gz Binary files differindex e3e4030e183f..49bc4e6ba6e5 100644 --- a/app-emulation/Manifest.gz +++ b/app-emulation/Manifest.gz diff --git a/app-emulation/faudio/Manifest b/app-emulation/faudio/Manifest index d88426f0f1ee..b11a47dce4aa 100644 --- a/app-emulation/faudio/Manifest +++ b/app-emulation/faudio/Manifest @@ -1,5 +1,5 @@ -DIST faudio-25.01.tar.gz 1127223 BLAKE2B 93b82fd9cb5c0f0a5944568e6fc3e1ca4cc88c804e22da2c9a12f58922567fdfe9a01726cc69b91211c0853077eb071db8bc992f790b21c9138352ebd77f5cae SHA512 099292d41ace3ea85a9d8d465c4e55542cd5b233bf53d2088b97ec6c1f99c416dc09455efd328edf5e9c73dfa248bb48d0f08750c71f129fad3f93d5bc852ec7 DIST faudio-25.02.tar.gz 1127116 BLAKE2B 9df60de8a9448d5425c1e4b5d88bed12b4b7f40971c04120795f4c799e2b7bf8eb45a8e649c0cec8e4445e64d9a602e78769ca69bc998ddae66e5b9fc74e22a6 SHA512 1d93b0d167e23ea2f012ec10ca1227e05ff1b81aa9568ab35bb6335622a62bacb5ed33b788ef6e953050a3bfa7d15e6a9579821cf5e36c239998a0e1271c9c1e -EBUILD faudio-25.01.ebuild 920 BLAKE2B 216eef9051a14d0a43f55d752374dbef54711ebcf8d6373b924fd13e6411f9bb9317273253904bc79fe8a40b8d2c4465842ae96240ef3edd0e4c2e575b4bfcc4 SHA512 e7c2ce97836d40610b40c088c4a4d919eef5e4594c19a4d284f6a227b67f31033d7e99040e792f6f076c248793431ed57edcd518fbf56e096ed60ae6ff27d36e -EBUILD faudio-25.02.ebuild 922 BLAKE2B f13eb428d032efcc2fd857021ef9d6c1370764c5fab2363ce043f027dc790dec1eed01089959866ae2bb21d2f163f69018f6c488e8fcf715c2aa24c98ac09fd2 SHA512 c2dc7389c9f43bfaa6df031e5a120aef05d2a9c91016970ec6cb54f66ab16086de6b9218b963378e500ebb32086fea1015235588d4d2026220bad6932f8b67e5 +DIST faudio-25.03.tar.gz 1126597 BLAKE2B bd95c8455adf072186309697040aea677b46afa25ccdc8ad45477d7f78237153908955fc8e772bfc7d460b9cd4dbad31a170a25b0352df052546b402a3f99023 SHA512 ec1f37a73aa5ad57841e297d8ee730b8b161144bc0624e29e9ba7b86c6f2d8657b2b20169603616701db04d99a9522dd1463c043e2c0e64eb7d980f4909327c7 +EBUILD faudio-25.02.ebuild 920 BLAKE2B 216eef9051a14d0a43f55d752374dbef54711ebcf8d6373b924fd13e6411f9bb9317273253904bc79fe8a40b8d2c4465842ae96240ef3edd0e4c2e575b4bfcc4 SHA512 e7c2ce97836d40610b40c088c4a4d919eef5e4594c19a4d284f6a227b67f31033d7e99040e792f6f076c248793431ed57edcd518fbf56e096ed60ae6ff27d36e +EBUILD faudio-25.03.ebuild 922 BLAKE2B f13eb428d032efcc2fd857021ef9d6c1370764c5fab2363ce043f027dc790dec1eed01089959866ae2bb21d2f163f69018f6c488e8fcf715c2aa24c98ac09fd2 SHA512 c2dc7389c9f43bfaa6df031e5a120aef05d2a9c91016970ec6cb54f66ab16086de6b9218b963378e500ebb32086fea1015235588d4d2026220bad6932f8b67e5 MISC metadata.xml 719 BLAKE2B b71b3829f3c1a2a546621b460f3ccc41f79db0acf913f409bc55ad2b8632a8361a7b45952b8aab2f9564391b14f3735f17c10a0e5f46da55fc49b730a743a5e6 SHA512 f52da50d3b16eb8dda8d2af6d7db6ae1e457d48c9a79977cb5288e379446ea4a5e420bd2dc17067d3bcba5cee7838ce10401f319e556d671b0483def94c3f2d7 diff --git a/app-emulation/faudio/faudio-25.02.ebuild b/app-emulation/faudio/faudio-25.02.ebuild index dfce1c40eb5b..1295c611a25c 100644 --- a/app-emulation/faudio/faudio-25.02.ebuild +++ b/app-emulation/faudio/faudio-25.02.ebuild @@ -12,7 +12,7 @@ S="${WORKDIR}/FAudio-${PV}" LICENSE="ZLIB" SLOT="0" -KEYWORDS="~amd64 ~x86" +KEYWORDS="amd64 x86" IUSE="debug dumpvoices test" RESTRICT="!test? ( test )" diff --git a/app-emulation/faudio/faudio-25.01.ebuild b/app-emulation/faudio/faudio-25.03.ebuild index 1295c611a25c..dfce1c40eb5b 100644 --- a/app-emulation/faudio/faudio-25.01.ebuild +++ b/app-emulation/faudio/faudio-25.03.ebuild @@ -12,7 +12,7 @@ S="${WORKDIR}/FAudio-${PV}" LICENSE="ZLIB" SLOT="0" -KEYWORDS="amd64 x86" +KEYWORDS="~amd64 ~x86" IUSE="debug dumpvoices test" RESTRICT="!test? ( test )" diff --git a/app-emulation/wine-vanilla/Manifest b/app-emulation/wine-vanilla/Manifest index d35ca6b138fd..39a4107b7f4f 100644 --- a/app-emulation/wine-vanilla/Manifest +++ b/app-emulation/wine-vanilla/Manifest @@ -5,11 +5,13 @@ AUX wine-vanilla-8.13-rpath.patch 554 BLAKE2B 209d8c581a9178242ee622338c5252f79b DIST wine-10.0.tar.xz 32011244 BLAKE2B 92178cf484cf33e9f3b8340429ee8e68c36e0d25eee4a892f059ab73f103cfcb9eb15e1883bc9fd8c8fe311d4ccbb56582d1f780da7b1406a7839a13addd29ae SHA512 effb41c5641993e2e52eaa825cc19b7d9846e084992c5a5b066ead2339b24384d320898a9cee347a9a87106bcb3b0f54c8cd2c8d4de3a887a658052ddd5168d6 DIST wine-10.1.tar.xz 32026152 BLAKE2B 573c4cc10c96c164eb02111b0a457be5500ab42c6d103180af5b2f88cdbcc134ea1fdb794687e6c736ebb5f9aa266e51424df26cd239fa26679d968ab5844cc3 SHA512 2dbc63e43e2cc1e0bf6294a926e8afc316e9f32efdce644229cb33bba98f6001c3f285b527767a83e5284558ef11f00515048aad031c6fc9122a4ce0692952af DIST wine-10.2.tar.xz 32050716 BLAKE2B 78a60d82640c9ffdf8a96b58aaa8a86cce0f67d48dc082e97a2bfaf077f849b99fa7d5418a42d2f18176afedd9a7270a08ca872af5c43c10fd64fe1eddf7cfdf SHA512 893395e29d72898579850c4084838c76b8a53659b4a3917e47d853733fafaa0e57bfde31437862955cdfab94327622eb290488d6120d76eeb2a4fa70dff5ef67 +DIST wine-10.3.tar.xz 32280996 BLAKE2B 49e3e1d4da74a647c01b3326b2d79ac102fa67b43cd3134e8ca66696003ee9f1a5835b093896d8b8e4ff1fd2c229db8c004fdcfec79fbc0d559985094374a4e1 SHA512 361edb93f062f44592b55ba298d1e2b49857bf067791cc92424c812412aff93955dcb7726e3f87fd304f3e567693b547fa5a149b58990c914f91c585fede2716 DIST wine-8.0.2.tar.xz 29060452 BLAKE2B dcffaba6c90c4e02a7bc591a81e11aced06c006370c4c316c8a367b2f5814926063482959fabfe9d674ee1b5a560e59087e9b711e28360ced3aee2bbd6bb8fdb SHA512 e86dd31247d757d48ffb2d24f20edab3fc6ef9c3e395567a7b363951bb681335ba3adb8b84639011b24b6eb274582d56880298d6d95fb100acc072383d4e973f DIST wine-9.0.tar.xz 30007216 BLAKE2B cf53177201a2f7eeb35d0d8ce220f80808d979099a928ad60652d1dee92620c433cc105dffab4e9309f41766087ad1544ef49d2922538bb420d62f6dd64117a1 SHA512 838daf2c4581f83f8573b988036f517d57b84894b090a2a17433255d6d044dfa880e6724cdb83082a36c333df9d2083ab68ae53927622a620edd59f33462ada4 EBUILD wine-vanilla-10.0.ebuild 14492 BLAKE2B 144fbd586c698224121bf9a2b3fe863dc3342796a9bba715b6d2bb8880a7ffadc4a9194e0893a949aadd0a0c5958fb852db1c50a271ceae57c55bc9deb550fff SHA512 3a32acdf80140154781af6b4177aceef2c7518a465370c6c557ddea2d57deb9ae1b46797288a40fb06c5dbeff74c07d65de6a3e5f1506894e09faf47bcd9459c EBUILD wine-vanilla-10.1.ebuild 14494 BLAKE2B 6e61a54de54038f619944b434e11d4b692306a56f50a7193db7882ad6642e5b5c2ab81bf97f236a42eb1de9b9fe93c8e437bccd253cfb9ed6afb043a00835325 SHA512 e0ad544f5bbba21285809a8466a6fba3422af6a0c2cf373e3586c7d09613a0798e6d7abc76ba96052f9b55328337f2a623ac4fc73d8c0a687c9cdd20bab2f8be EBUILD wine-vanilla-10.2.ebuild 13799 BLAKE2B 5443b67f58b850c08d927183f74a366a15832be3ba6eb47c2f39a6f0087ffa9cfeab986f9c61d454907f07b5087dd8e8ec0bc479ed74abefef0ce8ef28a0dbb7 SHA512 c0c3fb053a93b02ccdfe92e81c64f0201ee611907474416321ffd7e254a9e59416f25d3bfbcebbd86484c62251dba1a8c82a9296d218ceac03f8fc328eac9ff7 +EBUILD wine-vanilla-10.3.ebuild 13833 BLAKE2B 2df8edc571e2a3362d05cb63fd4f96f6380028368b436e3e60e8a22e2a0938ce7e8f7016934aa4ed81c797e4824b2f69ce28fdc99e3dbed64baa0d4db7c87496 SHA512 867f37013536a796666de7873dd619287a4ed4f050a4448685b5885f055c884c9741d1c2185417949fee62ccb167631d2344e6cad62d3e9e5f8ee412ae61b8c9 EBUILD wine-vanilla-8.0.2.ebuild 12989 BLAKE2B 7d0c26640bdcc8058e39a4b5213b17329297c808e829bef0d6c2e50e2220e4aa391ef61e57d4636a8af41146f2e483efd451e9084b9d4ba1896b8d0ca41d5c54 SHA512 1d54a432b9f0497e9316affb138ff4375f8944ab3765b6b53b4f97e396f6ca1984086c099841170b26d226eeafad4650c609b0c99956351cd0486db488c79544 EBUILD wine-vanilla-9.0.ebuild 14267 BLAKE2B 5baa32520fe0b205779283071708a723b365b083717ac606f131709dbe9664ae4c01b21eb8afa011bf06efffb477666ba13147c25dbde5f41681496970b31202 SHA512 923c6640b0d66a1bbf6b8c13fa82729a5317f2d7ea3003843a2f60d42b4c03c586b09633094f102ba48f33052131eea61f1cb2a7a0076d261b22de95118dbe4d EBUILD wine-vanilla-9999.ebuild 13833 BLAKE2B 2df8edc571e2a3362d05cb63fd4f96f6380028368b436e3e60e8a22e2a0938ce7e8f7016934aa4ed81c797e4824b2f69ce28fdc99e3dbed64baa0d4db7c87496 SHA512 867f37013536a796666de7873dd619287a4ed4f050a4448685b5885f055c884c9741d1c2185417949fee62ccb167631d2344e6cad62d3e9e5f8ee412ae61b8c9 diff --git a/app-emulation/wine-vanilla/wine-vanilla-10.3.ebuild b/app-emulation/wine-vanilla/wine-vanilla-10.3.ebuild new file mode 100644 index 000000000000..8ee0f458d65c --- /dev/null +++ b/app-emulation/wine-vanilla/wine-vanilla-10.3.ebuild @@ -0,0 +1,430 @@ +# Copyright 2022-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MULTILIB_COMPAT=( abi_x86_{32,64} ) +inherit autotools flag-o-matic multilib multilib-build optfeature +inherit prefix toolchain-funcs wrapper + +WINE_GECKO=2.47.4 +WINE_MONO=9.4.0 + +if [[ ${PV} == *9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git" +else + (( $(ver_cut 2) )) && WINE_SDIR=$(ver_cut 1).x || WINE_SDIR=$(ver_cut 1).0 + SRC_URI="https://dl.winehq.org/wine/source/${WINE_SDIR}/wine-${PV}.tar.xz" + S="${WORKDIR}/wine-${PV}" + KEYWORDS="-* ~amd64 ~x86" +fi + +DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets" +HOMEPAGE=" + https://www.winehq.org/ + https://gitlab.winehq.org/wine/wine/ +" + +LICENSE=" + LGPL-2.1+ + BSD BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff + || ( WTFPL-2 public-domain ) +" +SLOT="${PV}" +IUSE=" + +X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups +dbus dos + llvm-libunwind custom-cflags ffmpeg +fontconfig +gecko gphoto2 + +gstreamer kerberos +mingw +mono netapi nls odbc opencl +opengl + pcap perl pulseaudio samba scanner +sdl selinux smartcard +ssl + +strip +truetype udev +unwind usb v4l +vulkan wayland wow64 + +xcomposite xinerama +" +# bug #551124 for truetype +# TODO?: wow64 can be done without mingw if using clang (needs bug #912237) +REQUIRED_USE=" + X? ( 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 +RESTRICT="test" + +# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked +WINE_DLOPEN_DEPEND=" + X? ( + x11-libs/libXcursor[${MULTILIB_USEDEP}] + x11-libs/libXfixes[${MULTILIB_USEDEP}] + x11-libs/libXi[${MULTILIB_USEDEP}] + x11-libs/libXrandr[${MULTILIB_USEDEP}] + x11-libs/libXrender[${MULTILIB_USEDEP}] + x11-libs/libXxf86vm[${MULTILIB_USEDEP}] + opengl? ( media-libs/libglvnd[X,${MULTILIB_USEDEP}] ) + xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) + xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] ) + ) + cups? ( net-print/cups[${MULTILIB_USEDEP}] ) + dbus? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) + fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] ) + kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] ) + netapi? ( net-fs/samba[${MULTILIB_USEDEP}] ) + odbc? ( dev-db/unixODBC[${MULTILIB_USEDEP}] ) + sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] ) + ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] ) + truetype? ( media-libs/freetype[${MULTILIB_USEDEP}] ) + v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] ) + vulkan? ( media-libs/vulkan-loader[X?,wayland?,${MULTILIB_USEDEP}] ) +" +WINE_COMMON_DEPEND=" + ${WINE_DLOPEN_DEPEND} + X? ( + x11-libs/libX11[${MULTILIB_USEDEP}] + x11-libs/libXext[${MULTILIB_USEDEP}] + ) + alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] ) + capi? ( net-libs/libcapi:=[${MULTILIB_USEDEP}] ) + ffmpeg? ( media-video/ffmpeg:=[${MULTILIB_USEDEP}] ) + gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] ) + gstreamer? ( + dev-libs/glib:2[${MULTILIB_USEDEP}] + media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}] + media-libs/gstreamer:1.0[${MULTILIB_USEDEP}] + ) + opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) + pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] ) + pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] ) + scanner? ( media-gfx/sane-backends[${MULTILIB_USEDEP}] ) + smartcard? ( sys-apps/pcsc-lite[${MULTILIB_USEDEP}] ) + udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] ) + unwind? ( + llvm-libunwind? ( llvm-runtimes/libunwind[${MULTILIB_USEDEP}] ) + !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] ) + ) + usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] ) + wayland? ( + dev-libs/wayland[${MULTILIB_USEDEP}] + x11-libs/libxkbcommon[${MULTILIB_USEDEP}] + ) +" +RDEPEND=" + ${WINE_COMMON_DEPEND} + app-emulation/wine-desktop-common + dos? ( + || ( + games-emulation/dosbox + games-emulation/dosbox-staging + ) + ) + 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? ( + dev-lang/perl + dev-perl/XML-LibXML + ) + samba? ( net-fs/samba[winbind] ) + selinux? ( sec-policy/selinux-wine ) +" +DEPEND=" + ${WINE_COMMON_DEPEND} + sys-kernel/linux-headers + X? ( x11-base/xorg-proto ) +" +BDEPEND=" + || ( + sys-devel/binutils + llvm-core/lld + ) + dev-lang/perl + sys-devel/bison + sys-devel/flex + 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 ) +" +IDEPEND=">=app-eselect/eselect-wine-2" + +QA_CONFIG_IMPL_DECL_SKIP=( + __clear_cache # unused on amd64+x86 (bug #900338) + res_getservers # false positive +) +QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext + +PATCHES=( + "${FILESDIR}"/${PN}-7.0-noexecstack.patch + "${FILESDIR}"/${PN}-7.20-unwind.patch + "${FILESDIR}"/${PN}-8.13-rpath.patch +) + +pkg_pretend() { + [[ ${MERGE_TYPE} == binary ]] && return + + if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then + local mingw=-w64-mingw32 + 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:" + eerror + eerror " crossdev --target ${mingw}" + eerror + eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw" + die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found" + fi + done + fi +} + +src_prepare() { + # sanity check, bumping these has a history of oversights + local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \ + dlls/appwiz.cpl/addons.c || die) + if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then + local gmfatal= + [[ ${PV} == *9999 ]] && gmfatal=nonfatal + ${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)" + fi + + default + + if tc-is-clang; then + if use mingw; then + # -mabi=ms was ignored by <clang:16 then turned error in :17 + # 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 + # 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 + + # 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 + # tip: if need more for user patches, with portage can e.g. do + # echo "post_src_prepare() { tools/make_specfiles || die; }" \ + # > /etc/portage/env/app-emulation/wine-vanilla +} + +src_configure() { + WINE_PREFIX=/usr/lib/${P} + WINE_DATADIR=/usr/share/${P} + + local conf=( + --prefix="${EPREFIX}"${WINE_PREFIX} + --datadir="${EPREFIX}"${WINE_DATADIR} + --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) + $(use_with cups) + $(use_with dbus) + $(use_with ffmpeg) + $(use_with fontconfig) + $(use_with gphoto2 gphoto) + $(use_with gstreamer) + $(use_with kerberos gssapi) + $(use_with kerberos krb5) + $(use_with mingw) + $(use_with netapi) + $(use_with nls gettext) + $(use_with opencl) + $(use_with opengl) + --without-osmesa # media-libs/mesa no longer supports this + --without-oss # media-sound/oss is not packaged (OSSv4) + $(use_with pcap) + $(use_with pulseaudio pulse) + $(use_with scanner sane) + $(use_with sdl) + $(use_with smartcard pcsclite) + $(use_with ssl gnutls) + $(use_with truetype freetype) + $(use_with udev) + $(use_with unwind) + $(use_with usb) + $(use_with v4l v4l2) + $(use_with vulkan) + $(use_with wayland) + $(use_with xcomposite) + $(use_with xinerama) + $(usev !odbc ac_cv_lib_soname_odbc=) + ) + + filter-lto # build failure + filter-flags -Wl,--gc-sections # runtime issues (bug #931329) + use custom-cflags || strip-flags # can break in obscure ways at runtime + + # broken with gcc-15's c23 default (TODO: try w/o occasionally, bug #943849) + append-cflags -std=gnu17 + + # wine uses linker tricks unlikely to work with non-bfd/lld (bug #867097) + # (do self test until https://github.com/gentoo/gentoo/pull/28355) + if [[ $(LC_ALL=C $(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) != @(LLD|GNU\ ld)* ]] + then + has_version -b sys-devel/binutils && + append-ldflags -fuse-ld=bfd || + append-ldflags -fuse-ld=lld + strip-unsupported-flags + fi + + if use mingw; then + use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH} + + # 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="${CROSSCFLAGS:-$( + filter-flags '-fstack-protector*' #870136 + filter-flags '-mfunction-return=thunk*' #878849 + + # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then + # strip-unsupported-flags miss these during compile-only tests + # (primarily done for 23.0 profiles' -z, not full coverage) + filter-flags '-Wl,-z,*' + + CC=${mingwcc} test-flags-CC ${CFLAGS:--O2} + )}" + + CROSSLDFLAGS="${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 + ( + einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..." + + mkdir ../build${bits} || die + cd ../build${bits} || die + + if (( bits == 64 )); then + conf+=( --enable-win64 ) + elif use amd64; then + conf+=( + $(usev abi_x86_64 --with-wine64=../build64) + TARGETFLAGS=-m32 # for widl + ) + # _setup is optional, but use over Wine's auto-detect (+#472038) + multilib_toolchain_setup x86 + fi + + ECONF_SOURCE=${S} econf "${conf[@]}" + ) + done +} + +src_compile() { + use abi_x86_64 && emake -C ../build64 # do first + use abi_x86_32 && emake -C ../build32 +} + +src_install() { + use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install + use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last + + # "wine64" is no longer provided, but a keep symlink for old scripts + # TODO: remove the guard later, only useful for bisecting -9999 + if [[ ! -e ${ED}${WINE_PREFIX}/bin/wine64 ]]; then + use abi_x86_64 && dosym wine ${WINE_PREFIX}/bin/wine64 + fi + + use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \ + "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die + + # create variant wrappers for eselect-wine + local bin + for bin in "${ED}"${WINE_PREFIX}/bin/*; do + make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}" + done + + if use mingw; then + # don't let portage try to strip PE files with the wrong + # strip executable and instead handle it here (saves ~120MB) + dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows + + if use strip; then + ebegin "Stripping Windows (PE) binaries" + find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \ + -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} + + eend ${?} || die + fi + fi + + dodoc ANNOUNCE* AUTHORS README* documentation/README* +} + +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 the experimental/WIP USE=wow64 can allow 32bit without multilib." + elif use abi_x86_32 && { use opengl || use vulkan; }; then + # difficult to tell what is needed from here, but try to warn + if has_version 'x11-drivers/nvidia-drivers'; then + if has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]'; then + ewarn "x11-drivers/nvidia-drivers is installed but is built without" + ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit" + ewarn "applications under ${PN} will likely not be usable." + ewarn "Multi-card setups may need this on media-libs/mesa as well." + fi + elif has_version 'media-libs/mesa[-abi_x86_32]'; then + ewarn "media-libs/mesa seems to be in use but is built without" + ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit" + ewarn "applications under ${PN} will likely not be usable." + fi + fi + + optfeature "/dev/hidraw* access used for *some* controllers (e.g. DualShock4)" \ + games-util/game-device-udev-rules + + eselect wine update --if-unset || die +} + +pkg_postrm() { + if has_version -b app-eselect/eselect-wine; then + eselect wine update --if-unset || die + fi +} |