From a59ffccce3bf214fae9932cc42400eeeaec25c6c Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Thu, 24 Nov 2022 07:10:12 +0000 Subject: gentoo auto-resync : 24:11:2022 - 07:10:12 --- app-emulation/Manifest.gz | Bin 15130 -> 15128 bytes app-emulation/qemu/Manifest | 6 +- app-emulation/qemu/qemu-7.1.0-r2.ebuild | 20 +- app-emulation/qemu/qemu-7.2.0_rc1-r1.ebuild | 20 +- app-emulation/qemu/qemu-9999.ebuild | 20 +- app-emulation/wine-proton/Manifest | 2 +- app-emulation/wine-proton/files/README.gentoo | 3 +- app-emulation/wine-staging/Manifest | 3 +- .../files/wine-staging-7.21-opengl32.patch | 73 +++++ .../wine-staging/wine-staging-7.21-r1.ebuild | 356 +++++++++++++++++++++ .../wine-staging/wine-staging-7.21.ebuild | 355 -------------------- app-emulation/wine-vanilla/Manifest | 3 +- .../files/wine-vanilla-7.21-opengl32.patch | 73 +++++ .../wine-vanilla/wine-vanilla-7.21-r1.ebuild | 326 +++++++++++++++++++ .../wine-vanilla/wine-vanilla-7.21.ebuild | 325 ------------------- 15 files changed, 873 insertions(+), 712 deletions(-) create mode 100644 app-emulation/wine-staging/files/wine-staging-7.21-opengl32.patch create mode 100644 app-emulation/wine-staging/wine-staging-7.21-r1.ebuild delete mode 100644 app-emulation/wine-staging/wine-staging-7.21.ebuild create mode 100644 app-emulation/wine-vanilla/files/wine-vanilla-7.21-opengl32.patch create mode 100644 app-emulation/wine-vanilla/wine-vanilla-7.21-r1.ebuild delete mode 100644 app-emulation/wine-vanilla/wine-vanilla-7.21.ebuild (limited to 'app-emulation') diff --git a/app-emulation/Manifest.gz b/app-emulation/Manifest.gz index 80c69708577c..d7bf15ea4cb7 100644 Binary files a/app-emulation/Manifest.gz and b/app-emulation/Manifest.gz differ diff --git a/app-emulation/qemu/Manifest b/app-emulation/qemu/Manifest index f3c3475465a8..4c5170ad2e06 100644 --- a/app-emulation/qemu/Manifest +++ b/app-emulation/qemu/Manifest @@ -24,8 +24,8 @@ DIST qemu-7.1.0.tar.xz 121833004 BLAKE2B e05f91ce4993c7591a2df08b5fb017f8b8ec214 DIST qemu-7.2.0-rc1.tar.xz 122418104 BLAKE2B 9cf9c97070bbad3aa94906d9527016f8e8a3c7028ec3bd9a3e98c5be0f0e4582a21b5f503404671c88ddcebd886379226901c80414bf67d941176f33147246a9 SHA512 9d1c008c57b5e4f9c7b64fa12b1784b95d2c6c774a3e7316c60e5344e7f2b3261832fb0fec9edd7bb13bc22eb10180a9830ac0a8ca0c032e5044b90f846de1a6 DIST qemu-7.2.0_rc1-docs.tar.xz 1985244 BLAKE2B 25d5fed85a49f4c801838b2270a6fb4af8ddd85bbbb4b5f4988940447ef719fc494576bae2760f061787bce2177bea9fecc16103a280c6ae68f1ecb44d9ca3de SHA512 d20cf42c092b0d6480c5198fba6379eda27b8f0b5dbb78c5f94eb385cf011901e91f31cba6c02d514b18bc56b8a968bcf1f7e80ccbd37547bc15e42706a86a82 EBUILD qemu-7.0.0-r3.ebuild 27290 BLAKE2B 985947dc90817bed2c5e0878158604577b6ac3f7f605fd6372aa5b480851a6c94ea44e73aa301b7c1a5b8fa59f2281e57f99a84e5b10bc07beff0a3096b48a22 SHA512 8cc6ae4e2bde1b458d1682624fb46a56c1837592545638e63907c4067e67c39a609e85941381a33a80013d5e82c202644c6a9c5202091e344eabe3f8f6eb0c5b -EBUILD qemu-7.1.0-r2.ebuild 27361 BLAKE2B 66dce3e20be4b713b787739359aafdc8b7f4c1ec3324e7f56fd7531608ffc7739a46918567c4f2bf7acb35a166bd4cfae614e2cdb55a0b9507e19189b780ef68 SHA512 0bfc759abf92582f8cdbc2c8afbfbc5cbc59c85f22cbcb8e61faa1560a1076c53a4b4d53f92ba1ca04815ef8e87ae8c77d2a9ce38e5afddae673bd37ad5c2079 +EBUILD qemu-7.1.0-r2.ebuild 27369 BLAKE2B ad5433a42427f8e686926e32c148e05aad664d47bcb920973b9becebe7eef70dc6802443252045977c98a6a8934bc0624fb1f277421d0ea1e641afdf07e58405 SHA512 1d9f4a98361b1139eec1693fc45ae54e00d10b784840de0213800fa68642f7e52526dab830584983ad1978b06d448b10e186a16d6ef9fdfdac5ad16483288cd0 EBUILD qemu-7.1.0.ebuild 28397 BLAKE2B d9348f01501bd60b1dd11a87ec52214a29c2e0fac5e815b3820f12a97390434509537b850646fe62c002aa259d9fa5c802659be430df2e556998b658dd05117c SHA512 a7113edecc8c9fd0d46faff044bb498deb700c1eb8da9b8d38cfcc742fcb9e04e35f5db8b89234cedf93560bd2c5b40229f09440c544f21547caf7931c875ea7 -EBUILD qemu-7.2.0_rc1-r1.ebuild 27330 BLAKE2B 8de5f589fe6afa5fa1cb64f3c61349b51f50a10afdc24b1ffff9a75c6cc7296213de8a972c5fb4167a4d337cfaa7a1bbc1110d2f4079753051c7795dc469094e SHA512 75b994b4ba7b50d106e5d5cb3086d0cc00cfa09d29df4849cb72e10e124eaa4f5c23075a5b797d9a28e31c80cf3acf298f3cf5431841d1d13daa40d18c55efbd -EBUILD qemu-9999.ebuild 27320 BLAKE2B 32e6ded305a07fb4a37e33ba7176bc8afbde82c838ffc0a0fa001efdefdfb2e016679cc93a5bfbb8ae14dbb9844b6f833ae7bb0be98578ada2a55d3a21f941be SHA512 1e662b2bb8ff07f4f8970c0672bc3deb42c373a15b94db6edf7deb357f9b94326f92a9a3a5ae59bff3de86ec8816d8f2735589b6bc78411015a1f1e776b7ff9c +EBUILD qemu-7.2.0_rc1-r1.ebuild 27338 BLAKE2B b2517fbb9474286d9b0e6c4609ee8063e44d0ec57e6975d3807944c9e57b18589d7da9ee6954a6cc5f84b85adba221ec90c937dc61e614105b7755cc6b541daa SHA512 95259a4be936394063b486f9b7864f724f55c486be6b7c2e13566f56f70d57188b529ca45f9767f53a2d5f9eb441e67de422c6d01682550ccefbab4c1e7a4856 +EBUILD qemu-9999.ebuild 27328 BLAKE2B 5303cfce62658e6a714a1a274b3597bc37c467244d5d416793c7605eec4f75b9b8a4b81602453e7c60acfd212eeeee80c3867dfffde688db7fc9863b721f5fc6 SHA512 cb9fbcfd18cb1e571ccf81125299d29b66c80611f1758f952de83db63beafbf763775de30b32e2a80bb058b3fadd73085f8c4c30c4e0a4c709dbf3fc1ad442ce MISC metadata.xml 4787 BLAKE2B 587c653d3989f07a476e95210ab5f878387f830dba00fde02840aace8b9f4288189ca2ef4226fefa088a355aa714d244ea5a8e5f24f6d038a35ad54e9d8ee147 SHA512 7395730466501bb707983248b10ab9930b8016cc8ff193ab4d532996faf59d8e4ec79ecf675ec650082d47dc86a81b5eea941dccdb70c1de39fbf1ea65838620 diff --git a/app-emulation/qemu/qemu-7.1.0-r2.ebuild b/app-emulation/qemu/qemu-7.1.0-r2.ebuild index a71f1773c462..7937c736489c 100644 --- a/app-emulation/qemu/qemu-7.1.0-r2.ebuild +++ b/app-emulation/qemu/qemu-7.1.0-r2.ebuild @@ -52,12 +52,12 @@ SLOT="0" [[ ${QEMU_DOCS_PREBUILT} == 1 ]] && QEMU_DOC_USEFLAG="doc" -IUSE="accessibility +aio alsa bpf bzip2 capstone +caps +curl debug ${QEMU_DOC_USEFLAG} +IUSE="accessibility +aio alsa bpf bzip2 capstone +curl debug ${QEMU_DOC_USEFLAG} +fdt fuse glusterfs +gnutls gtk infiniband iscsi io-uring jack jemalloc +jpeg lzo multipath ncurses nfs nls numa opengl +oss pam +pin-upstream-blobs - plugins +png pulseaudio python rbd sasl +seccomp sdl sdl-image selinux + plugins +png pulseaudio python rbd sasl sdl sdl-image selinux +slirp smartcard snappy spice ssh static static-user systemtap test udev usb usbredir vde +vhost-net virgl virtfs +vnc vte xattr xen @@ -117,7 +117,7 @@ IUSE+=" ${use_softmmu_targets} ${use_user_targets}" RESTRICT="!test? ( test )" # Allow no targets to be built so that people can get a tools-only build. # Block USE flag configurations known to not work. -REQUIRED_USE="caps seccomp +REQUIRED_USE=" ${PYTHON_REQUIRED_USE} qemu_softmmu_targets_arm? ( fdt ) qemu_softmmu_targets_microblaze? ( fdt ) @@ -131,7 +131,7 @@ REQUIRED_USE="caps seccomp static? ( static-user !alsa !gtk !jack !opengl !pam !pulseaudio !plugins !rbd !snappy !udev ) static-user? ( !plugins ) virgl? ( opengl ) - virtfs? ( caps xattr ) + virtfs? ( xattr ) vnc? ( gnutls ) vte? ( gtk ) multipath? ( udev ) @@ -156,6 +156,8 @@ ALL_DEPEND=" # Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...) # softmmu targets (qemu-system-*). SOFTMMU_TOOLS_DEPEND=" + sys-libs/libcap-ng[static-libs(+)] + >=sys-libs/libseccomp-2.1.0[static-libs(+)] >=x11-libs/pixman-0.28.0[static-libs(+)] accessibility? ( app-accessibility/brltty[api] @@ -166,7 +168,6 @@ SOFTMMU_TOOLS_DEPEND=" bpf? ( dev-libs/libbpf:= ) bzip2? ( app-arch/bzip2[static-libs(+)] ) capstone? ( dev-libs/capstone:= ) - caps? ( sys-libs/libcap-ng[static-libs(+)] ) curl? ( >=net-misc/curl-7.15.4[static-libs(+)] ) fdt? ( >=sys-apps/dtc-1.5.1[static-libs(+)] ) fuse? ( >=sys-fs/fuse-3.1:3[static-libs(+)] ) @@ -209,7 +210,6 @@ SOFTMMU_TOOLS_DEPEND=" media-libs/libsdl2[static-libs(+)] ) sdl-image? ( media-libs/sdl2-image[static-libs(+)] ) - seccomp? ( >=sys-libs/libseccomp-2.1.0[static-libs(+)] ) slirp? ( net-libs/libslirp[static-libs(+)] ) smartcard? ( >=app-emulation/libcacard-2.5.0[static-libs(+)] ) snappy? ( app-arch/snappy:= ) @@ -555,7 +555,6 @@ qemu_src_configure() { $(conf_softmmu bpf) $(conf_notuser bzip2) $(conf_notuser capstone) - $(conf_notuser caps cap-ng) $(conf_notuser curl) $(conf_tools doc docs) $(conf_notuser fdt) @@ -582,7 +581,6 @@ qemu_src_configure() { $(conf_notuser sasl vnc-sasl) $(conf_notuser sdl) $(conf_softmmu sdl-image) - $(conf_notuser seccomp) $(conf_notuser slirp slirp system) $(conf_notuser smartcard) $(conf_notuser snappy) @@ -627,6 +625,8 @@ qemu_src_configure() { --disable-system --disable-blobs --disable-tools + --disable-cap-ng + --disable-seccomp ) local static_flag="static-user" ;; @@ -635,6 +635,8 @@ qemu_src_configure() { --disable-linux-user --enable-system --disable-tools + --enable-cap-ng + --enable-seccomp ) local static_flag="static" ;; @@ -643,6 +645,8 @@ qemu_src_configure() { --disable-linux-user --disable-system --disable-blobs + --enable-cap-ng + --enable-seccomp --enable-tools ) local static_flag="static" diff --git a/app-emulation/qemu/qemu-7.2.0_rc1-r1.ebuild b/app-emulation/qemu/qemu-7.2.0_rc1-r1.ebuild index 55f7d11a7162..2a80d49394ec 100644 --- a/app-emulation/qemu/qemu-7.2.0_rc1-r1.ebuild +++ b/app-emulation/qemu/qemu-7.2.0_rc1-r1.ebuild @@ -52,12 +52,12 @@ SLOT="0" [[ ${QEMU_DOCS_PREBUILT} == 1 ]] && QEMU_DOC_USEFLAG="doc" -IUSE="accessibility +aio alsa bpf bzip2 capstone +caps +curl debug ${QEMU_DOC_USEFLAG} +IUSE="accessibility +aio alsa bpf bzip2 capstone +curl debug ${QEMU_DOC_USEFLAG} +fdt fuse glusterfs +gnutls gtk infiniband iscsi io-uring jack jemalloc +jpeg lzo multipath ncurses nfs nls numa opengl +oss pam +pin-upstream-blobs - plugins +png pulseaudio python rbd sasl +seccomp sdl sdl-image selinux + plugins +png pulseaudio python rbd sasl sdl sdl-image selinux +slirp smartcard snappy spice ssh static static-user systemtap test udev usb usbredir vde +vhost-net virgl virtfs +vnc vte xattr xen @@ -117,7 +117,7 @@ IUSE+=" ${use_softmmu_targets} ${use_user_targets}" RESTRICT="!test? ( test )" # Allow no targets to be built so that people can get a tools-only build. # Block USE flag configurations known to not work. -REQUIRED_USE="caps seccomp +REQUIRED_USE=" ${PYTHON_REQUIRED_USE} qemu_softmmu_targets_arm? ( fdt ) qemu_softmmu_targets_microblaze? ( fdt ) @@ -131,7 +131,7 @@ REQUIRED_USE="caps seccomp static? ( static-user !alsa !gtk !jack !opengl !pam !pulseaudio !plugins !rbd !snappy !udev ) static-user? ( !plugins ) virgl? ( opengl ) - virtfs? ( caps xattr ) + virtfs? ( xattr ) vnc? ( gnutls ) vte? ( gtk ) multipath? ( udev ) @@ -156,6 +156,8 @@ ALL_DEPEND=" # Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...) # softmmu targets (qemu-system-*). SOFTMMU_TOOLS_DEPEND=" + sys-libs/libcap-ng[static-libs(+)] + >=sys-libs/libseccomp-2.1.0[static-libs(+)] >=x11-libs/pixman-0.28.0[static-libs(+)] accessibility? ( app-accessibility/brltty[api] @@ -166,7 +168,6 @@ SOFTMMU_TOOLS_DEPEND=" bpf? ( dev-libs/libbpf:= ) bzip2? ( app-arch/bzip2[static-libs(+)] ) capstone? ( dev-libs/capstone:= ) - caps? ( sys-libs/libcap-ng[static-libs(+)] ) curl? ( >=net-misc/curl-7.15.4[static-libs(+)] ) fdt? ( >=sys-apps/dtc-1.5.1[static-libs(+)] ) fuse? ( >=sys-fs/fuse-3.1:3[static-libs(+)] ) @@ -209,7 +210,6 @@ SOFTMMU_TOOLS_DEPEND=" media-libs/libsdl2[static-libs(+)] ) sdl-image? ( media-libs/sdl2-image[static-libs(+)] ) - seccomp? ( >=sys-libs/libseccomp-2.1.0[static-libs(+)] ) slirp? ( net-libs/libslirp[static-libs(+)] ) smartcard? ( >=app-emulation/libcacard-2.5.0[static-libs(+)] ) snappy? ( app-arch/snappy:= ) @@ -554,7 +554,6 @@ qemu_src_configure() { $(conf_softmmu bpf) $(conf_notuser bzip2) $(conf_notuser capstone) - $(conf_notuser caps cap-ng) $(conf_notuser curl) $(conf_tools doc docs) $(conf_notuser fdt) @@ -581,7 +580,6 @@ qemu_src_configure() { $(conf_notuser sasl vnc-sasl) $(conf_notuser sdl) $(conf_softmmu sdl-image) - $(conf_notuser seccomp) $(conf_notuser slirp) $(conf_notuser smartcard) $(conf_notuser snappy) @@ -626,6 +624,8 @@ qemu_src_configure() { --disable-system --disable-blobs --disable-tools + --disable-cap-ng + --disable-seccomp ) local static_flag="static-user" ;; @@ -634,6 +634,8 @@ qemu_src_configure() { --disable-linux-user --enable-system --disable-tools + --enable-cap-ng + --enable-seccomp ) local static_flag="static" ;; @@ -643,6 +645,8 @@ qemu_src_configure() { --disable-system --disable-blobs --enable-tools + --enable-cap-ng + --enable-seccomp ) local static_flag="static" ;; diff --git a/app-emulation/qemu/qemu-9999.ebuild b/app-emulation/qemu/qemu-9999.ebuild index 3616ee03475f..29c185858cb4 100644 --- a/app-emulation/qemu/qemu-9999.ebuild +++ b/app-emulation/qemu/qemu-9999.ebuild @@ -53,12 +53,12 @@ SLOT="0" [[ ${QEMU_DOCS_PREBUILT} == 1 ]] && QEMU_DOC_USEFLAG="doc" -IUSE="accessibility +aio alsa bpf bzip2 capstone +caps +curl debug ${QEMU_DOC_USEFLAG} +IUSE="accessibility +aio alsa bpf bzip2 capstone +curl debug ${QEMU_DOC_USEFLAG} +fdt fuse glusterfs +gnutls gtk infiniband iscsi io-uring jack jemalloc +jpeg lzo multipath ncurses nfs nls numa opengl +oss pam +pin-upstream-blobs - plugins +png pulseaudio python rbd sasl +seccomp sdl sdl-image selinux + plugins +png pulseaudio python rbd sasl sdl sdl-image selinux +slirp smartcard snappy spice ssh static static-user systemtap test udev usb usbredir vde +vhost-net virgl virtfs +vnc vte xattr xen @@ -118,7 +118,7 @@ IUSE+=" ${use_softmmu_targets} ${use_user_targets}" RESTRICT="!test? ( test )" # Allow no targets to be built so that people can get a tools-only build. # Block USE flag configurations known to not work. -REQUIRED_USE="caps seccomp +REQUIRED_USE=" ${PYTHON_REQUIRED_USE} qemu_softmmu_targets_arm? ( fdt ) qemu_softmmu_targets_microblaze? ( fdt ) @@ -132,7 +132,7 @@ REQUIRED_USE="caps seccomp static? ( static-user !alsa !gtk !jack !opengl !pam !pulseaudio !plugins !rbd !snappy !udev ) static-user? ( !plugins ) virgl? ( opengl ) - virtfs? ( caps xattr ) + virtfs? ( xattr ) vnc? ( gnutls ) vte? ( gtk ) multipath? ( udev ) @@ -157,6 +157,8 @@ ALL_DEPEND=" # Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...) # softmmu targets (qemu-system-*). SOFTMMU_TOOLS_DEPEND=" + sys-libs/libcap-ng[static-libs(+)] + >=sys-libs/libseccomp-2.1.0[static-libs(+)] >=x11-libs/pixman-0.28.0[static-libs(+)] accessibility? ( app-accessibility/brltty[api] @@ -167,7 +169,6 @@ SOFTMMU_TOOLS_DEPEND=" bpf? ( dev-libs/libbpf:= ) bzip2? ( app-arch/bzip2[static-libs(+)] ) capstone? ( dev-libs/capstone:= ) - caps? ( sys-libs/libcap-ng[static-libs(+)] ) curl? ( >=net-misc/curl-7.15.4[static-libs(+)] ) fdt? ( >=sys-apps/dtc-1.5.1[static-libs(+)] ) fuse? ( >=sys-fs/fuse-3.1:3[static-libs(+)] ) @@ -210,7 +211,6 @@ SOFTMMU_TOOLS_DEPEND=" media-libs/libsdl2[static-libs(+)] ) sdl-image? ( media-libs/sdl2-image[static-libs(+)] ) - seccomp? ( >=sys-libs/libseccomp-2.1.0[static-libs(+)] ) slirp? ( net-libs/libslirp[static-libs(+)] ) smartcard? ( >=app-emulation/libcacard-2.5.0[static-libs(+)] ) snappy? ( app-arch/snappy:= ) @@ -555,7 +555,6 @@ qemu_src_configure() { $(conf_softmmu bpf) $(conf_notuser bzip2) $(conf_notuser capstone) - $(conf_notuser caps cap-ng) $(conf_notuser curl) $(conf_tools doc docs) $(conf_notuser fdt) @@ -582,7 +581,6 @@ qemu_src_configure() { $(conf_notuser sasl vnc-sasl) $(conf_notuser sdl) $(conf_softmmu sdl-image) - $(conf_notuser seccomp) $(conf_notuser slirp) $(conf_notuser smartcard) $(conf_notuser snappy) @@ -627,6 +625,8 @@ qemu_src_configure() { --disable-system --disable-blobs --disable-tools + --disable-cap-ng + --disable-seccomp ) local static_flag="static-user" ;; @@ -635,6 +635,8 @@ qemu_src_configure() { --disable-linux-user --enable-system --disable-tools + --enable-cap-ng + --enable-seccomp ) local static_flag="static" ;; @@ -644,6 +646,8 @@ qemu_src_configure() { --disable-system --disable-blobs --enable-tools + --enable-cap-ng + --enable-seccomp ) local static_flag="static" ;; diff --git a/app-emulation/wine-proton/Manifest b/app-emulation/wine-proton/Manifest index 62e6c3b57010..aa482d16e6c5 100644 --- a/app-emulation/wine-proton/Manifest +++ b/app-emulation/wine-proton/Manifest @@ -1,4 +1,4 @@ -AUX README.gentoo 2457 BLAKE2B 42c29dcfb82526d10f9b40d7bf612d6fc4c8494294eb72d0fde0cf943b3152ef67d80fab71e5c64e74a26bb0da3b786b1eae5f6b5e35ebb66111c9356e19ac12 SHA512 5cf389e11a03cd71f49681fe55550b2629efef04d20e1a7a619e06d5525dd160fbffd0f53eae6c7e432cc3c4550b6d2aca46c84a7475cb95f3d2a25b4ad86678 +AUX README.gentoo 2365 BLAKE2B f8cef4abd8f97cd1e4b6594049fb698d8d2bd570968c433681bb5438f698ca2e0f90172ff45edd64b0ad3a0270b9043b8699ef657ebc6213b81206919a35c0b0 SHA512 543f27ee24e8e73c4decf48c35674f1833672004d62420eb1dd89bb00651a6ac2d86b3f9eb83f00d6ff0537802bfaa4b70c98a5845e3447d306d8ece33a60eae AUX wine-proton-7.0.4-musl.patch 505 BLAKE2B 5c6d46c505e38c19e4c92e05243244739e6a2b84ebc548989167b65fe5ede439c628b510bce57ff8cd7ca765114c13dbb098116ba201ceba44069bf38daf5a64 SHA512 5e687119aa461e3440d3c7bbb2318db04ffbe414329931877b59a3f9752ee36e492bb25dda9b26c2f741664665487a34575423b24718e3f1b65f2d850c3681aa AUX wine-proton-7.0.4-noexecstack.patch 223 BLAKE2B dff1867e2977bd14fcfab9dfa2c2f1d3288f7edca75ddd7c9f02bfd06e9f63fac37bd59ea8aa891e13ab77bac35b369825d5490a9175ed9a7736e523b61d8944 SHA512 4ba3677042b693e513fc7a133c76a509f63d0ca20633d1e8d448bca9534c0d1a0fc58e77fa9b28fd8d936393605e97ee6e3bb5fac00872d6ac5808b7712586e3 AUX wine-proton-7.0.4-restore-menubuilder.patch 572 BLAKE2B 7ace97fb82498d8f19297cab205d8b9ca07c5293172a0b017b5d887ec1f5daeb3ed64eb0a322904e528a72f4a225813c27b544015587d71fce97c41b6b1463a2 SHA512 1384f06d4264e22d332eb12fabd7408b8e250e39c195460f876460fe40d35d617c73100815c395f481e3af66676ccaa1a14592c05f1e5b092bfafe2f87112106 diff --git a/app-emulation/wine-proton/files/README.gentoo b/app-emulation/wine-proton/files/README.gentoo index 988d28df7ddf..5b24fb4b7b8f 100644 --- a/app-emulation/wine-proton/files/README.gentoo +++ b/app-emulation/wine-proton/files/README.gentoo @@ -48,5 +48,4 @@ provide by default. --- If have other Wine variants installed, remember to either use `eselect wine` -to select this variant or call it as wine-proton. Note other available -variants may be auto-selected when removing/replacing a selected slot. +to select this variant or call it as wine-proton. diff --git a/app-emulation/wine-staging/Manifest b/app-emulation/wine-staging/Manifest index df74cf567a22..0ab3cefe383e 100644 --- a/app-emulation/wine-staging/Manifest +++ b/app-emulation/wine-staging/Manifest @@ -2,6 +2,7 @@ AUX wine-staging-7.17-noexecstack.patch 223 BLAKE2B 6e6cfc208f11c2c2b7bbc392e370 AUX wine-staging-7.17-unwind.patch 1694 BLAKE2B ad8ba23e07a846152bd93e76a0b226869c8a9a28f197321b0faec3ad3721d05b892c69829d89933f245a7b6e0c8070db0e7dfef7d4b9bb047052d57f5ba7067b SHA512 80c3a1f347e7250cb1d7ab958507987b2aaeaf660c4ffb95c19118011ee61957629a9e28f2600fdafb384b61c26f50bcdaebab1fcbe30a9553c63cbed664c817 AUX wine-staging-7.20-unwind.patch 1450 BLAKE2B 80e9222c95393aaa4b95e05597a4181030fc988d95e416d2f92631f29f640b9abb3dd0853d005de4725b41c09224e478741902075259d48a30830a923790579f SHA512 e1a72f1463be32975daa02064acb96189cd79cb41ff98f89b58e46c97100a3ac46405b1b9982378c9de275acbdb74168853e47b932e06398cdd2981b23f483ce AUX wine-staging-7.21-crossflags.patch 876 BLAKE2B 84dc39960e40c94f6e0bce4c8206b6d276e4d916f4b98d0f83a40ac0a7349f59b68010eb6bd4ba2b0ca854abb74a2faf58f54258e86cd1c800e849410d0570a9 SHA512 ee53bb03ce6ec181d2d87c63659802c4b68941c55264c8700e13ae83c0f9913a7ff8f45a5c42d40e302d7731535ba673a7fe669d0bebbfa35555e1f6187ab31b +AUX wine-staging-7.21-opengl32.patch 2741 BLAKE2B 8bf1a5f55172b3f8310e8c9e1b3a0329281ed32632376d4db4a225ab7f5032215d891d9adbbab0ef9bc6f4b1a1acee162910b1abfe02fb45f201b3697624d513 SHA512 a3727cdefee70060fb08eae246c3fe5f9c7179c3cf471ebc7f414559eed717151216c843adc0145e4cd3781191d2863a71ce2902ca14f46b872be83c48ba5c1c DIST wine-7.19.tar.xz 28502612 BLAKE2B b7b270656955c7a1e1d84e8bbc7e3e8abff5aedadb5e8a458f0b1109d746875a359f3d2f53b1c9c6caae65d17fd1d205466cd3a884034a8bad6afe9456f13b5d SHA512 f76dbda97cccad4c0f249b5dd4e8d48afa832134f1704ae228650bb73ee82823e628b23bd53a3f8729e06a8933597ff2fffa5551f156fc9c9181b67c066747d5 DIST wine-7.20.tar.xz 28534920 BLAKE2B 2e0cd49a7820f0c885a2a6dbcded6ebbdb5e1ea5576b03dedb7ee066f74f8c675193450cdd45bf5e0224bd588a890138e47a15f513edbfde1eabf1b65c9abe31 SHA512 6e2e65fba2336985df93165050f0f46b752d6aa94fc1581451c58969e2003748378be4b9e16b647ca2922fbdff77920311b12a17bda630a7bccfc7ee8f03b453 DIST wine-7.21.tar.xz 28703308 BLAKE2B 8902ded32b9e635f8ccf659ca4055e9ad45d3659f3ad48d0c218dc5a7a334df456ea0e9441dcaff58e8cac0bbd65140b20e61180acaa06230bc70e28a8382c7e SHA512 15c0c9efda972b84890886fd4b1fb18dd462373ba490f5e607004a5436caba9823f643369ceb5abbc2d2d0e26d7ce002e00136299d9984c0a27f729f3ac129c1 @@ -10,6 +11,6 @@ DIST wine-staging-7.20.tar.gz 9521481 BLAKE2B 5a264460e72ac96d50d23492100c465eeb DIST wine-staging-7.21.tar.gz 9530737 BLAKE2B a80476dbc957a9cda1554262777c63276f9b66a5ccd1389a006327810b0b960a600f78dfabc0d8df4ce816cdd7c4c3c29c26bea9b63219fa90dff60142d41da1 SHA512 1261267fe82a25d74dbf3f8cd1926339356eac3cd432667517c2ca65656c1b733c2866a48c1e4ad116ac8094d9079366a07f6a7814b8bde27246d654a792e9ec EBUILD wine-staging-7.19.ebuild 11051 BLAKE2B af17100f7b5b80d5e1f2d342f9603cb5d4886ceb4f864e154be437ee776a74d4638b9ed8f3db24688cb611c92356d82d6e6fc7e7707a0ece51e09a2e67299f9c SHA512 2621ba9b7146dde03e746a24592918ad6842b93fd0d34dc11d620c00f046837de579ff0322e76b43e6ecc77eaefcf11e5e9ec407b3e73dc84123ea8247b17305 EBUILD wine-staging-7.20.ebuild 11051 BLAKE2B f378f4cefea21783cc5a07f7bf47d6a052a35493010999087bdcafd2265e5e1f904294bc567d488a9f2b822125d19c520c7587963c1c843485c91a9dfdf80145 SHA512 8f5ba147c7445b4f1066ba79d0591182b313291d6a133561099ece5dbda95db3b954ade53438ae08eadb8c60fe7dc937b47b35b2a30a8659d571d3b3a2bf2495 -EBUILD wine-staging-7.21.ebuild 11152 BLAKE2B 76de2020db1b50da53f4c9b33eb39ee84b3166cbf591a99be1c756b49154e17e838fed8ec7a0a07900289939cdcac305a4f9544926614958f6791f82db79ca5b SHA512 efb247f04442454cd71ef0760f77b7aa8eecf68a898da4cdacb89d0187499132eb4e4fd7c83391eefd490570561295d9c184e769ffe10f5eb856875feb496b3b +EBUILD wine-staging-7.21-r1.ebuild 11181 BLAKE2B bdfe3c7515c8f1de44f649a5fa0f26469db295938025c6c98f8691724b1ef955725c559fb2ca9fffec7f6256529c81ccca7c3ee75c43dbeee1ad66c135d7292e SHA512 06d2cf97029b460e63cec04b5b3adf9629b398370be387290e5257fbbb66150af4f2b5029196b45aaca20b0899db13570f8c04e3e42268b6cda4ff76aa32bc20 EBUILD wine-staging-9999.ebuild 11153 BLAKE2B 4c47f1d6a805774e2f60d2610acf141ffa9352d6439cb930e47337e27b498c5188b6892cc5282f9269d21c4e33ce3af348082697dd210751a375e3a99bb5be50 SHA512 59667ee9f2d0f91c8bed14011a31d4a8adc28be6a729bd35e64210cb21fd86cc8511331b0b0846b940a9cd1bd55eb5d641aa82c512c5fcffde3a62bff34608b7 MISC metadata.xml 2352 BLAKE2B c3bc247559ce143b4c8497b17dbeccf283ecb70463ca8230ba46d949c0def97f15c0b676149524111f7d151722d7c6343dc16dddaba5093fba60c62389da778d SHA512 a05a2b4bdaa01b7f097cf824f2b949b2e5ece864c7307dfca42a384711c9db09f486c3d398c9c1f187daadfcc646bb14fe7c488140fea2a3f7092a5e3a8011d1 diff --git a/app-emulation/wine-staging/files/wine-staging-7.21-opengl32.patch b/app-emulation/wine-staging/files/wine-staging-7.21-opengl32.patch new file mode 100644 index 000000000000..9411e05e96fd --- /dev/null +++ b/app-emulation/wine-staging/files/wine-staging-7.21-opengl32.patch @@ -0,0 +1,73 @@ +Fixes PE opengl32.dll failing to initialize. + +https://gitlab.winehq.org/wine/wine/-/commit/34099bba6cb +From: Rémi Bernon +Date: Mon, 14 Nov 2022 11:55:51 +0100 +Subject: [PATCH] ntdll: Delay loading unixlibs until the functions are + requested. + +Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53909 +--- a/dlls/ntdll/unix/virtual.c ++++ b/dlls/ntdll/unix/virtual.c +@@ -98,6 +98,7 @@ struct builtin_module + unsigned int refcount; + void *handle; + void *module; ++ char *unix_path; + void *unix_handle; + }; + +@@ -583,6 +584,7 @@ static void add_builtin_module( void *module, void *handle ) + builtin->handle = handle; + builtin->module = module; + builtin->refcount = 1; ++ builtin->unix_path = NULL; + builtin->unix_handle = NULL; + list_add_tail( &builtin_modules, &builtin->entry ); + } +@@ -603,6 +605,7 @@ void release_builtin_module( void *module ) + list_remove( &builtin->entry ); + if (builtin->handle) dlclose( builtin->handle ); + if (builtin->unix_handle) dlclose( builtin->unix_handle ); ++ free( builtin->unix_path ); + free( builtin ); + } + break; +@@ -652,6 +655,8 @@ static NTSTATUS get_builtin_unix_funcs( void *module, BOOL wow, const void **fun + LIST_FOR_EACH_ENTRY( builtin, &builtin_modules, struct builtin_module, entry ) + { + if (builtin->module != module) continue; ++ if (builtin->unix_path && !builtin->unix_handle) ++ builtin->unix_handle = dlopen( builtin->unix_path, RTLD_NOW ); + if (builtin->unix_handle) + { + *funcs = dlsym( builtin->unix_handle, ptr_name ); +@@ -669,26 +674,19 @@ static NTSTATUS get_builtin_unix_funcs( void *module, BOOL wow, const void **fun + */ + NTSTATUS load_builtin_unixlib( void *module, const char *name ) + { +- void *handle; + sigset_t sigset; +- NTSTATUS status = STATUS_DLL_NOT_FOUND; ++ NTSTATUS status = STATUS_SUCCESS; + struct builtin_module *builtin; + +- if (!(handle = dlopen( name, RTLD_NOW ))) return status; + server_enter_uninterrupted_section( &virtual_mutex, &sigset ); + LIST_FOR_EACH_ENTRY( builtin, &builtin_modules, struct builtin_module, entry ) + { + if (builtin->module != module) continue; +- if (!builtin->unix_handle) +- { +- builtin->unix_handle = handle; +- status = STATUS_SUCCESS; +- } ++ if (!builtin->unix_path) builtin->unix_path = strdup( name ); + else status = STATUS_IMAGE_ALREADY_LOADED; + break; + } + server_leave_uninterrupted_section( &virtual_mutex, &sigset ); +- if (status) dlclose( handle ); + return status; + } + diff --git a/app-emulation/wine-staging/wine-staging-7.21-r1.ebuild b/app-emulation/wine-staging/wine-staging-7.21-r1.ebuild new file mode 100644 index 000000000000..606f5b2e9331 --- /dev/null +++ b/app-emulation/wine-staging/wine-staging-7.21-r1.ebuild @@ -0,0 +1,356 @@ +# Copyright 2022 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 toolchain-funcs wrapper + +WINE_GECKO=2.47.3 +WINE_MONO=7.4.0 + +if [[ ${PV} == *9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/wine-staging/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-${PV}.tar.xz + https://github.com/wine-staging/wine-staging/archive/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="-* ~amd64 ~x86" +fi +S="${WORKDIR}/wine-${PV}" + +DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset" +HOMEPAGE="https://wiki.winehq.org/Wine-Staging" + +LICENSE="LGPL-2.1+ BSD-2 IJG MIT ZLIB gsm libpng2 libtiff" +SLOT="${PV}" +IUSE=" + +X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos + llvm-libunwind debug custom-cflags +fontconfig +gecko gphoto2 + +gstreamer kerberos ldap +mingw +mono netapi nls odbc opencl + +opengl osmesa pcap perl pulseaudio samba scanner +sdl selinux + +ssl +truetype udev udisks +unwind usb v4l +vulkan +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}] ) + 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[${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}] + ) + ldap? ( net-nds/openldap:=[${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}] ) + 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}] )" +RDEPEND=" + ${WINE_COMMON_DEPEND} + app-emulation/wine-desktop-common + dos? ( games-emulation/dosbox ) + 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 )" +BDEPEND=" + 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 )" +IDEPEND=">=app-eselect/eselect-wine-2" + +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}"/${P}-crossflags.patch + "${FILESDIR}"/${P}-opengl32.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 + + 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 staging=( + ./patchinstall.sh DESTDIR="${S}" + --all + --backend=eapply + --no-autoconf + -W winemenubuilder-Desktop_Icon_Path #652176 + ${MY_WINE_STAGING_CONF} + ) + + # source patcher in a subshell so can use eapply as a backend + ebegin "Running ${staging[*]}" + ( cd ../${P}/patches && . "${staging[@]}" ) + eend ${?} || die "Failed to apply the patchset" + + # 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 + + # ensure .desktop calls this variant + slot + sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die + + # always update for patches (including user's wrt #432348) + eautoreconf + tools/make_requests || die # perl +} + +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 + $(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 ldap) + $(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 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 xcomposite) + $(use_with xinerama) + $(usev !odbc ac_cv_lib_soname_odbc=) + ) + + tc-ld-force-bfd #867097 + use custom-cflags || strip-flags # can break in obscure ways, also no lto + use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH} + + # temporary workaround for tc-ld-force-bfd not yet enforcing with mold + # https://github.com/gentoo/gentoo/pull/28355 + [[ $($(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) == mold* ]] && + append-ldflags -fuse-ld=bfd + + # build using upstream's way (--with-wine64) + # order matters: configure+compile 64->32, install 32->64 + 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-clash-protection' #758914 + filter-flags '-fstack-protector*' #870136 + filter-flags '-mfunction-return=thunk*' #878849 + 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 + + # don't let portage try to strip PE files with the wrong + # strip executable and instead handle it here (saves ~120MB) + if use mingw; then + dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows + use debug || + find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \ + -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} + || die + fi + + dodoc ANNOUNCE AUTHORS README* documentation/README* +} + +pkg_postinst() { + eselect wine update --if-unset || die +} + +pkg_postrm() { + eselect wine update --if-unset || die +} diff --git a/app-emulation/wine-staging/wine-staging-7.21.ebuild b/app-emulation/wine-staging/wine-staging-7.21.ebuild deleted file mode 100644 index e3f38a33cb12..000000000000 --- a/app-emulation/wine-staging/wine-staging-7.21.ebuild +++ /dev/null @@ -1,355 +0,0 @@ -# Copyright 2022 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 toolchain-funcs wrapper - -WINE_GECKO=2.47.3 -WINE_MONO=7.4.0 - -if [[ ${PV} == *9999 ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/wine-staging/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-${PV}.tar.xz - https://github.com/wine-staging/wine-staging/archive/v${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="-* ~amd64 ~x86" -fi -S="${WORKDIR}/wine-${PV}" - -DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset" -HOMEPAGE="https://wiki.winehq.org/Wine-Staging" - -LICENSE="LGPL-2.1+ BSD-2 IJG MIT ZLIB gsm libpng2 libtiff" -SLOT="${PV}" -IUSE=" - +X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos - llvm-libunwind debug custom-cflags +fontconfig +gecko gphoto2 - +gstreamer kerberos ldap +mingw +mono netapi nls odbc opencl - +opengl osmesa pcap perl pulseaudio samba scanner +sdl selinux - +ssl +truetype udev udisks +unwind usb v4l +vulkan +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}] ) - 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[${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}] - ) - ldap? ( net-nds/openldap:=[${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}] ) - 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}] )" -RDEPEND=" - ${WINE_COMMON_DEPEND} - app-emulation/wine-desktop-common - dos? ( games-emulation/dosbox ) - 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 )" -BDEPEND=" - 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 )" -IDEPEND=">=app-eselect/eselect-wine-2" - -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}-7.21-crossflags.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 - - 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 staging=( - ./patchinstall.sh DESTDIR="${S}" - --all - --backend=eapply - --no-autoconf - -W winemenubuilder-Desktop_Icon_Path #652176 - ${MY_WINE_STAGING_CONF} - ) - - # source patcher in a subshell so can use eapply as a backend - ebegin "Running ${staging[*]}" - ( cd ../${P}/patches && . "${staging[@]}" ) - eend ${?} || die "Failed to apply the patchset" - - # 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 - - # ensure .desktop calls this variant + slot - sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die - - # always update for patches (including user's wrt #432348) - eautoreconf - tools/make_requests || die # perl -} - -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 - $(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 ldap) - $(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 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 xcomposite) - $(use_with xinerama) - $(usev !odbc ac_cv_lib_soname_odbc=) - ) - - tc-ld-force-bfd #867097 - use custom-cflags || strip-flags # can break in obscure ways, also no lto - use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH} - - # temporary workaround for tc-ld-force-bfd not yet enforcing with mold - # https://github.com/gentoo/gentoo/pull/28355 - [[ $($(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) == mold* ]] && - append-ldflags -fuse-ld=bfd - - # build using upstream's way (--with-wine64) - # order matters: configure+compile 64->32, install 32->64 - 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-clash-protection' #758914 - filter-flags '-fstack-protector*' #870136 - filter-flags '-mfunction-return=thunk*' #878849 - 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 - - # don't let portage try to strip PE files with the wrong - # strip executable and instead handle it here (saves ~120MB) - if use mingw; then - dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows - use debug || - find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \ - -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} + || die - fi - - dodoc ANNOUNCE AUTHORS README* documentation/README* -} - -pkg_postinst() { - eselect wine update --if-unset || die -} - -pkg_postrm() { - eselect wine update --if-unset || die -} diff --git a/app-emulation/wine-vanilla/Manifest b/app-emulation/wine-vanilla/Manifest index aa24705e3015..1fbca684fa7d 100644 --- a/app-emulation/wine-vanilla/Manifest +++ b/app-emulation/wine-vanilla/Manifest @@ -2,6 +2,7 @@ AUX wine-vanilla-7.0-noexecstack.patch 223 BLAKE2B dff1867e2977bd14fcfab9dfa2c2f AUX wine-vanilla-7.0-unwind.patch 1694 BLAKE2B 017c7b761d692f8e8d23f52e51529880f95bddf5fee4309ab97bee951527bd427924dbb335e4bf57a27405e3d2440666f774c6859b81933d3007247e1cbf4898 SHA512 5d20960a8eda2d80097d6db81287c9d05ed4ea50df974c93391a427b743383a6806f24bc552c18a9336e7aea0ceb801972865ff470bde8ea7fd9423f57eb09ae AUX wine-vanilla-7.20-unwind.patch 1450 BLAKE2B 3f90cc131104ad72a11ae30c582b79b3e4d8c0278d51c0a193fb9e460cf088b315503bd08bd904e8d28f72f40ab3df90f83f2542b991888a2f504cc7d2adad4d SHA512 a6c4672a44c1220d5b1efabeca535a4a3510fe92aac73c38f65a09bfbd271af8b8b1bfe2c408ba5356806cb71252a6956b8130fcd06a475037b9e51d28c2a156 AUX wine-vanilla-7.21-crossflags.patch 876 BLAKE2B fa0bfd1f5fba242a8a99bf94e5ebb2c9cc07bb452d84d542f64a7f73795646af91283ac98dc2a78199ad6d0652544d7768a602539bd7c083ac5b9cf9fd4472ae SHA512 fe5160233246ac2335bb7f38daa761978544a935238d7b99cccf36fe09efa171bc4addbdeedbb457c28ea3a85377f4615ba68d04544ff887c94ff8341e3a8178 +AUX wine-vanilla-7.21-opengl32.patch 2741 BLAKE2B 8bf1a5f55172b3f8310e8c9e1b3a0329281ed32632376d4db4a225ab7f5032215d891d9adbbab0ef9bc6f4b1a1acee162910b1abfe02fb45f201b3697624d513 SHA512 a3727cdefee70060fb08eae246c3fe5f9c7179c3cf471ebc7f414559eed717151216c843adc0145e4cd3781191d2863a71ce2902ca14f46b872be83c48ba5c1c DIST wine-7.0.1.tar.xz 27167768 BLAKE2B 9bf74e7077fe4b77611f8195feeb53fc6475bdaeac97dab5221942115d6108d8786f93d4a96745bad72afb074b15129fec9b0b2f10261d91c9a9b57bd2240ded SHA512 5a5258132fe30bfb5313454598b85e7d97a74d1e0c7ca7af16aa8c486e316ad34ab74a25fd9a403c98ad1f3280385232f7d159bb824f713e920a4a0dae62c944 DIST wine-7.0.tar.xz 27120912 BLAKE2B 84bfeb28d56f0f40bb93b1b5bf8954c8be2fd90fde5a61608e7c35f48addcce7a4d660e63c3caa3ca2c365d1e83b55a1c3485872b2d6bfa8941e2bce44c4aca6 SHA512 eec17b046ed5447eb540f421c9b2748d9419ce087496c2743a9914fd27bbe5ff9da0cfe47d3cd76fa97323bd1188a1d82b1eef4968d86ed1957dc1a95e28529c DIST wine-7.19.tar.xz 28502612 BLAKE2B b7b270656955c7a1e1d84e8bbc7e3e8abff5aedadb5e8a458f0b1109d746875a359f3d2f53b1c9c6caae65d17fd1d205466cd3a884034a8bad6afe9456f13b5d SHA512 f76dbda97cccad4c0f249b5dd4e8d48afa832134f1704ae228650bb73ee82823e628b23bd53a3f8729e06a8933597ff2fffa5551f156fc9c9181b67c066747d5 @@ -11,6 +12,6 @@ EBUILD wine-vanilla-7.0-r3.ebuild 10596 BLAKE2B 9e62fe7db88a8e8e8232b4cd2cea88bd EBUILD wine-vanilla-7.0.1.ebuild 10272 BLAKE2B ae3917c6d7900e0a211384a600c29b825ab686da4ad79e89a7c479a997b2bdea65862feed77a94d134532b1ac437524004523da9343de8b61d7790f46c567b1b SHA512 ee9cebb5af001838f9659f576b7f54a06e12994c4e35bca445c521f6031367915ef2e898f9776482209c201e2653735322767b9000c9d8534d167e64c6273cdb EBUILD wine-vanilla-7.19.ebuild 10187 BLAKE2B 9008395c2c412674f26b5273ae83cdaad211eadfa70de7d75a7a336b0c3ed189ae0d2c60cd957c8c10f1bcdb22fe9c59a48f034b9e597ccf36c55540a374301c SHA512 9d0ae015c3a171768d01d769df742f66741e2d5fa14cfcbcd458e7ccabb7f7b98cabdcf1eff55b88a8b927c85e14aea7319e0edeac1ca57e60335144768f752e EBUILD wine-vanilla-7.20.ebuild 10188 BLAKE2B 77c7365ec9c58166b07a13e4204bb0a0e2251816c502dbea050877cc19b7864b16e7c4513cac8ad2225137f70137808d58eec17469af09f1278263a87f5aba10 SHA512 db487e83f4bfded1b71a0d4b3ba1608cc46a9f5a767a78d2efb9bbd545038fba041c92234f851156fee5e637c13b3e76286a88139d250131320b45af4106fc8f -EBUILD wine-vanilla-7.21.ebuild 10289 BLAKE2B b0c41654525de30f0bdd43319febc764ede2786ec6078579fefad02ba38bc3f793decf9a046a74af7ca7b870ca12cbede6b4a54446fa4f83a5854991dad8e649 SHA512 b7e7a4d33898c4c01be37350c219dd1f223074ed5908fcdf7d6ec2b61a9e1575b5faa7cab570cdc2625f2f986552bf3f0a99bdd040e943760b97c3eb05b3b138 +EBUILD wine-vanilla-7.21-r1.ebuild 10318 BLAKE2B 0b6c50edab0c79d522c20d2f59e062f9b01b51fe3aafd21f2adc4150156ba060029020c09f7d6a1c59b1ea0d22725beab85bdb908b447f9630d8951a3ef39025 SHA512 16fc2e67425af712f00bb8b952a03a717bff142461c29c6fde4df79e6ff97e9b6cf44a81521568e666638382efdaac53e0067b8fde8b867d92f69a256e0dcc83 EBUILD wine-vanilla-9999.ebuild 10290 BLAKE2B 5520ca47cd05a6ce11837819857cee2fc4d718ee8d7a2c14273f64d8d2f5280b4d063bf12b2462e8b38ba3010dc51859fbf0193e34a8bc6194759e0186bf36fd SHA512 ac5154d780d37c350f7078704efe4914bc733a6a1f72aa9ad74106e73b32c7580fbe54687e30f70754eca05f96eeed2b21083db10692bb67f799e2f64fdc9cd8 MISC metadata.xml 2376 BLAKE2B c37d5b769ce6ea0fd6ac0cde1084a332e34c13d31633d5c60970f89a932f621c0332b97b0667bbc42098a01c979919ac9d8d30487f2ad6691259270641b85485 SHA512 2968f0df88d5d95c0c649ae15cbc9088061c915046b2014448dad782a4abfa8cb173b6ec8ac15575329e5ce882342dfd1f5076a0ea8a2e89800fdc9628dc05f9 diff --git a/app-emulation/wine-vanilla/files/wine-vanilla-7.21-opengl32.patch b/app-emulation/wine-vanilla/files/wine-vanilla-7.21-opengl32.patch new file mode 100644 index 000000000000..9411e05e96fd --- /dev/null +++ b/app-emulation/wine-vanilla/files/wine-vanilla-7.21-opengl32.patch @@ -0,0 +1,73 @@ +Fixes PE opengl32.dll failing to initialize. + +https://gitlab.winehq.org/wine/wine/-/commit/34099bba6cb +From: Rémi Bernon +Date: Mon, 14 Nov 2022 11:55:51 +0100 +Subject: [PATCH] ntdll: Delay loading unixlibs until the functions are + requested. + +Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53909 +--- a/dlls/ntdll/unix/virtual.c ++++ b/dlls/ntdll/unix/virtual.c +@@ -98,6 +98,7 @@ struct builtin_module + unsigned int refcount; + void *handle; + void *module; ++ char *unix_path; + void *unix_handle; + }; + +@@ -583,6 +584,7 @@ static void add_builtin_module( void *module, void *handle ) + builtin->handle = handle; + builtin->module = module; + builtin->refcount = 1; ++ builtin->unix_path = NULL; + builtin->unix_handle = NULL; + list_add_tail( &builtin_modules, &builtin->entry ); + } +@@ -603,6 +605,7 @@ void release_builtin_module( void *module ) + list_remove( &builtin->entry ); + if (builtin->handle) dlclose( builtin->handle ); + if (builtin->unix_handle) dlclose( builtin->unix_handle ); ++ free( builtin->unix_path ); + free( builtin ); + } + break; +@@ -652,6 +655,8 @@ static NTSTATUS get_builtin_unix_funcs( void *module, BOOL wow, const void **fun + LIST_FOR_EACH_ENTRY( builtin, &builtin_modules, struct builtin_module, entry ) + { + if (builtin->module != module) continue; ++ if (builtin->unix_path && !builtin->unix_handle) ++ builtin->unix_handle = dlopen( builtin->unix_path, RTLD_NOW ); + if (builtin->unix_handle) + { + *funcs = dlsym( builtin->unix_handle, ptr_name ); +@@ -669,26 +674,19 @@ static NTSTATUS get_builtin_unix_funcs( void *module, BOOL wow, const void **fun + */ + NTSTATUS load_builtin_unixlib( void *module, const char *name ) + { +- void *handle; + sigset_t sigset; +- NTSTATUS status = STATUS_DLL_NOT_FOUND; ++ NTSTATUS status = STATUS_SUCCESS; + struct builtin_module *builtin; + +- if (!(handle = dlopen( name, RTLD_NOW ))) return status; + server_enter_uninterrupted_section( &virtual_mutex, &sigset ); + LIST_FOR_EACH_ENTRY( builtin, &builtin_modules, struct builtin_module, entry ) + { + if (builtin->module != module) continue; +- if (!builtin->unix_handle) +- { +- builtin->unix_handle = handle; +- status = STATUS_SUCCESS; +- } ++ if (!builtin->unix_path) builtin->unix_path = strdup( name ); + else status = STATUS_IMAGE_ALREADY_LOADED; + break; + } + server_leave_uninterrupted_section( &virtual_mutex, &sigset ); +- if (status) dlclose( handle ); + return status; + } + diff --git a/app-emulation/wine-vanilla/wine-vanilla-7.21-r1.ebuild b/app-emulation/wine-vanilla/wine-vanilla-7.21-r1.ebuild new file mode 100644 index 000000000000..38fe963828ae --- /dev/null +++ b/app-emulation/wine-vanilla/wine-vanilla-7.21-r1.ebuild @@ -0,0 +1,326 @@ +# Copyright 2022 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 toolchain-funcs wrapper + +WINE_GECKO=2.47.3 +WINE_MONO=7.4.0 + +if [[ ${PV} == *9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git" +else + (( $(ver_cut 2) )) && WINE_SDIR=$(ver_cut 1).x || WINE_SDIR=$(ver_cut 1).0 + SRC_URI="https://dl.winehq.org/wine/source/${WINE_SDIR}/wine-${PV}.tar.xz" + S="${WORKDIR}/wine-${PV}" + KEYWORDS="-* ~amd64 ~x86" +fi + +DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets" +HOMEPAGE=" + https://www.winehq.org/ + https://gitlab.winehq.org/wine/wine/" + +LICENSE="LGPL-2.1+ BSD-2 IJG MIT ZLIB gsm libpng2 libtiff" +SLOT="${PV}" +IUSE=" + +X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos + llvm-libunwind debug custom-cflags +fontconfig +gecko gphoto2 + +gstreamer kerberos ldap +mingw +mono netapi nls odbc opencl + +opengl osmesa pcap perl pulseaudio samba scanner +sdl selinux + +ssl +truetype udev udisks +unwind usb v4l +vulkan +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}] ) + 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[${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}] + ) + ldap? ( net-nds/openldap:=[${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}] ) + 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}] )" +RDEPEND=" + ${WINE_COMMON_DEPEND} + app-emulation/wine-desktop-common + dos? ( games-emulation/dosbox ) + 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 )" +BDEPEND=" + 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 )" +IDEPEND=">=app-eselect/eselect-wine-2" + +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}"/${P}-crossflags.patch + "${FILESDIR}"/${P}-opengl32.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_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 + + # ensure .desktop calls this variant + slot + sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die + + # always update for patches (including user's wrt #432348) + eautoreconf + tools/make_requests || die # perl +} + +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 + $(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 ldap) + $(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 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 xcomposite) + $(use_with xinerama) + $(usev !odbc ac_cv_lib_soname_odbc=) + ) + + tc-ld-force-bfd #867097 + use custom-cflags || strip-flags # can break in obscure ways, also no lto + use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH} + + # temporary workaround for tc-ld-force-bfd not yet enforcing with mold + # https://github.com/gentoo/gentoo/pull/28355 + [[ $($(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) == mold* ]] && + append-ldflags -fuse-ld=bfd + + # build using upstream's way (--with-wine64) + # order matters: configure+compile 64->32, install 32->64 + 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-clash-protection' #758914 + filter-flags '-fstack-protector*' #870136 + filter-flags '-mfunction-return=thunk*' #878849 + 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 + + # don't let portage try to strip PE files with the wrong + # strip executable and instead handle it here (saves ~120MB) + if use mingw; then + dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows + use debug || + find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \ + -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} + || die + fi + + dodoc ANNOUNCE AUTHORS README* documentation/README* +} + +pkg_postinst() { + eselect wine update --if-unset || die +} + +pkg_postrm() { + eselect wine update --if-unset || die +} diff --git a/app-emulation/wine-vanilla/wine-vanilla-7.21.ebuild b/app-emulation/wine-vanilla/wine-vanilla-7.21.ebuild deleted file mode 100644 index d931d7219d8d..000000000000 --- a/app-emulation/wine-vanilla/wine-vanilla-7.21.ebuild +++ /dev/null @@ -1,325 +0,0 @@ -# Copyright 2022 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 toolchain-funcs wrapper - -WINE_GECKO=2.47.3 -WINE_MONO=7.4.0 - -if [[ ${PV} == *9999 ]]; then - inherit git-r3 - EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git" -else - (( $(ver_cut 2) )) && WINE_SDIR=$(ver_cut 1).x || WINE_SDIR=$(ver_cut 1).0 - SRC_URI="https://dl.winehq.org/wine/source/${WINE_SDIR}/wine-${PV}.tar.xz" - S="${WORKDIR}/wine-${PV}" - KEYWORDS="-* ~amd64 ~x86" -fi - -DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets" -HOMEPAGE=" - https://www.winehq.org/ - https://gitlab.winehq.org/wine/wine/" - -LICENSE="LGPL-2.1+ BSD-2 IJG MIT ZLIB gsm libpng2 libtiff" -SLOT="${PV}" -IUSE=" - +X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos - llvm-libunwind debug custom-cflags +fontconfig +gecko gphoto2 - +gstreamer kerberos ldap +mingw +mono netapi nls odbc opencl - +opengl osmesa pcap perl pulseaudio samba scanner +sdl selinux - +ssl +truetype udev udisks +unwind usb v4l +vulkan +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}] ) - 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[${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}] - ) - ldap? ( net-nds/openldap:=[${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}] ) - 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}] )" -RDEPEND=" - ${WINE_COMMON_DEPEND} - app-emulation/wine-desktop-common - dos? ( games-emulation/dosbox ) - 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 )" -BDEPEND=" - 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 )" -IDEPEND=">=app-eselect/eselect-wine-2" - -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}-7.21-crossflags.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_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 - - # ensure .desktop calls this variant + slot - sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die - - # always update for patches (including user's wrt #432348) - eautoreconf - tools/make_requests || die # perl -} - -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 - $(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 ldap) - $(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 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 xcomposite) - $(use_with xinerama) - $(usev !odbc ac_cv_lib_soname_odbc=) - ) - - tc-ld-force-bfd #867097 - use custom-cflags || strip-flags # can break in obscure ways, also no lto - use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH} - - # temporary workaround for tc-ld-force-bfd not yet enforcing with mold - # https://github.com/gentoo/gentoo/pull/28355 - [[ $($(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) == mold* ]] && - append-ldflags -fuse-ld=bfd - - # build using upstream's way (--with-wine64) - # order matters: configure+compile 64->32, install 32->64 - 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-clash-protection' #758914 - filter-flags '-fstack-protector*' #870136 - filter-flags '-mfunction-return=thunk*' #878849 - 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 - - # don't let portage try to strip PE files with the wrong - # strip executable and instead handle it here (saves ~120MB) - if use mingw; then - dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows - use debug || - find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \ - -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} + || die - fi - - dodoc ANNOUNCE AUTHORS README* documentation/README* -} - -pkg_postinst() { - eselect wine update --if-unset || die -} - -pkg_postrm() { - eselect wine update --if-unset || die -} -- cgit v1.2.3