From 0968caae52d6eae7513e2ce4e0900a2e009780ee Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sun, 17 Sep 2023 11:03:04 +0100 Subject: gentoo auto-resync : 17:09:2023 - 11:03:03 --- app-emulation/wine-staging/Manifest | 9 +- .../wine-staging/wine-staging-8.11-r1.ebuild | 412 ------------------ .../wine-staging/wine-staging-8.12.ebuild | 412 ------------------ .../wine-staging/wine-staging-8.16.ebuild | 458 +++++++++++++++++++++ 4 files changed, 461 insertions(+), 830 deletions(-) delete mode 100644 app-emulation/wine-staging/wine-staging-8.11-r1.ebuild delete mode 100644 app-emulation/wine-staging/wine-staging-8.12.ebuild create mode 100644 app-emulation/wine-staging/wine-staging-8.16.ebuild (limited to 'app-emulation/wine-staging') diff --git a/app-emulation/wine-staging/Manifest b/app-emulation/wine-staging/Manifest index f1423a7a5d76..c570b26bdfd2 100644 --- a/app-emulation/wine-staging/Manifest +++ b/app-emulation/wine-staging/Manifest @@ -2,22 +2,19 @@ AUX wine-staging-7.17-noexecstack.patch 223 BLAKE2B 6e6cfc208f11c2c2b7bbc392e370 AUX wine-staging-7.20-unwind.patch 1450 BLAKE2B 80e9222c95393aaa4b95e05597a4181030fc988d95e416d2f92631f29f640b9abb3dd0853d005de4725b41c09224e478741902075259d48a30830a923790579f SHA512 e1a72f1463be32975daa02064acb96189cd79cb41ff98f89b58e46c97100a3ac46405b1b9982378c9de275acbdb74168853e47b932e06398cdd2981b23f483ce AUX wine-staging-8.13-rpath.patch 554 BLAKE2B 209d8c581a9178242ee622338c5252f79b798cf5574f72b3984d71b7933e011b488060502715aa75630fbc3d10fcb03743ac31ed31664cacfc22b725253a117b SHA512 bbb25e02d19bd7c1a1f2d7db331d93cfcd5ce9172206ad9e19a44c52e5ece865d474eac024c2a5791dfa006c6efe0f68cd783ffc925ac793bf447d56090bdd02 DIST wine-8.0.tar.xz 29054044 BLAKE2B baf8f96b665119c9f38a148a2472dbe8f6ca8d4641d9d09d48cb72cb4de2585c274b8b7981c2fa622ead6da2f087c57652e9b48edc8a17c0cfd6be9a36732f02 SHA512 53ba813b260a65a271ec575822725b97631f60038fb026dcc0fe66862711eedcc29a8feb29ff54ae4f64458f85c290d8f3838eff5e4c77a5420a7d2b951fef77 -DIST wine-8.11.tar.xz 29236492 BLAKE2B db97b9abde6e1f4c854b449d27bdbafbc91bd75b835d84da401777c6ae2f4f623f2130f470d2e9a3aaf7e737f75d143a07191d38b409c06596373bece3df23c5 SHA512 f3e37f51f0a13aacbd41b017fc3d35e197614b03c00f5b9959c0fabc4e89975b5c3f411b38329e45ce6f9d2a2d82952b95e0907fbe2d6ae35cc4bec293825769 -DIST wine-8.12.tar.xz 29276732 BLAKE2B c1bf0d32eaf17f06b47dd7ffc495db4874f72ffec7cfca9edd9b2b9def8ab16db2583349950c3af447d85d476aa013914554f990d5f42d5bc8243b9effbaf869 SHA512 6b9eab7ca1ed5a13202b1250d8d95f6bd8ee5176f0c39b5358aedaf28f7f23543f4a73bf0782c3b4e50936813fc2a459582b5d294569c976ace784fbd9e0af1b DIST wine-8.13.tar.xz 29379824 BLAKE2B fa07edba8e45ef17813e63f793ca18cd05fd421b803d416421ec0fb7aeb4223ae44376a7e75a195e91c30259f27b48c3ed4ab0b613cbb9464b824f51e85ea240 SHA512 952c670635f91879cf6908343a04c0f41ae54e213123242e24fc282f9705fbe3b800dc1de454b6cfb1ebb89431b0e6eb3df3b094c1d9f4e69835d0f1b8f4fcb5 DIST wine-8.14.tar.xz 29412976 BLAKE2B 239f90dd9c40bbca719231d2a0240e75f803ead314ab7fb8cb90e375a52696700af87ac2cdeff9a2ecb1d1cce271142cf16ce200024c98fb8bd543779aa2423e SHA512 cf293546c29379237e8c2b7526b16faa0df6a255aa1718097be4382604da4f84f7fad8486a931f39020fe63548625641cf68a822c975f56c30aaa2aa8a024176 DIST wine-8.15.tar.xz 29427600 BLAKE2B 9a1bb0de4048e32f78e3630e9e33dc99a117d4fcb4e61285e3fb298de9f1742a7d9c52f0d02dd407ce5c62768d7fecf51947165fbc8e62cf076519caea13a2db SHA512 d450dfe868ac7c7cb26ccc5e6d492c1311395c5f8b150610f5b1e78451d303b63b67c7e0ad48d6a66ae5265c5bc16da970544cf12195d8635cc3fc96c4a26cad +DIST wine-8.16.tar.xz 29457688 BLAKE2B 497cefed7990b2c6ae28022276d83e4fb7265cfa99a3c3b88eab56566f125d631cf9310d149a9d4fa05934fa1f26ac2138ec366b16c6d2585f199e3be8ce3beb SHA512 0ba83beacd842e53173c07c30fa4ee57424af0d00b9f168b8bd310c40ea06e26dfc09f4a1991b788a8c4bd2b6eeb439e60b0deff6249424a00fa2940c95662b6 DIST wine-staging-8.0.tar.gz 9529620 BLAKE2B c9540195ea885d9f1e980232b0af471e92c61eb079cae35fdb3af5c13d4660b3466f751772440e38f15874082db296d16d1f1d68827a505b2dd949617eda0203 SHA512 76a729d7ced1ff634ddb455ddfaa66ca103b652f43cd152b57ada7431bb5fbb74f5e92bf2f4f329b6df6f5908130afad84e609cbce6df645d6cf8131e9b949f9 -DIST wine-staging-8.11.tar.gz 9715880 BLAKE2B 2795389381d6e52215d8b1b2c437a47beaf61e9b36e78f99c45b3fcd79d554f2d4abafcbf34c366dcb7ce4fc14d66b8751466c30648ae0d7c451aaa345c30c5f SHA512 fb7a5f575c092e84afa78868e3b15fa33d67205a5e20deae61a60613714df784b18d54cd32167355ae38543f047f4304bfbc7f2ba2b3f6050c9f738812a15154 -DIST wine-staging-8.12.tar.gz 9764049 BLAKE2B 739c6dfdcef6e744fc7f6dcee24abdedd5f96b7ad688bdd5cc667627cec0b21d658354369ecc0de71a4ba682636e369105cef3de97dbf095f1ee1025d9a12fc2 SHA512 11364b2367e25706b98c168710288b796e9dea1e3400efc0d010ea8827cb8c4187385f53aebd1fda46611902f6619282ea97ce9d7c20fe18aa48c14f15c99d14 DIST wine-staging-8.13.tar.gz 9785058 BLAKE2B 6c797cd50276009cc23619447a70ac972b5c7ad7684d7bd99f20cd7607b88f911eb89f59df98680ef8786495f2f8ff2910c8bbd930d811bb31147aa230105ce1 SHA512 b2104b0893ba27ee7f4f5495f7dee990962ff668786fd95e11af6d3975b7d00bc4ecb2572f280d27fbb6d1672745e0acbdb392ec7b3fd5b330a846783c23e12d DIST wine-staging-8.14.tar.gz 9847486 BLAKE2B 62762efe15007b7a275c4f30c79b398f77078e5ba7ca44f9159d300cc7688439d8efbfae1c7c2faa73a17ceab0de82dbc1fc6338e99f3714fc1212b6e1bf71a8 SHA512 c126ddd49f2c89b61448c71779f022f7031b19f1bc346d4aa1e8dbe4845f2c5d80e92810db5e0bbc0cae3d5f8466e2ab9a2c5685923318aedfb766669504a7db DIST wine-staging-8.15.tar.gz 9856164 BLAKE2B 9313c88a436cd73e5b1b0cc44d0c781babcd870cdf89c4111ef1eef6012362123c244360bb7ae39b65317b39f3dfffd0530dd5674507bc0c1824d9d2efeabd3e SHA512 23d956dd9a5d5b8cb4efd5dcb5a0fd5926539b7e45d230920e20a84d27ecd6e4b1cc8285d328a0be622f66c48d453b577a4eeb096f8a866760da81cc47410a2a +DIST wine-staging-8.16.tar.gz 9865735 BLAKE2B 83848d86b55961e3f84013bac2c5280dd6a281470ee09cd7f7cfccb1b91f5e62d73e0214bdeb2cfcfb255f387fe8de3b90e50b2e5e96c165f315fd6eb81aea58 SHA512 3748c9e41aa4c50e10f2dc7301d059bfeb614adc859bacad3b1d7ff00fa72a8ee65fd527c6ce2c065523002df353b82f17ff601b4cbbc4f7b84b1197ece3d9e2 EBUILD wine-staging-8.0.ebuild 12655 BLAKE2B 41692e9bafd318d2238d6006a1cbbff199203171a0ed0645fce829daba6127fae26cd9db9284fb57a1876f952578962300b694e27d53448cdb9cb819665a2c51 SHA512 584d5f97c803e8f6961e877946be5a5902a624bf198be9caab021204d33ebbb8f5a411061041f96738b94d8724b8d0af0d9b2e4eb0f81cecdeb14528e311cbe6 -EBUILD wine-staging-8.11-r1.ebuild 12967 BLAKE2B 591146ecffb30a3ddcc7b0f0ee0fcb312b7f1f6f418aa3e893ef1db9ab5c6053205b226df863274148e6a10b947e18b70bc9310da6e56f1a9aa26df0376aae5c SHA512 e82c3237bf2d66fec9d691abfaee1fccec5df35f97ca967978c519175dad2bfeab4e3f8ef6d7c15e085e6131ce5e77c61a917366c752a5aa6b02e061e1781708 -EBUILD wine-staging-8.12.ebuild 12967 BLAKE2B 591146ecffb30a3ddcc7b0f0ee0fcb312b7f1f6f418aa3e893ef1db9ab5c6053205b226df863274148e6a10b947e18b70bc9310da6e56f1a9aa26df0376aae5c SHA512 e82c3237bf2d66fec9d691abfaee1fccec5df35f97ca967978c519175dad2bfeab4e3f8ef6d7c15e085e6131ce5e77c61a917366c752a5aa6b02e061e1781708 EBUILD wine-staging-8.13.ebuild 14643 BLAKE2B f22577e76928c433bb21a0d588ae48b259b85e63e11d066af8ada45ed118d419c298e8aa843775423af0317e62f0bd749c372a3e353dfbd87608ceed6edf06b8 SHA512 bbb243edaf163f89a78797fe67f3a9b406e903d804d31ea60f2e386f14cbe804e5affbb0add67b12325222d1ea4e2b87932ffb356ce13accc576ecdcdcf469d0 EBUILD wine-staging-8.14.ebuild 14643 BLAKE2B f22577e76928c433bb21a0d588ae48b259b85e63e11d066af8ada45ed118d419c298e8aa843775423af0317e62f0bd749c372a3e353dfbd87608ceed6edf06b8 SHA512 bbb243edaf163f89a78797fe67f3a9b406e903d804d31ea60f2e386f14cbe804e5affbb0add67b12325222d1ea4e2b87932ffb356ce13accc576ecdcdcf469d0 EBUILD wine-staging-8.15.ebuild 14643 BLAKE2B f22577e76928c433bb21a0d588ae48b259b85e63e11d066af8ada45ed118d419c298e8aa843775423af0317e62f0bd749c372a3e353dfbd87608ceed6edf06b8 SHA512 bbb243edaf163f89a78797fe67f3a9b406e903d804d31ea60f2e386f14cbe804e5affbb0add67b12325222d1ea4e2b87932ffb356ce13accc576ecdcdcf469d0 +EBUILD wine-staging-8.16.ebuild 14643 BLAKE2B f22577e76928c433bb21a0d588ae48b259b85e63e11d066af8ada45ed118d419c298e8aa843775423af0317e62f0bd749c372a3e353dfbd87608ceed6edf06b8 SHA512 bbb243edaf163f89a78797fe67f3a9b406e903d804d31ea60f2e386f14cbe804e5affbb0add67b12325222d1ea4e2b87932ffb356ce13accc576ecdcdcf469d0 EBUILD wine-staging-9999.ebuild 14643 BLAKE2B f22577e76928c433bb21a0d588ae48b259b85e63e11d066af8ada45ed118d419c298e8aa843775423af0317e62f0bd749c372a3e353dfbd87608ceed6edf06b8 SHA512 bbb243edaf163f89a78797fe67f3a9b406e903d804d31ea60f2e386f14cbe804e5affbb0add67b12325222d1ea4e2b87932ffb356ce13accc576ecdcdcf469d0 MISC metadata.xml 2538 BLAKE2B cb657e04ad7f26b088f03f862a7e7ccbc4eb6592de17ec8022b5e4b306bd10f7daae7f6de113b142a9cf713a91cab9fbd0650cca4591adc13e4a77280f9812e3 SHA512 a87687fb1a0d2f639626f4a90e7fb78bd31926c53460af3cc80c93e9974f189b545c830278157893f5e48a54b20e5b49b2d1e996ccb5520a47f319b7048999a7 diff --git a/app-emulation/wine-staging/wine-staging-8.11-r1.ebuild b/app-emulation/wine-staging/wine-staging-8.11-r1.ebuild deleted file mode 100644 index 55c76dfdc2da..000000000000 --- a/app-emulation/wine-staging/wine-staging-8.11-r1.ebuild +++ /dev/null @@ -1,412 +0,0 @@ -# Copyright 2022-2023 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..12} ) -inherit autotools edo flag-o-matic multilib multilib-build -inherit prefix python-any-r1 toolchain-funcs wrapper - -WINE_GECKO=2.47.4 -WINE_MONO=8.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 -S="${WORKDIR}/${WINE_P}" - -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/" - -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 +xcomposite - xinerama" -REQUIRED_USE=" - X? ( truetype ) - crossdev-mingw? ( mingw )" # bug #551124 for truetype - -# 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[${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}] )" -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}] ) - 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 - ) - ) - dev-lang/perl - sys-devel/binutils - sys-devel/bison - sys-devel/flex - virtual/pkgconfig - mingw? ( !crossdev-mingw? ( - >=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}] - ) ) - 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 -) - -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}) $(usev abi_x86_32 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 /dev/null) == mold* ]] && - append-ldflags -fuse-ld=bfd - - # build using upstream's way (--with-wine64) - # order matters: 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 - - pe_arch=i386 - if (( bits == 64 )); then - pe_arch=x86_64 - : "${CROSSCC:=${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}" - conf+=( --enable-win64 ) - elif use amd64; then - conf+=( - $(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 - : "${CROSSCC:=${CROSSCC_x86:-i686-w64-mingw32-gcc}}" - - if use mingw; then - # CROSSCC is no longer recognized by Wine, but still use for now - # (future handling for CROSS* variables is subject to changes) - conf+=( ac_cv_prog_${pe_arch}_CC="${CROSSCC}" ) - - # use *FLAGS for mingw, but strip unsupported - : "${CROSSCFLAGS:=$( - filter-flags '-fstack-protector*' #870136 - filter-flags '-mfunction-return=thunk*' #878849 - - # -mavx with mingw-gcc has a history of obscure issues and - # disabling is seen as safer, e.g. `WINEARCH=win32 winecfg` - # crashes with -march=skylake >=wine-8.10, similar issues with - # znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273 - append-cflags -mno-avx #912268 - - CC=${CROSSCC} test-flags-CC ${CFLAGS:--O2})}" - : "${CROSSLDFLAGS:=$( - filter-flags '-fuse-ld=*' - CC=${CROSSCC} test-flags-CCLD ${LDFLAGS})}" - export CROSS{C,LD}FLAGS - fi - - ECONF_SOURCE=${S} econf "${conf[@]}" - ) - 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 - - # symlink for plain 'wine' and install its man pages if 64bit-only #404331 - if use abi_x86_64 && use !abi_x86_32; then - dosym wine64 ${WINE_PREFIX}/bin/wine - dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader - local man - for man in ../build64/loader/wine.*man; do - : "${man##*/wine}" - : "${_%.*}" - insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1 - newins ${man} wine.1 - done - 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 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 - - eselect wine update --if-unset || die -} - -pkg_postrm() { - eselect wine update --if-unset || die -} diff --git a/app-emulation/wine-staging/wine-staging-8.12.ebuild b/app-emulation/wine-staging/wine-staging-8.12.ebuild deleted file mode 100644 index 55c76dfdc2da..000000000000 --- a/app-emulation/wine-staging/wine-staging-8.12.ebuild +++ /dev/null @@ -1,412 +0,0 @@ -# Copyright 2022-2023 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..12} ) -inherit autotools edo flag-o-matic multilib multilib-build -inherit prefix python-any-r1 toolchain-funcs wrapper - -WINE_GECKO=2.47.4 -WINE_MONO=8.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 -S="${WORKDIR}/${WINE_P}" - -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/" - -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 +xcomposite - xinerama" -REQUIRED_USE=" - X? ( truetype ) - crossdev-mingw? ( mingw )" # bug #551124 for truetype - -# 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[${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}] )" -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}] ) - 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 - ) - ) - dev-lang/perl - sys-devel/binutils - sys-devel/bison - sys-devel/flex - virtual/pkgconfig - mingw? ( !crossdev-mingw? ( - >=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}] - ) ) - 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 -) - -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}) $(usev abi_x86_32 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 /dev/null) == mold* ]] && - append-ldflags -fuse-ld=bfd - - # build using upstream's way (--with-wine64) - # order matters: 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 - - pe_arch=i386 - if (( bits == 64 )); then - pe_arch=x86_64 - : "${CROSSCC:=${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}" - conf+=( --enable-win64 ) - elif use amd64; then - conf+=( - $(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 - : "${CROSSCC:=${CROSSCC_x86:-i686-w64-mingw32-gcc}}" - - if use mingw; then - # CROSSCC is no longer recognized by Wine, but still use for now - # (future handling for CROSS* variables is subject to changes) - conf+=( ac_cv_prog_${pe_arch}_CC="${CROSSCC}" ) - - # use *FLAGS for mingw, but strip unsupported - : "${CROSSCFLAGS:=$( - filter-flags '-fstack-protector*' #870136 - filter-flags '-mfunction-return=thunk*' #878849 - - # -mavx with mingw-gcc has a history of obscure issues and - # disabling is seen as safer, e.g. `WINEARCH=win32 winecfg` - # crashes with -march=skylake >=wine-8.10, similar issues with - # znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273 - append-cflags -mno-avx #912268 - - CC=${CROSSCC} test-flags-CC ${CFLAGS:--O2})}" - : "${CROSSLDFLAGS:=$( - filter-flags '-fuse-ld=*' - CC=${CROSSCC} test-flags-CCLD ${LDFLAGS})}" - export CROSS{C,LD}FLAGS - fi - - ECONF_SOURCE=${S} econf "${conf[@]}" - ) - 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 - - # symlink for plain 'wine' and install its man pages if 64bit-only #404331 - if use abi_x86_64 && use !abi_x86_32; then - dosym wine64 ${WINE_PREFIX}/bin/wine - dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader - local man - for man in ../build64/loader/wine.*man; do - : "${man##*/wine}" - : "${_%.*}" - insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1 - newins ${man} wine.1 - done - 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 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 - - eselect wine update --if-unset || die -} - -pkg_postrm() { - eselect wine update --if-unset || die -} diff --git a/app-emulation/wine-staging/wine-staging-8.16.ebuild b/app-emulation/wine-staging/wine-staging-8.16.ebuild new file mode 100644 index 000000000000..9f4dff71c714 --- /dev/null +++ b/app-emulation/wine-staging/wine-staging-8.16.ebuild @@ -0,0 +1,458 @@ +# Copyright 2022-2023 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..12} ) +# note: multilib+wrapper are not unused, currently a pkgcheck false positive +inherit autotools edo flag-o-matic multilib multilib-build +inherit prefix python-any-r1 toolchain-funcs wrapper + +WINE_GECKO=2.47.4 +WINE_MONO=8.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 +S="${WORKDIR}/${WINE_P}" + +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/" + +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[${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}] )" +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 /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} + + filter-flags -fno-plt # build failure + + # CROSSCC was formerly recognized by wine, thus been using similar + # variables (subject to change, esp. if ever make a mingw.eclass). + local mingwcc_amd64=${CROSSCC:-${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}} + local mingwcc_x86=${CROSSCC:-${CROSSCC_x86:-i686-w64-mingw32-gcc}} + local -n mingwcc=mingwcc_$(usex abi_x86_64 amd64 x86) + + conf+=( + ac_cv_prog_x86_64_CC="${mingwcc_amd64}" + ac_cv_prog_i386_CC="${mingwcc_x86}" + + CROSSCFLAGS="${CROSSCFLAGS:-$( + filter-flags '-fstack-protector*' #870136 + filter-flags '-mfunction-return=thunk*' #878849 + + # -mavx with mingw-gcc has a history of obscure issues and + # disabling is seen as safer, e.g. `WINEARCH=win32 winecfg` + # crashes with -march=skylake >=wine-8.10, similar issues with + # znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273 + append-cflags -mno-avx #912268 + + 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 + + eselect wine update --if-unset || die +} + +pkg_postrm() { + eselect wine update --if-unset || die +} -- cgit v1.2.3