From 9d4810f84de876ec9d0ae03d0d44224500b41188 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sun, 19 May 2024 00:01:59 +0100 Subject: gentoo auto-resync : 19:05:2024 - 00:01:59 --- app-emulation/Manifest.gz | Bin 16328 -> 16332 bytes app-emulation/wine-staging/Manifest | 11 +- app-emulation/wine-staging/wine-staging-9.5.ebuild | 483 --------------------- app-emulation/wine-staging/wine-staging-9.6.ebuild | 478 -------------------- app-emulation/wine-staging/wine-staging-9.9.ebuild | 478 ++++++++++++++++++++ .../wine-staging/wine-staging-9999.ebuild | 2 +- app-emulation/wine-vanilla/Manifest | 6 +- app-emulation/wine-vanilla/wine-vanilla-9.5.ebuild | 431 ------------------ app-emulation/wine-vanilla/wine-vanilla-9.6.ebuild | 431 ------------------ app-emulation/wine-vanilla/wine-vanilla-9.9.ebuild | 431 ++++++++++++++++++ 10 files changed, 916 insertions(+), 1835 deletions(-) delete mode 100644 app-emulation/wine-staging/wine-staging-9.5.ebuild delete mode 100644 app-emulation/wine-staging/wine-staging-9.6.ebuild create mode 100644 app-emulation/wine-staging/wine-staging-9.9.ebuild delete mode 100644 app-emulation/wine-vanilla/wine-vanilla-9.5.ebuild delete mode 100644 app-emulation/wine-vanilla/wine-vanilla-9.6.ebuild create mode 100644 app-emulation/wine-vanilla/wine-vanilla-9.9.ebuild (limited to 'app-emulation') diff --git a/app-emulation/Manifest.gz b/app-emulation/Manifest.gz index 88f20c75957f..17b87af248f1 100644 Binary files a/app-emulation/Manifest.gz and b/app-emulation/Manifest.gz differ diff --git a/app-emulation/wine-staging/Manifest b/app-emulation/wine-staging/Manifest index a8cb33792b18..2af1cf24794d 100644 --- a/app-emulation/wine-staging/Manifest +++ b/app-emulation/wine-staging/Manifest @@ -3,19 +3,16 @@ AUX wine-staging-7.20-unwind.patch 1450 BLAKE2B 80e9222c95393aaa4b95e05597a41810 AUX wine-staging-8.13-rpath.patch 554 BLAKE2B 209d8c581a9178242ee622338c5252f79b798cf5574f72b3984d71b7933e011b488060502715aa75630fbc3d10fcb03743ac31ed31664cacfc22b725253a117b SHA512 bbb25e02d19bd7c1a1f2d7db331d93cfcd5ce9172206ad9e19a44c52e5ece865d474eac024c2a5791dfa006c6efe0f68cd783ffc925ac793bf447d56090bdd02 AUX wine-staging-9.8-musl-ioctls-header.patch 938 BLAKE2B a101f1fc7a6bcd6e8c22ce7f79f66b16be194732b7c354ba7f23aa33e9b0a938913449906b42580cf1fd8089e412cb6d049899d9f5a7d3ddb248901533e966e6 SHA512 f05cc3c37dc955e44aaa60366c945778567dd4bad6cc33e54af9debc1d35b0c27181deddbb6b951cb894707294a47b711042430cce8be794fcba6aa6994788df DIST wine-9.0.tar.xz 30007216 BLAKE2B cf53177201a2f7eeb35d0d8ce220f80808d979099a928ad60652d1dee92620c433cc105dffab4e9309f41766087ad1544ef49d2922538bb420d62f6dd64117a1 SHA512 838daf2c4581f83f8573b988036f517d57b84894b090a2a17433255d6d044dfa880e6724cdb83082a36c333df9d2083ab68ae53927622a620edd59f33462ada4 -DIST wine-9.5.tar.xz 30371420 BLAKE2B c14ebf02f0f5b91bc2b2517ff3630f22c6af7fdc827c5d024d809a383a65446284a5349c8109835112f5353f361088f4f32de1a3d04299fbf39deacbc0e8e8bf SHA512 8ccad8f6e6b1428886dee9fae771796e2021b4122cd96464350352bede25421406e6a6a0fdd63d8b99b896db8dc529aa6e05d6ac7966bee49ce3055b18a8af91 -DIST wine-9.6.tar.xz 30261488 BLAKE2B 53115a8a80593856679718b2055340860221701bc82a784a111a992f5e67b031d7407a16f6df6d4da67f382f30c35d2dd82af2a671a058a76b621c91199e426e SHA512 cc2ea5597636da8d392d1d63b9c135679eff69ea671dc6b53b6f2d44a890aee0e17275174485f6e8dd99c7db737eb82a800a2b05c4966f15e28167c5a6098922 DIST wine-9.7.tar.xz 30281616 BLAKE2B 4d27f6f2dfd088a0590bfce7228c7eca25b66a9a04706ddecb25af6364e83100c15a78c8d46f3294a42dc7f3503756506f752a02d7058a72ce16716994b334bc SHA512 0c15c3a0901162a386126f2dc987b276b379cc027fc72d9e31cf3122614742f876f30a5f24a495f546cd9c5bd5efce096bd9ca190d0f378fea3d42a298a06e80 DIST wine-9.8.tar.xz 30297460 BLAKE2B 689d1b4e55f7d66b8fad8432ad35a52e2fad303e8a9382b8893222c696697efa5de5b56cc2b933bed96d6382f9fdc919fa15e6517ffdb50105cdaea904a7d77f SHA512 3d1b0e6b7b633a0b45ba6b23e741e808dec29355721baf4489c3ad34c67d714b40897ef510c4a84f31be390d7f8b86b93a725787d733eaf77df5c82b322d2662 +DIST wine-9.9.tar.xz 30265476 BLAKE2B a2557044b10252c1b1ae023e10863c601e9159d64eda2ce1d8aab4dbb9efffa1b4b15ed27a9edbf6f2bba148c2bb07e729bd706bac9fe17f91c826c74b5980e6 SHA512 df016411933b5447bef9b48f67c58e12d6d33ef0c24045ab03c92821dcccbf84335d1a2d765e6d6cf3a743598317010b8ae6f69de3661733e4fa43febec873dd DIST wine-staging-9.0.tar.gz 9577631 BLAKE2B 0012978f54c618e73d407dd49dccff02853912d0c015098889802518e8c51b280f5d60e11291335dafc68944ee01cbcb7fd6c5825ef10ae1520c7b82d9846718 SHA512 362209fcadcf029152b681c76beb231d0cc8de1609b994094f1dc88ab871fddda08b3d8c2fe36ceb38909a9d634c1ade864ca0f28a6a7715ec286a8b2884981f -DIST wine-staging-9.5.tar.gz 9526239 BLAKE2B a6f5a351a3979fc81a0d8c6325da4f08021d19eb7ac6ad52906a6fcf19552f01bdc8fbebc9b33fc82e14cdd6e6d50347dc7bc73e622d589d2e9eec5d577d3158 SHA512 8c756fe505092e21dd37c709ac3917c305b70881c05270f0e188ccdf9ff36b9fd224adad424d37c6919637d2af55afbfba49079eb5b6708a6cf4f2dd98966784 -DIST wine-staging-9.6.tar.gz 9522775 BLAKE2B 5598d408774e3142d6de5ccddccb68d8e1e4544c43b5691751599e6b86df6b8899f6113b8b58d75fb8e032a6c7aed9ffbb3ecb1553aa2d7593d69513e9a0177a SHA512 83691eb560c860d40669a524196a522007c76420b5b5076da4f446a4180fee7558ef228cf1f4179eb78a6d36c8ab78fd2784ffc879b0aacbef7c72a7f88e7ed2 DIST wine-staging-9.7.tar.gz 9573710 BLAKE2B 34eee97f51268c07d649f0ed498b5e92bbc8bb1d8cee860040ee660d968307a7d9d3b59305567c50338d2ce97b3071f615b8782ca74716b42904ae4514404316 SHA512 3c5f100f715c6b3399c356b304b8eca1e51706e03782f2f834965474a7efeca4174ae806dff85080cded93501e9cfcd097eca43230d9425c78ae73a6f4485c76 DIST wine-staging-9.8.tar.gz 9580231 BLAKE2B 74d0b7d4eb49b5cb16abf17a2aae52bad9db04d3e207762f1d37a9f18870683c0115ce41b29e24edad827557de4a07235980588115b61fa86eeaaa5573460535 SHA512 8132c1fd98b55ef04993e894e11063e43ac1cae059f80e0dc3b2a4c6bf08a6ab80f7bdd02b97f62733f31850b41e5d2d6c5085b22bf873fc03ab67b79bdd3c1d +DIST wine-staging-9.9.tar.gz 9593672 BLAKE2B 9f6fc7137bb447e52642caf7083ddd60a8d7a545f364dd1783b7adfbd2a80da8b89bc2199525b3c9d75f9f356f5548cf97ae1278361be1c6fb0f0e218c3cf336 SHA512 1b6b341a48a05f48587b7ecc0ead50058b2c1f8a47b6e52adbc7e4afff9bc633a6018e90b2e3ee6b720c59181095b793cd2bbfa7242aec6871f2f87f4db661c4 EBUILD wine-staging-9.0.ebuild 15206 BLAKE2B 245d17f33556550562c0f7f608b9e003c6568799691c40da7372dd64f39cb30e065d8f35b6574bb9422fa927c48a923af686cb096521592c11c7f80dc25b95d5 SHA512 65929e3d7245ddcd9d63b4e419d7a84f683fc589ec49e9030e681b3cea4852baa74ca00aff614aba9730cc72a76ab3d4d9c8e407377458df7836a3a338efbac9 -EBUILD wine-staging-9.5.ebuild 15336 BLAKE2B 62de2f7f3a3426f62140c5eee67580af848cceee7dd99fc181b94dcc43b679c0c819e0338d99b7a6525abce394bb4e46e52eebb4de18ae2cac80388a092cf233 SHA512 0671f273d4fba75216801c6e7eddf0c0214b89e7215d01a98791ae6c08ac4780c3882ffa1943527dec3c64f9556e04c060c8122f81941d754e1eddd4e54806f6 -EBUILD wine-staging-9.6.ebuild 15154 BLAKE2B fca2f4f8266b4073d1633dbba910b0e52ff83950f565d567959893d975b2c8148a773d9804cec45edb9cfc67be17df575dfb6fbb0dedbe0b62e073bbe4723b2a SHA512 17812a5f0eea0620376d3df103f12d7da20918e7a42cff0eb250cd9d8fa6839c39e3b11f570270a7b25be440777f8ad0143011b0f522122d504581e8214da67d EBUILD wine-staging-9.7.ebuild 15154 BLAKE2B fca2f4f8266b4073d1633dbba910b0e52ff83950f565d567959893d975b2c8148a773d9804cec45edb9cfc67be17df575dfb6fbb0dedbe0b62e073bbe4723b2a SHA512 17812a5f0eea0620376d3df103f12d7da20918e7a42cff0eb250cd9d8fa6839c39e3b11f570270a7b25be440777f8ad0143011b0f522122d504581e8214da67d EBUILD wine-staging-9.8.ebuild 15208 BLAKE2B 035c6bcdde3441f7c62a3edfbc9c2fd0e6f85df0b8843e05efcad9b7b6f18f9cf53015ee5bc7d8581b8d3519ac5ea81fdff1b90c8d81d319f98e1291fc16fd93 SHA512 4a17ed3549505918c98b86ad029f17958efa85e7542f97241eef6de651396e0f82a3f3d61194d3603d94335b9654fe5ea79fa0c9840b61b743539fe8357ec696 -EBUILD wine-staging-9999.ebuild 15163 BLAKE2B 1eafc41957ca80059b1172d76f542e28f780faca66d84cc127e328c3f0b26ce55988d4ed5c2ddd78c456d9b29eacd5261e4b514f2a3369a8a0d9b04ff300e817 SHA512 6313206180f86956299dea86398508a6f506e394fa111294b3963a48ab8468787d7681660406eb7b6076d0d01d235c58b6c523e5b1f662f283d53db432635e44 +EBUILD wine-staging-9.9.ebuild 15163 BLAKE2B 0c5db607c7f17c3162037f281c73f1d9e89399d8ea38f1db3e8573070b13e09152acff9d524ffd76574a92e6ded17330db00bbf6f6126f3c2d57196dabfdad38 SHA512 0331fdeab9f081ec0704a763b1f2dacce34a7d3772f665710ad5a6653358764be8362818d056aec32587fbddfcb5cbd1195dda9e911086578ffd2e94ccd62153 +EBUILD wine-staging-9999.ebuild 15163 BLAKE2B 0c5db607c7f17c3162037f281c73f1d9e89399d8ea38f1db3e8573070b13e09152acff9d524ffd76574a92e6ded17330db00bbf6f6126f3c2d57196dabfdad38 SHA512 0331fdeab9f081ec0704a763b1f2dacce34a7d3772f665710ad5a6653358764be8362818d056aec32587fbddfcb5cbd1195dda9e911086578ffd2e94ccd62153 MISC metadata.xml 2659 BLAKE2B 8a80b12643e82b98b71bc408e2fd79736da01c8f7d914c7a592cb685893ea3896bc44fecf0160faec803b284d3f6bb38cf36fb4745d9d43e0e1ced8702fcaf9d SHA512 a271e537318a4e90236c195f1f8c24c3255b5465345246627797d37238e2b6292d0734a9ab19542ee34fc1e9312dc4418694992f5ce3c53310228cc6bf14ef90 diff --git a/app-emulation/wine-staging/wine-staging-9.5.ebuild b/app-emulation/wine-staging/wine-staging-9.5.ebuild deleted file mode 100644 index e0290114c53b..000000000000 --- a/app-emulation/wine-staging/wine-staging-9.5.ebuild +++ /dev/null @@ -1,483 +0,0 @@ -# Copyright 2022-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -MULTILIB_COMPAT=( abi_x86_{32,64} ) -PYTHON_COMPAT=( python3_{10..13} ) -inherit autotools edo flag-o-matic multilib multilib-build optfeature -inherit prefix python-any-r1 toolchain-funcs wrapper - -WINE_GECKO=2.47.4 -WINE_MONO=9.0.0 -WINE_P=wine-$(ver_cut 1-2) - -if [[ ${PV} == *9999 ]]; then - inherit git-r3 - EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine-staging.git" - WINE_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_P}.tar.xz - https://github.com/wine-staging/wine-staging/archive/v${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="-* ~amd64 ~x86" -fi - -DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset" -HOMEPAGE=" - https://wiki.winehq.org/Wine-Staging - https://gitlab.winehq.org/wine/wine-staging/ -" - -S="${WORKDIR}/${WINE_P}" - -LICENSE="LGPL-2.1+ BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff" -SLOT="${PV}" -IUSE=" - +X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos - llvm-libunwind custom-cflags +fontconfig +gecko gphoto2 +gstreamer - kerberos +mingw +mono netapi nls opencl +opengl osmesa pcap perl - pulseaudio samba scanner +sdl selinux smartcard +ssl +strip - +truetype udev udisks +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}] - osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] ) - ) - xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) - xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] ) - ) - cups? ( net-print/cups[${MULTILIB_USEDEP}] ) - fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] ) - kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] ) - netapi? ( net-fs/samba[${MULTILIB_USEDEP}] ) - sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] ) - ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] ) - truetype? ( media-libs/freetype[${MULTILIB_USEDEP}] ) - udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) - v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] ) - vulkan? ( media-libs/vulkan-loader[X?,${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}] ) - 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? ( sys-libs/llvm-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 ) - udisks? ( sys-fs/udisks:2 ) -" -DEPEND=" - ${WINE_COMMON_DEPEND} - sys-kernel/linux-headers - X? ( x11-base/xorg-proto ) -" -# gitapply.sh prefers git but can fallback to patch+extras -BDEPEND=" - ${PYTHON_DEPS} - || ( - dev-vcs/git - ( - sys-apps/gawk - sys-apps/util-linux - ) - ) - || ( - sys-devel/binutils - sys-devel/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 #900334) - res_getservers # false positive -) -QA_FLAGS_IGNORED="usr/lib/.*/wine/.*-unix/odbc32.so" # has no compiled objects -QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext - -PATCHES=( - "${FILESDIR}"/${PN}-7.17-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_unpack() { - if [[ ${PV} == *9999 ]]; then - EGIT_CHECKOUT_DIR=${WORKDIR}/${P} - git-r3_src_unpack - - # hack: use subshell to preserve state (including what git-r3 unpack - # sets) for smart-live-rebuild as this is not the repo to look at - ( - EGIT_COMMIT=$(<"${EGIT_CHECKOUT_DIR}"/staging/upstream-commit) || die - EGIT_REPO_URI=${WINE_EGIT_REPO_URI} - EGIT_CHECKOUT_DIR=${S} - einfo "Fetching Wine commit matching the current patchset by default (${EGIT_COMMIT})" - git-r3_src_unpack - ) - else - default - fi -} - -src_prepare() { - local patchinstallargs=( - --all - --no-autoconf - # patches known broken with USE=-mingw, retry occasionally (bug #921360) - $(usev !mingw ' - -W winedevice-Default_Drivers - -W fltmgr.sys-FltBuildDefaultSecurityDescriptor - ') - ${MY_WINE_STAGING_CONF} - ) - - edo "${PYTHON}" ../${P}/staging/patchinstall.py "${patchinstallargs[@]}" - - # 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 /etc/portage/env/app-emulation/wine-staging -} - -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 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) - $(use_with osmesa) - --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 udisks dbus) # dbus is only used for udisks - $(use_with unwind) - $(use_with usb) - $(use_with v4l v4l2) - $(use_with vulkan) - $(use_with wayland) - $(use_with xcomposite) - $(use_with xinerama) - ) - - 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 - - # 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 - - # >=wine-vanilla-9 has proper fixes and builds with gcc-14, but - # staging patchset is messier and would rather not have to worry - # about it (try to remove on bump now and then, bug #919758) - append-cflags $(test-flags-CC -Wno-error=incompatible-pointer-types) - - 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 - - # 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 \ - "${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; } && - 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." - 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() { - eselect wine update --if-unset || die -} diff --git a/app-emulation/wine-staging/wine-staging-9.6.ebuild b/app-emulation/wine-staging/wine-staging-9.6.ebuild deleted file mode 100644 index 1a169317c27f..000000000000 --- a/app-emulation/wine-staging/wine-staging-9.6.ebuild +++ /dev/null @@ -1,478 +0,0 @@ -# Copyright 2022-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -MULTILIB_COMPAT=( abi_x86_{32,64} ) -PYTHON_COMPAT=( python3_{10..13} ) -inherit autotools edo flag-o-matic multilib multilib-build optfeature -inherit prefix python-any-r1 toolchain-funcs wrapper - -WINE_GECKO=2.47.4 -WINE_MONO=9.0.0 -WINE_P=wine-$(ver_cut 1-2) - -if [[ ${PV} == *9999 ]]; then - inherit git-r3 - EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine-staging.git" - WINE_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_P}.tar.xz - https://github.com/wine-staging/wine-staging/archive/v${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="-* ~amd64 ~x86" -fi - -DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset" -HOMEPAGE=" - https://wiki.winehq.org/Wine-Staging - https://gitlab.winehq.org/wine/wine-staging/ -" - -S="${WORKDIR}/${WINE_P}" - -LICENSE="LGPL-2.1+ BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff" -SLOT="${PV}" -IUSE=" - +X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos - llvm-libunwind custom-cflags +fontconfig +gecko gphoto2 +gstreamer - kerberos +mingw +mono netapi nls opencl +opengl osmesa pcap perl - pulseaudio samba scanner +sdl selinux smartcard +ssl +strip - +truetype udev udisks +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}] - osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] ) - ) - xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) - xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] ) - ) - cups? ( net-print/cups[${MULTILIB_USEDEP}] ) - fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] ) - kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] ) - netapi? ( net-fs/samba[${MULTILIB_USEDEP}] ) - sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] ) - ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] ) - truetype? ( media-libs/freetype[${MULTILIB_USEDEP}] ) - udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) - v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] ) - vulkan? ( media-libs/vulkan-loader[X?,${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}] ) - 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? ( sys-libs/llvm-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 ) - udisks? ( sys-fs/udisks:2 ) -" -DEPEND=" - ${WINE_COMMON_DEPEND} - sys-kernel/linux-headers - X? ( x11-base/xorg-proto ) -" -# gitapply.sh prefers git but can fallback to patch+extras -BDEPEND=" - ${PYTHON_DEPS} - || ( - dev-vcs/git - ( - sys-apps/gawk - sys-apps/util-linux - ) - ) - || ( - sys-devel/binutils - sys-devel/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 #900334) - res_getservers # false positive -) -QA_FLAGS_IGNORED="usr/lib/.*/wine/.*-unix/odbc32.so" # has no compiled objects -QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext - -PATCHES=( - "${FILESDIR}"/${PN}-7.17-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_unpack() { - if [[ ${PV} == *9999 ]]; then - EGIT_CHECKOUT_DIR=${WORKDIR}/${P} - git-r3_src_unpack - - # hack: use subshell to preserve state (including what git-r3 unpack - # sets) for smart-live-rebuild as this is not the repo to look at - ( - EGIT_COMMIT=$(<"${EGIT_CHECKOUT_DIR}"/staging/upstream-commit) || die - EGIT_REPO_URI=${WINE_EGIT_REPO_URI} - EGIT_CHECKOUT_DIR=${S} - einfo "Fetching Wine commit matching the current patchset by default (${EGIT_COMMIT})" - git-r3_src_unpack - ) - else - default - fi -} - -src_prepare() { - local patchinstallargs=( - --all - --no-autoconf - ${MY_WINE_STAGING_CONF} - ) - - edo "${PYTHON}" ../${P}/staging/patchinstall.py "${patchinstallargs[@]}" - - # 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 /etc/portage/env/app-emulation/wine-staging -} - -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 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) - $(use_with osmesa) - --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 udisks dbus) # dbus is only used for udisks - $(use_with unwind) - $(use_with usb) - $(use_with v4l v4l2) - $(use_with vulkan) - $(use_with wayland) - $(use_with xcomposite) - $(use_with xinerama) - ) - - 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 - - # 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 - - # >=wine-vanilla-9 has proper fixes and builds with gcc-14, but - # staging patchset is messier and would rather not have to worry - # about it (try to remove on bump now and then, bug #919758) - append-cflags $(test-flags-CC -Wno-error=incompatible-pointer-types) - - 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 - - # 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 \ - "${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; } && - 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." - 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() { - eselect wine update --if-unset || die -} diff --git a/app-emulation/wine-staging/wine-staging-9.9.ebuild b/app-emulation/wine-staging/wine-staging-9.9.ebuild new file mode 100644 index 000000000000..c8f8d0cdc861 --- /dev/null +++ b/app-emulation/wine-staging/wine-staging-9.9.ebuild @@ -0,0 +1,478 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MULTILIB_COMPAT=( abi_x86_{32,64} ) +PYTHON_COMPAT=( python3_{10..13} ) +inherit autotools edo flag-o-matic multilib multilib-build optfeature +inherit prefix python-any-r1 toolchain-funcs wrapper + +WINE_GECKO=2.47.4 +WINE_MONO=9.1.0 +WINE_P=wine-$(ver_cut 1-2) + +if [[ ${PV} == *9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine-staging.git" + WINE_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_P}.tar.xz + https://github.com/wine-staging/wine-staging/archive/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="-* ~amd64 ~x86" +fi + +DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset" +HOMEPAGE=" + https://wiki.winehq.org/Wine-Staging + https://gitlab.winehq.org/wine/wine-staging/ +" + +S="${WORKDIR}/${WINE_P}" + +LICENSE="LGPL-2.1+ BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff" +SLOT="${PV}" +IUSE=" + +X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos + llvm-libunwind custom-cflags +fontconfig +gecko gphoto2 +gstreamer + kerberos +mingw +mono netapi nls opencl +opengl osmesa pcap perl + pulseaudio samba scanner +sdl selinux smartcard +ssl +strip + +truetype udev udisks +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}] + osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] ) + ) + xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) + xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] ) + ) + cups? ( net-print/cups[${MULTILIB_USEDEP}] ) + fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] ) + kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] ) + netapi? ( net-fs/samba[${MULTILIB_USEDEP}] ) + sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] ) + ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] ) + truetype? ( media-libs/freetype[${MULTILIB_USEDEP}] ) + udisks? ( sys-apps/dbus[${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}] ) + 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? ( sys-libs/llvm-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 ) + udisks? ( sys-fs/udisks:2 ) +" +DEPEND=" + ${WINE_COMMON_DEPEND} + sys-kernel/linux-headers + X? ( x11-base/xorg-proto ) +" +# gitapply.sh prefers git but can fallback to patch+extras +BDEPEND=" + ${PYTHON_DEPS} + || ( + dev-vcs/git + ( + sys-apps/gawk + sys-apps/util-linux + ) + ) + || ( + sys-devel/binutils + sys-devel/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 #900334) + res_getservers # false positive +) +QA_FLAGS_IGNORED="usr/lib/.*/wine/.*-unix/odbc32.so" # has no compiled objects +QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext + +PATCHES=( + "${FILESDIR}"/${PN}-7.17-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_unpack() { + if [[ ${PV} == *9999 ]]; then + EGIT_CHECKOUT_DIR=${WORKDIR}/${P} + git-r3_src_unpack + + # hack: use subshell to preserve state (including what git-r3 unpack + # sets) for smart-live-rebuild as this is not the repo to look at + ( + EGIT_COMMIT=$(<"${EGIT_CHECKOUT_DIR}"/staging/upstream-commit) || die + EGIT_REPO_URI=${WINE_EGIT_REPO_URI} + EGIT_CHECKOUT_DIR=${S} + einfo "Fetching Wine commit matching the current patchset by default (${EGIT_COMMIT})" + git-r3_src_unpack + ) + else + default + fi +} + +src_prepare() { + local patchinstallargs=( + --all + --no-autoconf + ${MY_WINE_STAGING_CONF} + ) + + edo "${PYTHON}" ../${P}/staging/patchinstall.py "${patchinstallargs[@]}" + + # 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 /etc/portage/env/app-emulation/wine-staging +} + +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 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) + $(use_with osmesa) + --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 udisks dbus) # dbus is only used for udisks + $(use_with unwind) + $(use_with usb) + $(use_with v4l v4l2) + $(use_with vulkan) + $(use_with wayland) + $(use_with xcomposite) + $(use_with xinerama) + ) + + 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 + + # 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 + + # >=wine-vanilla-9 has proper fixes and builds with gcc-14, but + # staging patchset is messier and would rather not have to worry + # about it (try to remove on bump now and then, bug #919758) + append-cflags $(test-flags-CC -Wno-error=incompatible-pointer-types) + + 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 + + # 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 \ + "${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; } && + 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." + 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() { + eselect wine update --if-unset || die +} diff --git a/app-emulation/wine-staging/wine-staging-9999.ebuild b/app-emulation/wine-staging/wine-staging-9999.ebuild index 1b010ac0cc44..c8f8d0cdc861 100644 --- a/app-emulation/wine-staging/wine-staging-9999.ebuild +++ b/app-emulation/wine-staging/wine-staging-9999.ebuild @@ -4,7 +4,7 @@ EAPI=8 MULTILIB_COMPAT=( abi_x86_{32,64} ) -PYTHON_COMPAT=( python3_{10..12} ) +PYTHON_COMPAT=( python3_{10..13} ) inherit autotools edo flag-o-matic multilib multilib-build optfeature inherit prefix python-any-r1 toolchain-funcs wrapper diff --git a/app-emulation/wine-vanilla/Manifest b/app-emulation/wine-vanilla/Manifest index 1351e9542351..06bb7c3507e2 100644 --- a/app-emulation/wine-vanilla/Manifest +++ b/app-emulation/wine-vanilla/Manifest @@ -6,16 +6,14 @@ AUX wine-vanilla-9.8-musl-ioctls-header.patch 938 BLAKE2B a101f1fc7a6bcd6e8c22ce DIST wine-7.0.2.tar.xz 27179980 BLAKE2B 721ab574092638b32d3a483b6ae3def0c9d706cc888662ca461ab8c7060b10077e83cede69663ea2a8b97729f3801209fbba5f8e8828ce20454700ffbbd76cb5 SHA512 330c71005a6a8054b5068ac4484e9015e9f8bf55d5a451aaf5f79b7f78a025732b454251c31473abf21504cce3b78e50cf7e3e0d0116bb755dc8396bd790289a DIST wine-8.0.2.tar.xz 29060452 BLAKE2B dcffaba6c90c4e02a7bc591a81e11aced06c006370c4c316c8a367b2f5814926063482959fabfe9d674ee1b5a560e59087e9b711e28360ced3aee2bbd6bb8fdb SHA512 e86dd31247d757d48ffb2d24f20edab3fc6ef9c3e395567a7b363951bb681335ba3adb8b84639011b24b6eb274582d56880298d6d95fb100acc072383d4e973f DIST wine-9.0.tar.xz 30007216 BLAKE2B cf53177201a2f7eeb35d0d8ce220f80808d979099a928ad60652d1dee92620c433cc105dffab4e9309f41766087ad1544ef49d2922538bb420d62f6dd64117a1 SHA512 838daf2c4581f83f8573b988036f517d57b84894b090a2a17433255d6d044dfa880e6724cdb83082a36c333df9d2083ab68ae53927622a620edd59f33462ada4 -DIST wine-9.5.tar.xz 30371420 BLAKE2B c14ebf02f0f5b91bc2b2517ff3630f22c6af7fdc827c5d024d809a383a65446284a5349c8109835112f5353f361088f4f32de1a3d04299fbf39deacbc0e8e8bf SHA512 8ccad8f6e6b1428886dee9fae771796e2021b4122cd96464350352bede25421406e6a6a0fdd63d8b99b896db8dc529aa6e05d6ac7966bee49ce3055b18a8af91 -DIST wine-9.6.tar.xz 30261488 BLAKE2B 53115a8a80593856679718b2055340860221701bc82a784a111a992f5e67b031d7407a16f6df6d4da67f382f30c35d2dd82af2a671a058a76b621c91199e426e SHA512 cc2ea5597636da8d392d1d63b9c135679eff69ea671dc6b53b6f2d44a890aee0e17275174485f6e8dd99c7db737eb82a800a2b05c4966f15e28167c5a6098922 DIST wine-9.7.tar.xz 30281616 BLAKE2B 4d27f6f2dfd088a0590bfce7228c7eca25b66a9a04706ddecb25af6364e83100c15a78c8d46f3294a42dc7f3503756506f752a02d7058a72ce16716994b334bc SHA512 0c15c3a0901162a386126f2dc987b276b379cc027fc72d9e31cf3122614742f876f30a5f24a495f546cd9c5bd5efce096bd9ca190d0f378fea3d42a298a06e80 DIST wine-9.8.tar.xz 30297460 BLAKE2B 689d1b4e55f7d66b8fad8432ad35a52e2fad303e8a9382b8893222c696697efa5de5b56cc2b933bed96d6382f9fdc919fa15e6517ffdb50105cdaea904a7d77f SHA512 3d1b0e6b7b633a0b45ba6b23e741e808dec29355721baf4489c3ad34c67d714b40897ef510c4a84f31be390d7f8b86b93a725787d733eaf77df5c82b322d2662 +DIST wine-9.9.tar.xz 30265476 BLAKE2B a2557044b10252c1b1ae023e10863c601e9159d64eda2ce1d8aab4dbb9efffa1b4b15ed27a9edbf6f2bba148c2bb07e729bd706bac9fe17f91c826c74b5980e6 SHA512 df016411933b5447bef9b48f67c58e12d6d33ef0c24045ab03c92821dcccbf84335d1a2d765e6d6cf3a743598317010b8ae6f69de3661733e4fa43febec873dd EBUILD wine-vanilla-7.0.2.ebuild 12325 BLAKE2B ce419741372c04a562d5aba5f5ffa07981ad52b782592380b8fa595756b9d12932310bf476a50e249dd74ddfbe0d334de5248cc231d97c02013238b755e66c34 SHA512 321fa59d451f6db3fdfdd2730581d32c136d9436dcceab76b9973c7280d5a04afad929c5e7bf1329434a96a518a6fc37db811f561cb2841298a622693a51aa26 EBUILD wine-vanilla-8.0.2.ebuild 12413 BLAKE2B a2e15628b5e21835bae51a12870ee96754e07fbfb3061617255b56a394c5de05fbbf5433d8bd5eee60e06939a721dc5b4f4f6bc20c4918f5df4fc74168420f61 SHA512 b5ee42415c033f5dcd85ba1e549814616d7b91c80616d57d909ab8cf17b9a586a267531fa08f1583f531c279b43442bc3587dae716933e0e21de4ca317580934 EBUILD wine-vanilla-9.0.ebuild 13690 BLAKE2B 87fe5ceb2aed1a562ee197b3bb134bfa7d66c9b35526ab8a49d7985d75b18b1288356bccaf422942fc8bc0690a9d7ebd3b01acfce59b8ef36c4c52ea26cfc189 SHA512 6ec9e09b4891fc94eb4e33505ca9070dd3a0ad7261b9804aadb281208b477e74e86b0b7b0527f8f5b3e9e838ef6169d1ea5c90ad343edb4b92737ab035cbb88b -EBUILD wine-vanilla-9.5.ebuild 13831 BLAKE2B 27cda1e52981f9eba515f1dbc7b055cc7ce8148343923c56b15f91a5eb59e6b0f1bacd0b994e9de5757ec7a157351214163b76ede7f27d4b8f94d31dc29d9b09 SHA512 d29c2ef2010b45c6c2695b4b6f933459433a3a84a99a704e2bb3cc3495a7309a63430ffd9a616ef4cc4ab443b0ef53e368523360bc0a0f2395faf61fba284304 -EBUILD wine-vanilla-9.6.ebuild 13822 BLAKE2B 99816b8595118dc9a9dacaeefa96a61f117ef4824870f645bdc823aa3e10a6546a25bf23875a2ec585f124094412498735c49bfdd36d0d0acc47f36705b91601 SHA512 cb48910fbfafcca7a3e1c55e84081ce2bf122583d19b0825fa16a42868e45fb6b0269ba8f9e2de5d6d81523b7881338212737ec857e6c3e491a8a93a760ba0c8 EBUILD wine-vanilla-9.7.ebuild 13822 BLAKE2B 99816b8595118dc9a9dacaeefa96a61f117ef4824870f645bdc823aa3e10a6546a25bf23875a2ec585f124094412498735c49bfdd36d0d0acc47f36705b91601 SHA512 cb48910fbfafcca7a3e1c55e84081ce2bf122583d19b0825fa16a42868e45fb6b0269ba8f9e2de5d6d81523b7881338212737ec857e6c3e491a8a93a760ba0c8 EBUILD wine-vanilla-9.8.ebuild 13876 BLAKE2B 28235507c1b39302e58302240fa3c45f4d57580b3ed6a173413dff6c8177202c9ad4253b4144e40086c086be3824b558d8f8fc79d92c05df4d6b350f05531705 SHA512 314cfecac337655766e897d3f59a567ca5897d0cbc784a297bf158558a20de27eff29b0b698101d6fdc44f872b753a66f52fd9899d0bbe01a63b0a99845da83c +EBUILD wine-vanilla-9.9.ebuild 13811 BLAKE2B 5bbd804a49be2193c311682266185c5cf70dd8469c507e4cfd8f08530fe75d6609175a06c21ada5cb662bef3572a61a704650dd1e632039062e9dbc41a997218 SHA512 8ebe290a8953569316832890a35f210811cde693570e8c7c7d9dd15adf6184229958fc5e2010b45e15bfc8e0a16c84ffa381fad312750bafd846526cde556722 EBUILD wine-vanilla-9999.ebuild 13811 BLAKE2B 5bbd804a49be2193c311682266185c5cf70dd8469c507e4cfd8f08530fe75d6609175a06c21ada5cb662bef3572a61a704650dd1e632039062e9dbc41a997218 SHA512 8ebe290a8953569316832890a35f210811cde693570e8c7c7d9dd15adf6184229958fc5e2010b45e15bfc8e0a16c84ffa381fad312750bafd846526cde556722 MISC metadata.xml 2726 BLAKE2B 7dc7490fabcda06a27061726225890ee203fe7d22209697c3997f0ccdb4699bfaa09f983c22c4919ce75d2eab6ebdb1add9d9af04f24aee63bae81116fc04094 SHA512 5cdbb062462ae791ff9727d184935af3af147c0bd1e49846731941513301b720313b3356f56a8295780ab822e3117146c9a669d2d96efba6f072d84adba770e6 diff --git a/app-emulation/wine-vanilla/wine-vanilla-9.5.ebuild b/app-emulation/wine-vanilla/wine-vanilla-9.5.ebuild deleted file mode 100644 index 5c5dff913f13..000000000000 --- a/app-emulation/wine-vanilla/wine-vanilla-9.5.ebuild +++ /dev/null @@ -1,431 +0,0 @@ -# Copyright 2022-2024 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.0.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-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff" -SLOT="${PV}" -IUSE=" - +X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos - 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 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}] - osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] ) - ) - xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) - xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] ) - ) - cups? ( net-print/cups[${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}] ) - udisks? ( sys-apps/dbus[${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}] ) - 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? ( sys-libs/llvm-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 ) - udisks? ( sys-fs/udisks:2 ) -" -DEPEND=" - ${WINE_COMMON_DEPEND} - sys-kernel/linux-headers - X? ( x11-base/xorg-proto ) -" -BDEPEND=" - || ( - sys-devel/binutils - sys-devel/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 /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 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) - $(use_with osmesa) - --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 udisks dbus) # dbus is only used for udisks - $(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 - - # 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 - - # 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 \ - "${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; } && - 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." - 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() { - eselect wine update --if-unset || die -} diff --git a/app-emulation/wine-vanilla/wine-vanilla-9.6.ebuild b/app-emulation/wine-vanilla/wine-vanilla-9.6.ebuild deleted file mode 100644 index 868d1a000777..000000000000 --- a/app-emulation/wine-vanilla/wine-vanilla-9.6.ebuild +++ /dev/null @@ -1,431 +0,0 @@ -# Copyright 2022-2024 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.0.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-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff" -SLOT="${PV}" -IUSE=" - +X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos - 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 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}] - osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] ) - ) - xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) - xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] ) - ) - cups? ( net-print/cups[${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}] ) - udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) - v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] ) - vulkan? ( media-libs/vulkan-loader[X?,${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}] ) - 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? ( sys-libs/llvm-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 ) - udisks? ( sys-fs/udisks:2 ) -" -DEPEND=" - ${WINE_COMMON_DEPEND} - sys-kernel/linux-headers - X? ( x11-base/xorg-proto ) -" -BDEPEND=" - || ( - sys-devel/binutils - sys-devel/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 /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 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) - $(use_with osmesa) - --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 udisks dbus) # dbus is only used for udisks - $(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 - - # 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 - - # 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 \ - "${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; } && - 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." - 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() { - eselect wine update --if-unset || die -} diff --git a/app-emulation/wine-vanilla/wine-vanilla-9.9.ebuild b/app-emulation/wine-vanilla/wine-vanilla-9.9.ebuild new file mode 100644 index 000000000000..2685dfbc9d27 --- /dev/null +++ b/app-emulation/wine-vanilla/wine-vanilla-9.9.ebuild @@ -0,0 +1,431 @@ +# Copyright 2022-2024 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.1.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-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff" +SLOT="${PV}" +IUSE=" + +X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos + 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 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}] + osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] ) + ) + xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) + xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] ) + ) + cups? ( net-print/cups[${MULTILIB_USEDEP}] ) + fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] ) + kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] ) + netapi? ( net-fs/samba[${MULTILIB_USEDEP}] ) + sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] ) + ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] ) + truetype? ( media-libs/freetype[${MULTILIB_USEDEP}] ) + udisks? ( sys-apps/dbus[${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}] ) + 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}] + ) + odbc? ( dev-db/unixODBC[${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? ( sys-libs/llvm-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 ) + udisks? ( sys-fs/udisks:2 ) +" +DEPEND=" + ${WINE_COMMON_DEPEND} + sys-kernel/linux-headers + X? ( x11-base/xorg-proto ) +" +BDEPEND=" + || ( + sys-devel/binutils + sys-devel/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 /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 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 odbc) + $(use_with opencl) + $(use_with opengl) + $(use_with osmesa) + --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 udisks dbus) # dbus is only used for udisks + $(use_with unwind) + $(use_with usb) + $(use_with v4l v4l2) + $(use_with vulkan) + $(use_with wayland) + $(use_with xcomposite) + $(use_with xinerama) + ) + + 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 + + # 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 + + # 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 \ + "${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; } && + 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." + 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() { + eselect wine update --if-unset || die +} -- cgit v1.2.3