diff options
Diffstat (limited to 'app-emulation')
42 files changed, 2550 insertions, 5630 deletions
diff --git a/app-emulation/Manifest.gz b/app-emulation/Manifest.gz Binary files differindex 17c59f225079..938ece1e9035 100644 --- a/app-emulation/Manifest.gz +++ b/app-emulation/Manifest.gz diff --git a/app-emulation/crossover-bin/Manifest b/app-emulation/crossover-bin/Manifest index 620f3732682d..2562a76f2c74 100644 --- a/app-emulation/crossover-bin/Manifest +++ b/app-emulation/crossover-bin/Manifest @@ -1,5 +1,5 @@ -DIST install-crossover-21.1.0.bin 314014189 BLAKE2B f214d8b76a8809e396509013adb7ccfd5301ce35e8fda802d3601b3c88d1273eaa00f0457fb69897c4cac58f0a779ff18d5eef1708e5315d1173ecbf5967bb70 SHA512 271e67988e2fa4c1b3277e9b089a9ee11b52931fda597d6bf9975fe38b031e526dd6bac4c7a31ca530487380895ec8e94b4439ad7bd85098c87f35f8530c28f3 DIST install-crossover-21.2.0.bin 313966852 BLAKE2B 746b16a1e093adf344fa827e5c6b9a439e690003bf3eb30b32b9a30017f1697c21bc5c9e196736cc25e24daeed3ee3a809b20d44e0005bfd45ab542ede6c2d44 SHA512 a8ba1396e05119122dc0d813bc408fc0a2a3adc5c805ce15aea8e98a6a27d980eabafaf7a727f4cf1c30d68e456e8d82b83438e404cbf41db05d569f8832a9ec -EBUILD crossover-bin-21.1.0-r2.ebuild 7666 BLAKE2B eb4baad99a7eaccf1f4cf643c836e972277ef36c10d2ace9feb29f05717a9ce99457d6305727589c024d79499e117c525a845a1dd79bfc46383919521c09c1ee SHA512 e30f88882dfdb205c1821f93f05765dfacaff0a735f370c0018f109bdfd398269d96773dfd965b78bba49a547cbd25e75284e0d8d6c52a002fbcc9dbe2ce190d +DIST install-crossover-22.0.0.bin 334896678 BLAKE2B 12e25c832107b2ed4466c560f949b8af8f70d2d1ac9ac5a105ba65cd77557e4a341d3a3b76539c04b2e5ce574f101fc88ec6bdbc284738785fd25aae3a605ff6 SHA512 4bb99abeb587b7ba8bfc2a4851d85fd211bad6fe2a7af496aa0859f9834a9b5432e517e89980e28b6eb412d4f50badb695edbd3e112ea2fcfbdbb29e05072859 EBUILD crossover-bin-21.2.0-r1.ebuild 7600 BLAKE2B 71bc233016bb63a20a02b13241b5e0e5057d9f20a426ad4ca3c5c97f115991af57d2a94916306364311f7429f08717079d691ee580feb3d8bc7ab6637e5c7e0f SHA512 3f1e358e9524c32853aa31e92325a348676c589ee35bd06ac61b8ab7d1adb4d52997141597aafa8ece8204ffd4455f1d6eb8fa714f7e55de7b89a9e6f0b9ef6a +EBUILD crossover-bin-22.0.0.ebuild 7129 BLAKE2B 837d2db97c0ae7398b5923e1089bf4528bb4158c1a474eb80c30cff088ac50cac838cddeceaef99756a813da5d1d903daaab7978f35295702e1a24ee34911a4b SHA512 dc227caf92c15efe10eb412d4748f017ba1856408a46d044fb7ac8554c5fd81d8ec60e69a5ef2e04fa9b3b00fd746194059aa02d8bfdc1063c3b3b4851c5bf64 MISC metadata.xml 568 BLAKE2B d13e314ffff8e7f24a4b26a6f4981ac0d574b84f9e4b994341481064fee38f167c29829d823c4f9b64722759b94d3ef3d828d0d727d7413753038aef45457b44 SHA512 04ba11db6a19081de9df60a5bcb1412b7742ccfe6bf81cce904249d4666ccd314618776578f7de8a8b4f57f54f389d0faba06accf5a98da54443e44e4180e36c diff --git a/app-emulation/crossover-bin/crossover-bin-21.1.0-r2.ebuild b/app-emulation/crossover-bin/crossover-bin-22.0.0.ebuild index e37777f2cb0d..ecf8726e59ac 100644 --- a/app-emulation/crossover-bin/crossover-bin-21.1.0-r2.ebuild +++ b/app-emulation/crossover-bin/crossover-bin-22.0.0.ebuild @@ -2,7 +2,7 @@ # Distributed under the terms of the GNU General Public License v2 EAPI=8 -PYTHON_COMPAT=( python3_{7..10} ) +PYTHON_COMPAT=( python3_{8..10} ) inherit python-single-r1 unpacker @@ -61,12 +61,10 @@ RDEPEND="${DEPEND} dev-python/pygobject:3[${PYTHON_USEDEP}] ') !prefix? ( sys-libs/glibc ) - !app-emulation/crossover-office-pro-bin - !app-emulation/crossover-office-bin capi? ( net-libs/libcapi[abi_x86_32(-)] ) cups? ( net-print/cups[abi_x86_32(-)] ) gsm? ( media-sound/gsm[abi_x86_32(-)] ) - jpeg? ( virtual/jpeg:0[abi_x86_32(-)] ) + jpeg? ( media-libs/libjpeg-turbo:0[abi_x86_32(-)] ) lcms? ( media-libs/lcms:2 ) ldap? ( net-nds/openldap[abi_x86_32(-)] ) gphoto2? ( media-libs/libgphoto2[abi_x86_32(-)] ) @@ -86,12 +84,7 @@ RDEPEND="${DEPEND} pcap? ( net-libs/libpcap[abi_x86_32(-)] ) png? ( media-libs/libpng:0[abi_x86_32(-)] ) scanner? ( media-gfx/sane-backends[abi_x86_32(-)] ) - ssl? ( - || ( - net-libs/gnutls:0/30.30[abi_x86_32(-)] - net-libs/gnutls:0/30[abi_x86_32(-)] - ) - ) + ssl? ( net-libs/gnutls:0/30.30[abi_x86_32(-)] ) v4l? ( media-libs/libv4l[abi_x86_32(-)] ) vulkan? ( media-libs/vulkan-loader[abi_x86_32(-)] ) dev-libs/glib:2 @@ -136,12 +129,6 @@ src_unpack() { src_prepare() { default - sed -i \ - -e "s:xdg_install_icons(:&\"${ED}\".:" \ - -e "s:\"\(.*\)/applications:\"${ED}\1/applications:" \ - -e "s:\"\(.*\)/desktop-directories:\"${ED}\1/desktop-directories:" \ - "${S}/lib/perl/CXMenuXDG.pm" - # Remove unnecessary files, license.txt file kept as it's used by # multiple files (apart of the menu to show the license) rm -r guis/ || die "Could not remove files" @@ -149,6 +136,12 @@ src_prepare() { } src_install() { + sed -i \ + -e "s:xdg_install_icons(:&\"${ED}\".:" \ + -e "s:\"\(.*\)/applications:\"${ED}\1/applications:" \ + -e "s:\"\(.*\)/desktop-directories:\"${ED}\1/desktop-directories:" \ + "${S}/lib/perl/CXMenuXDG.pm" || die + # Install crossover symlink, bug #476314 dosym ../cxoffice/bin/crossover /opt/bin/crossover @@ -204,30 +197,23 @@ src_install() { || die "Could not fix paths of *.desktop files" # Workaround missing libs - # https://www.codeweavers.com/support/forums/general/?t=26;mhl=198658;msg=198658 - if use gphoto2; then - bbe -e 's/libgphoto2_port.so.10/libgphoto2_port.so.12/' "${ED}/opt/cxoffice/lib/wine/gphoto2.ds.so" >tmp || die - mv tmp "${ED}/opt/cxoffice/lib/wine/gphoto2.ds.so" || die - bbe -e 's/libgphoto2_port.so.10/libgphoto2_port.so.12/' "${ED}/opt/cxoffice/bin/cxdiag" >tmp || die - mv tmp "${ED}/opt/cxoffice/bin/cxdiag" || die - fperms a+x "/opt/cxoffice/bin/cxdiag" - fi + # # It tries to load libpcap as packaged in Debian, https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=657900 # https://bugs.gentoo.org/721108 if use pcap; then - bbe -e 's/libpcap.so.0.8/libpcap.so.1.9.1/' "${ED}/opt/cxoffice/lib/wine/wpcap.dll.so" >tmp || die - bbe -e 's/libpcap.so.0.8/libpcap.so.1.9.1/' "${ED}/opt/cxoffice/lib64/wine/wpcap.dll.so" >tmp64 || die - mv tmp "${ED}/opt/cxoffice/lib/wine/wpcap.dll.so" || die - mv tmp64 "${ED}/opt/cxoffice/lib64/wine/wpcap.dll.so" || die + bbe -e 's/libpcap.so.0.8/libpcap.so.1.9.1/' "${ED}/opt/cxoffice/lib/wine/i386-unix/wpcap.so" >tmp || die + bbe -e 's/libpcap.so.0.8/libpcap.so.1.9.1/' "${ED}/opt/cxoffice/lib/wine/x86_64-unix/wpcap.so" >tmp64 || die + mv tmp "${ED}/opt/cxoffice/lib/wine/i386-unix/wpcap.so" || die + mv tmp64 "${ED}/opt/cxoffice/lib/wine/x86_64-unix/wpcap.so" || die fi # Remove libs that link to openldap if ! use ldap; then - rm "${ED}"/opt/cxoffice/lib*/wine/wldap32.dll.so || die + rm "${ED}"/opt/cxoffice/lib/wine/{i386,x86_64}-unix/wldap32.so fi # Remove libs that link to opencl if ! use opencl; then - rm "${ED}"/opt/cxoffice/lib*/wine/opencl.dll.so || die + rm "${ED}"/opt/cxoffice/lib/wine/{i386,x86_64}-unix/opencl.so || die fi } diff --git a/app-emulation/libvirt/Manifest b/app-emulation/libvirt/Manifest index a0cb96ab2fd3..a6248fbaa169 100644 --- a/app-emulation/libvirt/Manifest +++ b/app-emulation/libvirt/Manifest @@ -45,4 +45,4 @@ EBUILD libvirt-8.4.0.ebuild 8953 BLAKE2B afa854c0c31cf705e401fb5733d52c3ac720c52 EBUILD libvirt-8.5.0.ebuild 8997 BLAKE2B be5e5afc4b65e4a41a9b2e45766924506c441a2b9fb09e6030a7ae7b53a002d0a7a2211817b8d4231aa47de6a5a6aa5ce045e78a62c21de7c0f7878eaa303288 SHA512 79f6459febb08d1a7c4783c8b59ed384c4bfe64bcad9e00b9577e74c1bbc124aa89661a8ef255227e9af51b0dc71b599bec236ce19b28a6f9fe538792d31e651 EBUILD libvirt-8.7.0.ebuild 8952 BLAKE2B 0dac207e98eb645dababc294f06e115d0a57bc8f4581a64fe8ccfa5167a0af955187e8423f21ed1f6a713667f283f9c89222b8be3d71b0d9aade69942a5f5efb SHA512 42a7d1535272d93bd6cccb8d7529933762c2b0aec70e4f299db87bd61fbdd2c11329d2b81d85c27dcabf5ee3c02a14ee3eaf67fed8f60cfc68c97b161399a144 EBUILD libvirt-9999.ebuild 8947 BLAKE2B 144c415c7ff7366583ebc88ba3f9cf30080b3c6fa74192ad0b254dc75ffe6edf0b19b17dbdb67f57588ce0ce044f48b6e22fe41b24cb1088d52ba26f92895ee1 SHA512 fa69bb9c7c76f2317313a4b42ccf4d454cf404c7ec358308b8abffff81a41a029e6d0ad790830ed2d78f56835f2691397b52e700760b190805b52bf5d751be16 -MISC metadata.xml 3784 BLAKE2B 79ac58c142350e62e237e7245c40f4fd25d8e3c19d308440de66df8e6af46bd8847370fb1bf17dfd36e331fe50bd2114a6ebec7e40544fbd3bc049602e9a8657 SHA512 6a27d14d0b4345ccc2060c39af245673df10460d4844cb2732e82005804706e1c61192a0c26dfc04c3c4dc1225173fb8fb966e4197454433f6d7ed8d5601c84d +MISC metadata.xml 3729 BLAKE2B 2e68676afb3820c7b8cd3d76b0a5c42886e246fc6b440ce49c71cbe60c124cdccd4ed8fb97f7153529b758d56dfba98b6a98a31b2fbff7e738f52bce796a3476 SHA512 0dfe519af8b740de9d41b1e2c40133026718a782b654a261c54cbe22b5f694cda8b73036c59411317757b73c40acaea77f70d7ab86ae8325e78d61151e6c64f1 diff --git a/app-emulation/libvirt/metadata.xml b/app-emulation/libvirt/metadata.xml index aa7a5f870674..9784c19f4174 100644 --- a/app-emulation/libvirt/metadata.xml +++ b/app-emulation/libvirt/metadata.xml @@ -52,7 +52,6 @@ Support management of VirtualBox virtualisation (<pkg>app-emulation/virtualbox</pkg>) </flag> <!-- Miscellaneous flags --> - <flag name="apparmor">Enable AppArmor support</flag> <flag name="dtrace">Enable dtrace support via <pkg>dev-util/systemtap</pkg></flag> <flag name="fuse">Allow LXC to use <pkg>sys-fs/fuse</pkg> for mountpoints</flag> <flag name="numa"> diff --git a/app-emulation/ruffle/Manifest b/app-emulation/ruffle/Manifest index b28e961e3c13..54dff04c99f0 100644 --- a/app-emulation/ruffle/Manifest +++ b/app-emulation/ruffle/Manifest @@ -1,12 +1,15 @@ +DIST Inflector-0.11.4.crate 17438 BLAKE2B eaf0c7f983b3186e9bc89353021a10592f2877e46585bd50b96db9b087343d1199c7b6cf3fa53cd274fb6d33de025a904b8aa31a7ac9599ae3689ecdbcec34cd SHA512 f1f6463e033b6d3c16c51dc1e1a3f5569954308b95b59058294b7f9310919bbda797e99e6a07529071bb83f0688867a243997d33795a7136b0af73977004296e DIST adler-1.0.2.crate 12778 BLAKE2B a1dc17786adae945ac09d3525e609ed944e6465690787bbb831a1b9d53793cba1989793d0a5606d5d23ee20d36457923d451b1b3530c9ec7072a487aa3e55bbd SHA512 7ab190d31890fc05b0b55d8e2c6527a505e06793d5496be0b3831e0513412f9ba97f8148f6f68ed0770fa9cd980a5092d885e058becf1d5506b7c74b82674aa1 DIST adler32-1.2.0.crate 6411 BLAKE2B 51d44ccfd774158687b8244e83377e40ff896364e3d41e9015665131cc2a176d4ca0ab5a84df027dec0869ee735ee36f5687a06c1d2341de666070cdbab89483 SHA512 8ed72612fb78e213fc92963fdae0508ef26988656c939e6c9cddccbe2658d4a956a8ae934d9658262a8b2687dc446b3f1ee7614128b440487c81e606526dfda3 DIST ahash-0.7.6.crate 38030 BLAKE2B aca3661477fcd7822d6d10970151e05c28e1615f8cd7ddaac064b15102027e404b19b0f3f16dd76145048594ea1c22ae27dd08cc05c411efbae9ec7a1ef55ce9 SHA512 61354688b6fb096359faefb6f34be958cd2215d56b88c22c737d24183eaad433f811bc9e64f927e4852c87d2799c22fda82b55cfbef2ed6357ff74f0c4ffec68 DIST aho-corasick-0.7.18.crate 112923 BLAKE2B 4f6947d1aacf89ccfab0592cdc55fa61ef09cea38231d3f758765dbce328a810c0b588be4ba96e81d64955379ee005722d22a7aec39caea6e72342245d7ca34f SHA512 7a23b16231a90d23ee60ad4c81bc225410599a4560d33d3a203138fc540c39cf1000100fed3aed40dcc371c3635656a3792545dca5dd1aefbde00d8774eebd00 +DIST aliasable-0.1.3.crate 6169 BLAKE2B c23840c7f1df86109e004aa1929d7355bd815c69ce8c5a316c9e2810851b7faf91c7480924d67cf83520e94b86dc0cc1b90b0dcc84b446a15ba5cccc1bae95ca SHA512 a60e4280335638b36a72e51514843229fdd0cc89cb670fcf159f882a687c04ecbddcc52a1dcc3cbe8647e5308af3939037934a157facdddcc4834dcd3cb16dc8 DIST alsa-0.6.0.crate 68171 BLAKE2B b692d929e49765c59ae2fae7bbe8bef4393c393e384c5d84133f018123cfe1044c6fe6c1915423614957fe622553aaf9cb5c38a41d3ff93afa2c4f162a828252 SHA512 a63354da0e643a68e28e32293d48f866c071332b1d17cf8349a79f28e45d6b9566d22f30c3001a862ea26c2b757aa9440b3f52c826a40b29c7881d12416f599b DIST alsa-sys-0.3.1.crate 32748 BLAKE2B 0c4da9c343d622ddd521fe9332acf97c1ee4a202a909c7a0014a507148ab6ff82d5098660dcba847d938b296adde416ae420d454d6982c33a0456f37840d716b SHA512 6523d909c500fee433f934eedfdc200cfc52e1b55be09434665210c16bb9af3593d8b1346ace184b171c7135a7aa65fdac5ca8c68e64f9d20436e1d8fac961fe DIST android_system_properties-0.1.2.crate 4646 BLAKE2B c9f4cedce76fd3224fde3a094c9c1822df52e0c1eb110038427574cbb9358eb9484153a0f1419c16e34cb3d10a9d4d259dc9b1e2ebc53f80857005be9e8f6a8e SHA512 b6cb345d79f643fc26a0b0c671df4c58341de3123858637f3d4a2d3646bd65cd2dce929a6ec6ff5cdadb4f459a23e7ab881da16f973e705391e4c805742a6a70 DIST ansi_term-0.12.1.crate 24838 BLAKE2B f636772c34e2d68cda7b8d3b2b86abda074585a62bd2654812ce92384244655a9197fa66e6939e19a674c0148ca605313d83de262bb18c2339a8a4eb4438a791 SHA512 b840e28b3e7700689a69a39659b1e066560078dd4a58326b91a028915819e7af883399ee53e920db68fd974c58d35bb1ddf8d427af5937d5f696f57c4376b671 DIST anyhow-1.0.61.crate 43202 BLAKE2B cd13e3b187a87c1ada6fea8c3c289627893e782a9bdad0c7a32d2b4acf5182abeff3fd649664b645b14f46a25a59a5b13d0a072296146acb9954af781e972ba9 SHA512 06a7e077efb1e1cb3fd5b210a9fdfa2142141d57188660fc2e301501ba38f49291126cb1dccd0f01facbc1d0302132e41b42e5ebb14e44e152cf10b18d3e5e6d +DIST anyhow-1.0.64.crate 43549 BLAKE2B 2cbed191296299d888fd7a02366cb3e5498920cfd6a05ebac9c4ba6d0bc248b49e8dd46a70effbf3d69349a2b8d28814cb04edbc52ccd5bf3050de438210ca77 SHA512 4d525152a0977a85719695757e515e1fc714bbaccf3ade1d7bcafa9dec3c44e93c633aade95f663f8c93378a1f2da5d55e5f2a906701a7d8369939538f860531 DIST approx-0.5.1.crate 15100 BLAKE2B 8fe84d52263521c0b72a1d1e82ed283828f680b8b56f532df2c14ea86ca09e793686d823c5d58ecfd7a829948543bb375e85223c866cf036e9432be5d6aa7399 SHA512 c6d768496c974b6ff4cf7ad8e65f3fc9faf29a1957da497968ee112c6a0b9d7a0ff9a2579206e864976c0f65ed2190bc9d2b63b31a09ced7b57879e207c46407 DIST arrayvec-0.5.2.crate 27838 BLAKE2B 51e2eacae0ef148f3f52d21ae00794e540e7ce4c013fb496dd1347ad91ffbbca199381fffbb064225f829216f6c5e915edfa64833f91fabdd13c3f011d86491f SHA512 1896b5f64b4dbdcff8ad234bda4ea8129bcacf87839347304717e94ee9f369cf5f4371755e453ff7d72817edb8f7fdbc726d77cc4f28ed05148dc89c7714b004 DIST arrayvec-0.7.2.crate 29341 BLAKE2B eae9d3f494033ea2d837a6024cb24bd4574683ed1e76ac6be7f7c6b0d8ee65c0eaf03dbae7fea04cf0921299f69234ad91e1cf41342de86f554f74e287dd3ba1 SHA512 80cc6e55b6032f4882362813de970d3d99e600ada774b28ac6a24c9c8e018fda3b35c5750ac3a09fca6fb9496e2e3fe608b58d21b1b84685ebd170f567a0ecbc @@ -29,8 +32,11 @@ DIST block-buffer-0.10.2.crate 10258 BLAKE2B d3ad2f9f0379e04320e954e1a2226949d83 DIST bstr-0.2.17.crate 330350 BLAKE2B 90c3a48d78b73d7e36a3da9fda0beae6e91ce534d17198ea8ceee0b613d03297f9dd8bca30e1ec5da01d1da359a1da72b2c2771b77c82bebab5006cafd665192 SHA512 883eac8210d14f89517b4dd5e25d02c97cf31602ec74498b5e186112ba0f154d47de8d1c41a8f4e5503f3b53c064e2c976b60bbfd63fc28b186bc006e00f20c2 DIST build_const-0.2.2.crate 4511 BLAKE2B 44316d3b468e73fbeedbaa1ae35705196f787707ea861355d926e7fbc97f759bc7fe0bf88d2e97fb9b981fc7347fe0e849ce2094f50ab53075b4dfe7522089f0 SHA512 47a9949b7196791af2507d6e3a28843da67621e5b56177d3b13477e070487cdd1059207588a55bf1a393df9118e71e3024b439a3c6281b6c12b5bdee66b237a6 DIST bumpalo-3.10.0.crate 78915 BLAKE2B 94515190837765b47feaf94946c7e4da5b84e6faf7975bd5452bd9388d34e51c84315b80bc15b37c7f4ea8b4aaa0112707cdfc82d0651eeb8b63d2e7bd247660 SHA512 60c686534588524250ea7cb43510dba69d24999769b719127ee07f6015530ac2c5778d9b93477ab075bfc15c13e3ef9adc29ac24059067ac32e109347cd509f8 +DIST bumpalo-3.11.0.crate 80945 BLAKE2B a740a674d0922794cc71b87a8bd686f677f8d0b38d88cc43467b7f8f6d1368ef5cff99bf10867d3c8af9b79b71deca7e5bfe78670b7890b04e468359780d8c76 SHA512 f747b5743bd2825c62c363ec49f1eccc492d7cf8cca8101aa9733f32489685c1777344dc6183f83c772f1067f9648b953d3ae1034976a14295f252f1ee7788fa DIST bytemuck-1.12.0.crate 38248 BLAKE2B 9233579e344dead7bfbea2e7ca5f905900768334c0ac53a593de98fa210d87fd799bd61f3171f69127faaebe7e2c01f1fc01698885fd042727a9342ecc21cd83 SHA512 0f1fa19fc49e941795009d864061fc171ad7cb28ebfd9c1056730121ce918afdb7d7bb5921a900ef74dd34f1a1e6c84a769c4e8396fda54af8ae59b73eddfba2 +DIST bytemuck-1.12.1.crate 38293 BLAKE2B f714ba0b4b0d693c5b26a3bcbe9de8c1496851a298bb70770e6284ed68caea61d7b8c14d67ed0e8b6d9146e76f791192fcfe11e897146203d5acf536b9721e67 SHA512 50626367364cf0cb33658f6cbb99675f1191ed3e7ad447bd7d2c24f360bd3524ebe1b2d1fcc7d78d1a0692408da8d95795b54efee91a87c55e8b54711a968790 DIST bytemuck_derive-1.2.0.crate 13511 BLAKE2B 900f94cd1d65a793811d7a29e90c3b80bb301b31b3371640b9d417ae9fa1937d98904977dcc69a9291fe740e44896ef3f47a89cc9fd340d2f8ab0d943f4fbd6b SHA512 96d1efd4c7826130c57841343f26bf120d980ed9280ee8fa46e029bb500547278b6801d2d1d91f08bbd523b5c2c7a7c7f2ea0ad1a3a916fa5454977680353ec7 +DIST bytemuck_derive-1.2.1.crate 13615 BLAKE2B d9c5be9fd2ddfb48316aa36e55d37deecf19a37981600351557c561576584b56902e73970cecc8a41d1592912a03821dc43770c2fba54f594dd2cac1a163bbfd SHA512 753ce9d718523e26e2464135040f0c6f82c24578d7fffa7352aea57707cd982795024773054392cff668a727d696d2b90f27147065ea80962254a7a76ab24c5a DIST byteorder-1.4.3.crate 22512 BLAKE2B d39c546ba7346df315297fc53da4bfc77ecb1f38567ddb788549ee31cae2719a8bc0b7d1f1705abb3cff033aa57af004987d90748f5a31765273b3223a011c0d SHA512 8c8000eb8ecf40351c9ce36a3a8acd7a02f81786d1b11aab85adfeffa0f2267ed74df29b2ca5d1d38128484d1d3cad2b673aa0d0441dcd0620dfd3934bb888fa DIST bytes-1.2.0.crate 54688 BLAKE2B 7691bdd170be8b7bf77b52078d547c1d007fbd97c5465672cfb558bcc8934377313de06e7dcc7d6ecd3f9e7c9fcb232c8a80b933591f7c160fa07600872b80ec SHA512 91ecb2ffab68ed7ee91112ab1462a036e627470e75077d00ea163e9f91a920404f502fb55c4ba7d7941f799a6077990170a15f69a4df3cd8cb73dfb677eab7fa DIST cache-padded-1.2.0.crate 9125 BLAKE2B d50b506aca9cfad3117be593c33bba4a5240034a838610925f9eac969155f22e0064c91f8d3588333880d1f5b6b936df87c0728530f80cd1062c73d570bfd1e4 SHA512 5b67d06908981d0e1ba01912a973cc5c90ce6612f227b306d12b13500594f5d2376d437a046e10b9cf959b609cb67fa6e24193fc651cb2d84e1f77338c6823fc @@ -47,7 +53,9 @@ DIST cfg_aliases-0.1.1.crate 6009 BLAKE2B 6acfae9a89d3479f7ce1f0b5dbb13bfe27c006 DIST chrono-0.4.20.crate 185054 BLAKE2B fd6f55faf9c6e0cda7a2843107150ec42e966e3812b2daa1044548d0550ac5a8b3153e8ee4877e7d3607c27c64f5498bc24cdd304d4433ba19c8becabc4e646c SHA512 ac98ab1091b4acbbfd8acc4464e280e45eaff204453f9294f62e05167d403bd9062a79bd5c41c44da284b1f8606177c9b4ce0d8679709b404ddb4ba12ac3e0dc DIST clang-sys-1.3.3.crate 37943 BLAKE2B 92ecba81573fc27de689752e7009514d0e51c4d09407d0345eee7a94f4713cfd01304b98370aa89d56a3b028912370f4967f8fda28ae9e3620fbb4af991da117 SHA512 fd922627ff66f9265aae30bf585bccab1efdea7f66b9fb95f45af0f316727bff7b791f36ef42010df5d8b3b474f36457fec03fdbb25c50cc8922c3b157387dc9 DIST clap-3.2.17.crate 213699 BLAKE2B d18204da5583f67b29646ee40f2784eb51e216eb750e24dbb4cf52421668a42e655443cf3e02cb18030422718aca73c6c0d577ca05a2c8ff1693bf5dfe85affc SHA512 e1b19b1c5f862883e2e1cdab14d7ed74c2d0a6b91aafa5b227426a004ef91a8b6c4749e023554ef64c0636f02cff1530d321f934b708168ecf5e7dbad68d08c5 +DIST clap-3.2.20.crate 214114 BLAKE2B b8bf14d5b60ac0a1156718e2993df45bd867519a195414de591ae92e009930121c674bd53ce8e5cad53659a1b9b72810a7cbbabc92d3552b2131cf3836083a4f SHA512 85a1aa5f777a172aca71459225d72282fc7f21122ad7ade496a4734ffdd140476fd73d67da900fe323dd6a72d09401536e318b9654674a9f4f61dab822fe54a9 DIST clap_derive-3.2.17.crate 28217 BLAKE2B dd98874a39aeda5bef134043547295e370478511539ada89830077f3457a853305f48c75a9eaec24e81f5bbc4e5f9f9881beb355508f961673cb1cfced7cfb4b SHA512 c51682d2b5837502211388efb3e45cad67400314d43e0492b4d52f72acae5ed0b86bce870aafef52e97c0c84c6174318d759cb21ab32caecdeac6c1dd0c2a356 +DIST clap_derive-3.2.18.crate 28208 BLAKE2B 05a23083a8e792858819d7eebf057257b1d49b0e8246d3f24c6f812456cbabfc75d9271c295a0d44539bd531ea6808ca7490e787c1fcae63bce045422d33d280 SHA512 d5349b3d5711bd4900173aa5210d7c4aebb0bf70128e11f26b362f5acb43687f6ce5ef73e4d614ce9c1d649d34b68ff15ab8b65fdf1898fd295ee4b4a7523497 DIST clap_lex-0.2.4.crate 9652 BLAKE2B 5120b508dedf52507068c0c369a45ddfbe0369e5c05b65bc5a78c422b2a4bf488f9ef1e0bed4e335450f2c08b80148eb5f7efed678039b5a94b5bd666385939f SHA512 6c05e5fd850befd45be9005af7252385f2304aa28a107413bbe329d97aea835f7acfd0bd169c99f69f466ab93d6e1c35d73a4e48343457a06fe2d6be5bedde0f DIST clipboard-0.5.0.crate 10009 BLAKE2B 17aaafeb92be0dfb4ccfdb80a3d909e57491cc0adceedf378196f7bbd006d245adfdd9b2d2e075c2c041aa57eb1a0e6e306032966c30e63f94d86b0f9f7a11ce SHA512 a02994e68bb4ecdb1ba3db05e095474e67df4d73f69c92ab096913f4bd0f47ec6b62c8f0210fd67bb466e293c765888c315770e447f5c6e9b2e5c69f71d3e48a DIST clipboard-win-2.2.0.crate 11079 BLAKE2B 5713e17a93eac4a1d299d42a6abe5db1eadbc90bf5e7c99e84b6b5febfc817bbc1c478533af8cbec7a8e58ebbc1a8f3d83bf351d105b55017cebab8048009390 SHA512 f869775bb2e6d84096034c26c888c9f671272232af74c02bda2a6c8f0d600652af581c0e94d875d8746b986314f61168bf7539042a65cb2ccbbf858141fa42e0 @@ -55,12 +63,14 @@ DIST cocoa-0.24.0.crate 39235 BLAKE2B 01078c3d96e88e0cac773f238d3d3144324594fd75 DIST cocoa-foundation-0.1.0.crate 10645 BLAKE2B 8ea7db02939a5cf1785b2770743d609e28da415fdf49b881b620e0ae289976a5a737056976afa7e616fc49c15ce535304d70ce91e79bd61c39ed024078012e61 SHA512 cf0e8188bd4d0310716aad9f1e2cc77e4098e85306bd2098bdcfd9720782bc558f503033074e0f076748074a9067a4dfea263ee5356074207739d81c4a052ba6 DIST codespan-reporting-0.11.1.crate 48963 BLAKE2B 39deb717a853ffbe3585e20a67fd7a75b62e2d796a66b5004876501fd7476acde9f126804f2ef6220ebab66821a3ccf058d544d689a2705eae44285f34b510cb SHA512 0869789f5c50d3523d3ee16a8fe64756498a13704efbe82bb0845eaa87c7b6b1d075b3b6b80567cd9fce6cb09c5179e9c07e485fd17ce56c8139ade0f8bc6844 DIST color_quant-1.1.0.crate 6649 BLAKE2B 9a2488dd00b7a33e15e05531ea49ef1961131f0be0922ba41e2d74d2b1a047daed483ac3a9dd87c847a81cce70a347395c557cad8228ab9a8dc5be7cc0f1bcaa SHA512 690c928bda4b7b57425f38ea68ac89cde2473b7a91b7e62c04a8f2c5a0fa3505e26b065d48b7ad0a8bb491f92f600f896fefdad3ce0e86e43cbf4f9a89e94201 +DIST colored-2.0.0.crate 21619 BLAKE2B 5abcc05a95cd74a106c4e4f3c9b1722a7a9493c7d16c2d73f2a116d1d0d20f93d00c414a19871930e6286aa60cdcb0f4f4411ae059e7e76b7632cfca3a55ebe9 SHA512 c9ee830c1e8a32372ab8c7ce569701deaa6533fa369fc1b4c04bed57b1e686ed775fc76c3d9815ad21ee69cfc7c30d645abcbacad39081c7e37ff83ebb6d9e8a DIST combine-4.6.4.crate 132144 BLAKE2B 9d6b513adc63b49888dc33444e3db2c0c4b950a6c4e30ff17e0bbf4b3bb39fbd679cd31ce7e584a1bedca69868606a13c0e3bd0a136a1fca1dbcdb516452d34e SHA512 2550aba009b8ab66230e7b21fd1cb5085c92bc280e31f35c9b02dc78fa138ef9b9ece0d7801473b88d11866b013c6fa3bb6e9611bdc1a7b85144e50a49829774 DIST concurrent-queue-1.2.2.crate 15859 BLAKE2B 97eb49d7f6270999f24d37e7a3967c0abcbf584637388c4507f89fd5284120759c9845219c463cf066f6568191b874fefddd7edee9292ed02183123161074514 SHA512 84e348dc3d40c73c11c54ecd0f1e6cf7fd6c7033f4723a428ed1c09bc9548cf317a0d8182144b689cb9781190b9c8ce4374717012eccee54a11ed0869dee10fc DIST console-0.15.0.crate 23507 BLAKE2B 49694683baddb53e0f35584403aa93616164c2d3b94b39e0e35ebc4f915c37c8e794619d57b44ac0ea460ddbf7ec43323adecf657cc6f2869f313b3cdbf3a46a SHA512 70bd6abfafa533903f273ec3b34da6783856bd1abedaf139fddafac0dbb03fa9154f8e1e1bef01fd8de3c53100bbaa93313518c42f8ce51217c23ef34d3f9d62 DIST console_error_panic_hook-0.1.7.crate 507196 BLAKE2B 90f2855b54c78258f9e4983849a0c0b41f842990d622bef0ea16ae5e3a93914919022d21b1437bb2ce644333d4e0c6e7b55d960452c4fa437e23bcd0da83a4dd SHA512 49f4fb2175c0068981678f291422ace3737dab7033b1a49d78fd821512c92fdd023c3fe28c7daed88c8f338c30a9c7f82f18bb4583c3fe7839ad8dcd0addd6b9 DIST console_log-0.2.0.crate 29003 BLAKE2B 69a29e215cd97b9c754d7ce6961aee44eda66ee8fbd30e21f8d0f71b1ca2a4efdf9a77b770d5a98627a74f4cf83d1ee2dd68ebb67798e346755b3b4d1a3ff8e5 SHA512 55cd628b5be60ca33d3ab3ad5d436b93ad3bfda456feee93bcc24935265ed05236f5811a73dc469492adc1d7429c7348bfe3ebc9e34ae9d1353662c369712f17 DIST convert_case-0.5.0.crate 17902 BLAKE2B 217784fc6dfcff42c43b08da8b022d9a22aff86220942e809b7f2b0c78987ed084c82ae8aae1812e56fb8743fac31d69a016723d2ca134f60ce63dbb13fe1872 SHA512 b62bc754531ade315f6936ab89578defb97802eb67d2a0827b460510166e7ab3abacbb563c4e9d1d52721c7a0e9bc3e12e9535caf1c73f8353eb80b3647155cf +DIST convert_case-0.6.0.crate 18675 BLAKE2B 5e5ab159a61e68b801f1c95dc5336f3af7ffe6fee212c8ffb9905af1121f0b272b234b4e70a30f29f5ed24f4825ccfb59722057b69549fec0fc3472857ee1ce9 SHA512 3b17449195a9a36e3965db89eeb967979c192ad7743217ea08e8c8b91ecae1ac1674362d05dc6f32f1f361fface3f783398285bb78060403f65a777a9d29adf2 DIST cookie-factory-0.3.2.crate 14325 BLAKE2B 34a45c00e033b7d684b1bfd61a60d5969d3f5cf72532239d09f4f9f803b8cdff4858d1c827bdccc991b562c3ecad3b308995430775080c06fd5ad03538e6e9de SHA512 8c3eb5ac052368a426158ec23c4d2cd3d74f14b426782cab4b89de6070611cbdaf4360a668dc3c76d9168f738cd10389eb56094f72014c7e5c249ee1616aebc7 DIST copyless-0.1.5.crate 8264 BLAKE2B 7f4269f6f279bd7215fcafc74d7d63f35d33b70fb914f32dee45c1bc458c78d6ff3b36c2b46b225398d89378104f9a4705156a49a81c76bb25ac9e56ec60982d SHA512 c18e936bf3d5ce11951c4a02b48a68856c8213dd9be6ff00c3eba5b1c9d2156bb4095a44c4e40e8099231c1e8888e73cfde3c43e30113550575b4683b399885e DIST core-foundation-0.7.0.crate 25384 BLAKE2B fde852b7673cc972da8d2f8663c2c8372fda36fd577d19c9536f9df929f649ccf94150e1e23a57013bee3cd8cbb6fb894c4fb3a5744171bc6be607cb27e2757e SHA512 919041f431e21783193c0661b82cbd15946a56e24e5100a6a9dc02476ddc714595fb0416ae182981ebf6a8b27181e3178135c27388b41ec848423d739a265da6 @@ -74,6 +84,7 @@ DIST core-video-sys-0.1.4.crate 10568 BLAKE2B aef062d1b1047d50d02e932413c7d24cf3 DIST coreaudio-rs-0.10.0.crate 34487 BLAKE2B 30c2273082266de0e4fe7f7f6ea56673d954efed518e522a4ea73ffec12781cdfc92df3b98e836f407ead18cae441c37f2a32d30f585ef066acee3314965eb84 SHA512 efcf47cb4337b8b17c12419be9b024687da129b24320c7da7c4875279543a622855ea100797818065710017a2f195db817f3ba1cdd4826ed70315a50244abc1e DIST coreaudio-sys-0.2.10.crate 5434 BLAKE2B e572ef0723e86cc21d0a8ead3131537bd4a9ae0bbb2873885ed77f81ebcc3f307229b014cb6b73a3dd2a4b36928c86ca29ca1fc933e8e6d91a2a6f2caa2ac40f SHA512 3e1e61e9376a5cd9d99ef575fc0ed1c55314ec7ef8188189132751b9d9e093fc01f1cdf497a68519350a26466a9d9c08565d8a326a546e87053d15ff7c1e6d35 DIST cpal-0.13.5.crate 93790 BLAKE2B 9e1b6f6d385ac48a7534c716a332c6c15b77556253fbfe27153f1e68bf702f84b6450a915ba79d229443beec2c4419bf7ebe7f856a0c95278a3447236500c1b9 SHA512 ad1ee6ed7473474df716300eb6b1e5db8a4a0f9844a5bebb6704e1acaf102c4dcd495d559ef6be99db652ccc0ea2a9c2d2a266e865389ce08aa6f60ba06e1c8d +DIST cpal-0.14.0.crate 95570 BLAKE2B 698104ff797e8428e467293e31061564720776f1669092df2b299f843cf22537f4786115eb5b8f3ea332cd2a24726092df44b336bc3a9d3ce9fe602f35126c8c SHA512 c0bf746555ebca000b59c5f758e413f554f22a2e6595729f51d65edbdb9bf385b213cdf03ae7b673563f7a40de9b690321e45c1b7086f2e24a28e6774cbe9d40 DIST cpufeatures-0.2.2.crate 10655 BLAKE2B 7e068032f818af691ce1bbeacc1e79af17284cf6d1b9896fd146b2b87ebab7b12e7a9ec93b28f77106856c1d11a565e4a64f8dc60c30b401c08836097f587530 SHA512 a771a86e2fa26033b27d22fe250968cd80cc64031838d1c111ad5c69951d5f29de0cad375965c7c2cbceda2a005dedaf6df15c699041c9d0cf65a1c2033f69c5 DIST crc-1.8.1.crate 9114 BLAKE2B cd96400652888e700c326a2842005c8bee699ccf3c61b87320c01196b455a55da511749241af75e903a76847beb8172598dc8f770779aefe945db7934976afbb SHA512 db0b3d0ca197cb2a2049720b753061f1532d1ba2c86c7befce36a18cb4e8008b061e39e26960b4d9dcf1e7ea55348f55c441da5d17cd0a424402a8489d52ed1a DIST crc32fast-1.3.2.crate 38661 BLAKE2B ce3762b03d24d5367d89738991c060f4b3af7840e0a7ac7fc17d01ed438caf964bbaefad0fc4d0c438dafa5a578429ddd353c71197f8b54b1ec441395f2f7ee0 SHA512 a683943e252afdb1b9d626a07533ed11cf7a63af603c19640056c5d2b9c884ad9aff33ac54c0853ffca2f6cf94b0730eae6c05abf3e53e55e709d180c8152357 @@ -122,18 +133,29 @@ DIST fnv-1.0.7.crate 11266 BLAKE2B 81da85889c91b6567e0f555e37dd915f1bd919719d1ca DIST foreign-types-0.3.2.crate 7504 BLAKE2B 520818b702d990d296ecd31a8646850202509ccfa18edd0e1b260289619a6c351e758f317ec0824bd76eccb209b6f087057c25f1bd01a47897715013dd834867 SHA512 bf27b8243ed482c202d120383374f19ff09422535e24b9c1aebccc66529bf300ca17b8bbc76d67f98ac092e614497afe3add9dc68aa69c93074df05762f91232 DIST foreign-types-shared-0.1.1.crate 5672 BLAKE2B d2e42e04b6657e7a69fe0bd20c672176629c743e49a55fd007bb30e289710b70045d445ae9cae0eeaa747ee708c90e8abd9b5fc39bad8ec0666befe1b696d4f1 SHA512 bafdb2143e136fb0818e2ffd90b5c862b7181647d6568947d4e4531012bbf7a57b597221ec7056c1b562dfc0c3b5dead26d1a4111ebc15e7863737a873518a4a DIST form_urlencoded-1.0.1.crate 8773 BLAKE2B e2d2224dbd85d053343aea29ef1bd540fb8be12fd600289e9c048e3b74bfb009d0770f8296556309ef756086f22feec4713dfed1006e1101075c8897be5471cc SHA512 3ab371c223561a27ffbd35cf648ef4a9145d47bba9d71900a7c54cfc2f089175e9361f6352331a9a7fa018923b15e7a3553c8f9ff9fae80e1626e641a5faff68 +DIST form_urlencoded-1.1.0.crate 8734 BLAKE2B eaca73d73d16242f3fa3e38e23531c67c01404697bc7b7eb7c64fa04167dcb403a41818487fc46c5d9118842818472d549a2f5fcef5e4d962461e1c103d895d1 SHA512 9e245495dbf235b147e4216b313f2e6a96357d2782a66d71c08c2902c6a065701ca8ecdbb6b2035983a83c44cf36c921b5c71d63af0e02dd39bf5f8347117e11 DIST funty-1.1.0.crate 11631 BLAKE2B 37b246ed78132b52461dda9f3c1b52feafac998f6cd0ebc62408b90e5f826def1456ce820adc745aa1ccf07b281fde3df65af84eea561eeaf1ecedaebfab24b7 SHA512 771f42f601a0349a8e9344c8df552491c64af350b18eacc99463e972335d4a4c95416704ebf49e904503fb2d6f78bf201c8cb82fa20bfbf460ab1e7ed9f94a9e DIST futures-0.3.23.crate 51097 BLAKE2B add2a52c7f662b4432febf8aa39c0b579eac6cca47fa78c37cc0878f82934865114ffbde3edd665c4d0ef6bd481355378f9feff959712978d76d8c33d3ba2c91 SHA512 75bc61e7d45efc0d0525b50713721072591fef56798de158431c8e869a4d02cacd3b201073171953c68c4c5edcc8879f7bfa6f9f4cbeeeabd03d1cc86d943512 +DIST futures-0.3.24.crate 51399 BLAKE2B 03eb55cdcadb6646d01a485efc9ca0c679d8a71186d1dd97b078772ca298939e147537692216e2601b7d42cebe0c961b3a6693d7059c7ca735efa28fac8be07f SHA512 91f3f1b121923c239b1e3042048fd420a35506b4c1ed6527bcff0fffa8153049a384c4e0b21d59944327552c094db8de8977036c61127b27948979e0da6df949 DIST futures-channel-0.3.23.crate 31951 BLAKE2B b633adb8bcfa76a354b1f25cc6488bb56281611e00a8f7f06b267526af5db02b514f69495af770bb6dc3d59df35f6d51979f5b63e142dc23283e651e16698015 SHA512 600c0ea3d0486eeab1a13e985f0de4b4d524e6da2eb4b22961a5968601ae2fe07540010f793ff7a84c24e9360dcdd84b755f6ec630d59e92f4005530e7bf70e4 +DIST futures-channel-0.3.24.crate 31963 BLAKE2B 2abaeb5249ce94271588cce9c6af9c96ba52d5a8900c69b5232e0e144e5e218bcd57788a3592e5b95aea84d73714552db131524d82de3655886f136789529c36 SHA512 2145a54fa7b89763c7c6352818b3e3b581190e131a3d3e7bf7b745a8e04ae6ecd9f5f1cc78ee65f7aabf1f786a25cae6b37d358cbbef34c494c34e217b84d7ac DIST futures-core-0.3.23.crate 14605 BLAKE2B 0811243783a358f5e33fc86742468e38d63afc52684272c8c7f698fb499b945bd936c5fbc9b136dff9cb65b23131a954ea3cb558806a717fa6b04a3c56e7d534 SHA512 cd222cf825a033cadbefd56a0e5686d85a197c1c8a3c1648cb971ddb75905c242acb3f8f847068f1a23546bdca871f7c4197bb28b29edbd86c3103238a22b7ff +DIST futures-core-0.3.24.crate 14618 BLAKE2B 381b5f9dd5249550a859ef83987121c1574c91a2498e0e96ccdc5657cdcadc770319a4b50200cf3138bd504fe537ab2d5c701bd97d3e0e39f4a9e75d4a7459db SHA512 d39b19f0c2109d7937d8dd7f6ee45144ca3662746189a5856e0f9a29bb255bc915214c008e97475046703fa90ea28343984575fba394a93dd782b95f09963e67 DIST futures-executor-0.3.23.crate 17744 BLAKE2B 6b395331f2f906a219a6b307d0ed4f218f9f8d1fc42a1e6035925eb381e7eddd154ee9ff2ce25eff42233fecba1a7b2e6112b3ad7017f4be55a4df8217c47f06 SHA512 563cb18ea4fbf56d83b955d485bb417a96c567ae29d5dd9c5c293f109707f92ce3d1d4fd8d0807015d219ab89ec8423510e7f63b09b169424941023428bf896d +DIST futures-executor-0.3.24.crate 17745 BLAKE2B 835a8f835c319e513443c0c947bae83c4a4d1656acf17af333063e33f96eafc76105d45798ccfff3ac2fc362bd54b785bcd2bd406a4830962e75ecb63d710c82 SHA512 fa6385534511ddfe73e4bc80081879b0a425041557d83b1d59f3e44f86ec279327532d732ed4daa4b13e74a11460fa7a99713b00563cdad153ea13c0dade234c DIST futures-io-0.3.23.crate 8906 BLAKE2B 427dd8e8ecb046d68ba176e23b7945bbf077b3df9ec2b2abbfb6b69e50b7275f6262daf449e0c28e14318ceb3bcde2832374e350adc7529a027fddaa935ce75f SHA512 b9379d3de411ae0a543299bc37a6f038a6e5f8881cae532b73d479fdb636601237ddac8b2d57c17d6737144b9c7ba2ca2d2423a61a3c0859dd3e376d6109623d +DIST futures-io-0.3.24.crate 8910 BLAKE2B 67de3c0fbb671897b7ed64967e057b03a9b018b5dcb3d78af4945d4415cceb6a866bc04de2910d124452cc3175a6cc5651af979f8fbe6343f9b96e174cb31279 SHA512 63257cf13e99b8968a797dcce9d572722858c7c91c212a52d05badcf10440824ce9c450bfe5eaeef5528369339a14144a8e94d7e8b2fc717de26fa21a16f2848 DIST futures-lite-1.12.0.crate 36032 BLAKE2B 16cd92362ddb217fd3c316f1104635b086abbf3b482b3381d62e3b5ddbd20122d1dadb48c83d3022db080d05352ee5a40f33978529bac3eb182b875f45cd132d SHA512 3d26148ed1c87926de51412a8d08e0619c64b85b610a74d6f61fcc1972dc0cbedb04c5824fcb4ef0a920c557ac81a0b2b4403ddb1c01e11648694ae56c28d72a DIST futures-macro-0.3.23.crate 11250 BLAKE2B 10159db5b521a2ab6e6806df6c6cc10a223c06c0813a7a4d56f1468973018d8e3fae1da95b7d8200f616ecce4c819dfe2edcfee8d9792642cb6d235af1ea96b1 SHA512 2a94721a5c59ab84b736716d1a4881638ec93f5a059aa0cae7e5d7faaf3054b8d2417719330109eec91cdb83a697330e4b397988e53fa9e74885046c5896c072 +DIST futures-macro-0.3.24.crate 11252 BLAKE2B 397a7675d735c9be21bdbb1f540445197f6cdf8c595c952483268cc19a9a06e673338f5713cc378b66f4a93bf5a8ba0d2edcce01390ffb9f0ec9337fd3b527d6 SHA512 05cdf441404a7656a092a0b9a9a2800412a8671e2d28b8b68b26e4b9121256acdf911851ea566847462e981ab4a2bbed3bba5500cf9560f3f61e6ce536afec81 DIST futures-sink-0.3.23.crate 7850 BLAKE2B 93f2a5f7959873bd797dad7c4828ccd437b93bb9387dec622d84e0644be87e5ccda6e080f77f50d57a89ece5f1b8e24c2a0c3e2894bf1edc9c5891dd2ba867ec SHA512 18b8803bbcf4e8101c82b9cfe04e8a345296c392914862aa94d8a4970d780930985653af22707e39d73814da576e021b2968c057cd9264813de836246cc53e4c +DIST futures-sink-0.3.24.crate 7854 BLAKE2B c0cac5188d84de0ebdbe13419c30dcc38594b8edf9952468eb1e04dacbb2d7f754f5b555a1aed5fba9704978a294974c25cceee27a9e4ec6d90b031f324a3ac3 SHA512 4da560975ea2ce2d6cf01042f9a3a16401d769a34e2d8bfe2b0fffc818ac0c729464efa0c2d45ecd280aa7b74d7bab1d17a5670db3d2f4904e4b0a5f4cc463eb DIST futures-task-0.3.23.crate 11825 BLAKE2B b93f12486e4661fdb0de53d98ad0e6ecf138278e02c87b0d04af2c613ef528311c44d1c080b9fda519f42a845cc21244fb101801fad0cb8529d74c43ca9f4c1c SHA512 91a2f8e7f00225f1cf3198fac193171c4eb5aaaf99f9163797e9f3290f0748073688899323bd7e5effae33c286561c7fc74886e4f2caafcf6991d69e80864c29 +DIST futures-task-0.3.24.crate 11836 BLAKE2B 1f697816b721f4a51150dc38909974c6c765231c451e0884ae41e1ca16df9b93a8890e1df3a5083330de73ffccc3cfeeb976644504e45306ac5ee99ef4cd87ad SHA512 a78a739176c20afac835ed7b1fec04772aee1f2127bf4a4d0e54bf1e78079e854794fb3cff5858108168d8d1bfef7da99221599c9c533bc3c3059ef07286d54c DIST futures-util-0.3.23.crate 155793 BLAKE2B 9c70c5a3b5567a54e1b75337cd2151623bd708dd5b4c951d6a221735d14dc9c00b71b730c5786ff2946e10c1105892914271c774e44705d9c75e91cdaa9d3c7a SHA512 78893e2de37752e0ce4455fb0a0b916c8491cf7737db981194bd5fb25e819929e450ef75e32c72bcecfe49eb6ccf33a1cfb98d63ef158c3d916161cbc0a16c89 +DIST futures-util-0.3.24.crate 155823 BLAKE2B 6fd86340f0fb96240e28f3e3885be9e555675b879e844643352241de81b55cc67023746b4c3fd941b2b38cddebcef41efbf72581d41cd30e7aba8f0330ad503e SHA512 30cfa53bc58101948ca6e828839186575cd8b092a629bf59a7e4df205309f82d0cd4ec70340f5e98c76fecf604934e553562f7c79ef382ac8451c640bd95c5be DIST fxhash-0.2.1.crate 4102 BLAKE2B efade6722efed1cff0bcf307ababd9c9031af297baf410367212758411a21d61a473456c7f9b5cb15e444d115a62120f140c082e70dd360a3ae83f2f71bec9e6 SHA512 638e1c0a4e7f365483a329e715afbc2e57e47c03b32e0e1818c879baa96996e81dce8ab39320e24a3e1633f73dec1e5f18a06c37f3ad38043002fc99b55efc38 +DIST gc-arena-081b6883a522b38030b13744c80c84efbfcbae1f.tar.gz 26707 BLAKE2B be7546151f82c783663653c1dbf4b1c745d2a7e431223fc41151f992d849c96f6d357f0b2af329a4404f9eee4cff2afff79d35937fb57f5c9bfca9cca821ef58 SHA512 5a4c15d73deff8a55f125f00b89774ae306f760383d89fe011e05fd68e342bf5c127050e5059a119af7132298225de02dd665e82701b7da87620297a2478ad39 DIST gc-arena-4882182850be9df64565509d8489587a2f60171c.tar.gz 26600 BLAKE2B 98ddf5f525d09074a172891bda149bd0a765317105254b3e185df34bcdf1160686ca989487872036c10c2c01d657d2117761b5a05fc14f3beed596cb2b1a20dd SHA512 990f5dca69aed6fafdfa7c0b405af72ac3a6d5047a315edfb8f0e8421d9aceae4df5d9bf3993fd4137252e747c3da8ef0389b329c25aed0e7780ad8088f6e598 DIST gdk-pixbuf-sys-0.15.10.crate 9891 BLAKE2B 383e3cbed76a961218bec9d328460d6204fe87cf0bb7b8aa15b270b30d513289e57325a3b469c137af61b5aeb9ba58e9082e95425eff879a8ee3b241e51eb9b9 SHA512 bc2c948758240a0dc195d5b39d159ea55b4a717026b3a4d729e92b736418e0a953b841e62e14059a6c67d257adaa5cd0bfff28de9e2ded03cbd82fe45488d8cd DIST gdk-sys-0.15.1.crate 73599 BLAKE2B becfd7c8e2525ae90402be8db2d59b9d4a7d5271d27a4f46740de8e6e1a932347094f8c7dc4df447a410bf24bee17c75090c3b3ca707093a8d8292bcc8d0a1e6 SHA512 eb543f348a4971a636f77bbac97d1d671de5591e6314ad41544cb33e4c2d480ff7d0e81ddb187649036f7b7b0e20c3bdd8e0a33fec1f9c30d156e719f0b25cc6 @@ -162,6 +184,7 @@ DIST http-0.2.8.crate 105591 BLAKE2B 254dff38c4d7dff28e4ddee0769a2f5e2e9e4abc6aa DIST humantime-2.1.0.crate 16749 BLAKE2B e2ae8325b037fb175b9200cc5c1944ce579056c6662cce307beb6701894552362a25e371aad65f8fb9384945b48815ca74bb8b544a32e0a5845b7edd30b918c9 SHA512 3bf29ddd1391d82897c22baa0ff3ed58ef6d6959859f1f8ed54d324caba5b6fb4422e56790511ce82f902cd11467f93c8ab7fc7b0e0bdb719308a4d0a446ae0c DIST ident_case-1.0.1.crate 3492 BLAKE2B bc79ebeefbb7e3ed1139e3f41d8d20fb175786bb123bdb9c1a92ea70effb4a0e5e798f24b068cd66a1bf20d53eea4bf24de495b5568c2d649ea804389a1327ab SHA512 81003a43f18da5997d644319274502e2066af9f9fd1400afda7cf2986b3ae0b7355b932302723cd3bda2d46b264340434d9279dea58425bad13785698d5808a9 DIST idna-0.2.3.crate 271023 BLAKE2B 157ece18825fd3f8055581ccbd14191a6923da4c806ce51b3d6376682878db000a1b873f744c8e9e1966e4c1f8393643bcb603deae299ed0bd87847b0bd2c591 SHA512 1278bd561ce329e1dc7a6f24a10f83d9a068af5d15a088414f3921c6728b0d54f4d60d6f4d0d5a786596ad226263e1e50c3842f192d5758aa4665ba4ed5c269f +DIST idna-0.3.0.crate 271128 BLAKE2B cf8a2c43760f03e94953c6692423a12f28fe763aabea8785b93cd247b3aedd2aeef2cd99978a027186290016ed924db39d19fe7d397da1ab570be9646bbb630a SHA512 9b7cee27811ee52ed9bb39fe82f724742eef2e5370642b6c756bd134c8cbc20bb6faa9f296053672dba8a66f7356a08b2ca99f176407b173e2d566d85d066441 DIST image-0.24.3.crate 265521 BLAKE2B 41cf78a375044cbda53ee605126d797da04935a5f1e343e82df8e4c2feda6365957053a48da43e9d469ccd7447c46ce57a54ce9dc53d5bcb322eb2d20232c158 SHA512 f669ae622f68f7a77d8a8074ca4ccc43bf9282f115b1d6ad72a70174de3e17ebba4618a2ba6605b4b3853b16dc95cd447a60299877dedc81bdad423ece36b9b0 DIST indexmap-1.9.1.crate 54114 BLAKE2B 71e4968c85d5b3fac550590658f9fed72c754a9443221fc804efb97bd39b5fca7f894ee67f8d2c330bf212eb8a6b5c85879cd813ed56e3fc43a54f0bb689af5a SHA512 7eac99056123332ad38ef32eb65235c810e8b4d051d9b0ddd5582348c9cd3b162d36defe8e46a532e2066562f224e37fae94b52b4649ee9cfac7673b76a2513e DIST indicatif-0.17.0.crate 52707 BLAKE2B a4b2ca8cadcc96c13c4b148823ea153b0d02aaa7984d76351d905cd00ceb0433dfc850f5425e5dfa19a4d2495b37c4fc7547be9dbfe1bd9e384eec4133ecbfcd SHA512 2fa301bc4501680a0eecea99003a825d79643ad94069d317c54d759d47027e920a57e78f7c49754c7221ff8868a45853842184f2bae6c2b8023171ed983de360 @@ -212,12 +235,14 @@ DIST naga-0.9.0.crate 439699 BLAKE2B 2582a588f165aa89048908f269bbf331b651abf1941 DIST nanorand-0.7.0.crate 18437 BLAKE2B f4aaf18b7cf32b385d97842cee234f0781bc2e55ca5662031204b999293d417e0ab2726eacff084dc6681ea5e46ce01335a1a5cfaa5e8bc6e602aacb1fd25252 SHA512 3ac650451d629852236eeb45dfee808acbea616036025676b47310100982d7e8317df647fe8649e7753dd0f57c501dcb3f7401c3d804af52ff2a2f50ace8cc69 DIST ndk-0.5.0.crate 39766 BLAKE2B 787a2c053e81732c2e57bf3cc944978c9168c116689a812056597ffc203b13da6ee7677bc788d924b3cda8dbaf35e8ff7cf6e4f53c53138ad78758982fd12081 SHA512 4d61aeed68f6b309c92801bfd844abf0ca15ce1c54adeeb28792010cdf1c71ef3d9f4df36c9460eb614c8568647695dc70c4d5feac55babe1c309b65db023946 DIST ndk-0.6.0.crate 39828 BLAKE2B cf59da1e11fed905b245520c7fb00012c194379aad9a8d75e39e771e3df629824c17bc04121b4899bd7f13e9546cde3877593f0b4f3e66d6876f9ee6625285fb SHA512 62af40a702784a35bd3517131aa5c5fe22da81091e45a8c8639fa8f1f8b3fed117991db9518dcf55878cbd6222f696d09e0bfb28e161aa47d77b2825ad2e1fbb +DIST ndk-0.7.0.crate 54683 BLAKE2B 6b8429c4201d3efbf3665025d4126b3fc533884b211901fd167f502f29b76401175123abaaa948b2172b8b6d272174af24def92c8e176e442170867b9171b4ca SHA512 9c32cdd44f5e9d57e2c19dab764db1d4d8ec63bf08021e6f4dea4e5eede85b8bf54002016ca9385f9f6caee47d969780f653f360d866e862f760843798cbd58d DIST ndk-context-0.1.1.crate 2205 BLAKE2B 6c1013410459ee13357877654303a04c2ee674eae77911d8c35dc7ebf3df2e8632440c26273f994f90f083fe20b4923240e3b9eaa2ae90faccc7e2f0021b6e0a SHA512 3e15db351492b3f1935424a4c119d878f5d771d6ca0cb6161e4105b263178e96e41cdf1e927e5f3c81a281f55dee25929a9cee911eeb4ff307dcd31fc400398b DIST ndk-glue-0.5.2.crate 5310 BLAKE2B b9d8303d2c5bc439e11a454075dac5b9d017d8dea50f371719e637eff06515d463ba0dc844ef3f8aee178bc7a281bf50ffdcf74463169c4ea0dd1b2da715fe53 SHA512 e58017c98f238d8b49f5a4f10be8e88e716191fc0d70bb07e48c3a2f75caf3ddb533c011c8b9198bb38616c9e71970f1b8e0c232945b1968d2a297da7980081b DIST ndk-glue-0.6.2.crate 5227 BLAKE2B e1b10ef9a622d8a1fbedebc5bb81e7359fe099712e1f30e4253cab71e5cbcfc35d8b1afffa4e114cb3f17b95e1037f67b7853d1834fb90d8ddd51d4aeccfce91 SHA512 0e7e82eae7104ef8c4279c5d93938d4d6270a133255429ed3b4fa307096d363f4831569f45c403d32c1564d6daced04212ad65a45fcb4ca513fefb93728c8082 DIST ndk-macro-0.3.0.crate 4884 BLAKE2B 97f7cab83e5fcf16bd5d852327107f0f7964f5c3f7674b7764cb369ffc2554c4c550a2be57eb7253b9da26f7921c49735333497bb74a09672655ed8f76e2fbf9 SHA512 240f8b7ec5b72a450874dd6b9eefb2825714e4aa83074efe13a958313193d491e6b4547ce62d2f727afc552d9d8c009c9489a808da54d5967fb29da7eac22d3f DIST ndk-sys-0.2.2.crate 279365 BLAKE2B 5f1accc47aaff0eafbb4a85cb89cada8af5a75659061d41a5a5f85d0177233788b23a2794478b9a71caca0f120d472d5e931f6de94feb4cac104820a4e0fdada SHA512 a4b1280543a81996cdc23a8d2e0c519a1b0787acaaa1b9180eaa52e4ac4c751929cd403f1540ad3b7c80c550d84d5be08827e4b63c8af0eba36d3441b58efd75 DIST ndk-sys-0.3.0.crate 282815 BLAKE2B 29342ed697feb1a02cda4ed23108c090206fe67715214de0f03dc81b7b787a40302917af7fb8f45e4510d1d1cd43d369d938af4c14f7424fb229bf97a24cbdfe SHA512 9d85898d812be7c61c7bbf4ef7a6088fa427f4ba334d491a17e5d1e8cf0ef9e37fa277008dbb940d1127c385749ca2b4665521e677388f6b01a2243fce310485 +DIST ndk-sys-0.4.0.crate 291557 BLAKE2B 349158b965701cc504c3a4d95dcc5f2d62a25b79996a0387a27e3445f2d36760a2df0cdb24932fb67406687f4c694fe4fefc3cfde47e462c223f8dd8a3899e38 SHA512 b48b76eea3e485fe4d33b7299a086b50c277a5a92c16284175129afb4f4c62e3027cd0d3db59d2326eda905285211a1a68d5838f8aa584d5a95570625bef0b3d DIST nellymoser-4a33521c29a918950df8ae9fe07e527ac65553f5.tar.gz 5970 BLAKE2B 70d67cfaea7fb849741fce315494644f094be7dfb653171126122aa00e80cad4ee0107dbb3b0953a046b20177242dc3f73c1253224f2fe60aa39252d9542b303 SHA512 c9c0e2ced1d725dce18ff6202262997e3290c8141dc67a6422e2fc8a0238992c48acb187bb9f12c5eb694fa074d5d89c7ebf3d953c02153115bec57016c7bd7b DIST nihav-vp6-9416fcc9fc8aab8f4681aa9093b42922214abbd3.tar.gz 37411 BLAKE2B 96ab391a6e9f7031506089d8e3d18bbb699c21a7d1b8e3f5ee2fa38463c8b922add2ca5e576b75a582251ecd35cc95db4a8b73654ca947bbff19e64bfd754e97 SHA512 45d8066743dad45b90d7e320d71f1328753c8a7bc1b8dc3a93a11be885a8ee6dc0702f32dc438877f3fc50011f8532da3bf70625475a691298571f33d1afaaa5 DIST nix-0.22.3.crate 230252 BLAKE2B a65e42918c99f903a3f0b1cb64b7e4ded5ddf22aa4d4b7976938f166ab457fd5c0abd821060f7df777ca770254cc3018234a15ac4c00c6240cceb9ebb8c00430 SHA512 ee0c9c57f57ce7e723b32575e41ccce973af9fb290e314c7a1ed57c4c08dafc8500c81da34788a1c11e921e765098e074587c31498b5c0133b19530ce4a9cd28 @@ -240,9 +265,12 @@ DIST objc_id-0.1.1.crate 3258 BLAKE2B 9a74fc17235ffdd7987c2735a7a9d136376fd13355 DIST oboe-0.4.6.crate 24067 BLAKE2B a3e1c3ba6534fdc2159ead7a301c6b54718b19ce2e3357ce3bcb58b31c1ee3b86b427f4470564b2e8a3e8b0120b33c25ac069bca922dfdd0a1478ece5b398f40 SHA512 bfd792bb8cf2254030e2750b09a87da70defc4fc65882d94ca70469b175e04175787bd89707cd4dee876dba127b8f3b8ad9c5eee32ef5ff0cad49b046b29a793 DIST oboe-sys-0.4.5.crate 140656 BLAKE2B 26fdb4ea66dbf2f74ccf38beb280262715642ef22b87076d16f0b8e7f7b8d284714d8c7207567e51cbc421d22224b664f0b1051a0eed3c78c16d825ccc8a1d1e SHA512 b8e31b5cfcba10d43b9e373793427341175b7e84f8805fd18a8be387bae407801a0f196d0910103175c23e41b193c4eded2a4597b958128c29e401a27d9b4474 DIST once_cell-1.13.0.crate 31726 BLAKE2B 76519b97e04fbfd555c2ae034bd8a95525bbfdecffb7a3fc0fa7081a721b8243faa1269bd409d01a16a62186bddcba341ba13c167e8165b7b011f57aa393c715 SHA512 20a72f8741e6edc2b7f54eee822fdbea1b1c0120d3621059f61eca2d5adbcf044a474b5142871d37a3c0f90495224ec8fbb3b90e62660b66fde3a4d3a5add303 +DIST once_cell-1.14.0.crate 31614 BLAKE2B b9ac8f889c86d4160ee026fca20b5135aa7bd60e8bfaf23946d003bcf0b666929a4da5859d874449d15b6ba0ec4c26e98273d020be50184b9d44ae90b8608175 SHA512 81531f06f32854e1794555e10ccd6ee2b6913bfefdd9eed52dd44a02e799fa6371cdf102cc67bc70d581a0cc4abb7dd16c9c12ede6df4ff38b20dc5908bad186 DIST openssl-probe-0.1.5.crate 7227 BLAKE2B d1fd6a9498b3ab7f25b228f19043067604bf20790530fd0ab6fe3d4d3bc27f13e6e94d1e7ef49314c3663477d8916b8790b90427f74976143b54b95350895165 SHA512 7e560314150709a34520472698060c4f29689d4e608dc4dde146140aa690350d3603279c693367deeb0f21ab34ef61956143a3447827a2b7a3d578b9ccd6552c DIST openssl-sys-0.9.75.crate 60028 BLAKE2B 1e4b3733d3309a1157c16a236728aeaf48b1b0ea448643416747343fbb96af86c8035ae0cf4170038b4521c88842f42a2379fd733f92fc9742e7c2d837eccecc SHA512 14985af6224bf1b6aae0fbd22c09e6b8ce7b9a6ace0970b1b45fc0e8c700e6a4bcb6b1883e3c78dbeafa02a18d4a84f537a952460d3f0baac3135d1f994af13a DIST os_str_bytes-6.2.0.crate 21037 BLAKE2B 0ba546e68579a9221a84a66a6be0ddb5a27d78b70ca307bd514648e2a39a60265f85082f47c07ad64801c865ef613cce5f3b65e828bd594ac45fc6b00e0828d3 SHA512 aecfd7ad0433ffe532d72c6c269eefb7e7097cc1acdfe91511ecdaa7ad4db5d97026268bd216c70bf4fe17f23bc02b1fbbe95a28b8fedda3f812b3ce78723c75 +DIST ouroboros-0.15.4.crate 11179 BLAKE2B cdfb5a915809b4a68802e5d340d4eb47c0354ab64c350c222841b8a19a405e4b06addb376bebf86334d45bdff8a7b2c810c368d8c89c6ba6e0cea3d55b10a1ae SHA512 54569ce6e3800735993a886a1bb2d24b52db5dff16fa3409c7238047c5f012fe977f040ae3d6e9e2226ef468ad6da61418c21bb1cea7484ef57425c9f5c8361e +DIST ouroboros_macro-0.15.4.crate 20732 BLAKE2B 1bf9c02d72e1e558d3bad2505e5ecc401068ea12d177983b151c8d30de9fbf5a9d3f5229a845c2a1d68c501d60acd234e25b6b2d649ee049e13ecc7cfa6ebf1d SHA512 0eb485ace3643b20c4017b53dc33523fa38a1a43b7d19ff8eea2ad3cc9d46584d7fee2536531aeaf2d60c48155241415eba6aec627c15bd3b50d73cbd39ac765 DIST output_vt100-0.1.3.crate 4473 BLAKE2B 8c75dbcd413e1273ddf077f3b57996953d70376be6e438ee1a4de83a8c3c535d4cc866849aed91df74aa9b22d41d428b1142cefe035dab7404ec89af9efaa832 SHA512 ccca3b4c582e860b0643dea78302fbcb96f8f86b356041ae9c685e7c48f1721fd3366dd1bea39afc1bcef03b298d0f6c87918a1ba92a56e6b06bc8b4123c0d89 DIST pango-sys-0.15.10.crate 24729 BLAKE2B fde83347113361c5bd5e0b6be729036cbdc396a87bdecc40f7b29f8c7a9c4b14a32edc09bc6f051ffbd0eaa5acc3b3bd4cc374442808ac8107c5fcb8e35171c8 SHA512 9fe2cd809e19640e034416c489d674622447701df4c7d6127ffc04556760c6425d78a9d5dc9e09d477aead1c97fe1cdd81de282a3820536a3defff572a64b047 DIST parking-2.0.0.crate 9714 BLAKE2B e3ecd48e90289fe173b1419ad3f68350dd05359461c5842e52304e20fef9b5e089803e0c0a8e85b249a546f61cf8624367e6ec164ef7638850b451d325851075 SHA512 21c5723dc0281ade1c2cd6a1c2215ba70eb47a721a4a594ef1e54061bc79579ffe9c31f06e534fd847f936ed265cd65a59dfa9e38880f8bd42c6e8ac70a13f93 @@ -253,15 +281,18 @@ DIST parking_lot_core-0.9.3.crate 32256 BLAKE2B 79a1924a983b948a5c2b0c074452a7b2 DIST path-slash-0.2.1.crate 8821 BLAKE2B b3564d0f689ad1b943d132fd95adf2ff654b61f182082bd22f7b8f11dc9024cae8e1b9f3551c4424509db17aef899efd3df96a67e1cd588ffe0fe385c957b361 SHA512 c046707586f25f13d2f9fa452ea340198f6d2e6333ca3af806b9d2d1a61d46b033fffad60d1632ec16062fa79a3710d695b923b831a7db52602b728ed31fc3ab DIST peeking_take_while-0.1.2.crate 6697 BLAKE2B 31571604d00872900abcb677a483da93654de523bbdb0331c326dc9a3e531f246e571bebcb983e79dc46e33ed6dd32b978be509841ec0d9f1e7209c06289c22a SHA512 7bf8721987c3e2e1986683dd897746592a909382f02b840b777effec7d8b0a864c1a83b03c73d555e359f22c423168a54b75448a7e7b996b739527ce8c88b721 DIST percent-encoding-2.1.0.crate 9748 BLAKE2B f3ff35ac683724b15e40c85e0fb8ececb07b61beeea82b7020f02d27df05a8a3535f157b3cd688533e414d6541de7de8640ef4756706d8061af0fec94ba04ab3 SHA512 98af4dfa7c6a3cf0d5aa929c436f9eb1ba1b576a944513f1284e6df2ad06be7cab9eba145d888d50af88f8c970bacc702b323041bec6d4fa1dc34095186c628a +DIST percent-encoding-2.2.0.crate 10075 BLAKE2B 397e59acc3953868c709244b89a2e0db3304c0b574ecba761026b570a485f2cb5b0b2a0159586d1f342ec395ef02ace536da3bc1c72093e1cf93f8b37b26b0ec SHA512 890a5256d2b4290e12e04a02c3529f3a017faa2b6016a4dd0f08b36509f0b1107eacfcb4702024d6a21ff8852a11f263c1adc096b16ef8d12c45a734c087fe68 DIST pin-project-1.0.11.crate 56669 BLAKE2B a475937bc4c0fc8183ddd8e33d36cf100e29410234b410245faff6d182d5c4ed661564e2f4b6ae43330ddf7da176ddd903155c53c53112132e64c66458a0f73d SHA512 6ca211f678debd8ec4784fbf45c56ebb7374df1de519c40685ba6a5965b25b5e84e6fffcd770294bfb1e372cd66ee9ec2137ff5a2f572fa7aecd4c98b78afe37 DIST pin-project-internal-1.0.11.crate 27900 BLAKE2B 7e61c586185a6bb668968eb47cb312d725ddee7a482b633d04827658a86fe27e49927b8b850ff6877b406a4de3fe046e2dd699acc0eb97d57c62daa4808d147e SHA512 c95cfdd3b67b5c61e4136dc495dc470e09fcc7fea3ef2299fef1a55984c6039d2fd1e03c83523c7681d6bb964702054978c649016194145721058270de2fce76 DIST pin-project-lite-0.2.9.crate 27713 BLAKE2B d6985b5add432fb6287d1b0c9fb0cc91a195f82c5a748a9ea430e4ba884717ec7b16d730b5ea62de5b2bfead1771da2d115b3776e12e605f70f2538f374a28fa SHA512 cef0b77233adca712db1183f780732ea577cf1b27c2643de221d54c837c75ce749f907e24a967be7474812c7682cba613a3fc5d553a9578a1b80569da0e562e4 DIST pin-utils-0.1.0.crate 7580 BLAKE2B 457e1287202f16d1873b24bf4f1de1828300128c4ba3131758e64f9784d36d47365f22d85493c3a85d854f0d8dbb4c6cef3a0f5b064014dc03943e58b7ba9178 SHA512 828422b8440cc82ac6b0743e0112fa7540d437aed457564999092b1462cd7672cd6b1f0201b67075431aeedd3d9c5127468a3dd028744109944f7f023c82fd70 DIST pkg-config-0.3.25.crate 16838 BLAKE2B b6ebbcacdc0f440e24ce5730edd4b371387cf7f44e438216893f29c0f303ac7920791630d4a9bf13581da840c8888e18bdd78dc61458d3331e967b3dfa6d0597 SHA512 46658794f0a7446354041c1cc08cf637970f7651c0c506e2b90c9d4e284347cb82f05ce282cc55c8087bed58a5b961424a56574f4500de9f3ba9cb9e71667aa8 DIST png-0.17.5.crate 80450 BLAKE2B 0e686524f3d1158bbaca8828b50601c62ef601ac0541df08827ee2285b3cd636592f08efc37cb67808368c6fbb4511439ea54c96598c2e56162a8f4841e78cff SHA512 43df7662a4e31e2b734b913439e32748da149680976286ea54c7bc2aecfd8550b35956266224e6ffc410b22c40ee2ee166219602e07c3e9c3500737e5bbef7ec +DIST png-0.17.6.crate 80695 BLAKE2B 2fd956ff04d32a386aec4210939cb9cec5dfca4b72c98dfe49aefa130a229414e6e1692ed55fe9704dd56ef11851b61c3fe0fc50a9207192407432c1332c3f15 SHA512 16a3c657efb1a23b47b2bd51f635ef35338c3b9920b604f216dd6d0ac3a8b21e12e854591739bded2947036f4fc1abde0604d9a8ae5a6639562a46e98d29ee9e DIST polling-2.2.0.crate 21616 BLAKE2B b431e4d31a677ee3d0d36710b27fe98b5df11bd37ac1dfdc464b8a0864dee56985125be388afe9f4c5f8e8c556f668578b2566a6de85f0797d6ecce285d42953 SHA512 6592682d6abf61341e18e5b7e6aedccc31de36016c323ee4e01ca4247d5a40be14f9f60e0602f828ce6ed55e29daa3e601e62a1d472a7ab3a75d760fb1fbd99b DIST ppv-lite86-0.2.16.crate 22245 BLAKE2B 03cba61af42dc3a78ab8f6b03d833c028b7ed737e101b1952467a1e19706bdce6c758eca4ec7d575b2f61daa47cb25fa1d74039b2adb0dbf949b66b7aff3f10a SHA512 264b916f7d1bb6f1c0c0d3cc45f40b72b638abc7174416b49241c3663fe500409509ef6c8241a24515a21a20288c2ba508035b6b37972e4ae7ad02ad19118b74 DIST pretty_assertions-1.2.1.crate 79474 BLAKE2B fbdc7c7ddc40aedaaa845f9096d52eeadd9772f64fda71eb2a2ecfd40745ae6a7ed8baa2a83c909f2a01bfaad31c00aa7c24af6d449022486dac204a3671dd55 SHA512 6e6cb21bf03f34effe3c38ab9b31d768c7a7c02dfb385efb5c1dade7547a367276c5b00c4eae11aa85d90b6f2dbe5033acdf109200196e225e335e73bf5e0ad4 +DIST pretty_assertions-1.3.0.crate 79441 BLAKE2B e9d29267ee77532de9432f075daab704e8d80a3d5fd5515a7d3c1c9a58dd98ef0190a592e7fe4d8c22a149beec15fc346a68620a3835c1269f72e563d2a5fb89 SHA512 40a56ae7287552cb66e1066cfb89b26af621f894036b9a0cd49889ec5b25831d52cc07f9e117d905766701fa71786a45955186849d36e00cbdb5f884763efcd3 DIST primal-check-0.3.1.crate 4602 BLAKE2B c31f79f2fe691b96a2c23abcd2594d694cd0732a5d8b309c422f9d2fb688a16050d92a8a64bd1a31f83ecab6b1f2ae4cd48b8f9f0d9300d736e678cbb664ea97 SHA512 00e6d9a8d8b9e93570edb4f6bbd9dd6db4c7637006650b7a98419723682f0cd2cc9401c056e004e628e4564f4e74e5cf0ac0415f51ba649ed4a4f405ecece59e DIST proc-macro-crate-1.1.3.crate 8758 BLAKE2B 6069127f50c5ee4ae53d95645ced75c2dbb0facdf3de505755b58ddb485bb7b19ae471491d441401461225b38cda5820c4edef0f491b95d918c04e019d78e900 SHA512 b9553235c48ec2370481df90b568ba4c85e8a9a8d8d178f94bc67e87c447b4ee70db03f7c8ca1ea0678d56197e947598a5cc3c2a8753b068aaa1a27e0a4f9bca DIST proc-macro-error-1.0.4.crate 25293 BLAKE2B ef918c5efaf2545ab38787c8d0c07315af00431139e4dff66346bf798e3a429f91d12a79776c150412fdda0b158a72badd5e1044ac4d6917f8482d4b5a7110b7 SHA512 8a47bc9d3e24e9561d1e384d8f5a633284c2cf9b5e6733c5f9d1dbfe1870ccc8e2152482852e50b551cecb68e009148585b910ffb0508a7b4875598eaf8657db @@ -290,6 +321,7 @@ DIST rfd-0.10.0.crate 38170 BLAKE2B 90930add671b87f1af618ba93b809dbb37e4273d1fdf DIST rle-decode-fast-1.0.3.crate 62086 BLAKE2B 402d56595936734f36597c18e816a798ade6a8636b27e79acdedd4069da38e22e6ded5f2358ef0f0d509ea752e828fa294a4a9ac6d99cf26472fe21a505302c9 SHA512 f647cfd9ae0bbaca4a189cd1f8d1f8531f6dc0ffa1fd296c75cfe405fc9060e25be74581558a9195364ea90e32c7ccd60e066d21704cae836d41606b5799301a DIST ron-0.7.1.crate 53572 BLAKE2B acd1d93fcc8a3567d2ba8ca582955c391b2f33a5674e9b4724976bf9708221b9cda4c10e9fe9fee97e41c36e00b06232a7f091958ab9867082d933b33fbd95b1 SHA512 02298f035304e791c99fb16c6301d040e3a348180aacf31ddd00abc0a694901bd1820c8479fadd72028fda8681c45ff6a203c6100ae9037c845cba74b7f9f8c8 DIST ruffle-nightly-2022-08-16.tar.gz 9847423 BLAKE2B b2d41e089ef184b0d5c31abadfed6d828e1c1a86b91ccbaac12e07ed2184ff924b78fe814128b2e4d1e8a4ea889cd169dde62cc7a50640b35786625dd7ffd5b7 SHA512 1d813372458202a7eac19c924a780939cb9d3662fb25f888ec2c99e102a5a188bea1ef8733a43af1b8edd882bf39da08a8cb4d354b5697cdbbfca97b11e50ecc +DIST ruffle-nightly-2022-09-14.tar.gz 12134475 BLAKE2B 12827ba53ded6ef302f673e59898439290b80cbaf43d3d5c5700f8d5eb93ddc432372dce0abb546301f1aa6f122557c3dbed7aadd6b7e237fed50d17fae7a888 SHA512 622a2b28347b1250f826427e8593d6ed367c5af6f420f78243f0591b116da2c76b5f5967cd6a4b9c0308cc249ff3d0f2db791ec87d091b2ef905787a9bfd78c7 DIST rust-flash-lso-19fecd07b9888c4bdaa66771c468095783b52bed.tar.gz 676612 BLAKE2B 3c2ff3edef1aad8e6276758fd3bac85106fa9a445180c9c7d954d5b4e469751b9a14e1cc8c3bc4736a410f5e1478eb821395b8f0a1acb0e5dca1082155b0690f SHA512 6f668066999d3454d255d227167ef92e8fcf5755017617439fc227d53c5b8169a7c585857bed4879991e8cab0a6efb4ee04eca3e1b7e01bfaaa4cab70af30d3a DIST rustc-hash-1.1.0.crate 9331 BLAKE2B 16ac56622897f47a06b661fb59a196b08d48e782ab87549c8bd5c6fe92f374c9bfd44dcb36588512bd9b6125c2fd79a12d648aaa308fd9694bcca3a7c1b49ac9 SHA512 84e673ea9b046f7b989d47f2c4505557fbd5de991e6fc9f56a03605d40e0b4ba5427cd566954890153cc033ccbec6c984306634571935bfe0d4cdfbe56f39544 DIST rustc_version-0.4.0.crate 12175 BLAKE2B 6fda2ce03eab45d7193fa0d70175cc7ffb56b7be85fb1314092bdcfd3948ea145420569ace3a47218a4a2a6e44a818862cea6dd8cfb945475496f63b591c29da SHA512 f66da7c6efe431db06cd01180d84ba67fcd38f8cd6ef693762957c00ccc2211f23c08079d7f184776e08f28d2d6ca3bdb5f5016f7de245c6193d4722891ba1db @@ -304,9 +336,14 @@ DIST scoped_threadpool-0.1.9.crate 7800 BLAKE2B b6f887c1af054666ab7f717dfdafe570 DIST scopeguard-1.1.0.crate 11470 BLAKE2B f774eb90b7d3ffb2efba47518e9d1dead4017ab4b38a4bd74914daa84a5af4bf9eb63da0496e3924499d79cd0439c37447aeda4a21226f95645bddcd6becfabe SHA512 368fa5726df8f42b599993681579a9ffd0196480ee3cd0f9f671e8493f3bedd1e1779bdf2beb329e77e0005fa09b816e3385f309490c0f2781568db275d4d17d DIST semver-1.0.12.crate 29615 BLAKE2B d0a8e7d148859c402c6a84ed8e261e738879079c5f755a80af6a210696ca157f1153d61596bf40f83d75bb69f27c045791ed141a32441e5d8c906aea495bab69 SHA512 d9c0984e59c8abee49418f785fdf5f7110dad8b4c84368723b7682bde3b9f97eac458f4a7ae2969548757b6d989bfb45909ec4a26b191ef304995628c7c78440 DIST serde-1.0.143.crate 76400 BLAKE2B 119b6150d650306fad5e6b18ddce2d5dc0f3c1c0b7f2c602827b22243573fb1d606dc6d465f334a94640bb3c7a1b763d28c5c050f70067297c4d5e9eb2ac6792 SHA512 934f74aad56f3bd4f39be2e15a0f7afa718647df640166752b7417399354ba3e2584cbaeb54ef4accc9214fa936e584de657aa056dae0fd7cfe7676f1dd37df1 +DIST serde-1.0.144.crate 76387 BLAKE2B 7e66355c24e1116eec4a3ba4f9164570b6d4ab57196d39d19a0bca912c9d2acfb33d8e17e09bc07903984dad154034187d0ffcc8f9073b36336ac2b38ea012cf SHA512 d7388a40e4a5e0a65ec7b49193f2d53d758adcf26b98ca3bc6270351c7553add2f38a8434223a95826994c6d039dd91fc4f4020ce191410fe57bebd29e4938de +DIST serde-xml-rs-0.6.0.crate 20677 BLAKE2B 84e497670bc661b3dff37f081b40679cf1c019e82eb4dc491f78665b46be20b54e826171f51dc03959b1792f4b416b007e9726e41b59074e420bc81416eb47f3 SHA512 a5096bfa71c1e02f3593ef26ee0375ef1bf5d31e42eba76938c51ec9bb507f8f1f20d325a48375b1fd688ee8b79197025ea5d49c537321cdb67ffd16fd53bbd8 DIST serde_derive-1.0.143.crate 54877 BLAKE2B 50b51622da22f8c9dec26803ee12cc590b00e266344dd1610aa5ea5c3f5442f5256cc31efb15ef4f633a7d9d6996bcaa2a679c210b00b9379457d10c15fd2f8f SHA512 ddbd58ebaf94dd2f534195dbb738bd88da5d10bba7c3a88e73207ec2b6dd78765649edf0a2632cfd43b7237929d3a93fab7838fe73dedd0c74310d4330776959 +DIST serde_derive-1.0.144.crate 54867 BLAKE2B d1eabf53f4efdf95c3c12a907090617e0aa02661fa0e3cc51bf0ef8dcdbf45f0382a57588565ce26ef7baca330c19ad216a8a0975247bc02af37c4440bdd6859 SHA512 d41208452b36b8d3f0644e58164c9c4e75f8cab2d8be09cfd1b38bdfc690e880a062e0eafe46dd4400d01f541b34c9acd3574504c4aa856afb00cfc2e9617a0a DIST serde_json-1.0.83.crate 144566 BLAKE2B bb6f33e663dcfabc6d2bcf3341b4fe01e32d3bdcd9aa53abb21735b16955c927e0b0f5efc75351c72a364dbdd0dd22a7f0dd62170be85713b32130b62ed0e047 SHA512 e2694df141fe840eeba839de404c8a8f6becaa819012754d89a83653e19650c11e92d396a647d8a704dce8580d206cd2697dc2c12ce91de68627a576d9e0352f +DIST serde_json-1.0.85.crate 144635 BLAKE2B 03d2de5563c8b8e9150b656b62329a87a5dc42c1fe389e40291a3b2a7232e2342b6e52f6625ecfaa8cde4420017a0db82b2ef332f82f2fc1caa50b98e544031b SHA512 b9ba5c8f5e5c977d31c720995317c99486897a064993784e8abd4e35e0c9ccf20d421552b4436cd88420b5e6fe1d7ebc411bbc2e803cf1732e133c29365834bc DIST sha2-0.10.2.crate 20213 BLAKE2B 9e8942b4f4a4a86f5fdb0e1c237d6bfac8f3f29622c98f7203e36f736ef7e6574ce067c5ede96a3773874a8b06ff45b587dc7acd80bc1fde02344ae9f70a5e80 SHA512 20b8217ce9b56fb5f2c1d71d3555889bcfcf5e40fb7fe0eec23479d384dfcd504f1046d6a12dcbb5072813792992b45261e664e9e8e14eb90a641e94336eb4d2 +DIST sha2-0.10.5.crate 20325 BLAKE2B 5f64e296c52c7ff793674a97562d178bce84bc0a154a596a62a63229da5473d5d04e646529ebdbe1695c38081aae5d2d7c6f9e5db91831b0b895c42c05336ad4 SHA512 d7d4d645912a884b502cb46cf19e2cd9e8484a96d3405744ec794997ac147d60ace5e0130599aee208fbd182828791bf0c42a0673cdbcccce408f935b6e3c192 DIST shlex-1.1.0.crate 5199 BLAKE2B 325536bab9c9707566a099a161e7bc8448c7369cd9d7b2f144ed71543d551038ef1fd764376491e8076ccdcc928b5c4e177764a68584267a91386b8d542264c3 SHA512 e51892298dd79dc7cf04d7e6f0a03e4850a57b15cd75e6e3b56e2a0b15d4cb85ee8afcc14e3727d193c8b91baec8c2864a9c800834ee4d18a1be584f17591752 DIST slab-0.4.7.crate 16647 BLAKE2B f567cc822e7b84f64a0b0372c22a0463d260871455a33df025808a0476dcbbd4e051a117d8896d96d6d3d0655b7c296cd691ca22edc54486440f4e2e0f5d1e1b SHA512 659a9ca3323fc2cd236f6cb9eb6feeae8a1f5fa046fa239a34cd7a5ab8a7eadb9e5977e8d5cc41e9138900dd7c75ebc0601480771c5fdd2e084ee76619b82521 DIST slice-deque-0.3.0.crate 56827 BLAKE2B 62971bffbb7ea9f9de069ea6af1d1f41e5288a0bf9c80e0d7d86818d75dc969058dfac6c379cf1dff2f4ef6f48e263b9c7af5f41b377305a2ca59eb9cb1e66c8 SHA512 77928a2e7289935ea5cec5fdd497b383b54a7e97042de74ea109e957d61f8d99d182c58f0d1ffa148385849b7bdd9105b6378acdcb1e406b761de7b9f5bfc2bb @@ -333,7 +370,9 @@ DIST termcolor-1.1.3.crate 17242 BLAKE2B 5aef69c0004081bd3cc4d531d13d63627cc0231 DIST terminal_size-0.1.17.crate 9141 BLAKE2B 048d8e8e9dad08aecde12323681d428b9182afb737136cd6699e13d231f7882091c9167cb10a08e5151df912421a6f89132645627e42ccc73d07553cadb1c8cd SHA512 96ec1bc8abd597f01ae59da567036d5d40b422764a4da662e2030c3ef4ce80a983c8b6a4ef1f34d88e649e0b1ea27b206d56a31924bcd2d31ff7e5a2e96d4201 DIST textwrap-0.15.0.crate 52998 BLAKE2B f6c3057ea6ffde88dd9824cd3159d398316d9d21f327d2af59239ff84d79f893a9d0e96dfbd883aab6c64b631dc99457018e38baf14d40789f02d633425ded86 SHA512 f44271c542c22f17a4e3a459255f95e6c02d999f7d6bc8414d3973fd4ac9353aa4ef436932a45340738126905463d776902715feaa9329371f8a14f14b5a7bfd DIST thiserror-1.0.32.crate 17241 BLAKE2B 70a1fa10c54078a49cc167c2792fd54bbff17543966c221d1648a80f08da2fb880ae64f0d08984b7e0ffd6a79cac4c31c04a1c0bdea5b26d18e4a8c7d83dfe1f SHA512 cb1839b2687e228ea43838a8a2d55a04f5f3bd8c2972df0ff6a703560454abf9b838558c16095cc9b030b6b13e9d715e2b4741de6af9d5decdfeaaa508481138 +DIST thiserror-1.0.34.crate 17329 BLAKE2B 3a24342fb102104e3aca6e5808c823fee616b2d51b552f38cb62c00c5bd5e78d7e360156593cffec00f6ab3da20f92b2fa9b207e60df170b9b925ead439ad070 SHA512 62aae119dfa1d1007857ebd05589eea5b3aff00596b131689cbe871a9988bdc75efaa8e48e4a6272c05f22a58b07d19117d49e6a6655f277d6bd47fd04bb5b96 DIST thiserror-impl-1.0.32.crate 15347 BLAKE2B 174ea820965b3de4d35b394e875e0dab51559bed098d5a3037fc09c80326c5fe87c4e79358d6f49524a5f246ac5c51995ab47e6c967947d48d2194057c8a6e66 SHA512 7dc5e842880f4ee6b3c85264048975c027e9b80834618f6abab618fa653b9ed34b887a1d72112fffaa0560b7e90fa456e241ac08e6fdcd4b3be6e39946e92d2b +DIST thiserror-impl-1.0.34.crate 15437 BLAKE2B 5fad15ba4a3ba5bc41e78c204933097ff4304279912b795809029e94eefb477178f965be753072132282ec25a612d29d309dbef4d537e2fbd7e2d8ca841deab6 SHA512 b35ba736753473e4456a8498c669f2a26c9520c5d04ff86ba5bca414db6f32bafeb67fd736a13ca0b92b2f21f6ba751e9ee58d16694600a1bbd9794ffbc0b98a DIST threadpool-1.8.1.crate 14408 BLAKE2B 8bd64ede19184e18460f6b2ad5bc888d6facd5fcaa5b43c35269e35909c9c68a884203f5c4b92619c097ad48c19ec29f73085755ee348cc637233ff3b5b50ccc SHA512 adaa5aecdeec25848af15b160e5b39833978454d834974211bd586d81837f2ce89e5590f08b7e0d4868346cf57056913a5d41bc8bf92b89109ed769cce4a8be0 DIST tiff-0.7.3.crate 1417896 BLAKE2B f718ec0bcfb4917d15189c6b4c37df643f43e2d6042639d123c678e11dead387b5823eecd6715f3d3678bf508d8cb53795b9d05e3cdf261badac5cef42738fe5 SHA512 fb5248ae56320ec0ed98c85b545996461924c422b2b1d916b46a2fc04394ee12e111132fea6cda27c53cdf492285797fe46bd4a403a1a598bd8c8dd327814356 DIST time-0.1.44.crate 28885 BLAKE2B 5e2ca11af9da0847239a086330d0cd00fcb5b63862f9dfec46f72a065bb35ec2236a21ee1c56bf65e3117105e7815cafe67e3725b8575373e875dfcea401d967 SHA512 736a38637be0193a06fa35d42b4873b04a0a35d84cd2af85b7f653a1b67b95078577134bb187b777730e73cce67f437b45ff5c72b8e3f1f8e2ed3420ea0324cf @@ -345,13 +384,16 @@ DIST tracing-attributes-0.1.22.crate 28199 BLAKE2B 4599e970387f385152d9fd6e354f9 DIST tracing-core-0.1.28.crate 57723 BLAKE2B 718974afb0412e93f60fd8795fce82f13953c2cedd753236945504f8342521d047f8ce517d24aa610f67127be8d59657a5405ce85025655c562bbf4e7be70bb9 SHA512 d48ac579f01123296eab18478888b916cdb64f1d8942e06e08984a77927ff5cac4328b1586800252c16472947f1b3c53c9a30c8b59a4a905210c54429b7d4b60 DIST tracing-futures-0.2.5.crate 11637 BLAKE2B 2b23233705674cadf5dc8092d3990f375e780de2b9bdfcbfdd5f4bc9bd0f15a14c6bc8e36963bcd332e729b33b90ecd10b2250495e0657eaeb302e666313534e SHA512 8a437a029e18dcac3a3be7a3355a63e75432ff892316c9f2929c7557e3895b1bb5efb59a7588372bd9efc386b5cab54c2b382be99ef8fa643e66ae5656e506bb DIST transpose-0.2.1.crate 6499 BLAKE2B 9d5fe7a176686120f3b317c019eee5b1b41f61ff07ec77ed5a7f81487e39f901431e0220fa4a54c77186428fd7fb2c26780f15c5fefbdf7237f405dca786e141 SHA512 73bed99bee032ec9d82fa64d6f6ba8d87ddb7ddf0fdfc57ffc2d1d134055202f94347466d533ee79246d2b80a2dfb4308c931b697c056f36db85270b7c9c630c +DIST typed-arena-2.0.1.crate 11439 BLAKE2B b5bd230a22894c5545966279b40a8493940719fdf79bed144ad41c363e7f73bfd40e1492efa8d96fb9b5b32e3a31405ef9dbddd55d10bb900ac082d41a034b03 SHA512 182fdac0ef9b494fc2966005ece2107a3c53b6eafe4eebe9be3d552aebe143e05f3db2b51693c253831744fc265ec2a557d31ee42cf0ba5991b38d075278415d DIST typenum-1.15.0.crate 40741 BLAKE2B 5752d80396d0a37b0069b98ace9efe96d94ccaf41b33b8149c8b8c6a767537dbffe64251bbf61f3812465ecbc8cb45544f177dc97ac9735d84454282e4d1ed66 SHA512 a3c1ceac85e1aed98d0829449c35f4f36db860218b955b4e5f8f01da1d27ee6213f3c60e2b25c3745dcd67369049da5de737a9473fa9402db99cf7cddeb42288 DIST unicode-bidi-0.3.8.crate 36575 BLAKE2B c0442dd47a8ee81f575b28e34c9781ccf507b53ea96d1d4df2e8117231e8e67579031e4244a2dacfd6f4c24ec01fbbd4da7c9ab72ad50af51ef56d7d813b6444 SHA512 810b5be48159ecbca542c715496f279518285c3b09f7c39451986f94e6c259fab1057512a2148bf99ba9abf76e861a24456b547cc2273f0b45ed5d3ce9dfe3d5 DIST unicode-ident-1.0.2.crate 34951 BLAKE2B f03f7a040142785675a800672bb363dcf7aae266eebf50425436100249442f27b18837f9e297d93b59a9254c349e13222f8af892a9c0fbf2bac676df8a1b0e1e SHA512 60d78668b762eb842c15ee554c0c1175393702c805f1a874957d49104e9152ad2d0316966553fb14cb520aa858a84da223bf426d55e4ac23de3324a3bebc301c DIST unicode-normalization-0.1.21.crate 121745 BLAKE2B e67a472d39b72be66f5f8e5b924157232dcd73edb2ecc1bf4f1aa078ea3b9860838afcb1710297367fd8c95f3c1331c91a520ac46c39b94f58a633919f124c95 SHA512 2994104d3393a117cf3eafc147ec9599c870b3bd4fbd096980534c8aeb48c6ba05bcf3f9804e3f2a0148940186dfb27871b23a991360bf8253a5a644f3cdcb12 +DIST unicode-segmentation-1.9.0.crate 93241 BLAKE2B 359904bcaadfd161128d40a896a2d10e5dfdb4098de245c949ae3fffecce9b4b6b999bbc2c6ca522944733ab0074e50fe829690183639c312bba8f8d0ad24456 SHA512 7d0ea37bfb24a1a803b1cd40b7b0c0e6e44ebf9a474fdedf0dcca1ead25662e19f44af29b87de1b000c3cc75fec93320938bb3ab9d9e82298eda324bb97e7294 DIST unicode-width-0.1.9.crate 16745 BLAKE2B 38d4b92e47a284d6881a8073089be59a73d82b91efe5522f55be977f95f479890b6c02cd519544729f1b1e62eb21bcfff8c5f5382917f953603b760e39cf1ea7 SHA512 0f5ec46c57e3b5e50cb8430c89db8d9c129e80ca11a9c398b5312bfe95001e19ca3efbfeb01c3ac09c4ce7e26c6ee1f352f7e114ecef78cefd68c54d2d50f5f4 DIST unicode-xid-0.2.3.crate 15174 BLAKE2B 5cfb2a094047106a45eaeb77ebc1ae2e17ca51ece71082c127d3e2bf36773959f52df1c6df0d0d5cbc40ec4ee7f81820a094fd7ee99f01a2f99a1f7f68317223 SHA512 2adea0c8447c9450be34859f2b2e2b87a61b5e313685da994d21bc24a96dd94088f3320bcdb8d20466a3fdafb0bc0375823f0c28ec0077c9c42a9818f66ac1f5 DIST url-2.2.2.crate 68555 BLAKE2B f8e59f784b6c2e16bacfba36ad68670a6af17c16ea3b0866b5aa98e5bf4686cf1b1aac9b1f0a0ea3b89a01e044a2ca37830416f42d147158ea8e88f23fd28ac2 SHA512 f9b6ad99d69ff303283b3fd9e98945fbd6cb411a3d141badcbb3a0566723a451375e6dd5d5357e3eb7a1b5b1ee5756a2347c43817db2de6fe35b9004b090e077 +DIST url-2.3.1.crate 72777 BLAKE2B 6ca0e537baf373b92269b2531945c1cdf360f1566cae4734dfb96f05a605e5c6c82e3192a1b9dde0ff22b92b87aba2d56e32a1bf17882b4de15efd7cdf52bc76 SHA512 8224010bef067574481e5d84100d944782d52b49db7c396ae2b4dfc145ed58769c15440d97a0fed4d2f9857592a8601417cc5b1bdea959c47a3e7a1f7182ed0d DIST vcpkg-0.2.15.crate 228735 BLAKE2B 6b6bacd9a7fa38919241f45a97f58cae957e58d3aac99df208a26aa718e4f1644f4ccefa31b09151e5c1952288e0e5837c363918b98c7f55079a948a952c1c50 SHA512 7322a21e8811b2fe4e79e09dc321458068ecdf1953f05d36233f3278ecc0b1dfc64194db7010dd46fcf692285f42475beb090c6c6cac0c8f9fe0eb5c770e3172 DIST version-compare-0.1.0.crate 14169 BLAKE2B e4b329f737684f43dbf390d96d8ea0182b2905120742a107e6847ae94201223206f0f111093f9490d103626f30d7a77374f10a81218a2b7e0a953a8818479d4a SHA512 d1b1a96f528e9660e38b6a08adbc186dfa93fa3e698029f68efcdea3de82c3e78cc0a2178e49281186d58de0c24ce3e62ebf1a0ef1aafa9297931cf19408d9c6 DIST version_check-0.9.4.crate 14895 BLAKE2B fa1fa4008af165bfc1fdbe560488afd9d232cfafee94104fbcc4cbc52f234849bff9ddfa88109a1ac682f6d9c1d86b0459893d223f64e65adc08966aaf93dc89 SHA512 b172dc9a3759a4a683ffc39b9a40b03b9974b626a088217de87090466cef695226557c226cf3e469b2b25ee7297b7eb0d7719878cab42457f80146a81943c0c8 @@ -376,6 +418,7 @@ DIST wayland-sys-0.29.4.crate 7919 BLAKE2B 15d7e3d4f6a62c8966d1aa6008baf28f43be0 DIST weak-table-0.3.2.crate 23989 BLAKE2B f5b12d62704a86f77fabaac918d084a4f7471b52994307da20376d48264b811eaeffe2cae2f28ebeeefa4338c758516bcdba5d138cd7ac12ebfccc697009e167 SHA512 78936f2afca36575d3faa823ef4e621d7dea9e3eb4c8c3e1d66af296951fc25476dc8cbadae184322f6e1e8166410df617fe74794b2d3696d599bb2406499562 DIST web-sys-0.3.58.crate 696212 BLAKE2B a76b29a2a1b46239e1e6b134004bf43bd127466d9920077196e59b3ff419e059f433f94a68c24f3a6361d4f751ad3b69c6bfa67cacec0f0a2a58c87f319cd475 SHA512 58215a0d34bf0478514affa8d85f46017ab565b1dafd36f98a1d0f93e04f909b8b09348c06a189700111b5a8bee2049640a3a3a1433c4939e60bb12f32092b05 DIST webbrowser-0.7.1.crate 20119 BLAKE2B ff19cf17cd92a8b6752a8f051ae1373df99e811e57e9c00a50c7d016b0f857147e7b5c24cf7da12ea465607fe8a828ee079c6c9b718bc3466e2d77cd79b71c87 SHA512 da404da0eab4e82d4794687425d81bce0c479e162679bd7e1c36100970cc7f6cc3230718c5d310d62b349176883ee2f317801a445a1a56df88ce7ee91b6e23d1 +DIST webbrowser-0.8.0.crate 26406 BLAKE2B 6f764de667344b4d578d30cc40fca859fec4b21509b6e654a2dc236f82b0af22d829d4e5b58d5548fe789b1b8f72162206d71dd1b1d65d84a03da22b95a311bf SHA512 a40e98042d81165510e154c60a3124ca0b46b0c2a2e4e6df77738dc282ac62e1d692d281f80858aef7fdce3496c9bc4bb753fccaedecd25924c1b3c2241db249 DIST weezl-0.1.7.crate 42166 BLAKE2B a3a2a48dbb444b2bd910e1470507209f3d0acc75d88e22bcb42b5ca7ab8edbc41fc9e49cb6a2e18cf5e470d7bd26f4e4d9e30ea01c3eb543f171289a86927fdf SHA512 3fd8cb01dde494371df57001c97be90418b642ba88b0945cd98f973a4498743b83d383bcdfc8884db1da75271aeef4ce3b418e425f23690f12a5cc645c418e90 DIST wepoll-ffi-0.1.2.crate 31309 BLAKE2B cd1b01c9fdb6482baff3ab12a9926c1a5a9b6e430e4609890a94b13480f8223de166558724b4d6926d6e9dd7f466926c783df54f9beabc75d646edf4f3429a73 SHA512 f0f5c379d08642aee9c6ef36175b9d858ee1cb7d444b832d6e7ad194167a4db2de5aaee3b2356ca42ef9f48a9872928c61b456305c05dd40cc53e5204686b8a7 DIST wgpu-0.13.1.crate 134513 BLAKE2B 363d849c1e8c986d18e3bd3156263d0a61bfcb66bfcdae57b1a8dab9c5e3f75b700280197ed265222940d0ef47445324ebefd626fe901783c20d8432005cd582 SHA512 68dab61095c454f2c513a645624bdc351bc2dff1e6bcd392606417f2ed14adea7f19860996e2f7e8aef59065a3bd5037dca8d883358328b6fb0925c5aa30ec6d @@ -408,6 +451,8 @@ DIST x11-dl-2.19.1.crate 64664 BLAKE2B 0a3a74c25e72dfb8fd786226abfc2391c245bb1c1 DIST xcb-0.8.2.crate 129071 BLAKE2B 83596850decb752c8fca84c383986e3cf1ca0708a682c083aee5e1d40d7ede2758e1a209d45745685a625d98d9438927e8f68de762bc01e843e91d9cddd16101 SHA512 276df8c84e5a416470ea5d7d29065acfa0f3b1c2f6f987242e30ceed746ee7c004257a26d01dba4f2366a76c5878b154242ed4f4cbe5b7df1b2c9c40c4d60c46 DIST xcursor-0.3.4.crate 6069 BLAKE2B 0597eb71a6ad7ad5360674c76bab042a80f1f52f490edcdd824661288eae98f2bf2c4d7da7079bffda0fbfed0409a7ddb329d855deb784fc952d1c2f2d5dbdd1 SHA512 229ea7516d8a07c3fac46b70329e89c19fcf282134b5063b8302a64f8723d31b52b4fcf23c49aecd3a3a0a736ba4a52cd033f8c3db21a775084c6c0a0e1f6c1e DIST xml-rs-0.8.4.crate 52690 BLAKE2B 140d4e725ae0e82c949838c1f6d82e1fbb00e2df4d51b74486597302d4a434ccb46bbd6f5e97636b4947c0092793928c29837a3290bb525344e8a27c0951a42b SHA512 b21b0db9ee7cdfddae7c110e4fec714d719e75ba139744c290692d660caa425aa8b1ece644deb5f1879f21c0561b9b412b9ba8931f7f5b4e220ef08f8a7fc5e6 +DIST yansi-0.5.1.crate 16525 BLAKE2B 3b5a93b98293daae72f53bf3f13bfc05feba8d5b27921f79595f7448fbcb9a0dfa6cd70f467c5735b914c46b7d3592e6cce080c540a458a904308525eb3aa839 SHA512 7b33005a066cc612408a65df6533e8718d1de43efc0fd57416a19dc2b811497570e6e18f100fb26073565e395e711518c27de7d644ae64777713f1a102eb16d2 EBUILD ruffle-0_p20220816.ebuild 10817 BLAKE2B dd7066915cba5e716756475e57bf76d1c3bd2c8f0abf0b5f993c518180e8afbf118e7b0e9a9c4f65d5d28ad674ff65e8ee6a100480b62fedf5525f6e4d0bff93 SHA512 495b644091cf74af6bbaabb9faeab293db2054d3c492d4dccdb731adf054ed3009e699f9c21590f557879d0eb508a1c9ab9d2c70defcd21536df14d6854a539d -EBUILD ruffle-9999.ebuild 1413 BLAKE2B 17816df4767320d9470a7b8b5210c37a3129aad10eed5f0eda95895b8f792c6b5551b3d7e20ecc8f4acd747b170f07d39d919b5498c2beb961313719d4b5cb12 SHA512 2e93320aa2260636d5cadfe4ca3597ee3c89d9e4c83a505afc9c83ff5fbc44457df2f36829ef6ad4765a615cbf2b0a5c7dc7dd05051c1cdec9d1169c48e5495a +EBUILD ruffle-0_p20220914.ebuild 10982 BLAKE2B 536a090fcffe20a7d462c05b4886926195ad2681947501c5b770b6fc0869959ed4585626b26f5143284edbea305a722ccc8177f2f55dbd06440ea5b0a139474c SHA512 13f8292e5ff381d7b3fd8801b05cd5cc992d0fd96aeb7c3c19bd5b80dda584cb8de3679a9e77d0f4787339ce35566be929d24cec457ef356176d0cd22685c95d +EBUILD ruffle-9999.ebuild 1413 BLAKE2B 8dfcae8309824ddaff4898070de93907c6487875169afd8958f828bb4b133e420ac6a15f7de2e2ca1661e2520e4af2097204b368ff4967620c43a49db4a1ab46 SHA512 78d5fd15f942403b8779dbc7659fb3925c70b3a69ce5aedfd640f59197db9746c4b25f2385f710a61aa78aca04b786f86089acf1d29c4bad4fd2a9d74338a0bb MISC metadata.xml 327 BLAKE2B aad7b4089000263fccd1bf6af04e88ac138658121db322215ce0dcc85380b12afa01cdcd2be232c5d2c773698b38903759ecaea6f4854d8c90c420c0a43f33b1 SHA512 bb5e665acc6d02ae3e6a22fbb483c293142104e538d386a9b93884f097629dcbb8ca7b614aa20e0358bf22ae36487c7d86cc1467103987845a70ebacc9c4a5d2 diff --git a/app-emulation/ruffle/ruffle-0_p20220914.ebuild b/app-emulation/ruffle/ruffle-0_p20220914.ebuild new file mode 100644 index 000000000000..00666af6e501 --- /dev/null +++ b/app-emulation/ruffle/ruffle-0_p20220914.ebuild @@ -0,0 +1,523 @@ +# Copyright 2021-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +CRATES=" + Inflector-0.11.4 + adler-1.0.2 + adler32-1.2.0 + ahash-0.7.6 + aho-corasick-0.7.18 + aliasable-0.1.3 + alsa-0.6.0 + alsa-sys-0.3.1 + android_system_properties-0.1.2 + anyhow-1.0.64 + approx-0.5.1 + arrayvec-0.5.2 + arrayvec-0.7.2 + ash-0.37.0+1.3.209 + async-channel-1.6.1 + atk-sys-0.15.1 + atty-0.2.14 + autocfg-1.1.0 + base64-0.13.0 + bindgen-0.59.2 + bit-set-0.5.3 + bit-vec-0.6.3 + bit_field-0.10.1 + bitflags-1.3.2 + bitflags_serde_shim-0.2.2 + bitstream-io-1.5.0 + bitvec-0.19.6 + block-0.1.6 + block-buffer-0.10.2 + bstr-0.2.17 + build_const-0.2.2 + bumpalo-3.11.0 + bytemuck-1.12.1 + bytemuck_derive-1.2.1 + byteorder-1.4.3 + bytes-1.2.0 + cache-padded-1.2.0 + cairo-sys-rs-0.15.1 + calloop-0.9.3 + castaway-0.1.2 + cc-1.0.73 + cesu8-1.1.0 + cexpr-0.6.0 + cfg-expr-0.10.3 + cfg-if-0.1.10 + cfg-if-1.0.0 + cfg_aliases-0.1.1 + chrono-0.4.20 + clang-sys-1.3.3 + clap-3.2.20 + clap_derive-3.2.18 + clap_lex-0.2.4 + clipboard-0.5.0 + clipboard-win-2.2.0 + cocoa-0.24.0 + cocoa-foundation-0.1.0 + codespan-reporting-0.11.1 + color_quant-1.1.0 + colored-2.0.0 + combine-4.6.4 + concurrent-queue-1.2.2 + console-0.15.0 + console_error_panic_hook-0.1.7 + console_log-0.2.0 + convert_case-0.6.0 + cookie-factory-0.3.2 + copyless-0.1.5 + core-foundation-0.7.0 + core-foundation-0.9.3 + core-foundation-sys-0.7.0 + core-foundation-sys-0.8.3 + core-graphics-0.19.2 + core-graphics-0.22.3 + core-graphics-types-0.1.1 + core-video-sys-0.1.4 + coreaudio-rs-0.10.0 + coreaudio-sys-0.2.10 + cpal-0.14.0 + cpufeatures-0.2.2 + crc-1.8.1 + crc32fast-1.3.2 + crossbeam-channel-0.5.6 + crossbeam-deque-0.8.2 + crossbeam-epoch-0.9.10 + crossbeam-utils-0.8.11 + crypto-common-0.1.6 + csv-1.1.6 + csv-core-0.1.10 + ctor-0.1.22 + cty-0.2.2 + curl-0.4.44 + curl-sys-0.4.56+curl-7.83.1 + d3d12-0.5.0 + darling-0.13.4 + darling_core-0.13.4 + darling_macro-0.13.4 + deflate-1.0.0 + derive-try-from-primitive-1.0.0 + diff-0.1.13 + digest-0.10.3 + dirs-4.0.0 + dirs-sys-0.3.7 + dispatch-0.2.0 + dlib-0.5.0 + downcast-rs-1.2.0 + either-1.7.0 + embed-resource-1.7.3 + encode_unicode-0.3.6 + encoding_rs-0.8.31 + enum-map-2.4.1 + enum-map-derive-0.10.0 + enumset-1.0.11 + enumset_derive-0.6.0 + env_logger-0.9.0 + euclid-0.22.7 + event-listener-2.5.2 + exr-1.4.2 + fastrand-1.8.0 + flate2-1.0.24 + float_next_after-0.1.5 + flume-0.10.14 + fnv-1.0.7 + foreign-types-0.3.2 + foreign-types-shared-0.1.1 + form_urlencoded-1.1.0 + funty-1.1.0 + futures-0.3.24 + futures-channel-0.3.24 + futures-core-0.3.24 + futures-executor-0.3.24 + futures-io-0.3.24 + futures-lite-1.12.0 + futures-macro-0.3.24 + futures-sink-0.3.24 + futures-task-0.3.24 + futures-util-0.3.24 + fxhash-0.2.1 + gdk-pixbuf-sys-0.15.10 + gdk-sys-0.15.1 + generational-arena-0.2.8 + generic-array-0.14.5 + getrandom-0.2.7 + gif-0.11.4 + gio-sys-0.15.10 + glib-sys-0.15.10 + glob-0.3.0 + glow-0.11.2 + gobject-sys-0.15.10 + gpu-alloc-0.5.3 + gpu-alloc-types-0.2.0 + gpu-descriptor-0.2.2 + gpu-descriptor-types-0.1.1 + gtk-sys-0.15.3 + half-1.8.2 + hashbrown-0.11.2 + hashbrown-0.12.3 + heck-0.4.0 + hermit-abi-0.1.19 + hexf-parse-0.2.1 + http-0.2.8 + humantime-2.1.0 + ident_case-1.0.1 + idna-0.3.0 + image-0.24.3 + indexmap-1.9.1 + indicatif-0.17.0 + inflate-0.4.5 + inplace_it-0.3.4 + instant-0.1.12 + isahc-1.7.2 + itoa-0.4.8 + itoa-1.0.2 + jni-0.19.0 + jni-sys-0.3.0 + jobserver-0.1.24 + jpeg-decoder-0.2.6 + js-sys-0.3.59 + khronos-egl-4.1.0 + lazy_static-1.4.0 + lazycell-1.3.0 + lebe-0.5.1 + lexical-core-0.7.6 + libc-0.2.126 + libflate-1.2.0 + libflate_lz77-1.1.0 + libloading-0.7.3 + libnghttp2-sys-0.1.7+1.45.0 + libz-sys-1.1.8 + lock_api-0.4.7 + log-0.4.17 + lyon-1.0.0 + lyon_algorithms-1.0.0 + lyon_geom-1.0.1 + lyon_path-1.0.0 + lyon_tessellation-1.0.1 + lzma-rs-0.2.0 + mach-0.3.2 + malloc_buf-0.0.6 + memchr-2.5.0 + memmap2-0.3.1 + memoffset-0.6.5 + metal-0.24.0 + mime-0.3.16 + minimal-lexical-0.2.1 + minimp3-0.5.1 + minimp3-sys-0.3.2 + miniz_oxide-0.5.3 + mio-0.8.4 + naga-0.9.0 + nanorand-0.7.0 + ndk-0.5.0 + ndk-0.6.0 + ndk-0.7.0 + ndk-context-0.1.1 + ndk-glue-0.5.2 + ndk-glue-0.6.2 + ndk-macro-0.3.0 + ndk-sys-0.2.2 + ndk-sys-0.3.0 + ndk-sys-0.4.0 + nix-0.22.3 + nix-0.23.1 + nom-6.1.2 + nom-7.1.1 + num-complex-0.4.2 + num-derive-0.3.3 + num-integer-0.1.45 + num-rational-0.4.1 + num-traits-0.2.15 + num_cpus-1.13.1 + num_enum-0.5.7 + num_enum_derive-0.5.7 + number_prefix-0.4.0 + objc-0.2.7 + objc-foundation-0.1.1 + objc_exception-0.1.2 + objc_id-0.1.1 + oboe-0.4.6 + oboe-sys-0.4.5 + once_cell-1.14.0 + openssl-probe-0.1.5 + openssl-sys-0.9.75 + os_str_bytes-6.2.0 + ouroboros-0.15.4 + ouroboros_macro-0.15.4 + output_vt100-0.1.3 + pango-sys-0.15.10 + parking-2.0.0 + parking_lot-0.11.2 + parking_lot-0.12.1 + parking_lot_core-0.8.5 + parking_lot_core-0.9.3 + path-slash-0.2.1 + peeking_take_while-0.1.2 + percent-encoding-2.2.0 + pin-project-1.0.11 + pin-project-internal-1.0.11 + pin-project-lite-0.2.9 + pin-utils-0.1.0 + pkg-config-0.3.25 + png-0.17.6 + polling-2.2.0 + ppv-lite86-0.2.16 + pretty_assertions-1.3.0 + primal-check-0.3.1 + proc-macro-crate-1.1.3 + proc-macro-error-1.0.4 + proc-macro-error-attr-1.0.4 + proc-macro2-1.0.43 + profiling-1.0.6 + quote-1.0.21 + radium-0.5.3 + rand-0.8.5 + rand_chacha-0.3.1 + rand_core-0.6.3 + range-alloc-0.1.2 + raw-window-handle-0.4.3 + raw-window-handle-0.5.0 + rayon-1.5.3 + rayon-core-1.9.3 + redox_syscall-0.2.15 + redox_users-0.4.3 + regex-1.6.0 + regex-automata-0.1.10 + regex-syntax-0.6.27 + regress-0.4.1 + renderdoc-sys-0.7.1 + rfd-0.10.0 + rle-decode-fast-1.0.3 + ron-0.7.1 + rustc-hash-1.1.0 + rustc_version-0.4.0 + rustdct-0.7.0 + rustfft-6.0.1 + ryu-1.0.10 + safe_arch-0.6.0 + same-file-1.0.6 + schannel-0.1.20 + scoped-tls-1.0.0 + scoped_threadpool-0.1.9 + scopeguard-1.1.0 + semver-1.0.12 + serde-1.0.144 + serde-xml-rs-0.6.0 + serde_derive-1.0.144 + serde_json-1.0.85 + sha2-0.10.5 + shlex-1.1.0 + slab-0.4.7 + slice-deque-0.3.0 + slotmap-1.0.6 + sluice-0.5.5 + smallvec-1.9.0 + smithay-client-toolkit-0.15.4 + socket2-0.4.4 + spin-0.9.4 + spirv-0.2.0+1.5.4 + static_assertions-1.1.0 + stdweb-0.1.3 + strength_reduce-0.2.3 + strsim-0.10.0 + symphonia-0.5.1 + symphonia-bundle-mp3-0.5.1 + symphonia-core-0.5.1 + symphonia-metadata-0.5.1 + syn-1.0.99 + synstructure-0.12.6 + system-deps-6.0.2 + tap-1.0.1 + termcolor-1.1.3 + terminal_size-0.1.17 + textwrap-0.15.0 + thiserror-1.0.34 + thiserror-impl-1.0.34 + threadpool-1.8.1 + tiff-0.7.3 + time-0.1.44 + tinyvec-1.6.0 + tinyvec_macros-0.1.0 + toml-0.5.8 + tracing-0.1.35 + tracing-attributes-0.1.22 + tracing-core-0.1.28 + tracing-futures-0.2.5 + transpose-0.2.1 + typed-arena-2.0.1 + typenum-1.15.0 + unicode-bidi-0.3.8 + unicode-ident-1.0.2 + unicode-normalization-0.1.21 + unicode-segmentation-1.9.0 + unicode-width-0.1.9 + unicode-xid-0.2.3 + url-2.3.1 + vcpkg-0.2.15 + version-compare-0.1.0 + version_check-0.9.4 + vswhom-0.1.0 + vswhom-sys-0.1.1 + waker-fn-1.1.0 + walkdir-2.3.2 + wasi-0.10.0+wasi-snapshot-preview1 + wasi-0.11.0+wasi-snapshot-preview1 + wasm-bindgen-0.2.82 + wasm-bindgen-backend-0.2.82 + wasm-bindgen-futures-0.4.32 + wasm-bindgen-macro-0.2.82 + wasm-bindgen-macro-support-0.2.82 + wasm-bindgen-shared-0.2.82 + wayland-client-0.29.4 + wayland-commons-0.29.4 + wayland-cursor-0.29.4 + wayland-protocols-0.29.4 + wayland-scanner-0.29.4 + wayland-sys-0.29.4 + weak-table-0.3.2 + web-sys-0.3.58 + webbrowser-0.8.0 + weezl-0.1.7 + wepoll-ffi-0.1.2 + wgpu-0.13.1 + wgpu-core-0.13.2 + wgpu-hal-0.13.2 + wgpu-types-0.13.2 + wide-0.7.4 + widestring-0.5.1 + winapi-0.3.9 + winapi-i686-pc-windows-gnu-0.4.0 + winapi-util-0.1.5 + winapi-x86_64-pc-windows-gnu-0.4.0 + windows-0.37.0 + windows-sys-0.36.1 + windows_aarch64_msvc-0.36.1 + windows_aarch64_msvc-0.37.0 + windows_i686_gnu-0.36.1 + windows_i686_gnu-0.37.0 + windows_i686_msvc-0.36.1 + windows_i686_msvc-0.37.0 + windows_x86_64_gnu-0.36.1 + windows_x86_64_gnu-0.37.0 + windows_x86_64_msvc-0.36.1 + windows_x86_64_msvc-0.37.0 + winit-0.26.1 + winreg-0.10.1 + wyz-0.2.0 + x11-clipboard-0.3.3 + x11-dl-2.19.1 + xcb-0.8.2 + xcursor-0.3.4 + xml-rs-0.8.4 + yansi-0.5.1" +# python is needed by xcb-0.8.2 until update to >=0.10 +PYTHON_COMPAT=( python3_{8..11} ) +PYTHON_REQ_USE="xml(+)" +inherit cargo desktop flag-o-matic python-any-r1 xdg + +# 0(github) 1(repo) 2(commit hash) 3(crate:workspace,...) [see core/Cargo.toml] +RUFFLE_GIT=( + "RustAudio dasp f05a703d247bb504d7e812b51e95f3765d9c5e94 dasp" + "ruffle-rs gc-arena 081b6883a522b38030b13744c80c84efbfcbae1f gc-arena:src/gc-arena" + "ruffle-rs h263-rs 023e14c73e565c4c778d41f66cfbac5ece6419b2 h263-rs:h263,h263-rs-yuv:yuv" + "ruffle-rs nellymoser 4a33521c29a918950df8ae9fe07e527ac65553f5 nellymoser-rs:." + "ruffle-rs nihav-vp6 9416fcc9fc8aab8f4681aa9093b42922214abbd3 nihav_codec_support:nihav-codec-support,nihav_core:nihav-core,nihav_duck:nihav-duck" + "ruffle-rs quick-xml 8496365ec1412eb5ba5de350937b6bce352fa0ba quick-xml:." + "ruffle-rs rust-flash-lso 19fecd07b9888c4bdaa66771c468095783b52bed flash-lso" +) +ruffle_uris() { + cargo_crate_uris + + local g + for g in "${RUFFLE_GIT[@]}"; do + g=(${g}) + echo "https://github.com/${g[0]}/${g[1]}/archive/${g[2]}.tar.gz -> ${g[1]}-${g[2]}.tar.gz" + done +} + +# using _pYYYYMMDD over YYYY.MM.DD given ruffle has an underlaying version +# (0.1.0) which could get a non-nightly release eventually (YYYY. > 0.1.0) +MY_PV="nightly-${PV:3:4}-${PV:7:2}-${PV:9:2}" +MY_P="${PN}-${MY_PV}" + +DESCRIPTION="Flash Player emulator written in Rust" +HOMEPAGE="https://ruffle.rs/" +SRC_URI=" + https://github.com/ruffle-rs/ruffle/archive/refs/tags/${MY_PV}.tar.gz -> ${MY_P}.tar.gz + $(ruffle_uris)" +S="${WORKDIR}/${MY_P}" + +LICENSE="Apache-2.0 BSD BSD-2 CC0-1.0 ISC MIT MPL-2.0 Unicode-DFS-2016 ZLIB curl" +SLOT="0" +KEYWORDS="~amd64" + +RDEPEND=" + dev-libs/glib:2 + dev-libs/openssl:= + media-libs/alsa-lib + sys-libs/zlib:= + x11-libs/gtk+:3 + x11-libs/libxcb:=" +DEPEND="${RDEPEND}" +BDEPEND=" + ${PYTHON_DEPS} + virtual/jre:* + virtual/pkgconfig + >=virtual/rust-1.63" + +QA_FLAGS_IGNORED=" + usr/bin/${PN} + usr/bin/${PN}_exporter + usr/bin/${PN}_scanner" + +src_prepare() { + default + + # use [patch] directive to register git snapshots of needed crates + local crate g + for g in "${RUFFLE_GIT[@]}"; do + g=(${g}) + echo "[patch.\"https://github.com/${g[0]}/${g[1]}\"]" + for crate in ${g[3]//,/ }; do + echo "${crate%:*} = { path = \"../${g[1]}-${g[2]}/${crate#*:}\" }" + done + done >> Cargo.toml || die +} + +src_compile() { + filter-lto # undefined references with ring crate and more + + cargo_src_compile --bins # note: configure --bins would skip tests +} + +src_install() { + dodoc README.md + + newicon web/packages/extension/assets/images/icon180.png ${PN}.png + make_desktop_entry ${PN} ${PN^} ${PN} "AudioVideo;Player;Emulator;" \ + "MimeType=application/x-shockwave-flash;application/vnd.adobe.flash.movie;" + + cd target/$(usex debug{,} release) || die + + newbin ${PN}_desktop ${PN} + newbin exporter ${PN}_exporter + dobin ${PN}_scanner +} + +pkg_postinst() { + xdg_pkg_postinst + + if [[ ! ${REPLACING_VERSIONS} ]]; then + elog "${PN} is experimental software that is still under heavy development" + elog "and only receiving nightly releases. Plans in Gentoo is to update" + elog "roughly every two weeks if no known major regressions." + elog + elog "There is currently no plans to support wasm builds / browser" + elog "extensions, this provides the desktop viewer and other tools." + fi +} diff --git a/app-emulation/ruffle/ruffle-9999.ebuild b/app-emulation/ruffle/ruffle-9999.ebuild index 7661aa2806f0..f4ab5fe89d96 100644 --- a/app-emulation/ruffle/ruffle-9999.ebuild +++ b/app-emulation/ruffle/ruffle-9999.ebuild @@ -27,7 +27,7 @@ BDEPEND=" ${PYTHON_DEPS} virtual/jre:* virtual/pkgconfig - >=virtual/rust-1.62" + >=virtual/rust-1.63" QA_FLAGS_IGNORED=" usr/bin/${PN} diff --git a/app-emulation/vice/Manifest b/app-emulation/vice/Manifest index ed986a5f22b9..3739fa1a3cfe 100644 --- a/app-emulation/vice/Manifest +++ b/app-emulation/vice/Manifest @@ -1,3 +1,3 @@ DIST vice-3.6.1.tar.gz 11454300 BLAKE2B 129171380f3bd23d579dc29a96419446169cf9a98d2fec82951fa192914846053d213a19b395c9ca30596859cce35bcfea0de0c0a7461c45cb38511a546ca4b2 SHA512 9aeb1c84dc71976d12a9907d60c637ec4cc938aad103340b70a13906bbf2bebab579edc78221c7fba47f0750be3f9ded947200b42fcfc8a9169fb4bb9f288cb7 -EBUILD vice-3.6.1-r1.ebuild 4605 BLAKE2B fd8fe6d165d54ea2fc204c0b0129daaad0c9a5caa110ecf872ffc75743f00f866a6c088eefb62448585c8bf321dc4c8ff8d5292aeaa4d0662dd60b2b3ac5a247 SHA512 0623c65e1aa13fb0f6608dc683f4c4ced83e9e43db64ce344d3f8bac9111424038d8fc14569de6b14abe05763b56aba8014affb7c46e09325ddfb4123bfd71b7 +EBUILD vice-3.6.1-r2.ebuild 4607 BLAKE2B f9197bc70f47f469180515c44e90c57bb7c8292eb31d195ea789cf33394d73813e305db0d1a9d5e1e3845470aa16e258f512c4354323f493ee5d8c0df2f54eec SHA512 7e14ecee203007e656c865c72bcd1108eb63aa4754f775982aeb2a3b94507c9760e4efdd135c0401c5fbc4a3116c31683e3560090c83871c06a102899b1fc94a MISC metadata.xml 785 BLAKE2B 1dc59c7b40fda968680e97b1ad83e741faf223143bbc1ab2d523e37312badd3a3aaedc3bbffbd158531c74ae73dab1bb1ee03666a081eb17d819dc9e0b783ee2 SHA512 b483d325702723d1395bca771d215709fc68b6ca8309c4297c6a668d5940502c9c8d5d4149e1f52b8fd6d5062cf04b2e3d7046ecfc0555d2703b064e329af283 diff --git a/app-emulation/vice/vice-3.6.1-r1.ebuild b/app-emulation/vice/vice-3.6.1-r2.ebuild index 062c915c58a2..2374e9497e2d 100644 --- a/app-emulation/vice/vice-3.6.1-r1.ebuild +++ b/app-emulation/vice/vice-3.6.1-r2.ebuild @@ -29,7 +29,7 @@ RDEPEND=" sys-libs/libcap ) ffmpeg? ( <media-video/ffmpeg-5:= ) - flac? ( media-libs/flac ) + flac? ( media-libs/flac:= ) gif? ( media-libs/giflib:= ) gtk? ( dev-libs/atk diff --git a/app-emulation/wine-mono/Manifest b/app-emulation/wine-mono/Manifest index 1cbacfcacfeb..c14a5d9cdfd7 100644 --- a/app-emulation/wine-mono/Manifest +++ b/app-emulation/wine-mono/Manifest @@ -1,19 +1,10 @@ -DIST wine-mono-5.1.1-x86.msi 84130304 BLAKE2B 05a5344b59249a758443cf91670eaef71d9ad3a3024b11442a8d3512ba54356439d503629fa799e2454975f47c0eaf6ff9e25ed61b020f29efceacc78347d578 SHA512 c518b93a470cc897abaf1dba18cc773dca0df62a28d35f32f2ddbe39b4de616c0307545bea5dc3ca87a01fd96b47feb3e1d8c3778106304b9cc08ebb3d1d665f -DIST wine-mono-5.1.1-x86.tar.xz 44710604 BLAKE2B 162e5c8b12a0384d218ae049c8a948d48fe50ca51212e1c00f11a207f26a759c749d1b8cd416990856358af3d9899670a363d568eda83b66f5e94efc72eea1ff SHA512 9d2e1c42669164bb3c0096ade0dfd465f633436f18246b1a4d169ae0ae2e3b51d8f94d79409cb71a65b878705d5d38e6f4aa155787e340a9294ff22dbe39cf95 -DIST wine-mono-6.4.0-x86.msi 86398976 BLAKE2B d1d553f6115618744bea65d7e88fdf19bfdf677ad5c948d9d598fe461ad668f778e5a8ae2084c584c9d6dae9bee68b85f9837c20016ab82c2401644dcfa06c1a SHA512 5e0eda47bd73b4f1d2d4017c1e6f1d14c9801067e085e9c991532c50454dd22b6594bd05733b4aae8a1010e8b443ff2bdbe70398880ea569142b33e253892f12 -DIST wine-mono-6.4.0-x86.tar.xz 44177712 BLAKE2B de08e829ade18be0d0896742aa66f3dd9ab96eb0c994ae164f0fc64fb6306dd278714bbea3cd20d9a04625bc502764a875d57fa530489a22d4f69cbe20696cfb SHA512 4e793ab755e3a4b5ff1dd0354756a9635482db6fd98fc90cb710edfd5e1f553e124913e323681bc82827655a5b1056d33c1f9632b5ea1e3e72d547cd780f2d2e DIST wine-mono-7.0.0-x86.msi 86433280 BLAKE2B 9d164bf10f9c790a1f518624321a77965800742c84677a6372cd57b1f51bdd16a2d61ee85f868e84be9b07d4c3f5a7afa770e98637f698c2337c42d42890cf58 SHA512 d7af2a68c3b48cab93ddd489f674ab9064d69d5ca0b6c91e58713dd0408af9fb1ff82ef8847d91645d96df40cd5526c6735d621064a3598166ab5f51d1e0d076 DIST wine-mono-7.0.0-x86.tar.xz 45085800 BLAKE2B 504c57acce486c19a54bf33cdb4b9444c07a58a7f56ced0c93178886a91fa5d94a61f6e26aa885f3e3a2cceb2ff792f01006a4b16fa5bb88c3d25ddff02fefd7 SHA512 a3977563c5eb6418eaeda25e5b39bd2ef1faf305d514979211e049280c4577718ca48c8566e527b97a58fc465b310dd600093a616102573e12e8985794d828a6 -DIST wine-mono-7.1.1-x86.msi 86606336 BLAKE2B 817d02bc090e5f324519a118de53a51510f601e86b84f93e06762ac583038cf96ce3f2cdd107c838261bc5f93cd336c1c0f18ac414626b98bbe4f35ad2749e04 SHA512 5a9a01d129c095d2fe8301073fefee7dca8cc26b9fc72c9ea88c00cbaacd1a40e2defb163152448c3de94ebe7cff46aa81f92ccf09fcaf084a7a18805fa03294 -DIST wine-mono-7.1.1-x86.tar.xz 45220396 BLAKE2B 8a4cfa9496a51adb884c9062162413564cb939624ec551e97467eed41efc6e67e6296b2b0924eaa9565e98ea5595e140db691f23ef28edbf16456e3f6d39bd05 SHA512 b52f8a71900a34c687fd86559db16f2b7a3abe0f3965b5050e1859646c7bb00e070cc394f9a175995ccb50501d15844853b49931a7ac7cd2022581e241f31924 -DIST wine-mono-7.2.0-x86.msi 86910464 BLAKE2B 4e07c88202b85141faa5fe66e8254839f9d048922fcae6f71468273c1443c148f32746f0cc58b8c16f4f5c46678076072ae5a443e090371ad863387f4c5f15f0 SHA512 855a829a247de1e6ee31e07d06cc9d23b3011f43937c13a04f992fbc99080c32cd2dfc44e07bbdf6a71935b75192dd0648288c622eae00b3226e3c58ff55d826 -DIST wine-mono-7.2.0-x86.tar.xz 42477712 BLAKE2B f82e5b16b7f6554d919fa082eaa1686a22b798b1cf377aaa6b29f67682749a6e851cd3ee4d52a227c8d279442ed018704a92e3917593de70e588b47a7635395b SHA512 791c93425f37dfb7d481f0afb1b15bd18b084a764d70d2bf211fe791c94c44673940177870dae898e6b0adf3bf08f01f0ecb2fc1c5783c96f4ed4cede8fdb34d DIST wine-mono-7.3.0-x86.msi 86919680 BLAKE2B 917aa260ba7a012ed1e1565f8ed23225c82060c82dbb74a1e0d105a7b38a1d840c20689e0a8e7cc1a5c5de938807c78f36c98cbef07270accaf789b6b031f22d SHA512 d92ab4a9d0ac1c48dfec583b1681317e9ec9556efcb18766a865bee06a3a53ea08159099ca3ec92149f677d67583648991d59adb9b8a612ef41de06da8c77fd2 DIST wine-mono-7.3.0-x86.tar.xz 43557004 BLAKE2B 919912faf97cf38b2fcc9813de4e035d907b0a00db78d2a251c1c43dab65ba44847ecbf494a15dba761d9ba8203855c1a6e5f5bbd07f20484c9948c3cfe4d3bc SHA512 c26dc21d0d462b3c79e778497815e33d26b5ab545eba0552b436f30d9b7aa340ccdef69fe0dcbf32c04330e6d0f813314646ded7d2d24e6f4746e4893adbbf7f -EBUILD wine-mono-5.1.1.ebuild 658 BLAKE2B d54b9115e6f11315cd10a07a68c2e8f6afa48ca12c8a32c2ccfa198d51732f869c011c124f58ea07abaa491e5dc7914a6cb38ce60189e2a109731d67920d4e86 SHA512 4c457d143b0dfe54317961f77947dbad60be83cabd3e335922a7b728ff266ed6fef4aa14fe9e561c02fe679ad11b6dde5bc366862b185dfb3bf152d828a316a9 -EBUILD wine-mono-6.4.0.ebuild 660 BLAKE2B df73bc6c9a6866f408ea1d0751e2e8b3b1b2112a296f0f8f34fc1a83e6e2a3b4a83fc267e7a73bbfab8550a679edec9b95b1a92d2663aae208dde085588f9519 SHA512 a9d82573e2b61f84ed51b64a83d6ae4793077d17995402cb6822eb9e71d6cfe2c441eb70f706eb6b2df3b03ea7025a46e4824567c86189cc8f3a1f578a043e9b +DIST wine-mono-7.3.1-x86.msi 86930432 BLAKE2B f43b605ab7b07a7b4d8d4675297af6e827e81b2b232c6991fb1f559a247c6b546490017dd4e1aab04aad664570cb90152ff872be61bb8e12a154ae2366dbb21c SHA512 dd9f3860c4b52edce44f51b27de2a3b4acc97271d661e41310b889fa378f502458739caaa548fff5e16ddba418d40d647528c151c0413519df54c38f9e237946 +DIST wine-mono-7.3.1-x86.tar.xz 43216532 BLAKE2B bc00f41d2e9e88c0a687fad6bdd48e9a836f3d7369747602665691ca3e430c895655e9c5e9ef955a5cf45a96818b6858bc3cc93d90c3d7a49f8d8f4ff824d45a SHA512 a2c8d10d9b34fd7775eeddb6494b84f2f04e6a2f21d93940dc902434b189d43bdfdcd198baf8133cda8b17c2bc25ee84538e12a32027cdd66da9ab029eed6777 EBUILD wine-mono-7.0.0.ebuild 658 BLAKE2B 736288bbb65baa8757a7855e435bc10e18aab234793b78576df51e36bf63a417fbf428f1c5017a9a3a23954ce7cb49f05c3642354cd06fdcddc5066f29ce243c SHA512 e8579034f418b3f89013639607533e5af315003259649e6916649a4314e28f3db733aa77d0dd7b0ad58a4e7e1013e3cb8413203cdb58d81b88c5b7ae944724ce -EBUILD wine-mono-7.1.1.ebuild 660 BLAKE2B 717e0716e608ef4ccbfcaa2ce6fb2d7575803be75929cfd7d48f096321a92842a589e554d304f3de3a2d0777ec27eb3ef6bac42d7f8d404c30d31731e6f182e5 SHA512 044b057599fadfe22a0f7aa3263bb4daabab629963061abd4dc703ffc34fecbf9568e68e42925975015a981ec39c88a587d2bf2f6ac0fa72fcd64fb625495152 -EBUILD wine-mono-7.2.0.ebuild 660 BLAKE2B 717e0716e608ef4ccbfcaa2ce6fb2d7575803be75929cfd7d48f096321a92842a589e554d304f3de3a2d0777ec27eb3ef6bac42d7f8d404c30d31731e6f182e5 SHA512 044b057599fadfe22a0f7aa3263bb4daabab629963061abd4dc703ffc34fecbf9568e68e42925975015a981ec39c88a587d2bf2f6ac0fa72fcd64fb625495152 EBUILD wine-mono-7.3.0.ebuild 660 BLAKE2B 717e0716e608ef4ccbfcaa2ce6fb2d7575803be75929cfd7d48f096321a92842a589e554d304f3de3a2d0777ec27eb3ef6bac42d7f8d404c30d31731e6f182e5 SHA512 044b057599fadfe22a0f7aa3263bb4daabab629963061abd4dc703ffc34fecbf9568e68e42925975015a981ec39c88a587d2bf2f6ac0fa72fcd64fb625495152 +EBUILD wine-mono-7.3.1.ebuild 659 BLAKE2B 4f8e48d165f71e886b0736c42d6ce0e3be50806a9dfa5a70783b45d30eb5baa8e64732ddc1290186366963e3394134667d780cef3dc5a647a8439f3cb7803ee5 SHA512 684ecf95867c998b7d51d7e393775d3c49fb362ab519621d8ce0df26619602915b05d3199a7359781f9ea327ed20b06d905675fe461f8023ee0e2224e95c349a MISC metadata.xml 738 BLAKE2B 45cec53a33f954fa8e3d06e75f8d1cf7fdc01b46ba5df2b6de61fa966574e85e32d7b5db5bd424ceefc88099c98a8b3967d3ef1bbb45f3087899c174f4cfa6d8 SHA512 6537c87136e2188f3f5d2e03a055e5231ee13cf483fab052ee538b93e167d0d8d947d9237684acc44d504bf2480aeed3ff293ae31c5b57db251e81fc52278e24 diff --git a/app-emulation/wine-mono/wine-mono-5.1.1.ebuild b/app-emulation/wine-mono/wine-mono-5.1.1.ebuild deleted file mode 100644 index d5f8467a1af9..000000000000 --- a/app-emulation/wine-mono/wine-mono-5.1.1.ebuild +++ /dev/null @@ -1,29 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -DESCRIPTION="Wine Mono is a replacement for the .NET runtime and class libraries in Wine" -HOMEPAGE="https://www.winehq.org/" -SRC_URI=" - !shared? ( https://dl.winehq.org/wine/${PN}/${PV}/${P}-x86.msi ) - shared? ( https://dl.winehq.org/wine/${PN}/${PV}/${P}-x86.tar.xz ) -" - -LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT MPL-1.1" -SLOT="${PV}" -KEYWORDS="amd64 x86" -IUSE="+shared" - -DEPEND="!!app-emulation/wine:0" - -S="${WORKDIR}" - -src_install() { - insinto /usr/share/wine/mono - if use shared; then - doins -r "${P}" - else - doins "${DISTDIR}/${P}-x86.msi" - fi -} diff --git a/app-emulation/wine-mono/wine-mono-6.4.0.ebuild b/app-emulation/wine-mono/wine-mono-6.4.0.ebuild deleted file mode 100644 index b396802d99cc..000000000000 --- a/app-emulation/wine-mono/wine-mono-6.4.0.ebuild +++ /dev/null @@ -1,29 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -DESCRIPTION="Wine Mono is a replacement for the .NET runtime and class libraries in Wine" -HOMEPAGE="https://www.winehq.org/" -SRC_URI=" - !shared? ( https://dl.winehq.org/wine/${PN}/${PV}/${P}-x86.msi ) - shared? ( https://dl.winehq.org/wine/${PN}/${PV}/${P}-x86.tar.xz ) -" - -LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT MPL-1.1" -SLOT="${PV}" -KEYWORDS="~amd64 ~x86" -IUSE="+shared" - -DEPEND="!!app-emulation/wine:0" - -S="${WORKDIR}" - -src_install() { - insinto /usr/share/wine/mono - if use shared; then - doins -r "${P}" - else - doins "${DISTDIR}/${P}-x86.msi" - fi -} diff --git a/app-emulation/wine-mono/wine-mono-7.2.0.ebuild b/app-emulation/wine-mono/wine-mono-7.2.0.ebuild deleted file mode 100644 index 0836b039a90f..000000000000 --- a/app-emulation/wine-mono/wine-mono-7.2.0.ebuild +++ /dev/null @@ -1,29 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -DESCRIPTION="Wine Mono is a replacement for the .NET runtime and class libraries in Wine" -HOMEPAGE="https://www.winehq.org/" -SRC_URI=" - !shared? ( https://dl.winehq.org/wine/${PN}/${PV}/${P}-x86.msi ) - shared? ( https://dl.winehq.org/wine/${PN}/${PV}/${P}-x86.tar.xz ) -" - -LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT MPL-1.1" -SLOT="${PV}" -KEYWORDS="~amd64 ~x86" -IUSE="+shared" - -DEPEND="!!app-emulation/wine:0" - -S="${WORKDIR}" - -src_install() { - insinto /usr/share/wine/mono - if use shared; then - doins -r "${P}" - else - doins "${DISTDIR}/${P}-x86.msi" - fi -} diff --git a/app-emulation/wine-mono/wine-mono-7.1.1.ebuild b/app-emulation/wine-mono/wine-mono-7.3.1.ebuild index 0836b039a90f..f32c9e9a3a3f 100644 --- a/app-emulation/wine-mono/wine-mono-7.1.1.ebuild +++ b/app-emulation/wine-mono/wine-mono-7.3.1.ebuild @@ -1,29 +1,26 @@ # Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 -DESCRIPTION="Wine Mono is a replacement for the .NET runtime and class libraries in Wine" +DESCRIPTION="Replacement for the .NET runtime and class libraries in Wine" HOMEPAGE="https://www.winehq.org/" SRC_URI=" - !shared? ( https://dl.winehq.org/wine/${PN}/${PV}/${P}-x86.msi ) - shared? ( https://dl.winehq.org/wine/${PN}/${PV}/${P}-x86.tar.xz ) -" + shared? ( https://github.com/madewokherd/wine-mono/releases/download/${P}/${P}-x86.tar.xz ) + !shared? ( https://github.com/madewokherd/wine-mono/releases/download/${P}/${P}-x86.msi )" +S="${WORKDIR}" LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT MPL-1.1" SLOT="${PV}" KEYWORDS="~amd64 ~x86" IUSE="+shared" -DEPEND="!!app-emulation/wine:0" - -S="${WORKDIR}" - src_install() { insinto /usr/share/wine/mono + if use shared; then - doins -r "${P}" + doins -r ${P} else - doins "${DISTDIR}/${P}-x86.msi" + doins "${DISTDIR}"/${P}-x86.msi fi } diff --git a/app-emulation/wine-proton/Manifest b/app-emulation/wine-proton/Manifest index e719c7ce7d12..361b0cd22685 100644 --- a/app-emulation/wine-proton/Manifest +++ b/app-emulation/wine-proton/Manifest @@ -1,8 +1,9 @@ AUX README.gentoo 2457 BLAKE2B 42c29dcfb82526d10f9b40d7bf612d6fc4c8494294eb72d0fde0cf943b3152ef67d80fab71e5c64e74a26bb0da3b786b1eae5f6b5e35ebb66111c9356e19ac12 SHA512 5cf389e11a03cd71f49681fe55550b2629efef04d20e1a7a619e06d5525dd160fbffd0f53eae6c7e432cc3c4550b6d2aca46c84a7475cb95f3d2a25b4ad86678 -AUX wine-proton-7.0.4-llvm-libunwind.patch 400 BLAKE2B f735e18d702f06b12097a0de0f0216ff1192c272c90a42b6f5d68a94cf02940ec83684564aa36437657715dbc3c43af7b215ec0a7dc3c5e0aef6fb55f80e34e4 SHA512 83d002f2fe3149e663e8d2b8129fad83b8aa0320532aa19c1c45a9d61887661217cc11efcce28e4424c4542886c155bdd189a11967cc9a735cad493ab455b61f 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 +AUX wine-proton-7.0.4-unwind.patch 1694 BLAKE2B 954cb0a395c3b45afc7a3f39f33d34cf041b9cf5a6c77d0a217d296c4c8d1f6503322c4f77188c4729b98318913b9bc86d37b7573713643590550297a0ae372a SHA512 f958e811a4754614bc9e7223f727e2c581c18607dccf14c6d7014012ff29107bd850540a40ff7a62e7bae6b87ae1ac28fd104fbbaf9ce954bf3acb38ddbeb7df DIST proton-wine-7.0-4.tar.gz 45561670 BLAKE2B 0bc3432e5aa9ca1655e76b31dcbef08febe263e07d3635d005fbc7798b3a08fa50e2e736f33b18700f187dc755f012d7e8ae3edae6a63fb433cd9b8861b747b0 SHA512 dccdf4115e2a7c92981163783f5705e78fbfa042f06123e4802251bd2c558e8b4de7e3d2e114a5d942f9493eb64fb7fdedff2e6e8b3f21ea1de1156456930d8c -EBUILD wine-proton-7.0.4.ebuild 9801 BLAKE2B cc32f52cec7f073711e040ed3e3cfe01b683d351d0bf3e1c67559ecbe87d2d3c7d2fd83e4ba52a5d0289ba85b0daa751f31448a2d03882911b88bc74cc605e1e SHA512 219f5618fa2e10f8ce47fd316d87e1d76f20934babf785f522132fa2ab55c98af79674ba786fbcb1de70d0eb51a40b3f941a2764429b4035f475f238db3e1cbf +EBUILD wine-proton-7.0.4.ebuild 10189 BLAKE2B acc7b8e9c4a7b59228ea2b307d5807dba598d9c41a2606fd5bb1a1de8e9c3e5dab7e227613300d20daea2dcbc92def80d9e0dd1c3d81935cc0432318a25a2b2e SHA512 8e625c99ab4d65e6fa73b4cc78efd55eaa792e176b9d43a6f321ff58f02a6c4c1fc08336a9a01c7949e79aa324f1699292a4142c50db61990e90727db3393f39 +EBUILD wine-proton-7.0.9999.ebuild 10196 BLAKE2B fe0b3d4f4f0efcd24202be1b27d35dc54c01b57f2e6bc366d4836a2d17d88739559c3f2926ae12edd1bae3805d25c8dcf878ae4ce0261667d1bfdd85c87d4abd SHA512 de680348be175b0ab00090658fe791f66af5b9d8b5e6a63e10f0f02bcec83883dbc74081258824f93a5404c52a2dcc8bf403f2156a30b3543c1b7c9e965462ac MISC metadata.xml 1222 BLAKE2B 75e8a33a16e4d718c5299ae719cdd009e9ac6f0d2eafb112c9e38e7d860a51d7f4d5be14912c1c812718b36fd4d71a9d3ddf2c68f5a076fc71f5d47fab120736 SHA512 3fc770b9d6f1e7cb7cba7fc28f90d5f51ad431f38e757dcb47b03543985d0919e29b6648b8c3f6bb6e1c7b172bb164cde35e2fea24564e476088c1a91e6131c8 diff --git a/app-emulation/wine-proton/files/wine-proton-7.0.4-llvm-libunwind.patch b/app-emulation/wine-proton/files/wine-proton-7.0.4-llvm-libunwind.patch deleted file mode 100644 index 0086fa5e0353..000000000000 --- a/app-emulation/wine-proton/files/wine-proton-7.0.4-llvm-libunwind.patch +++ /dev/null @@ -1,9 +0,0 @@ -Note the dodgy _CONFIG_H_ check can be removed when >=llvm-libunwind-15 -(which adds _VERSION) is well established: https://reviews.llvm.org/D121015 ---- a/dlls/ntdll/unix/signal_x86_64.c -+++ b/dlls/ntdll/unix/signal_x86_64.c -@@ -1370,3 +1370,3 @@ - --#ifdef __APPLE__ -+#if defined(__APPLE__) || defined(_LIBUNWIND_VERSION) || defined(____LIBUNWIND_CONFIG_H__) - rc = unw_getcontext( &unw_context ); diff --git a/app-emulation/wine-proton/files/wine-proton-7.0.4-unwind.patch b/app-emulation/wine-proton/files/wine-proton-7.0.4-unwind.patch new file mode 100644 index 000000000000..372def52ba0c --- /dev/null +++ b/app-emulation/wine-proton/files/wine-proton-7.0.4-unwind.patch @@ -0,0 +1,40 @@ +Fix build with llvm-libunwind, and also fix for non-llvm libunwind +when using clang+bfd given clang doesn't have _Unwind_Find_FDE in +its rtlib and expects it from llvm-libunwind. + +The _CONFIG_H_ check is for <llvm-libunwind-15 (adds _VERSION). +--- a/dlls/ntdll/unix/signal_x86_64.c ++++ b/dlls/ntdll/unix/signal_x86_64.c +@@ -646,7 +646,9 @@ + unsigned int cie_offset; + }; + ++#if defined(_LIBUNWIND_VERSION) || defined(____LIBUNWIND_CONFIG_H__) || !defined(__clang__) + extern const struct dwarf_fde *_Unwind_Find_FDE (void *, struct dwarf_eh_bases *); ++#endif + + static unsigned char dwarf_get_u1( const unsigned char **p ) + { +@@ -1368,7 +1370,7 @@ + unw_proc_info_t info; + int rc; + +-#ifdef __APPLE__ ++#if defined(__APPLE__) || defined(_LIBUNWIND_VERSION) || defined(____LIBUNWIND_CONFIG_H__) + rc = unw_getcontext( &unw_context ); + if (rc == UNW_ESUCCESS) + rc = unw_init_local( &cursor, &unw_context ); +@@ -1491,11 +1493,13 @@ + NTSTATUS CDECL unwind_builtin_dll( ULONG type, DISPATCHER_CONTEXT *dispatch, CONTEXT *context ) + { + struct dwarf_eh_bases bases; ++#if defined(_LIBUNWIND_VERSION) || defined(____LIBUNWIND_CONFIG_H__) || !defined(__clang__) + const struct dwarf_fde *fde = _Unwind_Find_FDE( (void *)(context->Rip - 1), &bases ); + + if (fde) + return dwarf_virtual_unwind( context->Rip, &dispatch->EstablisherFrame, context, fde, + &bases, &dispatch->LanguageHandler, &dispatch->HandlerData ); ++#endif + #ifdef HAVE_LIBUNWIND + return libunwind_virtual_unwind( context->Rip, &dispatch->EstablisherFrame, context, + &dispatch->LanguageHandler, &dispatch->HandlerData ); diff --git a/app-emulation/wine-proton/wine-proton-7.0.4.ebuild b/app-emulation/wine-proton/wine-proton-7.0.4.ebuild index b7bb3868a11a..4d1b0a1aa939 100644 --- a/app-emulation/wine-proton/wine-proton-7.0.4.ebuild +++ b/app-emulation/wine-proton/wine-proton-7.0.4.ebuild @@ -12,20 +12,32 @@ WINE_GECKO=2.47.3 WINE_MONO=7.3.0 WINE_PV=$(ver_rs 2 -) +if [[ ${PV} == *9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/ValveSoftware/wine.git" + EGIT_BRANCH="experimental_$(ver_cut 1-2)" +else + SRC_URI="https://github.com/ValveSoftware/wine/archive/refs/tags/proton-wine-${WINE_PV}.tar.gz" + S="${WORKDIR}/${PN}-wine-${WINE_PV}" + KEYWORDS="-* ~amd64 ~x86" +fi + DESCRIPTION="Valve Software's fork of Wine" HOMEPAGE="https://github.com/ValveSoftware/wine/" -SRC_URI="https://github.com/ValveSoftware/wine/archive/refs/tags/proton-wine-${WINE_PV}.tar.gz" -S="${WORKDIR}/${PN}-wine-${WINE_PV}" LICENSE="LGPL-2.1+ BSD-2 IJG MIT ZLIB gsm libpng2 libtiff" SLOT="${PV}" -KEYWORDS="-* ~amd64 ~x86" IUSE=" +abi_x86_32 +abi_x86_64 +alsa crossdev-mingw custom-cflags debug +fontconfig +gecko +gstreamer llvm-libunwind +mono nls openal osmesa perl pulseaudio +sdl selinux +ssl udev udisks +unwind usb v4l +vkd3d +xcomposite xinerama" +# 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=" dev-libs/gmp:=[${MULTILIB_USEDEP}] dev-libs/libgcrypt:=[${MULTILIB_USEDEP}] @@ -94,10 +106,10 @@ IDEPEND=">=app-eselect/eselect-wine-1.2.2-r1" QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext PATCHES=( - "${FILESDIR}"/${PN}-7.0.4-llvm-libunwind.patch "${FILESDIR}"/${PN}-7.0.4-musl.patch "${FILESDIR}"/${PN}-7.0.4-noexecstack.patch "${FILESDIR}"/${PN}-7.0.4-restore-menubuilder.patch + "${FILESDIR}"/${PN}-7.0.4-unwind.patch ) pkg_pretend() { @@ -106,25 +118,29 @@ pkg_pretend() { if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then local mingw=-w64-mingw32 for mingw in $(usev abi_x86_64 x86_64${mingw}) $(usev abi_x86_32 i686${mingw}); do - type -P ${mingw}-gcc >/dev/null && continue - 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" - eerror "--> Note that mingw builds are default for ${PN} even without this USE." - die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found" + 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" + eerror "--> Note that mingw builds are default for ${PN} even without this USE." + 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)" - [[ ${WINE_GECKO}$'\n'${WINE_MONO} == "${geckomono}" ]] || - die "gecko/mono mismatch, has:" ${geckomono} + 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 @@ -134,10 +150,10 @@ src_prepare() { # similarly to staging, append to `wine --version` for identification sed -i "s/wine_build[^1]*1/& (Proton-${WINE_PV})/" configure.ac || die - # source has outdated auto-generated files, update like Proton's Makefile + # always update for patches (including user's wrt #432348) eautoreconf tools/make_requests || die # perl - dlls/winevulkan/make_vulkan -x vk.xml || die # python + dlls/winevulkan/make_vulkan -x vk.xml || die # python, needed for proton's } src_configure() { @@ -162,7 +178,6 @@ src_configure() { # ...and disable most options unimportant for games and unused by # Proton rather than expose as volatile USEs with little support - --disable-tests # does not build and is disabled in Proton's Makefile --without-capi --without-cups --without-gphoto @@ -177,13 +192,14 @@ src_configure() { $(use_enable gecko mshtml) $(use_enable mono mscoree) + --disable-tests $(use_with alsa) $(use_with fontconfig) $(use_with gstreamer) $(use_with nls gettext) $(use_with openal) $(use_with osmesa) - --without-oss # media-sound/oss is not packaged + --without-oss # media-sound/oss is not packaged (OSSv4) $(use_with pulseaudio pulse) $(use_with sdl) $(use_with ssl gnutls) @@ -220,7 +236,7 @@ src_configure() { $(usev abi_x86_64 --with-wine64=../build64) TARGETFLAGS=-m32 # for widl ) - # _setup is optional, but use over Wine's auto-detect (+bug 472038) + # _setup is optional, but use over Wine's auto-detect (+#472038) multilib_toolchain_setup x86 fi : "${CROSSCC:=${CROSSCC_x86:-i686-w64-mingw32-gcc}}" @@ -262,8 +278,7 @@ src_install() { 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, quotes are - # enough to prevent bug #615218 if it somehow happens + # create variant wrappers for eselect-wine local bin for bin in "${ED}"${WINE_PREFIX}/bin/*; do make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}" diff --git a/app-emulation/wine-proton/wine-proton-7.0.9999.ebuild b/app-emulation/wine-proton/wine-proton-7.0.9999.ebuild new file mode 100644 index 000000000000..0df6fada339d --- /dev/null +++ b/app-emulation/wine-proton/wine-proton-7.0.9999.ebuild @@ -0,0 +1,319 @@ +# Copyright 2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MULTILIB_COMPAT=( abi_x86_{32,64} ) +PYTHON_COMPAT=( python3_{8..11} ) +inherit autotools flag-o-matic multilib multilib-build \ + python-any-r1 readme.gentoo-r1 toolchain-funcs wrapper + +WINE_GECKO=2.47.3 +WINE_MONO=7.3.1 +WINE_PV=$(ver_rs 2 -) + +if [[ ${PV} == *9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/ValveSoftware/wine.git" + EGIT_BRANCH="experimental_$(ver_cut 1-2)" +else + SRC_URI="https://github.com/ValveSoftware/wine/archive/refs/tags/proton-wine-${WINE_PV}.tar.gz" + S="${WORKDIR}/${PN}-wine-${WINE_PV}" + KEYWORDS="-* ~amd64 ~x86" +fi + +DESCRIPTION="Valve Software's fork of Wine" +HOMEPAGE="https://github.com/ValveSoftware/wine/" + +LICENSE="LGPL-2.1+ BSD-2 IJG MIT ZLIB gsm libpng2 libtiff" +SLOT="${PV}" +IUSE=" + +abi_x86_32 +abi_x86_64 +alsa crossdev-mingw custom-cflags debug + +fontconfig +gecko +gstreamer llvm-libunwind +mono nls openal + osmesa perl pulseaudio +sdl selinux +ssl udev udisks +unwind usb + v4l +vkd3d +xcomposite xinerama" + +# 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=" + dev-libs/gmp:=[${MULTILIB_USEDEP}] + dev-libs/libgcrypt:=[${MULTILIB_USEDEP}] + media-libs/freetype[${MULTILIB_USEDEP}] + media-libs/libglvnd[X,${MULTILIB_USEDEP}] + media-libs/vulkan-loader[${MULTILIB_USEDEP}] + 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}] + fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] ) + osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] ) + sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] ) + ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] ) + udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) + v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] ) + xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) + xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )" +WINE_COMMON_DEPEND=" + ${WINE_DLOPEN_DEPEND} + x11-libs/libX11[${MULTILIB_USEDEP}] + x11-libs/libXext[${MULTILIB_USEDEP}] + alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] ) + gstreamer? ( + dev-libs/glib:2[${MULTILIB_USEDEP}] + media-libs/gst-plugins-base:1.0[opengl,${MULTILIB_USEDEP}] + media-libs/gstreamer:1.0[${MULTILIB_USEDEP}] + ) + openal? ( media-libs/openal[${MULTILIB_USEDEP}] ) + pulseaudio? ( media-libs/libpulse[${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}] ) + vkd3d? ( >=app-emulation/vkd3d-1.2[${MULTILIB_USEDEP}] )" +RDEPEND=" + ${WINE_COMMON_DEPEND} + app-emulation/wine-desktop-common + 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 + ) + selinux? ( sec-policy/selinux-wine ) + udisks? ( sys-fs/udisks:2 )" +DEPEND=" + ${WINE_COMMON_DEPEND} + sys-kernel/linux-headers + x11-base/xorg-proto" +BDEPEND=" + ${PYTHON_DEPS} + dev-lang/perl + sys-devel/bison + sys-devel/flex + virtual/pkgconfig + nls? ( sys-devel/gettext ) + !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] )" +IDEPEND=">=app-eselect/eselect-wine-1.2.2-r1" + +QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext + +PATCHES=( + "${FILESDIR}"/${PN}-7.0.4-musl.patch + "${FILESDIR}"/${PN}-7.0.4-noexecstack.patch + "${FILESDIR}"/${PN}-7.0.4-restore-menubuilder.patch + "${FILESDIR}"/${PN}-7.0.4-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" + eerror "--> Note that mingw builds are default for ${PN} even without this USE." + 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 + + # similarly to staging, append to `wine --version` for identification + sed -i "s/wine_build[^1]*1/& (Proton-${WINE_PV})/" configure.ac || die + + # always update for patches (including user's wrt #432348) + eautoreconf + tools/make_requests || die # perl + dlls/winevulkan/make_vulkan -x vk.xml || die # python, needed for proton's +} + +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 + + # upstream (Valve) doesn't really support misc configurations (e.g. + # adds vulkan code not always guarded by --with-vulkan), so force + # some major options that are typically needed by games either way + --with-freetype + --with-mingw # needed by many, notably Blizzard titles + --with-opengl + --with-vulkan + --with-x + + # ...and disable most options unimportant for games and unused by + # Proton rather than expose as volatile USEs with little support + --without-capi + --without-cups + --without-gphoto + --without-gssapi + --without-krb5 + --without-ldap + --without-netapi + --without-opencl + --without-pcap + --without-sane + ac_cv_lib_soname_odbc= + + $(use_enable gecko mshtml) + $(use_enable mono mscoree) + --disable-tests + $(use_with alsa) + $(use_with fontconfig) + $(use_with gstreamer) + $(use_with nls gettext) + $(use_with openal) + $(use_with osmesa) + --without-oss # media-sound/oss is not packaged (OSSv4) + $(use_with pulseaudio pulse) + $(use_with sdl) + $(use_with ssl gnutls) + $(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 vkd3d) + $(use_with xcomposite) + $(use_with xinerama) + ) + + 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} + + # 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 + + # CROSSCC_amd64/x86 are unused by Wine, but recognized here for users + if (( bits == 64 )); then + : "${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}}" + + # use *FLAGS for mingw, but strip unsupported (e.g. --hash-style=gnu) + : "${CROSSCFLAGS:=$(CC=${CROSSCC} test-flags-CC ${CFLAGS:--O2})}" + : "${CROSSLDFLAGS:=$( + filter-flags '-fuse-ld=*' + CC=${CROSSCC} test-flags-CCLD ${LDFLAGS})}" + export CROSS{CC,{C,LD}FLAGS} + + 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) + 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 + + dodoc ANNOUNCE AUTHORS README* documentation/README* + readme.gentoo_create_doc +} + +wine-eselect() { + ebegin "${1^}ing ${P} using eselect-wine" + eselect wine ${1} ${P} && + eselect wine ${1} --${PN#wine-} ${P} && + eselect wine update --if-unset && + eselect wine update --${PN#wine-} --if-unset + eend ${?} || die -n "eselect failed, may need to manually handle ${P}" +} + +pkg_preinst() { + has_version ${CATEGORY}/${PN} && WINE_HAD_ANY_SLOT= +} + +pkg_postinst() { + wine-eselect register + + [[ -v WINE_HAD_ANY_SLOT ]] || readme.gentoo_print_elog +} + +pkg_prerm() { + nonfatal wine-eselect deregister +} diff --git a/app-emulation/wine-staging/Manifest b/app-emulation/wine-staging/Manifest index 1e801b7b63a4..c598059aab82 100644 --- a/app-emulation/wine-staging/Manifest +++ b/app-emulation/wine-staging/Manifest @@ -1,19 +1,11 @@ +AUX wine-staging-7.17-noexecstack.patch 223 BLAKE2B 6e6cfc208f11c2c2b7bbc392e3703c50669ba9abf088dac0dd7aa8d6e59fcdd6656f5ad6955e4ef87c25d6f4082d83af71a09b2928934222b25847b8b2b5089f SHA512 43fc5c50c33e09f028c2369a660499fbb6c240931c6b7d44c4e838deee1df0390706967b375d36ee8eea339e86a5af1c7a49a76d884860c045c3476d8c8d2a5f +AUX wine-staging-7.17-unwind.patch 1694 BLAKE2B ad8ba23e07a846152bd93e76a0b226869c8a9a28f197321b0faec3ad3721d05b892c69829d89933f245a7b6e0c8070db0e7dfef7d4b9bb047052d57f5ba7067b SHA512 80c3a1f347e7250cb1d7ab958507987b2aaeaf660c4ffb95c19118011ee61957629a9e28f2600fdafb384b61c26f50bcdaebab1fcbe30a9553c63cbed664c817 DIST gentoo-wine-patches-20211122.tar.xz 59796 BLAKE2B 21460e6adf4934a52f8841f76f234a764c2dc1ac77eeed1cee10adafec3aa723640ebd4b51559e9ef433070ac731c4648620bd9e75e99f31b2e2f494cf01f02d SHA512 a18cb320617e2157977032c38c322177a2d248f14e43051d38de595af171495546c93d5e71e0dbe1a4f326a2dc819bb03dcfd04454ac85bbcd6b1975ae5d9d96 -DIST wine-7.12.tar.xz 28221024 BLAKE2B 551f37360a6dd2c535b5b1a9896cd9c9c091d56c4d2f3d2988092d48d54aa447fc0dad18034bad7b7beaa9c6587071e8d32bd08092a9ba93acb39dac9ddfc391 SHA512 4746fb1c3d0ec7f20e22d821f8e88e5415b85cb60f53e9ad61b89e8321b6a6b2999eb2b70c7ac46477f633bccb6c2aba49ce2655c380cb85cd5c71dbe4af50b4 -DIST wine-7.13.tar.xz 28237664 BLAKE2B f65f6ab2ec159d0a25b44e6bcbc83db2c5ada6b0c39dd0e3fe86db74bb964d0b1bcba85e5300d5140e24c305b7e30a58953e7582df8a2117ce5d8127538f484b SHA512 2eca3aa80afa19dd0cc3cfeb8b58b78d22d2925b8201e0b7278638084a529870c1468ffc300e6a1bb343d0f0c7e28c2b3bb6c59af15dec43b8f6c1eb78b46c1e -DIST wine-7.14.tar.xz 28274396 BLAKE2B 632c4c77a5b93597b8b217a04e34a4867d9e34497322cbcdf89d3bd2c98ee2ce27983582e1aa6737ec6bf5e080f64bcb4813f3e5c83b67cebd36895251a07e2f SHA512 6727be4a23b1911b36c44ac8d347be1c98bb53e67101355d6ae829d14a3a0867ba83f77a52f4dbc02a35c3b513291dd4800148a31d28f50069d199fdee04b6e9 -DIST wine-7.15.tar.xz 28324772 BLAKE2B 2ae7f693acfa3477c5b925cb6bfc6e2c3094cf56049aae9a310206dce3ef26d32af74ab414f06020dc0e9cf782b8e3cf6b65739ae10b71e783415498b7339618 SHA512 9edf9f6169c26fd829255d323ebdda4fd606f9cf9dfebae2c0823c32a2ca40741e10acba6938e0d49a99dd15276795506887ab582fed296beb0202f77b2db1b4 DIST wine-7.16.tar.xz 28345428 BLAKE2B 6540dd196639c5b3e01af801439e4ca8d3d17ce6b9832c3ab7d0263909e0a963a5901b8baad00537242c32599af92d04ad58c9f51660583e28693b4ec1bdd803 SHA512 5085c7c1b0e762c508f33775f7f0aa41e94cb75805bb649093addad25f90f7f57d5101ba96227f58a6f18b3ae228bd004df11ec1c033692ad130e9b5279ea19e -DIST wine-staging-7.12.tar.gz 9644343 BLAKE2B 760b34abf245b8d2e5baed13db57a841bba73f9dd6652f958428fec3617000cdc00d6f3ac305f4b580cf462938a56ef9a6f0c6931306c25ce82b7fe4da314d9f SHA512 0cf7554011835052b75a836fca89c6cf9b5fa1653c96a82b0dcd3cf40147602eebaf81aa6b94348432371bef9550c8dc21c9cf7d78b49a422bd113e8a6a8e3b0 -DIST wine-staging-7.13.tar.gz 9644182 BLAKE2B 1fecdd231e93de44d4327cceef0f72759de331b507ea16cd39749be3195716883a5327804f6379ca563e635fbf317d131d6cf87e4b49f177a45116ee3be55527 SHA512 f0fbd0d96272e457006d0eac350905e2fd27b472943d08771b4cd1cde88afefeb239e46f88979bcb7d45d525610f5d69c74bf8294b101e064ca2051494ab3127 -DIST wine-staging-7.14.tar.gz 9644603 BLAKE2B d923321c1562e71c7826e73aec52bd0fb451bb8ff302841f7756428c23b80ea00f815d1a6cc5e3354a83ce87137b2af7ac3389c2c018344cf80afdae50f151b1 SHA512 40ffa7a64780a054bdace9fd5f294a45f7648f6db933ba0a74450b5412df5cc989b7aa442dcba1f185f8d0e5a7740a9508203f1ee323f26fd77867caa9d4fcb3 -DIST wine-staging-7.15.tar.gz 9644942 BLAKE2B 1d04730b540785d03cec919ee643cd182c09c3ad022a6b9f5111348ea82a7c3e34e2108141e544855423224db15a5d954623840b3a0d3e3709d0cd23ad1e3236 SHA512 57b6145b3a39a8fb5e98648072e3c1f4f1528fdcfe1f8612f41dc7e0ea4fcc09e4e78d3bbe8fa7a5c14ff0708328306cf0eb8367016f6b2fda9e34f0f1be0621 +DIST wine-7.17.tar.xz 28379876 BLAKE2B 536af8f1ac9c4dd8bae2d16cba226c99c45cd64f0a9a2569022baefee61556801d3ee15f480fd18445baecb6c78dd7950f98542dc88a3282ee5d457d0e4ddfb1 SHA512 fd8017e6174db0047a3957db3045b2ad9024e07b1e2f81800521f0b7e7f7660add6a08e09bc60e3d140816cec70aae8324fe15643bd05e541f22f66ffda52508 DIST wine-staging-7.16.tar.gz 9640421 BLAKE2B 551a282c40de44a03afd7d6ef7edefac29e6ece53bd9eff854076edab400ed58c37f2d89737354c7a9d3ac9af7c576bc0ec68c61159842e9b46ac4d95c0d07ae SHA512 57003888580f3c442b9d9bc1b36c3e967bfe5b5d61b7fcd8d832a463cbea793c4bf6afce35da18ea9cee568237a0a919583e1dc6b3fea7bc09a7a13e9d9260ce -EBUILD wine-staging-7.12.ebuild 17021 BLAKE2B a67311b78f4deda60f566ac335402d6118a730b4fbe59e58cdb6dfc8b25f7f4353e0fa99d54f25b9e6c3925d25a8d218f72d71ff45123f1c1582b58bd36f56c7 SHA512 8d7df87b79a2d59d2619545bbc225c1300e3df02ef8f03558741e837ed33b88020e7c3f8d076b40089570a008895416fec42889c3b262f1ab6a9a223a5ef3a4f -EBUILD wine-staging-7.13-r1.ebuild 16977 BLAKE2B bc32f45e02d4918a011a238ece43682ac104fa44b59a5337bed4dd1c03f0c4a2231b9d7d996919014b267bcfc2135e7eed3e7ec2e38daac72af70c220ab9e03d SHA512 749abb89eaa7e1615d677085ca9a8d967f977491551271bb3118fb4a23ab761a9cab8b7bdff5d103b98d9a63b8949efce05886e256419b3e63e0dfd2cf5c15c5 -EBUILD wine-staging-7.13.ebuild 17021 BLAKE2B a67311b78f4deda60f566ac335402d6118a730b4fbe59e58cdb6dfc8b25f7f4353e0fa99d54f25b9e6c3925d25a8d218f72d71ff45123f1c1582b58bd36f56c7 SHA512 8d7df87b79a2d59d2619545bbc225c1300e3df02ef8f03558741e837ed33b88020e7c3f8d076b40089570a008895416fec42889c3b262f1ab6a9a223a5ef3a4f -EBUILD wine-staging-7.14.ebuild 16977 BLAKE2B bc32f45e02d4918a011a238ece43682ac104fa44b59a5337bed4dd1c03f0c4a2231b9d7d996919014b267bcfc2135e7eed3e7ec2e38daac72af70c220ab9e03d SHA512 749abb89eaa7e1615d677085ca9a8d967f977491551271bb3118fb4a23ab761a9cab8b7bdff5d103b98d9a63b8949efce05886e256419b3e63e0dfd2cf5c15c5 -EBUILD wine-staging-7.15.ebuild 16977 BLAKE2B bc32f45e02d4918a011a238ece43682ac104fa44b59a5337bed4dd1c03f0c4a2231b9d7d996919014b267bcfc2135e7eed3e7ec2e38daac72af70c220ab9e03d SHA512 749abb89eaa7e1615d677085ca9a8d967f977491551271bb3118fb4a23ab761a9cab8b7bdff5d103b98d9a63b8949efce05886e256419b3e63e0dfd2cf5c15c5 +DIST wine-staging-7.17.tar.gz 9558133 BLAKE2B ef56bae5168da021688766e1cfbc8bd510a18b0de670b0baab631389665d52230e4f9ecda2edff1f50cbd444098d33236fd0f685183e9074efc6d048665c6931 SHA512 2e9c260b56293d86a54833d128d98b2408f61a5601f0ef58db6ff02a9c5cb091d3e9acf7f6a616d7d065d9c02127936da6bdc30e6ee11b116d24aab579f512fb EBUILD wine-staging-7.16.ebuild 17302 BLAKE2B cce4c8c666066ada3d2974898413bd66aaab8dd081b8ac3b941f524215c173ce1cb9fc4870285e53f2b22e1651a965d57ae2fa279b64f54c92a22057ee475374 SHA512 0d2bb23e3f9fa8b168dd8020baffc8ae3a4b001fda89ea7bf1558f8929be4f610e4cb0db9e216759893328f44fe4220ad7a885afed05604e96904fcfedde5410 -EBUILD wine-staging-9999.ebuild 17302 BLAKE2B cce4c8c666066ada3d2974898413bd66aaab8dd081b8ac3b941f524215c173ce1cb9fc4870285e53f2b22e1651a965d57ae2fa279b64f54c92a22057ee475374 SHA512 0d2bb23e3f9fa8b168dd8020baffc8ae3a4b001fda89ea7bf1558f8929be4f610e4cb0db9e216759893328f44fe4220ad7a885afed05604e96904fcfedde5410 -MISC metadata.xml 3391 BLAKE2B d6da53830248d3f66ba4cc850f7d879f2d7ba636f51a657ff8078349ca5bbb0e1f20693792f56fdb2739e0d4cd85345f7ee7da06d11c4e573767dd2fb508a0c1 SHA512 e344bd026808190ffab209cc7deeeb32659be30a41a5f81ddbf23e95773ffa831c0534b7184bd6e9cee0d8ea79ec7985188d1ca066d9af493f9ec3da461d81e7 +EBUILD wine-staging-7.17.ebuild 10975 BLAKE2B a945b34e76037fb4ecfa9fa0ea5f56ecb5b9980a708798be179afa5d4745118f9068eeaab5e69b0d87be1601aa707435782514d41ee8e4f7e281bd2e55433e0d SHA512 ae87636754e3193b85974a7baf2ba8180787b09d793c3458701199a19c7136686ead236791d0ed40ae56c5b103603cd48df38bde4152228c9907b59e4af865b7 +EBUILD wine-staging-9999.ebuild 10975 BLAKE2B a945b34e76037fb4ecfa9fa0ea5f56ecb5b9980a708798be179afa5d4745118f9068eeaab5e69b0d87be1601aa707435782514d41ee8e4f7e281bd2e55433e0d SHA512 ae87636754e3193b85974a7baf2ba8180787b09d793c3458701199a19c7136686ead236791d0ed40ae56c5b103603cd48df38bde4152228c9907b59e4af865b7 +MISC metadata.xml 2751 BLAKE2B 333c6e899ba09ab835683943854f9885f1a5369e41cdbcde42b172e435d787a5af374422187c03e896ba12046ee347a54cef0679cf24827c000324ebb0283e3b SHA512 84788a7d49d7ab8f8321354afcef0d703229dfac7145f1a1dd2fb0febbfd8e9356d21aeec283d5219217768a930900943d1c81a8837ad03b4279e5c2fdd18583 diff --git a/app-emulation/wine-staging/files/wine-staging-7.17-noexecstack.patch b/app-emulation/wine-staging/files/wine-staging-7.17-noexecstack.patch new file mode 100644 index 000000000000..4baa48cfc140 --- /dev/null +++ b/app-emulation/wine-staging/files/wine-staging-7.17-noexecstack.patch @@ -0,0 +1,7 @@ +Also write GNU-stack note on dummy files used for stub libraries. +--- a/tools/winebuild/import.c ++++ b/tools/winebuild/import.c +@@ -1676,2 +1676,3 @@ + output( "\t.text\n" ); ++ output_gnu_stack_note(); + } diff --git a/app-emulation/wine-staging/files/wine-staging-7.17-unwind.patch b/app-emulation/wine-staging/files/wine-staging-7.17-unwind.patch new file mode 100644 index 000000000000..52512ca82968 --- /dev/null +++ b/app-emulation/wine-staging/files/wine-staging-7.17-unwind.patch @@ -0,0 +1,40 @@ +Fix build with llvm-libunwind, and also fix for non-llvm libunwind +when using clang+bfd given clang doesn't have _Unwind_Find_FDE in +its rtlib and expects it from llvm-libunwind. + +The _CONFIG_H_ check is for <llvm-libunwind-15 (adds _VERSION). +--- a/dlls/ntdll/unix/signal_x86_64.c ++++ b/dlls/ntdll/unix/signal_x86_64.c +@@ -734,7 +734,9 @@ + unsigned int cie_offset; + }; + ++#if defined(_LIBUNWIND_VERSION) || defined(____LIBUNWIND_CONFIG_H__) || !defined(__clang__) + extern const struct dwarf_fde *_Unwind_Find_FDE (void *, struct dwarf_eh_bases *); ++#endif + + static unsigned char dwarf_get_u1( const unsigned char **p ) + { +@@ -1456,7 +1458,7 @@ + unw_proc_info_t info; + int rc; + +-#ifdef __APPLE__ ++#if defined(__APPLE__) || defined(_LIBUNWIND_VERSION) || defined(____LIBUNWIND_CONFIG_H__) + rc = unw_getcontext( &unw_context ); + if (rc == UNW_ESUCCESS) + rc = unw_init_local( &cursor, &unw_context ); +@@ -1579,11 +1581,13 @@ + NTSTATUS CDECL unwind_builtin_dll( ULONG type, DISPATCHER_CONTEXT *dispatch, CONTEXT *context ) + { + struct dwarf_eh_bases bases; ++#if defined(_LIBUNWIND_VERSION) || defined(____LIBUNWIND_CONFIG_H__) || !defined(__clang__) + const struct dwarf_fde *fde = _Unwind_Find_FDE( (void *)(context->Rip - 1), &bases ); + + if (fde) + return dwarf_virtual_unwind( context->Rip, &dispatch->EstablisherFrame, context, fde, + &bases, &dispatch->LanguageHandler, &dispatch->HandlerData ); ++#endif + #ifdef HAVE_LIBUNWIND + return libunwind_virtual_unwind( context->Rip, &dispatch->EstablisherFrame, context, + &dispatch->LanguageHandler, &dispatch->HandlerData ); diff --git a/app-emulation/wine-staging/metadata.xml b/app-emulation/wine-staging/metadata.xml index ac05bc09abde..d65b9b9e346e 100644 --- a/app-emulation/wine-staging/metadata.xml +++ b/app-emulation/wine-staging/metadata.xml @@ -13,35 +13,26 @@ Think of Wine as a compatibility layer for running Windows programs. Wine does n This variant of the Wine packaging includes the Wine-Staging patchset. </longdescription> <use> - <flag name="capi">Enable ISDN support via CAPI</flag> + <flag name="capi">Enable ISDN support using <pkg>net-libs/libcapi</pkg></flag> <flag name="crossdev-mingw"> Use <pkg>sys-devel/crossdev</pkg> for the toolchain rather than <pkg>dev-util/mingw64-toolchain</pkg> (requires manual setting up) </flag> - <flag name="custom-cflags">Bypass strip-flags; use at your own peril</flag> <flag name="dos">Pull in <pkg>games-emulation/dosbox</pkg> to run DOS applications</flag> - <flag name="gecko">Add support for the Gecko engine when using iexplore</flag> - <flag name="gssapi">Use GSSAPI (Kerberos SSP support)</flag> - <flag name="gstreamer">Use <pkg>media-libs/gstreamer</pkg> to provide DirectShow functionality;</flag> - <flag name="mingw">Build PE files using a MinGW cross compiler</flag> - <flag name="mono">Add support for .NET using Wine's Mono add-on</flag> - <flag name="netapi">Use libnetapi from <pkg>net-fs/samba</pkg> to support Windows networks in netapi32.dll</flag> + <flag name="gecko">Enable mshtml support using <pkg>app-emulation/wine-gecko</pkg></flag> + <flag name="mingw">Build PE files using a MinGW toolchain for better compatibility</flag> + <flag name="mono">Enable .NET support using <pkg>app-emulation/wine-mono</pkg></flag> + <flag name="netapi">Enable support for configuring remote shares using <pkg>net-fs/samba</pkg></flag> <flag name="opencl">Enable OpenCL support</flag> - <flag name="osmesa">Add support for OpenGL in bitmaps using libOSMesa</flag> + <flag name="osmesa">Enable off-screen rendering (OpenGL in bitmaps) support</flag> <flag name="pcap">Support packet capture software (e.g. wireshark)</flag> - <flag name="perl">Install helpers written in perl (winedump/winemaker)</flag> + <flag name="perl">Install helpers that require perl (winedump/winemaker)</flag> <flag name="pipelight">Apply Wine-Staging patches for Pipelight/Silverlight support</flag> <flag name="realtime">Pull in <pkg>sys-auth/rtkit</pkg> for low-latency pulseaudio support</flag> <flag name="run-exes">Use Wine to open and run .EXE and .MSI files</flag> - <flag name="samba">Add support for NTLM auth. See: - https://web.archive.org/web/20160108123008/http://wiki.winehq.org:80/NtlmAuthSetupGuide and - https://web.archive.org/web/20150906013746/http://wiki.winehq.org/NtlmSigningAndSealing - (these pages are not currently in the updated WineHQ Wiki).</flag> - <flag name="sdl">Add support for gamepad detection using SDL</flag> + <flag name="samba">Pull in <pkg>net-fs/samba</pkg> with winbind for NTLM auth support</flag> + <flag name="sdl">Enable gamepad support using <pkg>media-libs/libsdl2</pkg></flag> <flag name="staging">Apply Wine-Staging patches for advanced feature support that haven't made it into upstream Wine yet</flag> - <flag name="udev">Use <pkg>virtual/libudev</pkg> to provide plug and play support</flag> - <flag name="unwind">Use <pkg>sys-libs/libunwind</pkg> to unwind the stack</flag> - <flag name="usb">Use <pkg>virtual/libusb</pkg> to provide USB support</flag> <flag name="vulkan">Enable Vulkan drivers</flag> </use> <upstream> diff --git a/app-emulation/wine-staging/wine-staging-7.12.ebuild b/app-emulation/wine-staging/wine-staging-7.12.ebuild deleted file mode 100644 index fc41e0c525ab..000000000000 --- a/app-emulation/wine-staging/wine-staging-7.12.ebuild +++ /dev/null @@ -1,544 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PLOCALES="ar ast bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru si sk sl sr_RS@cyrillic sr_RS@latin sv ta te th tr uk wa zh_CN zh_TW" -PLOCALE_BACKUP="en" - -inherit autotools estack flag-o-matic multilib-minimal pax-utils plocale toolchain-funcs virtualx wrapper xdg-utils -MY_PN="${PN%%-*}" -MY_PV="${PV/_/-}" -MY_P="${MY_PN}-${MY_PV}" - -if [[ ${MY_PV} == "9999" ]] ; then - EGIT_REPO_URI="https://source.winehq.org/git/wine.git" - EGIT_BRANCH="master" - inherit git-r3 - SRC_URI="" - #KEYWORDS="" -else - MAJOR_V=$(ver_cut 1) - MINOR_V=$(ver_cut 2) - if [[ ${MINOR_V} != "0" ]] ; then - MINOR_V="x" - fi - SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.${MINOR_V}/${MY_P}.tar.xz" - KEYWORDS="-* ~amd64 ~x86" -fi -S="${WORKDIR}/${MY_P}" - -STAGING_P="wine-staging-${MY_PV}" -STAGING_DIR="${WORKDIR}/${STAGING_P}" -GWP_V="20211122" -PATCHDIR="${WORKDIR}/gentoo-wine-patches" - -DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset" -HOMEPAGE="https://www.winehq.org/" -SRC_URI="${SRC_URI} - https://dev.gentoo.org/~sarnex/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz -" - -if [[ ${MY_PV} == "9999" ]] ; then - STAGING_EGIT_REPO_URI="https://github.com/wine-staging/wine-staging.git" -else - SRC_URI="${SRC_URI} - staging? ( https://github.com/wine-staging/wine-staging/archive/v${MY_PV}.tar.gz -> ${STAGING_P}.tar.gz )" -fi - -LICENSE="LGPL-2.1" -SLOT="${MY_PV}" -IUSE="+abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups custom-cflags dos +fontconfig +gecko gphoto2 gssapi gstreamer kerberos ldap mingw +mono mp3 netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pipelight pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl staging test +threads +truetype udev +udisks +unwind usb v4l vulkan +X +xcomposite xinerama" -REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 ) - X? ( truetype ) - crossdev-mingw? ( mingw ) - elibc_glibc? ( threads ) - osmesa? ( opengl ) - pipelight? ( staging ) - test? ( abi_x86_32 )" # osmesa-opengl #286560 # X-truetype #551124 - -# FIXME: the test suite is unsuitable for us; many tests require net access -# or fail due to Xvfb's opengl limitations. -RESTRICT="test" - -BDEPEND="sys-devel/flex - virtual/yacc - virtual/pkgconfig - mingw? ( !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] ) )" - -COMMON_DEPEND=" - X? ( - x11-libs/libXcursor[${MULTILIB_USEDEP}] - x11-libs/libXext[${MULTILIB_USEDEP}] - x11-libs/libXfixes[${MULTILIB_USEDEP}] - x11-libs/libXrandr[${MULTILIB_USEDEP}] - x11-libs/libXi[${MULTILIB_USEDEP}] - x11-libs/libXxf86vm[${MULTILIB_USEDEP}] - ) - alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] ) - capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] ) - cups? ( net-print/cups:=[${MULTILIB_USEDEP}] ) - fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] ) - gphoto2? ( - media-libs/libgphoto2:=[${MULTILIB_USEDEP}] - media-libs/libjpeg-turbo:0=[${MULTILIB_USEDEP}] - ) - gssapi? ( virtual/krb5[${MULTILIB_USEDEP}] ) - gstreamer? ( - media-libs/gstreamer:1.0[${MULTILIB_USEDEP}] - media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] - ) - kerberos? ( virtual/krb5:0=[${MULTILIB_USEDEP}] ) - ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] ) - netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] ) - nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] ) - odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] ) - openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] ) - opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) - opengl? ( - virtual/opengl[${MULTILIB_USEDEP}] - ) - osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] ) - pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] ) - pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] ) - scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] ) - sdl? ( media-libs/libsdl2:=[haptic,joystick,${MULTILIB_USEDEP}] ) - ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] ) - staging? ( sys-apps/attr[${MULTILIB_USEDEP}] ) - truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] ) - udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] ) - udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) - unwind? ( sys-libs/libunwind[${MULTILIB_USEDEP}] ) - usb? ( virtual/libusb:1[${MULTILIB_USEDEP}] ) - v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] ) - vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] ) - xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) - xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )" - -RDEPEND="${COMMON_DEPEND} - app-emulation/wine-desktop-common - >app-eselect/eselect-wine-0.3 - dos? ( >=games-emulation/dosbox-0.74_p20160629 ) - gecko? ( app-emulation/wine-gecko:2.47.3[abi_x86_32?,abi_x86_64?] ) - mono? ( app-emulation/wine-mono:7.3.0 ) - perl? ( - dev-lang/perl - dev-perl/XML-Simple - ) - pulseaudio? ( - realtime? ( sys-auth/rtkit ) - ) - samba? ( >=net-fs/samba-3.0.25[winbind] ) - selinux? ( sec-policy/selinux-wine ) - udisks? ( sys-fs/udisks:2 )" - -# tools/make_requests requires perl -DEPEND="${COMMON_DEPEND} - ${BDEPEND} - >=sys-kernel/linux-headers-2.6 - X? ( x11-base/xorg-proto ) - staging? ( - dev-lang/perl - dev-perl/XML-Simple - ) - xinerama? ( x11-base/xorg-proto )" - -# These use a non-standard "Wine" category, which is provided by -# /etc/xdg/applications-merged/wine.menu -QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop -usr/share/applications/wine-notepad.desktop -usr/share/applications/wine-uninstaller.desktop -usr/share/applications/wine-winecfg.desktop" - -PATCHES=( - "${PATCHDIR}/patches/${MY_PN}-6.22-winegcc.patch" #260726 - "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615 - "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611 -) -PATCHES_BIN=() - -# https://bugs.gentoo.org/show_bug.cgi?id=635222 -if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${MY_PV} == 9999 ]]; then - DEPEND+=" dev-util/patchbin" -fi - -wine_compiler_check() { - # Ensure compiler support - # (No checks here as of 2022) - return 0 -} - -wine_build_environment_check() { - [[ ${MERGE_TYPE} = "binary" ]] && return 0 - - if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then - eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only." - eerror "See https://bugs.gentoo.org/487864 for more details." - eerror - return 1 - fi -} - -wine_env_vcs_vars() { - local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT" - local pn_live_val="${pn_live_var}" - eval pn_live_val='$'${pn_live_val} - if [[ ! -z ${pn_live_val} ]]; then - if use staging; then - eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}" - eerror "cannot be used to set the commit. Instead, you may use the" - eerror "environment variables:" - eerror " EGIT_OVERRIDE_COMMIT_WINE" - eerror " EGIT_OVERRIDE_COMMIT_WINE_STAGING_WINE_STAGING" - eerror - return 1 - fi - fi - if [[ ! -z ${EGIT_COMMIT} ]]; then - eerror "Commits must now be specified using the environment variables:" - eerror " EGIT_OVERRIDE_COMMIT_WINE" - eerror " EGIT_OVERRIDE_COMMIT_WINE_STAGING_WINE_STAGING" - eerror - return 1 - fi -} - -pkg_pretend() { - if [[ ${MERGE_TYPE} != binary ]] ; then - wine_build_environment_check || die - - # Verify OSS support - if use oss; then - if ! has_version ">=media-sound/oss-4"; then - eerror "You cannot build wine with USE=oss without having support from" - eerror ">=media-sound/oss-4 (only available through external repos)" - eerror - die - fi - fi - - 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 - type -P ${mingw}-gcc && continue - 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" - done - fi - fi -} - -pkg_setup() { - wine_build_environment_check || die - wine_env_vcs_vars || die - - WINE_VARIANT="${PN#wine}-${MY_PV}" - WINE_VARIANT="${WINE_VARIANT#-}" - - MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}" - MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}" - MY_DATADIR="${MY_DATAROOTDIR}" - MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}" - MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}" - MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}" - MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}" - MY_MANDIR="${MY_DATADIR}/man" -} - -src_unpack() { - if [[ ${MY_PV} == "9999" ]] ; then - EGIT_CHECKOUT_DIR="${S}" git-r3_src_unpack - if use staging; then - local CURRENT_WINE_COMMIT=${EGIT_VERSION} - - EGIT_CHECKOUT_DIR="${STAGING_DIR}" EGIT_REPO_URI="${STAGING_EGIT_REPO_URI}" git-r3_src_unpack - - local COMPAT_WINE_COMMIT=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die - - if [[ "${CURRENT_WINE_COMMIT}" != "${COMPAT_WINE_COMMIT}" ]]; then - einfo "The current Staging patchset is not guaranteed to apply on this WINE commit." - einfo "If src_prepare fails, try emerging with the env var WINE_COMMIT." - einfo "Example: EGIT_OVERRIDE_COMMIT_WINE=${COMPAT_WINE_COMMIT} emerge -1 wine" - fi - fi - fi - - default - - plocale_find_changes "${S}/po" "" ".po" -} - -src_prepare() { - - eapply_bin(){ - local patch - for patch in ${PATCHES_BIN[@]}; do - patchbin --nogit < "${patch}" || die - done - } - - local md5="$(md5sum server/protocol.def)" - - if use staging; then - ewarn "Applying the Wine-Staging patchset. Any bug reports to the" - ewarn "Wine bugzilla should explicitly state that staging was used." - - local STAGING_EXCLUDE="-W winemenubuilder-Desktop_Icon_Path" #652176 - use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight" - - # Launch wine-staging patcher in a subshell, using eapply as a backend, and gitapply.sh as a backend for binary patches - ebegin "Running Wine-Staging patch installer" - ( - set -- DESTDIR="${S}" --backend=eapply --no-autoconf --all ${STAGING_EXCLUDE} - cd "${STAGING_DIR}/patches" - source "${STAGING_DIR}/patches/patchinstall.sh" - ) - eend $? || die "Failed to apply Wine-Staging patches" - fi - - default - eapply_bin - eautoreconf - - # Modification of the server protocol requires regenerating the server requests - if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then - einfo "server/protocol.def was patched; running tools/make_requests" - tools/make_requests || die #432348 - fi - sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die - if ! use run-exes; then - sed -i '/^MimeType/d' loader/wine.desktop || die #117785 - fi - - # Edit wine.desktop to work for specific variant - sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die - - # hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652 - cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die - - plocale_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS - - # Fix manpage generation for locales #469418 and abi_x86_64 #617864 - - # Duplicate manpages input files for wine64 - local f - for f in loader/*.man.in; do - cp ${f} ${f/wine/wine64} || die - done - # Add wine64 manpages to Makefile - if use abi_x86_64; then - sed -i "/wine.man.in/i \ - \\\twine64.man.in \\\\" loader/Makefile.in || die - sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\ -\164\2/' loader/Makefile.in || die - fi - - rm_man_file(){ - local file="${1}" - loc=${2} - sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die - } - - while read f; do - plocale_for_each_disabled_locale rm_man_file "${f}" - done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; -print) -} - -src_configure() { - wine_compiler_check || die - - export LDCONFIG=/bin/true - use custom-cflags || strip-flags - if use mingw; then - use crossdev-mingw || PATH="${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}" - - # use *FLAGS for mingw, but strip unsupported (e.g. --hash-style=gnu) - local mingwcc=${CROSSCC:-$(usex x86 i686 x86_64)-w64-mingw32-gcc} - : "${CROSSCFLAGS:=$(CC=${mingwcc} test-flags-CC ${CFLAGS:--O2})}" - : "${CROSSLDFLAGS:=$( - filter-flags '-fuse-ld=*' - CC=${mingwcc} test-flags-CCLD ${LDFLAGS})}" - export CROSS{C,LD}FLAGS - fi - - multilib-minimal_src_configure -} - -multilib_src_configure() { - local myconf=( - --prefix="${MY_PREFIX}" - --datarootdir="${MY_DATAROOTDIR}" - --datadir="${MY_DATADIR}" - --docdir="${MY_DOCDIR}" - --includedir="${MY_INCLUDEDIR}" - --libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}" - --libexecdir="${MY_LIBEXECDIR}" - --localstatedir="${MY_LOCALSTATEDIR}" - --mandir="${MY_MANDIR}" - --sysconfdir="${EPREFIX}/etc/wine" - $(use_with alsa) - $(use_with capi) - $(use_with cups) - $(use_with udisks dbus) - $(use_with fontconfig) - $(use_with ssl gnutls) - $(use_enable gecko mshtml) - $(use_with gphoto2 gphoto) - $(use_with gssapi) - $(use_with gstreamer) - --enable-hal - $(use_with kerberos krb5) - $(use_with ldap) - # TODO: Will bug 685172 still need special handling? - $(use_with mingw) - $(use_enable mono mscoree) - $(use_with netapi) - $(use_with nls gettext) - $(use_with openal) - $(use_with opencl) - $(use_with opengl) - $(use_with osmesa) - $(use_with oss) - $(use_with pcap) - $(use_with pulseaudio pulse) - $(use_with threads pthread) - $(use_with scanner sane) - $(use_with sdl) - $(use_enable test tests) - $(use_with truetype freetype) - $(use_with udev) - $(use_with unwind) - $(use_with usb) - $(use_with v4l v4l2) - $(use_with vulkan) - $(use_with X x) - $(use_with X xfixes) - $(use_with xcomposite) - $(use_with xinerama) - ) - - use staging && myconf+=( - --with-xattr - ) - - local PKG_CONFIG - # Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038 - tc-export PKG_CONFIG - - if use amd64; then - if [[ ${ABI} == amd64 ]]; then - myconf+=( --enable-win64 ) - else - myconf+=( --disable-win64 ) - fi - - # Note: using --with-wine64 results in problems with multilib.eclass - # CC/LD hackery. We're using separate tools instead. - fi - - ECONF_SOURCE=${S} \ - econf "${myconf[@]}" - emake depend -} - -multilib_src_test() { - # FIXME: win32-only; wine64 tests fail with "could not find the Wine loader" - if [[ ${ABI} == x86 ]]; then - if [[ $(id -u) == 0 ]]; then - ewarn "Skipping tests since they cannot be run under the root user." - ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf" - return - fi - - WINEPREFIX="${T}/.wine-${ABI}" \ - virtx emake test - fi -} - -multilib_src_install_all() { - local DOCS=( ANNOUNCE AUTHORS README ) - add_locale_docs() { - local locale_doc="documentation/README.$1" - [[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} ) - } - plocale_for_each_locale add_locale_docs - - einstalldocs - find "${ED}" -name *.la -delete || die - - if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script - rm "${D%}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \ - "${D%}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die - fi - - use abi_x86_32 && pax-mark psmr "${D%}${MY_PREFIX}"/bin/wine{,-preloader} #255055 - use abi_x86_64 && pax-mark psmr "${D%}${MY_PREFIX}"/bin/wine64{,-preloader} - - # Avoid double prefix from dosym and make_wrapper - MY_PREFIX=${MY_PREFIX#${EPREFIX}} - - if use abi_x86_64 && ! use abi_x86_32; then - dosym wine64 "${MY_PREFIX}"/bin/wine # 404331 - dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader - fi - - # Failglob for binloops, shouldn't be necessary, but including to stay safe - eshopts_push -s failglob #615218 - # Make wrappers for binaries for handling multiple variants - # Note: wrappers instead of symlinks because some are shell which use basename - local b - for b in "${ED%}${MY_PREFIX}"/bin/*; do - make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}" - done - eshopts_pop -} - -pkg_postinst() { - eselect wine register ${PN}-${MY_PV} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine register --vanilla ${PN}-${MY_PV} || die - else - if use staging; then - eselect wine register --staging ${PN}-${MY_PV} || die - fi - fi - - eselect wine update --all --if-unset || die - - xdg_desktop_database_update - - if ! use gecko; then - ewarn "Without Wine Gecko, wine prefixes will not have a default" - ewarn "implementation of iexplore. Many older windows applications" - ewarn "rely upon the existence of an iexplore implementation, so" - ewarn "you will likely need to install an external one, like via winetricks" - fi - if ! use mono; then - ewarn "Without Wine Mono, wine prefixes will not have a default" - ewarn "implementation of .NET. Many windows applications rely upon" - ewarn "the existence of a .NET implementation, so you will likely need" - ewarn "to install an external one, like via winetricks" - fi -} - -pkg_prerm() { - eselect wine deregister ${PN}-${MY_PV} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine deregister --vanilla ${PN}-${MY_PV} || die - else - if use staging; then - eselect wine deregister --staging ${PN}-${MY_PV}|| die - fi - fi - - eselect wine update --all --if-unset || die -} - -pkg_postrm() { - xdg_desktop_database_update -} diff --git a/app-emulation/wine-staging/wine-staging-7.13-r1.ebuild b/app-emulation/wine-staging/wine-staging-7.13-r1.ebuild deleted file mode 100644 index b9684696efbb..000000000000 --- a/app-emulation/wine-staging/wine-staging-7.13-r1.ebuild +++ /dev/null @@ -1,543 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PLOCALES="ar ast bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru si sk sl sr_RS@cyrillic sr_RS@latin sv ta te th tr uk wa zh_CN zh_TW" -PLOCALE_BACKUP="en" - -inherit autotools estack flag-o-matic multilib-minimal pax-utils plocale toolchain-funcs virtualx wrapper xdg-utils -MY_PN="${PN%%-*}" -MY_PV="${PV/_/-}" -MY_P="${MY_PN}-${MY_PV}" - -if [[ ${MY_PV} == "9999" ]] ; then - EGIT_REPO_URI="https://source.winehq.org/git/wine.git" - EGIT_BRANCH="master" - inherit git-r3 - SRC_URI="" - #KEYWORDS="" -else - MAJOR_V=$(ver_cut 1) - MINOR_V=$(ver_cut 2) - if [[ ${MINOR_V} != "0" ]] ; then - MINOR_V="x" - fi - SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.${MINOR_V}/${MY_P}.tar.xz" - KEYWORDS="-* ~amd64 ~x86" -fi -S="${WORKDIR}/${MY_P}" - -STAGING_P="wine-staging-${MY_PV}" -STAGING_DIR="${WORKDIR}/${STAGING_P}" -GWP_V="20211122" -PATCHDIR="${WORKDIR}/gentoo-wine-patches" - -DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset" -HOMEPAGE="https://www.winehq.org/" -SRC_URI="${SRC_URI} - https://dev.gentoo.org/~sarnex/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz -" - -if [[ ${MY_PV} == "9999" ]] ; then - STAGING_EGIT_REPO_URI="https://github.com/wine-staging/wine-staging.git" -else - SRC_URI="${SRC_URI} - staging? ( https://github.com/wine-staging/wine-staging/archive/v${MY_PV}.tar.gz -> ${STAGING_P}.tar.gz )" -fi - -LICENSE="LGPL-2.1" -SLOT="${MY_PV}" -IUSE="+abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups custom-cflags dos +fontconfig +gecko gphoto2 gstreamer kerberos ldap mingw +mono mp3 netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pipelight pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl staging test +threads +truetype udev +udisks +unwind usb v4l vulkan +X +xcomposite xinerama" -REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 ) - X? ( truetype ) - crossdev-mingw? ( mingw ) - elibc_glibc? ( threads ) - osmesa? ( opengl ) - pipelight? ( staging ) - test? ( abi_x86_32 )" # osmesa-opengl #286560 # X-truetype #551124 - -# FIXME: the test suite is unsuitable for us; many tests require net access -# or fail due to Xvfb's opengl limitations. -RESTRICT="test" - -BDEPEND="sys-devel/flex - virtual/yacc - virtual/pkgconfig - mingw? ( !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] ) )" - -COMMON_DEPEND=" - X? ( - x11-libs/libXcursor[${MULTILIB_USEDEP}] - x11-libs/libXext[${MULTILIB_USEDEP}] - x11-libs/libXfixes[${MULTILIB_USEDEP}] - x11-libs/libXrandr[${MULTILIB_USEDEP}] - x11-libs/libXi[${MULTILIB_USEDEP}] - x11-libs/libXxf86vm[${MULTILIB_USEDEP}] - ) - alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] ) - capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] ) - cups? ( net-print/cups:=[${MULTILIB_USEDEP}] ) - fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] ) - gphoto2? ( - media-libs/libgphoto2:=[${MULTILIB_USEDEP}] - media-libs/libjpeg-turbo:0=[${MULTILIB_USEDEP}] - ) - gstreamer? ( - media-libs/gstreamer:1.0[${MULTILIB_USEDEP}] - media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] - ) - kerberos? ( virtual/krb5:0=[${MULTILIB_USEDEP}] ) - ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] ) - netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] ) - nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] ) - odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] ) - openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] ) - opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) - opengl? ( - virtual/opengl[${MULTILIB_USEDEP}] - ) - osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] ) - pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] ) - pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] ) - scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] ) - sdl? ( media-libs/libsdl2:=[haptic,joystick,${MULTILIB_USEDEP}] ) - ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] ) - staging? ( sys-apps/attr[${MULTILIB_USEDEP}] ) - truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] ) - udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] ) - udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) - unwind? ( sys-libs/libunwind[${MULTILIB_USEDEP}] ) - usb? ( virtual/libusb:1[${MULTILIB_USEDEP}] ) - v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] ) - vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] ) - xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) - xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )" - -RDEPEND="${COMMON_DEPEND} - app-emulation/wine-desktop-common - >app-eselect/eselect-wine-0.3 - dos? ( >=games-emulation/dosbox-0.74_p20160629 ) - gecko? ( app-emulation/wine-gecko:2.47.3[abi_x86_32?,abi_x86_64?] ) - mono? ( app-emulation/wine-mono:7.3.0 ) - perl? ( - dev-lang/perl - dev-perl/XML-Simple - ) - pulseaudio? ( - realtime? ( sys-auth/rtkit ) - ) - samba? ( >=net-fs/samba-3.0.25[winbind] ) - selinux? ( sec-policy/selinux-wine ) - udisks? ( sys-fs/udisks:2 )" - -# tools/make_requests requires perl -DEPEND="${COMMON_DEPEND} - ${BDEPEND} - >=sys-kernel/linux-headers-2.6 - X? ( x11-base/xorg-proto ) - staging? ( - dev-lang/perl - dev-perl/XML-Simple - ) - xinerama? ( x11-base/xorg-proto )" - -# These use a non-standard "Wine" category, which is provided by -# /etc/xdg/applications-merged/wine.menu -QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop -usr/share/applications/wine-notepad.desktop -usr/share/applications/wine-uninstaller.desktop -usr/share/applications/wine-winecfg.desktop" - -PATCHES=( - "${PATCHDIR}/patches/${MY_PN}-6.22-winegcc.patch" #260726 - "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615 - "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611 -) -PATCHES_BIN=() - -# https://bugs.gentoo.org/show_bug.cgi?id=635222 -if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${MY_PV} == 9999 ]]; then - DEPEND+=" dev-util/patchbin" -fi - -wine_compiler_check() { - # Ensure compiler support - # (No checks here as of 2022) - return 0 -} - -wine_build_environment_check() { - [[ ${MERGE_TYPE} = "binary" ]] && return 0 - - if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then - eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only." - eerror "See https://bugs.gentoo.org/487864 for more details." - eerror - return 1 - fi -} - -wine_env_vcs_vars() { - local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT" - local pn_live_val="${pn_live_var}" - eval pn_live_val='$'${pn_live_val} - if [[ ! -z ${pn_live_val} ]]; then - if use staging; then - eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}" - eerror "cannot be used to set the commit. Instead, you may use the" - eerror "environment variables:" - eerror " EGIT_OVERRIDE_COMMIT_WINE" - eerror " EGIT_OVERRIDE_COMMIT_WINE_STAGING_WINE_STAGING" - eerror - return 1 - fi - fi - if [[ ! -z ${EGIT_COMMIT} ]]; then - eerror "Commits must now be specified using the environment variables:" - eerror " EGIT_OVERRIDE_COMMIT_WINE" - eerror " EGIT_OVERRIDE_COMMIT_WINE_STAGING_WINE_STAGING" - eerror - return 1 - fi -} - -pkg_pretend() { - if [[ ${MERGE_TYPE} != binary ]] ; then - wine_build_environment_check || die - - # Verify OSS support - if use oss; then - if ! has_version ">=media-sound/oss-4"; then - eerror "You cannot build wine with USE=oss without having support from" - eerror ">=media-sound/oss-4 (only available through external repos)" - eerror - die - fi - fi - - 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 - type -P ${mingw}-gcc && continue - 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" - done - fi - fi -} - -pkg_setup() { - wine_build_environment_check || die - wine_env_vcs_vars || die - - WINE_VARIANT="${PN#wine}-${MY_PV}" - WINE_VARIANT="${WINE_VARIANT#-}" - - MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}" - MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}" - MY_DATADIR="${MY_DATAROOTDIR}" - MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}" - MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}" - MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}" - MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}" - MY_MANDIR="${MY_DATADIR}/man" -} - -src_unpack() { - if [[ ${MY_PV} == "9999" ]] ; then - EGIT_CHECKOUT_DIR="${S}" git-r3_src_unpack - if use staging; then - local CURRENT_WINE_COMMIT=${EGIT_VERSION} - - EGIT_CHECKOUT_DIR="${STAGING_DIR}" EGIT_REPO_URI="${STAGING_EGIT_REPO_URI}" git-r3_src_unpack - - local COMPAT_WINE_COMMIT=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die - - if [[ "${CURRENT_WINE_COMMIT}" != "${COMPAT_WINE_COMMIT}" ]]; then - einfo "The current Staging patchset is not guaranteed to apply on this WINE commit." - einfo "If src_prepare fails, try emerging with the env var WINE_COMMIT." - einfo "Example: EGIT_OVERRIDE_COMMIT_WINE=${COMPAT_WINE_COMMIT} emerge -1 wine" - fi - fi - fi - - default - - plocale_find_changes "${S}/po" "" ".po" -} - -src_prepare() { - - eapply_bin(){ - local patch - for patch in ${PATCHES_BIN[@]}; do - patchbin --nogit < "${patch}" || die - done - } - - local md5="$(md5sum server/protocol.def)" - - if use staging; then - ewarn "Applying the Wine-Staging patchset. Any bug reports to the" - ewarn "Wine bugzilla should explicitly state that staging was used." - - local STAGING_EXCLUDE="-W winemenubuilder-Desktop_Icon_Path" #652176 - use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight" - - # Launch wine-staging patcher in a subshell, using eapply as a backend, and gitapply.sh as a backend for binary patches - ebegin "Running Wine-Staging patch installer" - ( - set -- DESTDIR="${S}" --backend=eapply --no-autoconf --all ${STAGING_EXCLUDE} - cd "${STAGING_DIR}/patches" - source "${STAGING_DIR}/patches/patchinstall.sh" - ) - eend $? || die "Failed to apply Wine-Staging patches" - fi - - default - eapply_bin - eautoreconf - - # Modification of the server protocol requires regenerating the server requests - if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then - einfo "server/protocol.def was patched; running tools/make_requests" - tools/make_requests || die #432348 - fi - sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die - if ! use run-exes; then - sed -i '/^MimeType/d' loader/wine.desktop || die #117785 - fi - - # Edit wine.desktop to work for specific variant - sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die - - # hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652 - cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die - - plocale_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS - - # Fix manpage generation for locales #469418 and abi_x86_64 #617864 - - # Duplicate manpages input files for wine64 - local f - for f in loader/*.man.in; do - cp ${f} ${f/wine/wine64} || die - done - # Add wine64 manpages to Makefile - if use abi_x86_64; then - sed -i "/wine.man.in/i \ - \\\twine64.man.in \\\\" loader/Makefile.in || die - sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\ -\164\2/' loader/Makefile.in || die - fi - - rm_man_file(){ - local file="${1}" - loc=${2} - sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die - } - - while read f; do - plocale_for_each_disabled_locale rm_man_file "${f}" - done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; -print) -} - -src_configure() { - wine_compiler_check || die - - export LDCONFIG=/bin/true - use custom-cflags || strip-flags - if use mingw; then - use crossdev-mingw || PATH="${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}" - - # use *FLAGS for mingw, but strip unsupported (e.g. --hash-style=gnu) - local mingwcc=${CROSSCC:-$(usex x86 i686 x86_64)-w64-mingw32-gcc} - : "${CROSSCFLAGS:=$(CC=${mingwcc} test-flags-CC ${CFLAGS:--O2})}" - : "${CROSSLDFLAGS:=$( - filter-flags '-fuse-ld=*' - CC=${mingwcc} test-flags-CCLD ${LDFLAGS})}" - export CROSS{C,LD}FLAGS - fi - - multilib-minimal_src_configure -} - -multilib_src_configure() { - local myconf=( - --prefix="${MY_PREFIX}" - --datarootdir="${MY_DATAROOTDIR}" - --datadir="${MY_DATADIR}" - --docdir="${MY_DOCDIR}" - --includedir="${MY_INCLUDEDIR}" - --libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}" - --libexecdir="${MY_LIBEXECDIR}" - --localstatedir="${MY_LOCALSTATEDIR}" - --mandir="${MY_MANDIR}" - --sysconfdir="${EPREFIX}/etc/wine" - $(use_with alsa) - $(use_with capi) - $(use_with cups) - $(use_with udisks dbus) - $(use_with fontconfig) - $(use_with ssl gnutls) - $(use_enable gecko mshtml) - $(use_with gphoto2 gphoto) - $(use_with gstreamer) - --enable-hal - $(use_with kerberos gssapi) - $(use_with kerberos krb5) - $(use_with ldap) - # TODO: Will bug 685172 still need special handling? - $(use_with mingw) - $(use_enable mono mscoree) - $(use_with netapi) - $(use_with nls gettext) - $(use_with openal) - $(use_with opencl) - $(use_with opengl) - $(use_with osmesa) - $(use_with oss) - $(use_with pcap) - $(use_with pulseaudio pulse) - $(use_with threads pthread) - $(use_with scanner sane) - $(use_with sdl) - $(use_enable test tests) - $(use_with truetype freetype) - $(use_with udev) - $(use_with unwind) - $(use_with usb) - $(use_with v4l v4l2) - $(use_with vulkan) - $(use_with X x) - $(use_with X xfixes) - $(use_with xcomposite) - $(use_with xinerama) - ) - - use staging && myconf+=( - --with-xattr - ) - - local PKG_CONFIG - # Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038 - tc-export PKG_CONFIG - - if use amd64; then - if [[ ${ABI} == amd64 ]]; then - myconf+=( --enable-win64 ) - else - myconf+=( --disable-win64 ) - fi - - # Note: using --with-wine64 results in problems with multilib.eclass - # CC/LD hackery. We're using separate tools instead. - fi - - ECONF_SOURCE=${S} \ - econf "${myconf[@]}" - emake depend -} - -multilib_src_test() { - # FIXME: win32-only; wine64 tests fail with "could not find the Wine loader" - if [[ ${ABI} == x86 ]]; then - if [[ $(id -u) == 0 ]]; then - ewarn "Skipping tests since they cannot be run under the root user." - ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf" - return - fi - - WINEPREFIX="${T}/.wine-${ABI}" \ - virtx emake test - fi -} - -multilib_src_install_all() { - local DOCS=( ANNOUNCE AUTHORS README ) - add_locale_docs() { - local locale_doc="documentation/README.$1" - [[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} ) - } - plocale_for_each_locale add_locale_docs - - einstalldocs - find "${ED}" -name *.la -delete || die - - if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script - rm "${D%}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \ - "${D%}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die - fi - - use abi_x86_32 && pax-mark psmr "${D%}${MY_PREFIX}"/bin/wine{,-preloader} #255055 - use abi_x86_64 && pax-mark psmr "${D%}${MY_PREFIX}"/bin/wine64{,-preloader} - - # Avoid double prefix from dosym and make_wrapper - MY_PREFIX=${MY_PREFIX#${EPREFIX}} - - if use abi_x86_64 && ! use abi_x86_32; then - dosym wine64 "${MY_PREFIX}"/bin/wine # 404331 - dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader - fi - - # Failglob for binloops, shouldn't be necessary, but including to stay safe - eshopts_push -s failglob #615218 - # Make wrappers for binaries for handling multiple variants - # Note: wrappers instead of symlinks because some are shell which use basename - local b - for b in "${ED%}${MY_PREFIX}"/bin/*; do - make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}" - done - eshopts_pop -} - -pkg_postinst() { - eselect wine register ${PN}-${MY_PV} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine register --vanilla ${PN}-${MY_PV} || die - else - if use staging; then - eselect wine register --staging ${PN}-${MY_PV} || die - fi - fi - - eselect wine update --all --if-unset || die - - xdg_desktop_database_update - - if ! use gecko; then - ewarn "Without Wine Gecko, wine prefixes will not have a default" - ewarn "implementation of iexplore. Many older windows applications" - ewarn "rely upon the existence of an iexplore implementation, so" - ewarn "you will likely need to install an external one, like via winetricks" - fi - if ! use mono; then - ewarn "Without Wine Mono, wine prefixes will not have a default" - ewarn "implementation of .NET. Many windows applications rely upon" - ewarn "the existence of a .NET implementation, so you will likely need" - ewarn "to install an external one, like via winetricks" - fi -} - -pkg_prerm() { - eselect wine deregister ${PN}-${MY_PV} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine deregister --vanilla ${PN}-${MY_PV} || die - else - if use staging; then - eselect wine deregister --staging ${PN}-${MY_PV}|| die - fi - fi - - eselect wine update --all --if-unset || die -} - -pkg_postrm() { - xdg_desktop_database_update -} diff --git a/app-emulation/wine-staging/wine-staging-7.13.ebuild b/app-emulation/wine-staging/wine-staging-7.13.ebuild deleted file mode 100644 index fc41e0c525ab..000000000000 --- a/app-emulation/wine-staging/wine-staging-7.13.ebuild +++ /dev/null @@ -1,544 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PLOCALES="ar ast bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru si sk sl sr_RS@cyrillic sr_RS@latin sv ta te th tr uk wa zh_CN zh_TW" -PLOCALE_BACKUP="en" - -inherit autotools estack flag-o-matic multilib-minimal pax-utils plocale toolchain-funcs virtualx wrapper xdg-utils -MY_PN="${PN%%-*}" -MY_PV="${PV/_/-}" -MY_P="${MY_PN}-${MY_PV}" - -if [[ ${MY_PV} == "9999" ]] ; then - EGIT_REPO_URI="https://source.winehq.org/git/wine.git" - EGIT_BRANCH="master" - inherit git-r3 - SRC_URI="" - #KEYWORDS="" -else - MAJOR_V=$(ver_cut 1) - MINOR_V=$(ver_cut 2) - if [[ ${MINOR_V} != "0" ]] ; then - MINOR_V="x" - fi - SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.${MINOR_V}/${MY_P}.tar.xz" - KEYWORDS="-* ~amd64 ~x86" -fi -S="${WORKDIR}/${MY_P}" - -STAGING_P="wine-staging-${MY_PV}" -STAGING_DIR="${WORKDIR}/${STAGING_P}" -GWP_V="20211122" -PATCHDIR="${WORKDIR}/gentoo-wine-patches" - -DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset" -HOMEPAGE="https://www.winehq.org/" -SRC_URI="${SRC_URI} - https://dev.gentoo.org/~sarnex/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz -" - -if [[ ${MY_PV} == "9999" ]] ; then - STAGING_EGIT_REPO_URI="https://github.com/wine-staging/wine-staging.git" -else - SRC_URI="${SRC_URI} - staging? ( https://github.com/wine-staging/wine-staging/archive/v${MY_PV}.tar.gz -> ${STAGING_P}.tar.gz )" -fi - -LICENSE="LGPL-2.1" -SLOT="${MY_PV}" -IUSE="+abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups custom-cflags dos +fontconfig +gecko gphoto2 gssapi gstreamer kerberos ldap mingw +mono mp3 netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pipelight pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl staging test +threads +truetype udev +udisks +unwind usb v4l vulkan +X +xcomposite xinerama" -REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 ) - X? ( truetype ) - crossdev-mingw? ( mingw ) - elibc_glibc? ( threads ) - osmesa? ( opengl ) - pipelight? ( staging ) - test? ( abi_x86_32 )" # osmesa-opengl #286560 # X-truetype #551124 - -# FIXME: the test suite is unsuitable for us; many tests require net access -# or fail due to Xvfb's opengl limitations. -RESTRICT="test" - -BDEPEND="sys-devel/flex - virtual/yacc - virtual/pkgconfig - mingw? ( !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] ) )" - -COMMON_DEPEND=" - X? ( - x11-libs/libXcursor[${MULTILIB_USEDEP}] - x11-libs/libXext[${MULTILIB_USEDEP}] - x11-libs/libXfixes[${MULTILIB_USEDEP}] - x11-libs/libXrandr[${MULTILIB_USEDEP}] - x11-libs/libXi[${MULTILIB_USEDEP}] - x11-libs/libXxf86vm[${MULTILIB_USEDEP}] - ) - alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] ) - capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] ) - cups? ( net-print/cups:=[${MULTILIB_USEDEP}] ) - fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] ) - gphoto2? ( - media-libs/libgphoto2:=[${MULTILIB_USEDEP}] - media-libs/libjpeg-turbo:0=[${MULTILIB_USEDEP}] - ) - gssapi? ( virtual/krb5[${MULTILIB_USEDEP}] ) - gstreamer? ( - media-libs/gstreamer:1.0[${MULTILIB_USEDEP}] - media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] - ) - kerberos? ( virtual/krb5:0=[${MULTILIB_USEDEP}] ) - ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] ) - netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] ) - nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] ) - odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] ) - openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] ) - opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) - opengl? ( - virtual/opengl[${MULTILIB_USEDEP}] - ) - osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] ) - pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] ) - pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] ) - scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] ) - sdl? ( media-libs/libsdl2:=[haptic,joystick,${MULTILIB_USEDEP}] ) - ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] ) - staging? ( sys-apps/attr[${MULTILIB_USEDEP}] ) - truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] ) - udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] ) - udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) - unwind? ( sys-libs/libunwind[${MULTILIB_USEDEP}] ) - usb? ( virtual/libusb:1[${MULTILIB_USEDEP}] ) - v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] ) - vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] ) - xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) - xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )" - -RDEPEND="${COMMON_DEPEND} - app-emulation/wine-desktop-common - >app-eselect/eselect-wine-0.3 - dos? ( >=games-emulation/dosbox-0.74_p20160629 ) - gecko? ( app-emulation/wine-gecko:2.47.3[abi_x86_32?,abi_x86_64?] ) - mono? ( app-emulation/wine-mono:7.3.0 ) - perl? ( - dev-lang/perl - dev-perl/XML-Simple - ) - pulseaudio? ( - realtime? ( sys-auth/rtkit ) - ) - samba? ( >=net-fs/samba-3.0.25[winbind] ) - selinux? ( sec-policy/selinux-wine ) - udisks? ( sys-fs/udisks:2 )" - -# tools/make_requests requires perl -DEPEND="${COMMON_DEPEND} - ${BDEPEND} - >=sys-kernel/linux-headers-2.6 - X? ( x11-base/xorg-proto ) - staging? ( - dev-lang/perl - dev-perl/XML-Simple - ) - xinerama? ( x11-base/xorg-proto )" - -# These use a non-standard "Wine" category, which is provided by -# /etc/xdg/applications-merged/wine.menu -QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop -usr/share/applications/wine-notepad.desktop -usr/share/applications/wine-uninstaller.desktop -usr/share/applications/wine-winecfg.desktop" - -PATCHES=( - "${PATCHDIR}/patches/${MY_PN}-6.22-winegcc.patch" #260726 - "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615 - "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611 -) -PATCHES_BIN=() - -# https://bugs.gentoo.org/show_bug.cgi?id=635222 -if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${MY_PV} == 9999 ]]; then - DEPEND+=" dev-util/patchbin" -fi - -wine_compiler_check() { - # Ensure compiler support - # (No checks here as of 2022) - return 0 -} - -wine_build_environment_check() { - [[ ${MERGE_TYPE} = "binary" ]] && return 0 - - if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then - eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only." - eerror "See https://bugs.gentoo.org/487864 for more details." - eerror - return 1 - fi -} - -wine_env_vcs_vars() { - local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT" - local pn_live_val="${pn_live_var}" - eval pn_live_val='$'${pn_live_val} - if [[ ! -z ${pn_live_val} ]]; then - if use staging; then - eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}" - eerror "cannot be used to set the commit. Instead, you may use the" - eerror "environment variables:" - eerror " EGIT_OVERRIDE_COMMIT_WINE" - eerror " EGIT_OVERRIDE_COMMIT_WINE_STAGING_WINE_STAGING" - eerror - return 1 - fi - fi - if [[ ! -z ${EGIT_COMMIT} ]]; then - eerror "Commits must now be specified using the environment variables:" - eerror " EGIT_OVERRIDE_COMMIT_WINE" - eerror " EGIT_OVERRIDE_COMMIT_WINE_STAGING_WINE_STAGING" - eerror - return 1 - fi -} - -pkg_pretend() { - if [[ ${MERGE_TYPE} != binary ]] ; then - wine_build_environment_check || die - - # Verify OSS support - if use oss; then - if ! has_version ">=media-sound/oss-4"; then - eerror "You cannot build wine with USE=oss without having support from" - eerror ">=media-sound/oss-4 (only available through external repos)" - eerror - die - fi - fi - - 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 - type -P ${mingw}-gcc && continue - 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" - done - fi - fi -} - -pkg_setup() { - wine_build_environment_check || die - wine_env_vcs_vars || die - - WINE_VARIANT="${PN#wine}-${MY_PV}" - WINE_VARIANT="${WINE_VARIANT#-}" - - MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}" - MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}" - MY_DATADIR="${MY_DATAROOTDIR}" - MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}" - MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}" - MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}" - MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}" - MY_MANDIR="${MY_DATADIR}/man" -} - -src_unpack() { - if [[ ${MY_PV} == "9999" ]] ; then - EGIT_CHECKOUT_DIR="${S}" git-r3_src_unpack - if use staging; then - local CURRENT_WINE_COMMIT=${EGIT_VERSION} - - EGIT_CHECKOUT_DIR="${STAGING_DIR}" EGIT_REPO_URI="${STAGING_EGIT_REPO_URI}" git-r3_src_unpack - - local COMPAT_WINE_COMMIT=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die - - if [[ "${CURRENT_WINE_COMMIT}" != "${COMPAT_WINE_COMMIT}" ]]; then - einfo "The current Staging patchset is not guaranteed to apply on this WINE commit." - einfo "If src_prepare fails, try emerging with the env var WINE_COMMIT." - einfo "Example: EGIT_OVERRIDE_COMMIT_WINE=${COMPAT_WINE_COMMIT} emerge -1 wine" - fi - fi - fi - - default - - plocale_find_changes "${S}/po" "" ".po" -} - -src_prepare() { - - eapply_bin(){ - local patch - for patch in ${PATCHES_BIN[@]}; do - patchbin --nogit < "${patch}" || die - done - } - - local md5="$(md5sum server/protocol.def)" - - if use staging; then - ewarn "Applying the Wine-Staging patchset. Any bug reports to the" - ewarn "Wine bugzilla should explicitly state that staging was used." - - local STAGING_EXCLUDE="-W winemenubuilder-Desktop_Icon_Path" #652176 - use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight" - - # Launch wine-staging patcher in a subshell, using eapply as a backend, and gitapply.sh as a backend for binary patches - ebegin "Running Wine-Staging patch installer" - ( - set -- DESTDIR="${S}" --backend=eapply --no-autoconf --all ${STAGING_EXCLUDE} - cd "${STAGING_DIR}/patches" - source "${STAGING_DIR}/patches/patchinstall.sh" - ) - eend $? || die "Failed to apply Wine-Staging patches" - fi - - default - eapply_bin - eautoreconf - - # Modification of the server protocol requires regenerating the server requests - if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then - einfo "server/protocol.def was patched; running tools/make_requests" - tools/make_requests || die #432348 - fi - sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die - if ! use run-exes; then - sed -i '/^MimeType/d' loader/wine.desktop || die #117785 - fi - - # Edit wine.desktop to work for specific variant - sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die - - # hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652 - cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die - - plocale_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS - - # Fix manpage generation for locales #469418 and abi_x86_64 #617864 - - # Duplicate manpages input files for wine64 - local f - for f in loader/*.man.in; do - cp ${f} ${f/wine/wine64} || die - done - # Add wine64 manpages to Makefile - if use abi_x86_64; then - sed -i "/wine.man.in/i \ - \\\twine64.man.in \\\\" loader/Makefile.in || die - sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\ -\164\2/' loader/Makefile.in || die - fi - - rm_man_file(){ - local file="${1}" - loc=${2} - sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die - } - - while read f; do - plocale_for_each_disabled_locale rm_man_file "${f}" - done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; -print) -} - -src_configure() { - wine_compiler_check || die - - export LDCONFIG=/bin/true - use custom-cflags || strip-flags - if use mingw; then - use crossdev-mingw || PATH="${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}" - - # use *FLAGS for mingw, but strip unsupported (e.g. --hash-style=gnu) - local mingwcc=${CROSSCC:-$(usex x86 i686 x86_64)-w64-mingw32-gcc} - : "${CROSSCFLAGS:=$(CC=${mingwcc} test-flags-CC ${CFLAGS:--O2})}" - : "${CROSSLDFLAGS:=$( - filter-flags '-fuse-ld=*' - CC=${mingwcc} test-flags-CCLD ${LDFLAGS})}" - export CROSS{C,LD}FLAGS - fi - - multilib-minimal_src_configure -} - -multilib_src_configure() { - local myconf=( - --prefix="${MY_PREFIX}" - --datarootdir="${MY_DATAROOTDIR}" - --datadir="${MY_DATADIR}" - --docdir="${MY_DOCDIR}" - --includedir="${MY_INCLUDEDIR}" - --libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}" - --libexecdir="${MY_LIBEXECDIR}" - --localstatedir="${MY_LOCALSTATEDIR}" - --mandir="${MY_MANDIR}" - --sysconfdir="${EPREFIX}/etc/wine" - $(use_with alsa) - $(use_with capi) - $(use_with cups) - $(use_with udisks dbus) - $(use_with fontconfig) - $(use_with ssl gnutls) - $(use_enable gecko mshtml) - $(use_with gphoto2 gphoto) - $(use_with gssapi) - $(use_with gstreamer) - --enable-hal - $(use_with kerberos krb5) - $(use_with ldap) - # TODO: Will bug 685172 still need special handling? - $(use_with mingw) - $(use_enable mono mscoree) - $(use_with netapi) - $(use_with nls gettext) - $(use_with openal) - $(use_with opencl) - $(use_with opengl) - $(use_with osmesa) - $(use_with oss) - $(use_with pcap) - $(use_with pulseaudio pulse) - $(use_with threads pthread) - $(use_with scanner sane) - $(use_with sdl) - $(use_enable test tests) - $(use_with truetype freetype) - $(use_with udev) - $(use_with unwind) - $(use_with usb) - $(use_with v4l v4l2) - $(use_with vulkan) - $(use_with X x) - $(use_with X xfixes) - $(use_with xcomposite) - $(use_with xinerama) - ) - - use staging && myconf+=( - --with-xattr - ) - - local PKG_CONFIG - # Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038 - tc-export PKG_CONFIG - - if use amd64; then - if [[ ${ABI} == amd64 ]]; then - myconf+=( --enable-win64 ) - else - myconf+=( --disable-win64 ) - fi - - # Note: using --with-wine64 results in problems with multilib.eclass - # CC/LD hackery. We're using separate tools instead. - fi - - ECONF_SOURCE=${S} \ - econf "${myconf[@]}" - emake depend -} - -multilib_src_test() { - # FIXME: win32-only; wine64 tests fail with "could not find the Wine loader" - if [[ ${ABI} == x86 ]]; then - if [[ $(id -u) == 0 ]]; then - ewarn "Skipping tests since they cannot be run under the root user." - ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf" - return - fi - - WINEPREFIX="${T}/.wine-${ABI}" \ - virtx emake test - fi -} - -multilib_src_install_all() { - local DOCS=( ANNOUNCE AUTHORS README ) - add_locale_docs() { - local locale_doc="documentation/README.$1" - [[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} ) - } - plocale_for_each_locale add_locale_docs - - einstalldocs - find "${ED}" -name *.la -delete || die - - if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script - rm "${D%}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \ - "${D%}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die - fi - - use abi_x86_32 && pax-mark psmr "${D%}${MY_PREFIX}"/bin/wine{,-preloader} #255055 - use abi_x86_64 && pax-mark psmr "${D%}${MY_PREFIX}"/bin/wine64{,-preloader} - - # Avoid double prefix from dosym and make_wrapper - MY_PREFIX=${MY_PREFIX#${EPREFIX}} - - if use abi_x86_64 && ! use abi_x86_32; then - dosym wine64 "${MY_PREFIX}"/bin/wine # 404331 - dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader - fi - - # Failglob for binloops, shouldn't be necessary, but including to stay safe - eshopts_push -s failglob #615218 - # Make wrappers for binaries for handling multiple variants - # Note: wrappers instead of symlinks because some are shell which use basename - local b - for b in "${ED%}${MY_PREFIX}"/bin/*; do - make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}" - done - eshopts_pop -} - -pkg_postinst() { - eselect wine register ${PN}-${MY_PV} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine register --vanilla ${PN}-${MY_PV} || die - else - if use staging; then - eselect wine register --staging ${PN}-${MY_PV} || die - fi - fi - - eselect wine update --all --if-unset || die - - xdg_desktop_database_update - - if ! use gecko; then - ewarn "Without Wine Gecko, wine prefixes will not have a default" - ewarn "implementation of iexplore. Many older windows applications" - ewarn "rely upon the existence of an iexplore implementation, so" - ewarn "you will likely need to install an external one, like via winetricks" - fi - if ! use mono; then - ewarn "Without Wine Mono, wine prefixes will not have a default" - ewarn "implementation of .NET. Many windows applications rely upon" - ewarn "the existence of a .NET implementation, so you will likely need" - ewarn "to install an external one, like via winetricks" - fi -} - -pkg_prerm() { - eselect wine deregister ${PN}-${MY_PV} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine deregister --vanilla ${PN}-${MY_PV} || die - else - if use staging; then - eselect wine deregister --staging ${PN}-${MY_PV}|| die - fi - fi - - eselect wine update --all --if-unset || die -} - -pkg_postrm() { - xdg_desktop_database_update -} diff --git a/app-emulation/wine-staging/wine-staging-7.14.ebuild b/app-emulation/wine-staging/wine-staging-7.14.ebuild deleted file mode 100644 index b9684696efbb..000000000000 --- a/app-emulation/wine-staging/wine-staging-7.14.ebuild +++ /dev/null @@ -1,543 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PLOCALES="ar ast bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru si sk sl sr_RS@cyrillic sr_RS@latin sv ta te th tr uk wa zh_CN zh_TW" -PLOCALE_BACKUP="en" - -inherit autotools estack flag-o-matic multilib-minimal pax-utils plocale toolchain-funcs virtualx wrapper xdg-utils -MY_PN="${PN%%-*}" -MY_PV="${PV/_/-}" -MY_P="${MY_PN}-${MY_PV}" - -if [[ ${MY_PV} == "9999" ]] ; then - EGIT_REPO_URI="https://source.winehq.org/git/wine.git" - EGIT_BRANCH="master" - inherit git-r3 - SRC_URI="" - #KEYWORDS="" -else - MAJOR_V=$(ver_cut 1) - MINOR_V=$(ver_cut 2) - if [[ ${MINOR_V} != "0" ]] ; then - MINOR_V="x" - fi - SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.${MINOR_V}/${MY_P}.tar.xz" - KEYWORDS="-* ~amd64 ~x86" -fi -S="${WORKDIR}/${MY_P}" - -STAGING_P="wine-staging-${MY_PV}" -STAGING_DIR="${WORKDIR}/${STAGING_P}" -GWP_V="20211122" -PATCHDIR="${WORKDIR}/gentoo-wine-patches" - -DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset" -HOMEPAGE="https://www.winehq.org/" -SRC_URI="${SRC_URI} - https://dev.gentoo.org/~sarnex/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz -" - -if [[ ${MY_PV} == "9999" ]] ; then - STAGING_EGIT_REPO_URI="https://github.com/wine-staging/wine-staging.git" -else - SRC_URI="${SRC_URI} - staging? ( https://github.com/wine-staging/wine-staging/archive/v${MY_PV}.tar.gz -> ${STAGING_P}.tar.gz )" -fi - -LICENSE="LGPL-2.1" -SLOT="${MY_PV}" -IUSE="+abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups custom-cflags dos +fontconfig +gecko gphoto2 gstreamer kerberos ldap mingw +mono mp3 netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pipelight pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl staging test +threads +truetype udev +udisks +unwind usb v4l vulkan +X +xcomposite xinerama" -REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 ) - X? ( truetype ) - crossdev-mingw? ( mingw ) - elibc_glibc? ( threads ) - osmesa? ( opengl ) - pipelight? ( staging ) - test? ( abi_x86_32 )" # osmesa-opengl #286560 # X-truetype #551124 - -# FIXME: the test suite is unsuitable for us; many tests require net access -# or fail due to Xvfb's opengl limitations. -RESTRICT="test" - -BDEPEND="sys-devel/flex - virtual/yacc - virtual/pkgconfig - mingw? ( !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] ) )" - -COMMON_DEPEND=" - X? ( - x11-libs/libXcursor[${MULTILIB_USEDEP}] - x11-libs/libXext[${MULTILIB_USEDEP}] - x11-libs/libXfixes[${MULTILIB_USEDEP}] - x11-libs/libXrandr[${MULTILIB_USEDEP}] - x11-libs/libXi[${MULTILIB_USEDEP}] - x11-libs/libXxf86vm[${MULTILIB_USEDEP}] - ) - alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] ) - capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] ) - cups? ( net-print/cups:=[${MULTILIB_USEDEP}] ) - fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] ) - gphoto2? ( - media-libs/libgphoto2:=[${MULTILIB_USEDEP}] - media-libs/libjpeg-turbo:0=[${MULTILIB_USEDEP}] - ) - gstreamer? ( - media-libs/gstreamer:1.0[${MULTILIB_USEDEP}] - media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] - ) - kerberos? ( virtual/krb5:0=[${MULTILIB_USEDEP}] ) - ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] ) - netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] ) - nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] ) - odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] ) - openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] ) - opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) - opengl? ( - virtual/opengl[${MULTILIB_USEDEP}] - ) - osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] ) - pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] ) - pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] ) - scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] ) - sdl? ( media-libs/libsdl2:=[haptic,joystick,${MULTILIB_USEDEP}] ) - ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] ) - staging? ( sys-apps/attr[${MULTILIB_USEDEP}] ) - truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] ) - udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] ) - udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) - unwind? ( sys-libs/libunwind[${MULTILIB_USEDEP}] ) - usb? ( virtual/libusb:1[${MULTILIB_USEDEP}] ) - v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] ) - vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] ) - xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) - xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )" - -RDEPEND="${COMMON_DEPEND} - app-emulation/wine-desktop-common - >app-eselect/eselect-wine-0.3 - dos? ( >=games-emulation/dosbox-0.74_p20160629 ) - gecko? ( app-emulation/wine-gecko:2.47.3[abi_x86_32?,abi_x86_64?] ) - mono? ( app-emulation/wine-mono:7.3.0 ) - perl? ( - dev-lang/perl - dev-perl/XML-Simple - ) - pulseaudio? ( - realtime? ( sys-auth/rtkit ) - ) - samba? ( >=net-fs/samba-3.0.25[winbind] ) - selinux? ( sec-policy/selinux-wine ) - udisks? ( sys-fs/udisks:2 )" - -# tools/make_requests requires perl -DEPEND="${COMMON_DEPEND} - ${BDEPEND} - >=sys-kernel/linux-headers-2.6 - X? ( x11-base/xorg-proto ) - staging? ( - dev-lang/perl - dev-perl/XML-Simple - ) - xinerama? ( x11-base/xorg-proto )" - -# These use a non-standard "Wine" category, which is provided by -# /etc/xdg/applications-merged/wine.menu -QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop -usr/share/applications/wine-notepad.desktop -usr/share/applications/wine-uninstaller.desktop -usr/share/applications/wine-winecfg.desktop" - -PATCHES=( - "${PATCHDIR}/patches/${MY_PN}-6.22-winegcc.patch" #260726 - "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615 - "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611 -) -PATCHES_BIN=() - -# https://bugs.gentoo.org/show_bug.cgi?id=635222 -if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${MY_PV} == 9999 ]]; then - DEPEND+=" dev-util/patchbin" -fi - -wine_compiler_check() { - # Ensure compiler support - # (No checks here as of 2022) - return 0 -} - -wine_build_environment_check() { - [[ ${MERGE_TYPE} = "binary" ]] && return 0 - - if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then - eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only." - eerror "See https://bugs.gentoo.org/487864 for more details." - eerror - return 1 - fi -} - -wine_env_vcs_vars() { - local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT" - local pn_live_val="${pn_live_var}" - eval pn_live_val='$'${pn_live_val} - if [[ ! -z ${pn_live_val} ]]; then - if use staging; then - eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}" - eerror "cannot be used to set the commit. Instead, you may use the" - eerror "environment variables:" - eerror " EGIT_OVERRIDE_COMMIT_WINE" - eerror " EGIT_OVERRIDE_COMMIT_WINE_STAGING_WINE_STAGING" - eerror - return 1 - fi - fi - if [[ ! -z ${EGIT_COMMIT} ]]; then - eerror "Commits must now be specified using the environment variables:" - eerror " EGIT_OVERRIDE_COMMIT_WINE" - eerror " EGIT_OVERRIDE_COMMIT_WINE_STAGING_WINE_STAGING" - eerror - return 1 - fi -} - -pkg_pretend() { - if [[ ${MERGE_TYPE} != binary ]] ; then - wine_build_environment_check || die - - # Verify OSS support - if use oss; then - if ! has_version ">=media-sound/oss-4"; then - eerror "You cannot build wine with USE=oss without having support from" - eerror ">=media-sound/oss-4 (only available through external repos)" - eerror - die - fi - fi - - 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 - type -P ${mingw}-gcc && continue - 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" - done - fi - fi -} - -pkg_setup() { - wine_build_environment_check || die - wine_env_vcs_vars || die - - WINE_VARIANT="${PN#wine}-${MY_PV}" - WINE_VARIANT="${WINE_VARIANT#-}" - - MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}" - MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}" - MY_DATADIR="${MY_DATAROOTDIR}" - MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}" - MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}" - MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}" - MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}" - MY_MANDIR="${MY_DATADIR}/man" -} - -src_unpack() { - if [[ ${MY_PV} == "9999" ]] ; then - EGIT_CHECKOUT_DIR="${S}" git-r3_src_unpack - if use staging; then - local CURRENT_WINE_COMMIT=${EGIT_VERSION} - - EGIT_CHECKOUT_DIR="${STAGING_DIR}" EGIT_REPO_URI="${STAGING_EGIT_REPO_URI}" git-r3_src_unpack - - local COMPAT_WINE_COMMIT=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die - - if [[ "${CURRENT_WINE_COMMIT}" != "${COMPAT_WINE_COMMIT}" ]]; then - einfo "The current Staging patchset is not guaranteed to apply on this WINE commit." - einfo "If src_prepare fails, try emerging with the env var WINE_COMMIT." - einfo "Example: EGIT_OVERRIDE_COMMIT_WINE=${COMPAT_WINE_COMMIT} emerge -1 wine" - fi - fi - fi - - default - - plocale_find_changes "${S}/po" "" ".po" -} - -src_prepare() { - - eapply_bin(){ - local patch - for patch in ${PATCHES_BIN[@]}; do - patchbin --nogit < "${patch}" || die - done - } - - local md5="$(md5sum server/protocol.def)" - - if use staging; then - ewarn "Applying the Wine-Staging patchset. Any bug reports to the" - ewarn "Wine bugzilla should explicitly state that staging was used." - - local STAGING_EXCLUDE="-W winemenubuilder-Desktop_Icon_Path" #652176 - use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight" - - # Launch wine-staging patcher in a subshell, using eapply as a backend, and gitapply.sh as a backend for binary patches - ebegin "Running Wine-Staging patch installer" - ( - set -- DESTDIR="${S}" --backend=eapply --no-autoconf --all ${STAGING_EXCLUDE} - cd "${STAGING_DIR}/patches" - source "${STAGING_DIR}/patches/patchinstall.sh" - ) - eend $? || die "Failed to apply Wine-Staging patches" - fi - - default - eapply_bin - eautoreconf - - # Modification of the server protocol requires regenerating the server requests - if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then - einfo "server/protocol.def was patched; running tools/make_requests" - tools/make_requests || die #432348 - fi - sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die - if ! use run-exes; then - sed -i '/^MimeType/d' loader/wine.desktop || die #117785 - fi - - # Edit wine.desktop to work for specific variant - sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die - - # hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652 - cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die - - plocale_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS - - # Fix manpage generation for locales #469418 and abi_x86_64 #617864 - - # Duplicate manpages input files for wine64 - local f - for f in loader/*.man.in; do - cp ${f} ${f/wine/wine64} || die - done - # Add wine64 manpages to Makefile - if use abi_x86_64; then - sed -i "/wine.man.in/i \ - \\\twine64.man.in \\\\" loader/Makefile.in || die - sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\ -\164\2/' loader/Makefile.in || die - fi - - rm_man_file(){ - local file="${1}" - loc=${2} - sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die - } - - while read f; do - plocale_for_each_disabled_locale rm_man_file "${f}" - done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; -print) -} - -src_configure() { - wine_compiler_check || die - - export LDCONFIG=/bin/true - use custom-cflags || strip-flags - if use mingw; then - use crossdev-mingw || PATH="${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}" - - # use *FLAGS for mingw, but strip unsupported (e.g. --hash-style=gnu) - local mingwcc=${CROSSCC:-$(usex x86 i686 x86_64)-w64-mingw32-gcc} - : "${CROSSCFLAGS:=$(CC=${mingwcc} test-flags-CC ${CFLAGS:--O2})}" - : "${CROSSLDFLAGS:=$( - filter-flags '-fuse-ld=*' - CC=${mingwcc} test-flags-CCLD ${LDFLAGS})}" - export CROSS{C,LD}FLAGS - fi - - multilib-minimal_src_configure -} - -multilib_src_configure() { - local myconf=( - --prefix="${MY_PREFIX}" - --datarootdir="${MY_DATAROOTDIR}" - --datadir="${MY_DATADIR}" - --docdir="${MY_DOCDIR}" - --includedir="${MY_INCLUDEDIR}" - --libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}" - --libexecdir="${MY_LIBEXECDIR}" - --localstatedir="${MY_LOCALSTATEDIR}" - --mandir="${MY_MANDIR}" - --sysconfdir="${EPREFIX}/etc/wine" - $(use_with alsa) - $(use_with capi) - $(use_with cups) - $(use_with udisks dbus) - $(use_with fontconfig) - $(use_with ssl gnutls) - $(use_enable gecko mshtml) - $(use_with gphoto2 gphoto) - $(use_with gstreamer) - --enable-hal - $(use_with kerberos gssapi) - $(use_with kerberos krb5) - $(use_with ldap) - # TODO: Will bug 685172 still need special handling? - $(use_with mingw) - $(use_enable mono mscoree) - $(use_with netapi) - $(use_with nls gettext) - $(use_with openal) - $(use_with opencl) - $(use_with opengl) - $(use_with osmesa) - $(use_with oss) - $(use_with pcap) - $(use_with pulseaudio pulse) - $(use_with threads pthread) - $(use_with scanner sane) - $(use_with sdl) - $(use_enable test tests) - $(use_with truetype freetype) - $(use_with udev) - $(use_with unwind) - $(use_with usb) - $(use_with v4l v4l2) - $(use_with vulkan) - $(use_with X x) - $(use_with X xfixes) - $(use_with xcomposite) - $(use_with xinerama) - ) - - use staging && myconf+=( - --with-xattr - ) - - local PKG_CONFIG - # Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038 - tc-export PKG_CONFIG - - if use amd64; then - if [[ ${ABI} == amd64 ]]; then - myconf+=( --enable-win64 ) - else - myconf+=( --disable-win64 ) - fi - - # Note: using --with-wine64 results in problems with multilib.eclass - # CC/LD hackery. We're using separate tools instead. - fi - - ECONF_SOURCE=${S} \ - econf "${myconf[@]}" - emake depend -} - -multilib_src_test() { - # FIXME: win32-only; wine64 tests fail with "could not find the Wine loader" - if [[ ${ABI} == x86 ]]; then - if [[ $(id -u) == 0 ]]; then - ewarn "Skipping tests since they cannot be run under the root user." - ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf" - return - fi - - WINEPREFIX="${T}/.wine-${ABI}" \ - virtx emake test - fi -} - -multilib_src_install_all() { - local DOCS=( ANNOUNCE AUTHORS README ) - add_locale_docs() { - local locale_doc="documentation/README.$1" - [[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} ) - } - plocale_for_each_locale add_locale_docs - - einstalldocs - find "${ED}" -name *.la -delete || die - - if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script - rm "${D%}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \ - "${D%}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die - fi - - use abi_x86_32 && pax-mark psmr "${D%}${MY_PREFIX}"/bin/wine{,-preloader} #255055 - use abi_x86_64 && pax-mark psmr "${D%}${MY_PREFIX}"/bin/wine64{,-preloader} - - # Avoid double prefix from dosym and make_wrapper - MY_PREFIX=${MY_PREFIX#${EPREFIX}} - - if use abi_x86_64 && ! use abi_x86_32; then - dosym wine64 "${MY_PREFIX}"/bin/wine # 404331 - dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader - fi - - # Failglob for binloops, shouldn't be necessary, but including to stay safe - eshopts_push -s failglob #615218 - # Make wrappers for binaries for handling multiple variants - # Note: wrappers instead of symlinks because some are shell which use basename - local b - for b in "${ED%}${MY_PREFIX}"/bin/*; do - make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}" - done - eshopts_pop -} - -pkg_postinst() { - eselect wine register ${PN}-${MY_PV} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine register --vanilla ${PN}-${MY_PV} || die - else - if use staging; then - eselect wine register --staging ${PN}-${MY_PV} || die - fi - fi - - eselect wine update --all --if-unset || die - - xdg_desktop_database_update - - if ! use gecko; then - ewarn "Without Wine Gecko, wine prefixes will not have a default" - ewarn "implementation of iexplore. Many older windows applications" - ewarn "rely upon the existence of an iexplore implementation, so" - ewarn "you will likely need to install an external one, like via winetricks" - fi - if ! use mono; then - ewarn "Without Wine Mono, wine prefixes will not have a default" - ewarn "implementation of .NET. Many windows applications rely upon" - ewarn "the existence of a .NET implementation, so you will likely need" - ewarn "to install an external one, like via winetricks" - fi -} - -pkg_prerm() { - eselect wine deregister ${PN}-${MY_PV} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine deregister --vanilla ${PN}-${MY_PV} || die - else - if use staging; then - eselect wine deregister --staging ${PN}-${MY_PV}|| die - fi - fi - - eselect wine update --all --if-unset || die -} - -pkg_postrm() { - xdg_desktop_database_update -} diff --git a/app-emulation/wine-staging/wine-staging-7.15.ebuild b/app-emulation/wine-staging/wine-staging-7.15.ebuild deleted file mode 100644 index b9684696efbb..000000000000 --- a/app-emulation/wine-staging/wine-staging-7.15.ebuild +++ /dev/null @@ -1,543 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PLOCALES="ar ast bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru si sk sl sr_RS@cyrillic sr_RS@latin sv ta te th tr uk wa zh_CN zh_TW" -PLOCALE_BACKUP="en" - -inherit autotools estack flag-o-matic multilib-minimal pax-utils plocale toolchain-funcs virtualx wrapper xdg-utils -MY_PN="${PN%%-*}" -MY_PV="${PV/_/-}" -MY_P="${MY_PN}-${MY_PV}" - -if [[ ${MY_PV} == "9999" ]] ; then - EGIT_REPO_URI="https://source.winehq.org/git/wine.git" - EGIT_BRANCH="master" - inherit git-r3 - SRC_URI="" - #KEYWORDS="" -else - MAJOR_V=$(ver_cut 1) - MINOR_V=$(ver_cut 2) - if [[ ${MINOR_V} != "0" ]] ; then - MINOR_V="x" - fi - SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.${MINOR_V}/${MY_P}.tar.xz" - KEYWORDS="-* ~amd64 ~x86" -fi -S="${WORKDIR}/${MY_P}" - -STAGING_P="wine-staging-${MY_PV}" -STAGING_DIR="${WORKDIR}/${STAGING_P}" -GWP_V="20211122" -PATCHDIR="${WORKDIR}/gentoo-wine-patches" - -DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset" -HOMEPAGE="https://www.winehq.org/" -SRC_URI="${SRC_URI} - https://dev.gentoo.org/~sarnex/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz -" - -if [[ ${MY_PV} == "9999" ]] ; then - STAGING_EGIT_REPO_URI="https://github.com/wine-staging/wine-staging.git" -else - SRC_URI="${SRC_URI} - staging? ( https://github.com/wine-staging/wine-staging/archive/v${MY_PV}.tar.gz -> ${STAGING_P}.tar.gz )" -fi - -LICENSE="LGPL-2.1" -SLOT="${MY_PV}" -IUSE="+abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups custom-cflags dos +fontconfig +gecko gphoto2 gstreamer kerberos ldap mingw +mono mp3 netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pipelight pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl staging test +threads +truetype udev +udisks +unwind usb v4l vulkan +X +xcomposite xinerama" -REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 ) - X? ( truetype ) - crossdev-mingw? ( mingw ) - elibc_glibc? ( threads ) - osmesa? ( opengl ) - pipelight? ( staging ) - test? ( abi_x86_32 )" # osmesa-opengl #286560 # X-truetype #551124 - -# FIXME: the test suite is unsuitable for us; many tests require net access -# or fail due to Xvfb's opengl limitations. -RESTRICT="test" - -BDEPEND="sys-devel/flex - virtual/yacc - virtual/pkgconfig - mingw? ( !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] ) )" - -COMMON_DEPEND=" - X? ( - x11-libs/libXcursor[${MULTILIB_USEDEP}] - x11-libs/libXext[${MULTILIB_USEDEP}] - x11-libs/libXfixes[${MULTILIB_USEDEP}] - x11-libs/libXrandr[${MULTILIB_USEDEP}] - x11-libs/libXi[${MULTILIB_USEDEP}] - x11-libs/libXxf86vm[${MULTILIB_USEDEP}] - ) - alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] ) - capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] ) - cups? ( net-print/cups:=[${MULTILIB_USEDEP}] ) - fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] ) - gphoto2? ( - media-libs/libgphoto2:=[${MULTILIB_USEDEP}] - media-libs/libjpeg-turbo:0=[${MULTILIB_USEDEP}] - ) - gstreamer? ( - media-libs/gstreamer:1.0[${MULTILIB_USEDEP}] - media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] - ) - kerberos? ( virtual/krb5:0=[${MULTILIB_USEDEP}] ) - ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] ) - netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] ) - nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] ) - odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] ) - openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] ) - opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) - opengl? ( - virtual/opengl[${MULTILIB_USEDEP}] - ) - osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] ) - pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] ) - pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] ) - scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] ) - sdl? ( media-libs/libsdl2:=[haptic,joystick,${MULTILIB_USEDEP}] ) - ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] ) - staging? ( sys-apps/attr[${MULTILIB_USEDEP}] ) - truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] ) - udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] ) - udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) - unwind? ( sys-libs/libunwind[${MULTILIB_USEDEP}] ) - usb? ( virtual/libusb:1[${MULTILIB_USEDEP}] ) - v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] ) - vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] ) - xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) - xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )" - -RDEPEND="${COMMON_DEPEND} - app-emulation/wine-desktop-common - >app-eselect/eselect-wine-0.3 - dos? ( >=games-emulation/dosbox-0.74_p20160629 ) - gecko? ( app-emulation/wine-gecko:2.47.3[abi_x86_32?,abi_x86_64?] ) - mono? ( app-emulation/wine-mono:7.3.0 ) - perl? ( - dev-lang/perl - dev-perl/XML-Simple - ) - pulseaudio? ( - realtime? ( sys-auth/rtkit ) - ) - samba? ( >=net-fs/samba-3.0.25[winbind] ) - selinux? ( sec-policy/selinux-wine ) - udisks? ( sys-fs/udisks:2 )" - -# tools/make_requests requires perl -DEPEND="${COMMON_DEPEND} - ${BDEPEND} - >=sys-kernel/linux-headers-2.6 - X? ( x11-base/xorg-proto ) - staging? ( - dev-lang/perl - dev-perl/XML-Simple - ) - xinerama? ( x11-base/xorg-proto )" - -# These use a non-standard "Wine" category, which is provided by -# /etc/xdg/applications-merged/wine.menu -QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop -usr/share/applications/wine-notepad.desktop -usr/share/applications/wine-uninstaller.desktop -usr/share/applications/wine-winecfg.desktop" - -PATCHES=( - "${PATCHDIR}/patches/${MY_PN}-6.22-winegcc.patch" #260726 - "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615 - "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611 -) -PATCHES_BIN=() - -# https://bugs.gentoo.org/show_bug.cgi?id=635222 -if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${MY_PV} == 9999 ]]; then - DEPEND+=" dev-util/patchbin" -fi - -wine_compiler_check() { - # Ensure compiler support - # (No checks here as of 2022) - return 0 -} - -wine_build_environment_check() { - [[ ${MERGE_TYPE} = "binary" ]] && return 0 - - if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then - eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only." - eerror "See https://bugs.gentoo.org/487864 for more details." - eerror - return 1 - fi -} - -wine_env_vcs_vars() { - local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT" - local pn_live_val="${pn_live_var}" - eval pn_live_val='$'${pn_live_val} - if [[ ! -z ${pn_live_val} ]]; then - if use staging; then - eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}" - eerror "cannot be used to set the commit. Instead, you may use the" - eerror "environment variables:" - eerror " EGIT_OVERRIDE_COMMIT_WINE" - eerror " EGIT_OVERRIDE_COMMIT_WINE_STAGING_WINE_STAGING" - eerror - return 1 - fi - fi - if [[ ! -z ${EGIT_COMMIT} ]]; then - eerror "Commits must now be specified using the environment variables:" - eerror " EGIT_OVERRIDE_COMMIT_WINE" - eerror " EGIT_OVERRIDE_COMMIT_WINE_STAGING_WINE_STAGING" - eerror - return 1 - fi -} - -pkg_pretend() { - if [[ ${MERGE_TYPE} != binary ]] ; then - wine_build_environment_check || die - - # Verify OSS support - if use oss; then - if ! has_version ">=media-sound/oss-4"; then - eerror "You cannot build wine with USE=oss without having support from" - eerror ">=media-sound/oss-4 (only available through external repos)" - eerror - die - fi - fi - - 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 - type -P ${mingw}-gcc && continue - 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" - done - fi - fi -} - -pkg_setup() { - wine_build_environment_check || die - wine_env_vcs_vars || die - - WINE_VARIANT="${PN#wine}-${MY_PV}" - WINE_VARIANT="${WINE_VARIANT#-}" - - MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}" - MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}" - MY_DATADIR="${MY_DATAROOTDIR}" - MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}" - MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}" - MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}" - MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}" - MY_MANDIR="${MY_DATADIR}/man" -} - -src_unpack() { - if [[ ${MY_PV} == "9999" ]] ; then - EGIT_CHECKOUT_DIR="${S}" git-r3_src_unpack - if use staging; then - local CURRENT_WINE_COMMIT=${EGIT_VERSION} - - EGIT_CHECKOUT_DIR="${STAGING_DIR}" EGIT_REPO_URI="${STAGING_EGIT_REPO_URI}" git-r3_src_unpack - - local COMPAT_WINE_COMMIT=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die - - if [[ "${CURRENT_WINE_COMMIT}" != "${COMPAT_WINE_COMMIT}" ]]; then - einfo "The current Staging patchset is not guaranteed to apply on this WINE commit." - einfo "If src_prepare fails, try emerging with the env var WINE_COMMIT." - einfo "Example: EGIT_OVERRIDE_COMMIT_WINE=${COMPAT_WINE_COMMIT} emerge -1 wine" - fi - fi - fi - - default - - plocale_find_changes "${S}/po" "" ".po" -} - -src_prepare() { - - eapply_bin(){ - local patch - for patch in ${PATCHES_BIN[@]}; do - patchbin --nogit < "${patch}" || die - done - } - - local md5="$(md5sum server/protocol.def)" - - if use staging; then - ewarn "Applying the Wine-Staging patchset. Any bug reports to the" - ewarn "Wine bugzilla should explicitly state that staging was used." - - local STAGING_EXCLUDE="-W winemenubuilder-Desktop_Icon_Path" #652176 - use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight" - - # Launch wine-staging patcher in a subshell, using eapply as a backend, and gitapply.sh as a backend for binary patches - ebegin "Running Wine-Staging patch installer" - ( - set -- DESTDIR="${S}" --backend=eapply --no-autoconf --all ${STAGING_EXCLUDE} - cd "${STAGING_DIR}/patches" - source "${STAGING_DIR}/patches/patchinstall.sh" - ) - eend $? || die "Failed to apply Wine-Staging patches" - fi - - default - eapply_bin - eautoreconf - - # Modification of the server protocol requires regenerating the server requests - if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then - einfo "server/protocol.def was patched; running tools/make_requests" - tools/make_requests || die #432348 - fi - sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die - if ! use run-exes; then - sed -i '/^MimeType/d' loader/wine.desktop || die #117785 - fi - - # Edit wine.desktop to work for specific variant - sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die - - # hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652 - cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die - - plocale_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS - - # Fix manpage generation for locales #469418 and abi_x86_64 #617864 - - # Duplicate manpages input files for wine64 - local f - for f in loader/*.man.in; do - cp ${f} ${f/wine/wine64} || die - done - # Add wine64 manpages to Makefile - if use abi_x86_64; then - sed -i "/wine.man.in/i \ - \\\twine64.man.in \\\\" loader/Makefile.in || die - sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\ -\164\2/' loader/Makefile.in || die - fi - - rm_man_file(){ - local file="${1}" - loc=${2} - sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die - } - - while read f; do - plocale_for_each_disabled_locale rm_man_file "${f}" - done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; -print) -} - -src_configure() { - wine_compiler_check || die - - export LDCONFIG=/bin/true - use custom-cflags || strip-flags - if use mingw; then - use crossdev-mingw || PATH="${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}" - - # use *FLAGS for mingw, but strip unsupported (e.g. --hash-style=gnu) - local mingwcc=${CROSSCC:-$(usex x86 i686 x86_64)-w64-mingw32-gcc} - : "${CROSSCFLAGS:=$(CC=${mingwcc} test-flags-CC ${CFLAGS:--O2})}" - : "${CROSSLDFLAGS:=$( - filter-flags '-fuse-ld=*' - CC=${mingwcc} test-flags-CCLD ${LDFLAGS})}" - export CROSS{C,LD}FLAGS - fi - - multilib-minimal_src_configure -} - -multilib_src_configure() { - local myconf=( - --prefix="${MY_PREFIX}" - --datarootdir="${MY_DATAROOTDIR}" - --datadir="${MY_DATADIR}" - --docdir="${MY_DOCDIR}" - --includedir="${MY_INCLUDEDIR}" - --libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}" - --libexecdir="${MY_LIBEXECDIR}" - --localstatedir="${MY_LOCALSTATEDIR}" - --mandir="${MY_MANDIR}" - --sysconfdir="${EPREFIX}/etc/wine" - $(use_with alsa) - $(use_with capi) - $(use_with cups) - $(use_with udisks dbus) - $(use_with fontconfig) - $(use_with ssl gnutls) - $(use_enable gecko mshtml) - $(use_with gphoto2 gphoto) - $(use_with gstreamer) - --enable-hal - $(use_with kerberos gssapi) - $(use_with kerberos krb5) - $(use_with ldap) - # TODO: Will bug 685172 still need special handling? - $(use_with mingw) - $(use_enable mono mscoree) - $(use_with netapi) - $(use_with nls gettext) - $(use_with openal) - $(use_with opencl) - $(use_with opengl) - $(use_with osmesa) - $(use_with oss) - $(use_with pcap) - $(use_with pulseaudio pulse) - $(use_with threads pthread) - $(use_with scanner sane) - $(use_with sdl) - $(use_enable test tests) - $(use_with truetype freetype) - $(use_with udev) - $(use_with unwind) - $(use_with usb) - $(use_with v4l v4l2) - $(use_with vulkan) - $(use_with X x) - $(use_with X xfixes) - $(use_with xcomposite) - $(use_with xinerama) - ) - - use staging && myconf+=( - --with-xattr - ) - - local PKG_CONFIG - # Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038 - tc-export PKG_CONFIG - - if use amd64; then - if [[ ${ABI} == amd64 ]]; then - myconf+=( --enable-win64 ) - else - myconf+=( --disable-win64 ) - fi - - # Note: using --with-wine64 results in problems with multilib.eclass - # CC/LD hackery. We're using separate tools instead. - fi - - ECONF_SOURCE=${S} \ - econf "${myconf[@]}" - emake depend -} - -multilib_src_test() { - # FIXME: win32-only; wine64 tests fail with "could not find the Wine loader" - if [[ ${ABI} == x86 ]]; then - if [[ $(id -u) == 0 ]]; then - ewarn "Skipping tests since they cannot be run under the root user." - ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf" - return - fi - - WINEPREFIX="${T}/.wine-${ABI}" \ - virtx emake test - fi -} - -multilib_src_install_all() { - local DOCS=( ANNOUNCE AUTHORS README ) - add_locale_docs() { - local locale_doc="documentation/README.$1" - [[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} ) - } - plocale_for_each_locale add_locale_docs - - einstalldocs - find "${ED}" -name *.la -delete || die - - if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script - rm "${D%}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \ - "${D%}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die - fi - - use abi_x86_32 && pax-mark psmr "${D%}${MY_PREFIX}"/bin/wine{,-preloader} #255055 - use abi_x86_64 && pax-mark psmr "${D%}${MY_PREFIX}"/bin/wine64{,-preloader} - - # Avoid double prefix from dosym and make_wrapper - MY_PREFIX=${MY_PREFIX#${EPREFIX}} - - if use abi_x86_64 && ! use abi_x86_32; then - dosym wine64 "${MY_PREFIX}"/bin/wine # 404331 - dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader - fi - - # Failglob for binloops, shouldn't be necessary, but including to stay safe - eshopts_push -s failglob #615218 - # Make wrappers for binaries for handling multiple variants - # Note: wrappers instead of symlinks because some are shell which use basename - local b - for b in "${ED%}${MY_PREFIX}"/bin/*; do - make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}" - done - eshopts_pop -} - -pkg_postinst() { - eselect wine register ${PN}-${MY_PV} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine register --vanilla ${PN}-${MY_PV} || die - else - if use staging; then - eselect wine register --staging ${PN}-${MY_PV} || die - fi - fi - - eselect wine update --all --if-unset || die - - xdg_desktop_database_update - - if ! use gecko; then - ewarn "Without Wine Gecko, wine prefixes will not have a default" - ewarn "implementation of iexplore. Many older windows applications" - ewarn "rely upon the existence of an iexplore implementation, so" - ewarn "you will likely need to install an external one, like via winetricks" - fi - if ! use mono; then - ewarn "Without Wine Mono, wine prefixes will not have a default" - ewarn "implementation of .NET. Many windows applications rely upon" - ewarn "the existence of a .NET implementation, so you will likely need" - ewarn "to install an external one, like via winetricks" - fi -} - -pkg_prerm() { - eselect wine deregister ${PN}-${MY_PV} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine deregister --vanilla ${PN}-${MY_PV} || die - else - if use staging; then - eselect wine deregister --staging ${PN}-${MY_PV}|| die - fi - fi - - eselect wine update --all --if-unset || die -} - -pkg_postrm() { - xdg_desktop_database_update -} diff --git a/app-emulation/wine-staging/wine-staging-7.17.ebuild b/app-emulation/wine-staging/wine-staging-7.17.ebuild new file mode 100644 index 000000000000..945a246e3988 --- /dev/null +++ b/app-emulation/wine-staging/wine-staging-7.17.ebuild @@ -0,0 +1,350 @@ +# 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.3.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://www.winehq.org/" + +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 openal + opencl +opengl osmesa pcap perl pulseaudio samba scanner +sdl + selinux +ssl +truetype udev udisks +unwind usb v4l +vulkan xattr + +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}] ) + openal? ( media-libs/openal[${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}] ) + xattr? ( sys-apps/attr[${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/bison + sys-devel/flex + virtual/pkgconfig + mingw? ( !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] ) ) + nls? ( sys-devel/gettext )" +IDEPEND="app-eselect/eselect-wine" + +QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext + +PATCHES=( + "${FILESDIR}"/${PN}-7.17-noexecstack.patch + "${FILESDIR}"/${PN}-7.17-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 + + 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 openal) + $(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 xattr) + $(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} + + # 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 + + # CROSSCC_amd64/x86 are unused by Wine, but recognized here for users + if (( bits == 64 )); then + : "${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}}" + + # use *FLAGS for mingw, but strip unsupported (e.g. --hash-style=gnu) + if use mingw; then + : "${CROSSCFLAGS:=$(CC=${CROSSCC} test-flags-CC ${CFLAGS:--O2})}" + : "${CROSSLDFLAGS:=$( + filter-flags '-fuse-ld=*' + CC=${CROSSCC} test-flags-CCLD ${LDFLAGS})}" + export CROSS{CC,{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* +} + +wine-eselect() { + ebegin "${1^}ing ${P} using eselect-wine" + eselect wine ${1} ${P} && + eselect wine ${1} --${PN#wine-} ${P} && + eselect wine update --if-unset && + eselect wine update --${PN#wine-} --if-unset + eend ${?} || die -n "eselect failed, may need to manually handle ${P}" +} + +pkg_postinst() { + wine-eselect register +} + +pkg_prerm() { + nonfatal wine-eselect deregister +} diff --git a/app-emulation/wine-staging/wine-staging-9999.ebuild b/app-emulation/wine-staging/wine-staging-9999.ebuild index 9cfa7dc58db7..945a246e3988 100644 --- a/app-emulation/wine-staging/wine-staging-9999.ebuild +++ b/app-emulation/wine-staging/wine-staging-9999.ebuild @@ -1,226 +1,142 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -PLOCALES="ar ast bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru si sk sl sr_RS@cyrillic sr_RS@latin sv ta te th tr uk wa zh_CN zh_TW" -PLOCALE_BACKUP="en" +MULTILIB_COMPAT=( abi_x86_{32,64} ) +inherit autotools flag-o-matic multilib multilib-build toolchain-funcs wrapper -inherit autotools estack flag-o-matic multilib-minimal pax-utils plocale toolchain-funcs virtualx wrapper xdg-utils -MY_PN="${PN%%-*}" -MY_PV="${PV/_/-}" -MY_P="${MY_PN}-${MY_PV}" -GECKO_VERSION="2.47.3" +WINE_GECKO=2.47.3 +WINE_MONO=7.3.0 -if [[ ${MY_PV} == "9999" ]] ; then - EGIT_REPO_URI="https://source.winehq.org/git/wine.git" - EGIT_BRANCH="master" +if [[ ${PV} == *9999 ]]; then inherit git-r3 - SRC_URI="" - #KEYWORDS="" + EGIT_REPO_URI="https://github.com/wine-staging/wine-staging.git" + WINE_EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git" else - MAJOR_V=$(ver_cut 1) - MINOR_V=$(ver_cut 2) - if [[ ${MINOR_V} != "0" ]] ; then - MINOR_V="x" - fi - SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.${MINOR_V}/${MY_P}.tar.xz" + (( $(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}/${MY_P}" - -STAGING_P="wine-staging-${MY_PV}" -STAGING_DIR="${WORKDIR}/${STAGING_P}" -GWP_V="20211122" -PATCHDIR="${WORKDIR}/gentoo-wine-patches" +S="${WORKDIR}/wine-${PV}" DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset" HOMEPAGE="https://www.winehq.org/" -SRC_URI="${SRC_URI} - https://dev.gentoo.org/~sarnex/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz -" - -if [[ ${MY_PV} == "9999" ]] ; then - STAGING_EGIT_REPO_URI="https://github.com/wine-staging/wine-staging.git" -else - SRC_URI="${SRC_URI} - staging? ( https://github.com/wine-staging/wine-staging/archive/v${MY_PV}.tar.gz -> ${STAGING_P}.tar.gz )" -fi -LICENSE="LGPL-2.1" -SLOT="${MY_PV}" -IUSE="+abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups custom-cflags dos +fontconfig +gecko gphoto2 gstreamer kerberos ldap mingw +mono mp3 netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pipelight pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl staging test +threads +truetype udev +udisks +unwind usb v4l vulkan +X +xcomposite xinerama" -REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 ) +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 openal + opencl +opengl osmesa pcap perl pulseaudio samba scanner +sdl + selinux +ssl +truetype udev udisks +unwind usb v4l +vulkan xattr + +xcomposite xinerama" +REQUIRED_USE=" X? ( truetype ) - crossdev-mingw? ( mingw ) - elibc_glibc? ( threads ) - osmesa? ( opengl ) - pipelight? ( staging ) - test? ( abi_x86_32 )" # osmesa-opengl #286560 # X-truetype #551124 - -# FIXME: the test suite is unsuitable for us; many tests require net access -# or fail due to Xvfb's opengl limitations. -RESTRICT="test" + crossdev-mingw? ( mingw )" # bug #551124 for truetype -BDEPEND="sys-devel/flex - virtual/yacc - virtual/pkgconfig - mingw? ( !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] ) )" +# 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" -COMMON_DEPEND=" +# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked +WINE_DLOPEN_DEPEND=" X? ( x11-libs/libXcursor[${MULTILIB_USEDEP}] - x11-libs/libXext[${MULTILIB_USEDEP}] x11-libs/libXfixes[${MULTILIB_USEDEP}] - x11-libs/libXrandr[${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}] ) ) - alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] ) - capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] ) - cups? ( net-print/cups:=[${MULTILIB_USEDEP}] ) - fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] ) - gphoto2? ( - media-libs/libgphoto2:=[${MULTILIB_USEDEP}] - media-libs/libjpeg-turbo:0=[${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}] - media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] ) - kerberos? ( virtual/krb5:0=[${MULTILIB_USEDEP}] ) ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] ) - netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] ) - nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] ) - odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] ) - openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] ) + openal? ( media-libs/openal[${MULTILIB_USEDEP}] ) opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) - opengl? ( - virtual/opengl[${MULTILIB_USEDEP}] - ) - osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] ) pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] ) - pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] ) - scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] ) - sdl? ( media-libs/libsdl2:=[haptic,joystick,${MULTILIB_USEDEP}] ) - ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] ) - staging? ( sys-apps/attr[${MULTILIB_USEDEP}] ) - truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] ) + pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] ) + scanner? ( media-gfx/sane-backends[${MULTILIB_USEDEP}] ) udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] ) - udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) - unwind? ( sys-libs/libunwind[${MULTILIB_USEDEP}] ) - usb? ( virtual/libusb:1[${MULTILIB_USEDEP}] ) - v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] ) - vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] ) - xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) - xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )" - -RDEPEND="${COMMON_DEPEND} + unwind? ( + llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] ) + !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] ) + ) + usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] ) + xattr? ( sys-apps/attr[${MULTILIB_USEDEP}] )" +RDEPEND=" + ${WINE_COMMON_DEPEND} app-emulation/wine-desktop-common - >app-eselect/eselect-wine-0.3 - dos? ( >=games-emulation/dosbox-0.74_p20160629 ) - gecko? ( app-emulation/wine-gecko:${GECKO_VERSION}[abi_x86_32?,abi_x86_64?] ) - mono? ( app-emulation/wine-mono:7.3.0 ) + 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-Simple + dev-perl/XML-LibXML ) - pulseaudio? ( - realtime? ( sys-auth/rtkit ) - ) - samba? ( >=net-fs/samba-3.0.25[winbind] ) + 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/bison + sys-devel/flex + virtual/pkgconfig + mingw? ( !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] ) ) + nls? ( sys-devel/gettext )" +IDEPEND="app-eselect/eselect-wine" -# tools/make_requests requires perl -DEPEND="${COMMON_DEPEND} - ${BDEPEND} - >=sys-kernel/linux-headers-2.6 - X? ( x11-base/xorg-proto ) - staging? ( - dev-lang/perl - dev-perl/XML-Simple - ) - xinerama? ( x11-base/xorg-proto )" - -# These use a non-standard "Wine" category, which is provided by -# /etc/xdg/applications-merged/wine.menu -QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop -usr/share/applications/wine-notepad.desktop -usr/share/applications/wine-uninstaller.desktop -usr/share/applications/wine-winecfg.desktop" +QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext PATCHES=( - "${PATCHDIR}/patches/${MY_PN}-6.22-winegcc.patch" #260726 - "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615 - "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611 + "${FILESDIR}"/${PN}-7.17-noexecstack.patch + "${FILESDIR}"/${PN}-7.17-unwind.patch ) -PATCHES_BIN=() - -# https://bugs.gentoo.org/show_bug.cgi?id=635222 -if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${MY_PV} == 9999 ]]; then - DEPEND+=" dev-util/patchbin" -fi - -wine_compiler_check() { - # Ensure compiler support - # (No checks here as of 2022) - return 0 -} - -wine_build_environment_check() { - [[ ${MERGE_TYPE} = "binary" ]] && return 0 - - if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then - eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only." - eerror "See https://bugs.gentoo.org/487864 for more details." - eerror - return 1 - fi -} - -wine_env_vcs_vars() { - local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT" - local pn_live_val="${pn_live_var}" - eval pn_live_val='$'${pn_live_val} - if [[ ! -z ${pn_live_val} ]]; then - if use staging; then - eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}" - eerror "cannot be used to set the commit. Instead, you may use the" - eerror "environment variables:" - eerror " EGIT_OVERRIDE_COMMIT_WINE" - eerror " EGIT_OVERRIDE_COMMIT_WINE_STAGING_WINE_STAGING" - eerror - return 1 - fi - fi - if [[ ! -z ${EGIT_COMMIT} ]]; then - eerror "Commits must now be specified using the environment variables:" - eerror " EGIT_OVERRIDE_COMMIT_WINE" - eerror " EGIT_OVERRIDE_COMMIT_WINE_STAGING_WINE_STAGING" - eerror - return 1 - fi -} pkg_pretend() { - if [[ ${MERGE_TYPE} != binary ]] ; then - wine_build_environment_check || die - - # Verify OSS support - if use oss; then - if ! has_version ">=media-sound/oss-4"; then - eerror "You cannot build wine with USE=oss without having support from" - eerror ">=media-sound/oss-4 (only available through external repos)" - eerror - die - fi - fi + [[ ${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 - type -P ${mingw}-gcc && continue + 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 @@ -228,324 +144,207 @@ pkg_pretend() { 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" - done - fi + fi + done fi } -pkg_setup() { - wine_build_environment_check || die - wine_env_vcs_vars || die - - WINE_VARIANT="${PN#wine}-${MY_PV}" - WINE_VARIANT="${WINE_VARIANT#-}" - - MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}" - MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}" - MY_DATADIR="${MY_DATAROOTDIR}" - MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}" - MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}" - MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}" - MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}" - MY_MANDIR="${MY_DATADIR}/man" -} - src_unpack() { - if [[ ${MY_PV} == "9999" ]] ; then - EGIT_CHECKOUT_DIR="${S}" git-r3_src_unpack - if use staging; then - local CURRENT_WINE_COMMIT=${EGIT_VERSION} - - EGIT_CHECKOUT_DIR="${STAGING_DIR}" EGIT_REPO_URI="${STAGING_EGIT_REPO_URI}" git-r3_src_unpack - - local COMPAT_WINE_COMMIT=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die - - if [[ "${CURRENT_WINE_COMMIT}" != "${COMPAT_WINE_COMMIT}" ]]; then - einfo "The current Staging patchset is not guaranteed to apply on this WINE commit." - einfo "If src_prepare fails, try emerging with the env var WINE_COMMIT." - einfo "Example: EGIT_OVERRIDE_COMMIT_WINE=${COMPAT_WINE_COMMIT} emerge -1 wine" - fi - fi + 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 - - default - - plocale_find_changes "${S}/po" "" ".po" } src_prepare() { + local staging=( + ./patchinstall.sh DESTDIR="${S}" + --all + --backend=eapply + --no-autoconf + -W winemenubuilder-Desktop_Icon_Path #652176 + ${MY_WINE_STAGING_CONF} + ) - eapply_bin(){ - local patch - for patch in ${PATCHES_BIN[@]}; do - patchbin --nogit < "${patch}" || die - done - } - - if use gecko; then - local source_gecko_version=$( sed -n -e '/^#define GECKO_VERSION/p' dlls/appwiz.cpl/addons.c | grep -Eo -m 1 '[0-9.]+' ) - if [[ ${source_gecko_version} != ${GECKO_VERSION} ]] ; then - die "app-emulation/wine-gecko version is not correct! Please file a bug." - fi - fi - - local md5="$(md5sum server/protocol.def)" - - if use staging; then - ewarn "Applying the Wine-Staging patchset. Any bug reports to the" - ewarn "Wine bugzilla should explicitly state that staging was used." - - local STAGING_EXCLUDE="-W winemenubuilder-Desktop_Icon_Path" #652176 - use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight" - - # Launch wine-staging patcher in a subshell, using eapply as a backend, and gitapply.sh as a backend for binary patches - ebegin "Running Wine-Staging patch installer" - ( - set -- DESTDIR="${S}" --backend=eapply --no-autoconf --all ${STAGING_EXCLUDE} - cd "${STAGING_DIR}/patches" - source "${STAGING_DIR}/patches/patchinstall.sh" - ) - eend $? || die "Failed to apply Wine-Staging patches" + # 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 - eapply_bin - eautoreconf - - # Modification of the server protocol requires regenerating the server requests - if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then - einfo "server/protocol.def was patched; running tools/make_requests" - tools/make_requests || die #432348 - fi - sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die - if ! use run-exes; then - sed -i '/^MimeType/d' loader/wine.desktop || die #117785 - fi - - # Edit wine.desktop to work for specific variant - sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die - # hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652 - cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die + # ensure .desktop calls this variant + slot + sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die - plocale_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS - - # Fix manpage generation for locales #469418 and abi_x86_64 #617864 - - # Duplicate manpages input files for wine64 - local f - for f in loader/*.man.in; do - cp ${f} ${f/wine/wine64} || die - done - # Add wine64 manpages to Makefile - if use abi_x86_64; then - sed -i "/wine.man.in/i \ - \\\twine64.man.in \\\\" loader/Makefile.in || die - sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\ -\164\2/' loader/Makefile.in || die - fi - - rm_man_file(){ - local file="${1}" - loc=${2} - sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die - } - - while read f; do - plocale_for_each_disabled_locale rm_man_file "${f}" - done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; -print) + # always update for patches (including user's wrt #432348) + eautoreconf + tools/make_requests || die # perl } src_configure() { - wine_compiler_check || die - - export LDCONFIG=/bin/true - use custom-cflags || strip-flags - if use mingw; then - use crossdev-mingw || PATH="${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}" - - # use *FLAGS for mingw, but strip unsupported (e.g. --hash-style=gnu) - local mingwcc=${CROSSCC:-$(usex x86 i686 x86_64)-w64-mingw32-gcc} - : "${CROSSCFLAGS:=$(CC=${mingwcc} test-flags-CC ${CFLAGS:--O2})}" - : "${CROSSLDFLAGS:=$( - filter-flags '-fuse-ld=*' - CC=${mingwcc} test-flags-CCLD ${LDFLAGS})}" - export CROSS{C,LD}FLAGS - fi - - multilib-minimal_src_configure -} - -multilib_src_configure() { - local myconf=( - --prefix="${MY_PREFIX}" - --datarootdir="${MY_DATAROOTDIR}" - --datadir="${MY_DATADIR}" - --docdir="${MY_DOCDIR}" - --includedir="${MY_INCLUDEDIR}" - --libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}" - --libexecdir="${MY_LIBEXECDIR}" - --localstatedir="${MY_LOCALSTATEDIR}" - --mandir="${MY_MANDIR}" - --sysconfdir="${EPREFIX}/etc/wine" + 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 udisks dbus) $(use_with fontconfig) - $(use_with ssl gnutls) - $(use_enable gecko mshtml) $(use_with gphoto2 gphoto) $(use_with gstreamer) - --enable-hal $(use_with kerberos gssapi) $(use_with kerberos krb5) $(use_with ldap) - # TODO: Will bug 685172 still need special handling? $(use_with mingw) - $(use_enable mono mscoree) $(use_with netapi) $(use_with nls gettext) $(use_with openal) $(use_with opencl) $(use_with opengl) $(use_with osmesa) - $(use_with oss) + --without-oss # media-sound/oss is not packaged (OSSv4) $(use_with pcap) $(use_with pulseaudio pulse) - $(use_with threads pthread) $(use_with scanner sane) $(use_with sdl) - $(use_enable test tests) + $(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 X x) - $(use_with X xfixes) + $(use_with xattr) $(use_with xcomposite) $(use_with xinerama) + $(usev !odbc ac_cv_lib_soname_odbc=) ) - use staging && myconf+=( - --with-xattr - ) - - local PKG_CONFIG - # Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038 - tc-export PKG_CONFIG - - if use amd64; then - if [[ ${ABI} == amd64 ]]; then - myconf+=( --enable-win64 ) - else - myconf+=( --disable-win64 ) + 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} + + # 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 + + # CROSSCC_amd64/x86 are unused by Wine, but recognized here for users + if (( bits == 64 )); then + : "${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}}" - # Note: using --with-wine64 results in problems with multilib.eclass - # CC/LD hackery. We're using separate tools instead. - fi - - ECONF_SOURCE=${S} \ - econf "${myconf[@]}" - emake depend -} - -multilib_src_test() { - # FIXME: win32-only; wine64 tests fail with "could not find the Wine loader" - if [[ ${ABI} == x86 ]]; then - if [[ $(id -u) == 0 ]]; then - ewarn "Skipping tests since they cannot be run under the root user." - ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf" - return + # use *FLAGS for mingw, but strip unsupported (e.g. --hash-style=gnu) + if use mingw; then + : "${CROSSCFLAGS:=$(CC=${CROSSCC} test-flags-CC ${CFLAGS:--O2})}" + : "${CROSSLDFLAGS:=$( + filter-flags '-fuse-ld=*' + CC=${CROSSCC} test-flags-CCLD ${LDFLAGS})}" + export CROSS{CC,{C,LD}FLAGS} fi - WINEPREFIX="${T}/.wine-${ABI}" \ - virtx emake test - fi + ECONF_SOURCE=${S} econf "${conf[@]}" + ) + done } -multilib_src_install_all() { - local DOCS=( ANNOUNCE AUTHORS README ) - add_locale_docs() { - local locale_doc="documentation/README.$1" - [[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} ) - } - plocale_for_each_locale add_locale_docs - - einstalldocs - find "${ED}" -name *.la -delete || die +src_compile() { + use abi_x86_64 && emake -C ../build64 # do first + use abi_x86_32 && emake -C ../build32 +} - if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script - rm "${D%}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \ - "${D%}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die +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 abi_x86_32 && pax-mark psmr "${D%}${MY_PREFIX}"/bin/wine{,-preloader} #255055 - use abi_x86_64 && pax-mark psmr "${D%}${MY_PREFIX}"/bin/wine64{,-preloader} - - # Avoid double prefix from dosym and make_wrapper - MY_PREFIX=${MY_PREFIX#${EPREFIX}} - - if use abi_x86_64 && ! use abi_x86_32; then - dosym wine64 "${MY_PREFIX}"/bin/wine # 404331 - dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader - fi + use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \ + "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die - # Failglob for binloops, shouldn't be necessary, but including to stay safe - eshopts_push -s failglob #615218 - # Make wrappers for binaries for handling multiple variants - # Note: wrappers instead of symlinks because some are shell which use basename - local b - for b in "${ED%}${MY_PREFIX}"/bin/*; do - make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}" + # create variant wrappers for eselect-wine + local bin + for bin in "${ED}"${WINE_PREFIX}/bin/*; do + make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}" done - eshopts_pop -} -pkg_postinst() { - eselect wine register ${PN}-${MY_PV} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine register --vanilla ${PN}-${MY_PV} || die - else - if use staging; then - eselect wine register --staging ${PN}-${MY_PV} || die - fi + # 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 - eselect wine update --all --if-unset || die - - xdg_desktop_database_update - - if ! use gecko; then - ewarn "Without Wine Gecko, wine prefixes will not have a default" - ewarn "implementation of iexplore. Many older windows applications" - ewarn "rely upon the existence of an iexplore implementation, so" - ewarn "you will likely need to install an external one, like via winetricks" - fi - if ! use mono; then - ewarn "Without Wine Mono, wine prefixes will not have a default" - ewarn "implementation of .NET. Many windows applications rely upon" - ewarn "the existence of a .NET implementation, so you will likely need" - ewarn "to install an external one, like via winetricks" - fi + dodoc ANNOUNCE AUTHORS README* documentation/README* } -pkg_prerm() { - eselect wine deregister ${PN}-${MY_PV} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine deregister --vanilla ${PN}-${MY_PV} || die - else - if use staging; then - eselect wine deregister --staging ${PN}-${MY_PV}|| die - fi - fi +wine-eselect() { + ebegin "${1^}ing ${P} using eselect-wine" + eselect wine ${1} ${P} && + eselect wine ${1} --${PN#wine-} ${P} && + eselect wine update --if-unset && + eselect wine update --${PN#wine-} --if-unset + eend ${?} || die -n "eselect failed, may need to manually handle ${P}" +} - eselect wine update --all --if-unset || die +pkg_postinst() { + wine-eselect register } -pkg_postrm() { - xdg_desktop_database_update +pkg_prerm() { + nonfatal wine-eselect deregister } diff --git a/app-emulation/wine-vanilla/Manifest b/app-emulation/wine-vanilla/Manifest index ce37a9913fd7..e9c5834d2899 100644 --- a/app-emulation/wine-vanilla/Manifest +++ b/app-emulation/wine-vanilla/Manifest @@ -1,14 +1,12 @@ +AUX wine-vanilla-7.0-noexecstack.patch 223 BLAKE2B dff1867e2977bd14fcfab9dfa2c2f1d3288f7edca75ddd7c9f02bfd06e9f63fac37bd59ea8aa891e13ab77bac35b369825d5490a9175ed9a7736e523b61d8944 SHA512 4ba3677042b693e513fc7a133c76a509f63d0ca20633d1e8d448bca9534c0d1a0fc58e77fa9b28fd8d936393605e97ee6e3bb5fac00872d6ac5808b7712586e3 +AUX wine-vanilla-7.0-unwind.patch 1694 BLAKE2B 017c7b761d692f8e8d23f52e51529880f95bddf5fee4309ab97bee951527bd427924dbb335e4bf57a27405e3d2440666f774c6859b81933d3007247e1cbf4898 SHA512 5d20960a8eda2d80097d6db81287c9d05ed4ea50df974c93391a427b743383a6806f24bc552c18a9336e7aea0ceb801972865ff470bde8ea7fd9423f57eb09ae DIST gentoo-wine-patches-20211122.tar.xz 59796 BLAKE2B 21460e6adf4934a52f8841f76f234a764c2dc1ac77eeed1cee10adafec3aa723640ebd4b51559e9ef433070ac731c4648620bd9e75e99f31b2e2f494cf01f02d SHA512 a18cb320617e2157977032c38c322177a2d248f14e43051d38de595af171495546c93d5e71e0dbe1a4f326a2dc819bb03dcfd04454ac85bbcd6b1975ae5d9d96 DIST wine-7.0.tar.xz 27120912 BLAKE2B 84bfeb28d56f0f40bb93b1b5bf8954c8be2fd90fde5a61608e7c35f48addcce7a4d660e63c3caa3ca2c365d1e83b55a1c3485872b2d6bfa8941e2bce44c4aca6 SHA512 eec17b046ed5447eb540f421c9b2748d9419ce087496c2743a9914fd27bbe5ff9da0cfe47d3cd76fa97323bd1188a1d82b1eef4968d86ed1957dc1a95e28529c -DIST wine-7.13.tar.xz 28237664 BLAKE2B f65f6ab2ec159d0a25b44e6bcbc83db2c5ada6b0c39dd0e3fe86db74bb964d0b1bcba85e5300d5140e24c305b7e30a58953e7582df8a2117ce5d8127538f484b SHA512 2eca3aa80afa19dd0cc3cfeb8b58b78d22d2925b8201e0b7278638084a529870c1468ffc300e6a1bb343d0f0c7e28c2b3bb6c59af15dec43b8f6c1eb78b46c1e -DIST wine-7.14.tar.xz 28274396 BLAKE2B 632c4c77a5b93597b8b217a04e34a4867d9e34497322cbcdf89d3bd2c98ee2ce27983582e1aa6737ec6bf5e080f64bcb4813f3e5c83b67cebd36895251a07e2f SHA512 6727be4a23b1911b36c44ac8d347be1c98bb53e67101355d6ae829d14a3a0867ba83f77a52f4dbc02a35c3b513291dd4800148a31d28f50069d199fdee04b6e9 -DIST wine-7.15.tar.xz 28324772 BLAKE2B 2ae7f693acfa3477c5b925cb6bfc6e2c3094cf56049aae9a310206dce3ef26d32af74ab414f06020dc0e9cf782b8e3cf6b65739ae10b71e783415498b7339618 SHA512 9edf9f6169c26fd829255d323ebdda4fd606f9cf9dfebae2c0823c32a2ca40741e10acba6938e0d49a99dd15276795506887ab582fed296beb0202f77b2db1b4 DIST wine-7.16.tar.xz 28345428 BLAKE2B 6540dd196639c5b3e01af801439e4ca8d3d17ce6b9832c3ab7d0263909e0a963a5901b8baad00537242c32599af92d04ad58c9f51660583e28693b4ec1bdd803 SHA512 5085c7c1b0e762c508f33775f7f0aa41e94cb75805bb649093addad25f90f7f57d5101ba96227f58a6f18b3ae228bd004df11ec1c033692ad130e9b5279ea19e +DIST wine-7.17.tar.xz 28379876 BLAKE2B 536af8f1ac9c4dd8bae2d16cba226c99c45cd64f0a9a2569022baefee61556801d3ee15f480fd18445baecb6c78dd7950f98542dc88a3282ee5d457d0e4ddfb1 SHA512 fd8017e6174db0047a3957db3045b2ad9024e07b1e2f81800521f0b7e7f7660add6a08e09bc60e3d140816cec70aae8324fe15643bd05e541f22f66ffda52508 EBUILD wine-vanilla-7.0-r2.ebuild 14466 BLAKE2B a7b622f29ca878bfbff5658914bcd8d2814d898ca86c799fad97fb1f53829bac279234f13f4db929e8e473268365a58fa5aab6776b2cec56c823d0a2f90dd6df SHA512 ef878396f004a06975e2530ad3ef0cceb1ad0ee7d398824de0d18997ebed9953c5121dae043e95e6a960af8e733a8558db5504cd803c9bd9678eabd14c279c42 -EBUILD wine-vanilla-7.13-r1.ebuild 14323 BLAKE2B 87bdff9edfd5303cbff14539ab3aa6fa361f291ebb7787b471eaeb9dc57ce089ddd2f808e7da3ced1b38a0a5cc923292ddfa3d91551b480eb3c7e643f0b67060 SHA512 81875f2e309df9d80444e1c41bb2ab0055eebd5983a917b313bf1d9865bc60d00cfd57e48bec587e30b2e8ed039264d575a9a11653681c7f104b7ee90e320b26 -EBUILD wine-vanilla-7.13.ebuild 14367 BLAKE2B 611787c3cdd5d4123dae23b6b42491f88f70f1f4c0d2be5e7fd2042a01edc6c3217695755ac17163086a0472d31aebb3a0e65a7a1c06290067a1ad8fc0a6118c SHA512 d76550d2e6888b723a4fda530fde33eb28ab2071e6fff66aa49fdbeb15099a5df001b4800725f1e025fa57bd20dca81d5492da091b1f1253e52f381ca943efa2 -EBUILD wine-vanilla-7.14.ebuild 14323 BLAKE2B 87bdff9edfd5303cbff14539ab3aa6fa361f291ebb7787b471eaeb9dc57ce089ddd2f808e7da3ced1b38a0a5cc923292ddfa3d91551b480eb3c7e643f0b67060 SHA512 81875f2e309df9d80444e1c41bb2ab0055eebd5983a917b313bf1d9865bc60d00cfd57e48bec587e30b2e8ed039264d575a9a11653681c7f104b7ee90e320b26 -EBUILD wine-vanilla-7.15.ebuild 14323 BLAKE2B 87bdff9edfd5303cbff14539ab3aa6fa361f291ebb7787b471eaeb9dc57ce089ddd2f808e7da3ced1b38a0a5cc923292ddfa3d91551b480eb3c7e643f0b67060 SHA512 81875f2e309df9d80444e1c41bb2ab0055eebd5983a917b313bf1d9865bc60d00cfd57e48bec587e30b2e8ed039264d575a9a11653681c7f104b7ee90e320b26 +EBUILD wine-vanilla-7.0-r3.ebuild 10097 BLAKE2B 40071fe3566f96f7084d1ddf8d0e97943061ab0e2d2210f3767d8aad3b9ca66b66d66ffe554dcdcdf4ff12842f82175a5c23b1bf726aa3261fdfb9ba843d7627 SHA512 9ea7a6104b07d7e95465dee64c89ffecb2e11c88410a2dfbeeb455034b99eb7d7ababc06c7ed0037ed77962a10708079fc1a04e3d39d5e5c8b42cc7181a82391 EBUILD wine-vanilla-7.16.ebuild 14648 BLAKE2B 3c5e700a282337b1cf11aaffa76ff9b1e4be33d92e1eae834f64d9e85819aaf4a477ab02e19839c8e7d5ae937b372b65416cb264d198412f5580f60811992414 SHA512 263c916ac2d88a68bf703f0af7b91e969cebad8bde9f31b9bd59166a84c5d90f0d7566a9b3de6e531af156d38323cef05f01e3d3e446cdde8f205b2a3884e4aa -EBUILD wine-vanilla-9999.ebuild 14648 BLAKE2B 3c5e700a282337b1cf11aaffa76ff9b1e4be33d92e1eae834f64d9e85819aaf4a477ab02e19839c8e7d5ae937b372b65416cb264d198412f5580f60811992414 SHA512 263c916ac2d88a68bf703f0af7b91e969cebad8bde9f31b9bd59166a84c5d90f0d7566a9b3de6e531af156d38323cef05f01e3d3e446cdde8f205b2a3884e4aa -MISC metadata.xml 3197 BLAKE2B 97ffc90d829a9275b64d02e3428118ff3c65d415ec0ef03995a0170cf428d20cfa010d324421fa119007c033ca78c9008fae6b9b088c7c1deaf87082a6a4c3eb SHA512 82b59cb9e82c585c2c1232f49ca706dcdf270d223863f35d46af678ceb30f40cbbadef519c71ce80418934b2e4ffc5e96a37d1db0c3fb22ab6c119593e3be761 +EBUILD wine-vanilla-7.17.ebuild 10012 BLAKE2B cdb9029ce42abddf8442f47ebebe4ba25dc34177a3fefa47cc3d3e33fc725171d967df2ffdad2316f766c6d52f9b584b18b7e9d14423cf7884c0c0e212410dbc SHA512 fd82eef6f3f033432cc1a2d58bc9bbb3d5604433d3f5d83146bc604ae3b2bea77bbcce18d12c723ea40fe7456841b763e8f22402778ca54756e24bda0ee747a5 +EBUILD wine-vanilla-9999.ebuild 10012 BLAKE2B cdb9029ce42abddf8442f47ebebe4ba25dc34177a3fefa47cc3d3e33fc725171d967df2ffdad2316f766c6d52f9b584b18b7e9d14423cf7884c0c0e212410dbc SHA512 fd82eef6f3f033432cc1a2d58bc9bbb3d5604433d3f5d83146bc604ae3b2bea77bbcce18d12c723ea40fe7456841b763e8f22402778ca54756e24bda0ee747a5 +MISC metadata.xml 2615 BLAKE2B 5f04e3c80cd7a05192b5ebbeffe72c88eace52a3db40e6db3601c8edeba9fa28b9133b0a08e1e0cf88c45ef7e8f6817c344581817649a704c0ebf827a34b100b SHA512 7e9b945d518134a2507d8f89fa7ffde65df813bf080b5f5ab2408a49ae6c8b5d212009a3393d92233d72724dc79fe8d8f390cd25ec85ff91653bf1a2ffc1bea5 diff --git a/app-emulation/wine-vanilla/files/wine-vanilla-7.0-noexecstack.patch b/app-emulation/wine-vanilla/files/wine-vanilla-7.0-noexecstack.patch new file mode 100644 index 000000000000..92aa0b4b5c5d --- /dev/null +++ b/app-emulation/wine-vanilla/files/wine-vanilla-7.0-noexecstack.patch @@ -0,0 +1,7 @@ +Also write GNU-stack note on dummy files used for stub libraries. +--- a/tools/winebuild/import.c ++++ b/tools/winebuild/import.c +@@ -1675,2 +1675,3 @@ + output( "\t.text\n" ); ++ output_gnu_stack_note(); + } diff --git a/app-emulation/wine-vanilla/files/wine-vanilla-7.0-unwind.patch b/app-emulation/wine-vanilla/files/wine-vanilla-7.0-unwind.patch new file mode 100644 index 000000000000..74f22362ea9b --- /dev/null +++ b/app-emulation/wine-vanilla/files/wine-vanilla-7.0-unwind.patch @@ -0,0 +1,40 @@ +Fix build with llvm-libunwind, and also fix for non-llvm libunwind +when using clang+bfd given clang doesn't have _Unwind_Find_FDE in +its rtlib and expects it from llvm-libunwind. + +The _CONFIG_H_ check is for <llvm-libunwind-15 (adds _VERSION). +--- a/dlls/ntdll/unix/signal_x86_64.c ++++ b/dlls/ntdll/unix/signal_x86_64.c +@@ -635,7 +635,9 @@ + unsigned int cie_offset; + }; + ++#if defined(_LIBUNWIND_VERSION) || defined(____LIBUNWIND_CONFIG_H__) || !defined(__clang__) + extern const struct dwarf_fde *_Unwind_Find_FDE (void *, struct dwarf_eh_bases *); ++#endif + + static unsigned char dwarf_get_u1( const unsigned char **p ) + { +@@ -1357,7 +1359,7 @@ + unw_proc_info_t info; + int rc; + +-#ifdef __APPLE__ ++#if defined(__APPLE__) || defined(_LIBUNWIND_VERSION) || defined(____LIBUNWIND_CONFIG_H__) + rc = unw_getcontext( &unw_context ); + if (rc == UNW_ESUCCESS) + rc = unw_init_local( &cursor, &unw_context ); +@@ -1480,11 +1482,13 @@ + NTSTATUS CDECL unwind_builtin_dll( ULONG type, DISPATCHER_CONTEXT *dispatch, CONTEXT *context ) + { + struct dwarf_eh_bases bases; ++#if defined(_LIBUNWIND_VERSION) || defined(____LIBUNWIND_CONFIG_H__) || !defined(__clang__) + const struct dwarf_fde *fde = _Unwind_Find_FDE( (void *)(context->Rip - 1), &bases ); + + if (fde) + return dwarf_virtual_unwind( context->Rip, &dispatch->EstablisherFrame, context, fde, + &bases, &dispatch->LanguageHandler, &dispatch->HandlerData ); ++#endif + #ifdef HAVE_LIBUNWIND + return libunwind_virtual_unwind( context->Rip, &dispatch->EstablisherFrame, context, + &dispatch->LanguageHandler, &dispatch->HandlerData ); diff --git a/app-emulation/wine-vanilla/metadata.xml b/app-emulation/wine-vanilla/metadata.xml index a0dae9aab09b..3210c15635f8 100644 --- a/app-emulation/wine-vanilla/metadata.xml +++ b/app-emulation/wine-vanilla/metadata.xml @@ -13,34 +13,26 @@ Think of Wine as a compatibility layer for running Windows programs. Wine does n This variant of the Wine packaging does not include external patchsets </longdescription> <use> - <flag name="capi">Enable ISDN support via CAPI</flag> + <flag name="capi">Enable ISDN support using <pkg>net-libs/libcapi</pkg></flag> <flag name="crossdev-mingw"> Use <pkg>sys-devel/crossdev</pkg> for the toolchain rather than <pkg>dev-util/mingw64-toolchain</pkg> (requires manual setting up) </flag> - <flag name="custom-cflags">Bypass strip-flags; use at your own peril</flag> <flag name="dos">Pull in <pkg>games-emulation/dosbox</pkg> to run DOS applications</flag> - <flag name="gecko">Add support for the Gecko engine when using iexplore</flag> + <flag name="gecko">Enable mshtml support using <pkg>app-emulation/wine-gecko</pkg></flag> <flag name="gssapi">Use GSSAPI (Kerberos SSP support)</flag> - <flag name="gstreamer">Use <pkg>media-libs/gstreamer</pkg> to provide DirectShow functionality;</flag> - <flag name="mingw">Build PE files using a MinGW cross compiler</flag> - <flag name="mono">Add support for .NET using Wine's Mono add-on</flag> - <flag name="netapi">Use libnetapi from <pkg>net-fs/samba</pkg> to support Windows networks in netapi32.dll</flag> + <flag name="mingw">Build PE files using a MinGW toolchain for better compatibility</flag> + <flag name="mono">Enable .NET support using <pkg>app-emulation/wine-mono</pkg></flag> + <flag name="netapi">Enable support for configuring remote shares using <pkg>net-fs/samba</pkg></flag> <flag name="opencl">Enable OpenCL support</flag> - <flag name="osmesa">Add support for OpenGL in bitmaps using libOSMesa</flag> + <flag name="osmesa">Enable off-screen rendering (OpenGL in bitmaps) support</flag> <flag name="pcap">Support packet capture software (e.g. wireshark)</flag> - <flag name="perl">Install helpers written in perl (winedump/winemaker)</flag> + <flag name="perl">Install helpers that require perl (winedump/winemaker)</flag> <flag name="realtime">Pull in <pkg>sys-auth/rtkit</pkg> for low-latency pulseaudio support</flag> <flag name="run-exes">Use Wine to open and run .EXE and .MSI files</flag> - <flag name="samba">Add support for NTLM auth. See: - https://web.archive.org/web/20160108123008/http://wiki.winehq.org:80/NtlmAuthSetupGuide and - https://web.archive.org/web/20150906013746/http://wiki.winehq.org/NtlmSigningAndSealing - (these pages are not currently in the updated WineHQ Wiki).</flag> - <flag name="sdl">Add support for gamepad detection using SDL</flag> - <flag name="udev">Use <pkg>virtual/libudev</pkg> to provide plug and play support</flag> - <flag name="unwind">Use <pkg>sys-libs/libunwind</pkg> to unwind the stack</flag> - <flag name="usb">Use <pkg>virtual/libusb</pkg> to provide USB support</flag> - <flag name="vkd3d">Use <pkg>app-emulation/vkd3d</pkg> to provide Direct3D 12 support</flag> + <flag name="samba">Pull in <pkg>net-fs/samba</pkg> with winbind for NTLM auth support</flag> + <flag name="sdl">Enable gamepad support using <pkg>media-libs/libsdl2</pkg></flag> + <flag name="vkd3d">Enable DirectX 12 support using <pkg>app-emulation/vkd3d</pkg></flag> <flag name="vulkan">Enable Vulkan drivers</flag> </use> <upstream> diff --git a/app-emulation/wine-vanilla/wine-vanilla-7.0-r3.ebuild b/app-emulation/wine-vanilla/wine-vanilla-7.0-r3.ebuild new file mode 100644 index 000000000000..7a2564b15a56 --- /dev/null +++ b/app-emulation/wine-vanilla/wine-vanilla-7.0-r3.ebuild @@ -0,0 +1,318 @@ +# 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.2 +WINE_MONO=7.0.0 + +if [[ ${PV} == *9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git" +else + (( $(ver_cut 2) )) && WINE_SDIR=$(ver_cut 1).x || WINE_SDIR=$(ver_cut 1).0 + SRC_URI="https://dl.winehq.org/wine/source/${WINE_SDIR}/wine-${PV}.tar.xz" + S="${WORKDIR}/wine-${PV}" + KEYWORDS="-* ~amd64 ~x86" +fi + +DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets" +HOMEPAGE="https://www.winehq.org/" + +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 openal + opencl +opengl osmesa pcap perl pulseaudio samba scanner +sdl + selinux +ssl +truetype udev udisks +unwind usb v4l +vkd3d +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}] ) + openal? ( media-libs/openal[${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}] ) + vkd3d? ( >=app-emulation/vkd3d-1.2[${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/bison + sys-devel/flex + virtual/pkgconfig + mingw? ( !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] ) ) + nls? ( sys-devel/gettext )" +IDEPEND="app-eselect/eselect-wine" + +QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext + +PATCHES=( + "${FILESDIR}"/${PN}-7.0-noexecstack.patch + "${FILESDIR}"/${PN}-7.0-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_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 openal) + $(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 vkd3d) + $(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} + + # 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 + + # CROSSCC_amd64/x86 are unused by Wine, but recognized here for users + if (( bits == 64 )); then + : "${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}}" + + # use *FLAGS for mingw, but strip unsupported (e.g. --hash-style=gnu) + if use mingw; then + : "${CROSSCFLAGS:=$(CC=${CROSSCC} test-flags-CC ${CFLAGS:--O2})}" + : "${CROSSLDFLAGS:=$( + filter-flags '-fuse-ld=*' + CC=${CROSSCC} test-flags-CCLD ${LDFLAGS})}" + export CROSS{CC,{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* +} + +wine-eselect() { + ebegin "${1^}ing ${P} using eselect-wine" + eselect wine ${1} ${P} && + eselect wine ${1} --${PN#wine-} ${P} && + eselect wine update --if-unset && + eselect wine update --${PN#wine-} --if-unset + eend ${?} || die -n "eselect failed, may need to manually handle ${P}" +} + +pkg_postinst() { + wine-eselect register +} + +pkg_prerm() { + nonfatal wine-eselect deregister +} diff --git a/app-emulation/wine-vanilla/wine-vanilla-7.13-r1.ebuild b/app-emulation/wine-vanilla/wine-vanilla-7.13-r1.ebuild deleted file mode 100644 index acf26429424f..000000000000 --- a/app-emulation/wine-vanilla/wine-vanilla-7.13-r1.ebuild +++ /dev/null @@ -1,468 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PLOCALES="ar ast bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru si sk sl sr_RS@cyrillic sr_RS@latin sv ta te th tr uk wa zh_CN zh_TW" -PLOCALE_BACKUP="en" - -inherit autotools estack flag-o-matic multilib-minimal pax-utils plocale toolchain-funcs virtualx wrapper xdg-utils - -MY_PN="${PN%%-*}" -MY_P="${MY_PN}-${PV}" - -if [[ ${PV} == "9999" ]] ; then - EGIT_REPO_URI="https://source.winehq.org/git/wine.git" - EGIT_BRANCH="master" - inherit git-r3 - SRC_URI="" - #KEYWORDS="" -else - MAJOR_V=$(ver_cut 1) - SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz" - KEYWORDS="-* ~amd64 ~x86" -fi -S="${WORKDIR}/${MY_P}" - -GWP_V="20211122" -PATCHDIR="${WORKDIR}/gentoo-wine-patches" - -DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets" -HOMEPAGE="https://www.winehq.org/" -SRC_URI="${SRC_URI} - https://dev.gentoo.org/~sarnex/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz -" - -LICENSE="LGPL-2.1" -SLOT="${PV}" -IUSE="+abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups custom-cflags dos +fontconfig +gecko gphoto2 gstreamer kerberos ldap mingw +mono mp3 netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl test +threads +truetype udev +udisks +unwind usb v4l vulkan +X +xcomposite xinerama" -REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 ) - X? ( truetype ) - crossdev-mingw? ( mingw ) - elibc_glibc? ( threads ) - osmesa? ( opengl ) - test? ( abi_x86_32 )" # osmesa-opengl #286560 # X-truetype #551124 - -# FIXME: the test suite is unsuitable for us; many tests require net access -# or fail due to Xvfb's opengl limitations. -RESTRICT="test" - -BDEPEND="sys-devel/flex - virtual/yacc - virtual/pkgconfig - mingw? ( !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] ) )" - -COMMON_DEPEND=" - X? ( - x11-libs/libXcursor[${MULTILIB_USEDEP}] - x11-libs/libXext[${MULTILIB_USEDEP}] - x11-libs/libXfixes[${MULTILIB_USEDEP}] - x11-libs/libXrandr[${MULTILIB_USEDEP}] - x11-libs/libXi[${MULTILIB_USEDEP}] - x11-libs/libXxf86vm[${MULTILIB_USEDEP}] - ) - alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] ) - capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] ) - cups? ( net-print/cups:=[${MULTILIB_USEDEP}] ) - fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] ) - gphoto2? ( - media-libs/libgphoto2:=[${MULTILIB_USEDEP}] - media-libs/libjpeg-turbo:0=[${MULTILIB_USEDEP}] - ) - gstreamer? ( - media-libs/gstreamer:1.0[${MULTILIB_USEDEP}] - media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] - ) - kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] ) - ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] ) - netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] ) - nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] ) - odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] ) - openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] ) - opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) - opengl? ( - virtual/opengl[${MULTILIB_USEDEP}] - ) - osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] ) - pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] ) - pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] ) - scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] ) - sdl? ( media-libs/libsdl2:=[haptic,joystick,${MULTILIB_USEDEP}] ) - ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] ) - truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] ) - udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] ) - udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) - unwind? ( sys-libs/libunwind[${MULTILIB_USEDEP}] ) - usb? ( virtual/libusb:1[${MULTILIB_USEDEP}] ) - v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] ) - vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] ) - xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) - xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )" - -RDEPEND="${COMMON_DEPEND} - app-emulation/wine-desktop-common - >app-eselect/eselect-wine-0.3 - dos? ( >=games-emulation/dosbox-0.74_p20160629 ) - gecko? ( app-emulation/wine-gecko:2.47.3[abi_x86_32?,abi_x86_64?] ) - mono? ( app-emulation/wine-mono:7.3.0 ) - perl? ( - dev-lang/perl - dev-perl/XML-Simple - ) - pulseaudio? ( - realtime? ( sys-auth/rtkit ) - ) - samba? ( >=net-fs/samba-3.0.25[winbind] ) - selinux? ( sec-policy/selinux-wine ) - udisks? ( sys-fs/udisks:2 )" - -# tools/make_requests requires perl -DEPEND="${COMMON_DEPEND} - ${BDEPEND} - >=sys-kernel/linux-headers-2.6 - X? ( x11-base/xorg-proto ) - xinerama? ( x11-base/xorg-proto )" - -# These use a non-standard "Wine" category, which is provided by -# /etc/xdg/applications-merged/wine.menu -QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop -usr/share/applications/wine-notepad.desktop -usr/share/applications/wine-uninstaller.desktop -usr/share/applications/wine-winecfg.desktop" - -PATCHES=( - "${PATCHDIR}/patches/${MY_PN}-6.22-winegcc.patch" #260726 - "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615 - "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611 -) -PATCHES_BIN=() - -# https://bugs.gentoo.org/show_bug.cgi?id=635222 -if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then - DEPEND+=" dev-util/patchbin" -fi - -wine_compiler_check() { - # Ensure compiler support - # (No checks here as of 2022) - return 0 -} - -wine_build_environment_check() { - [[ ${MERGE_TYPE} = "binary" ]] && return 0 - - if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then - eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only." - eerror "See https://bugs.gentoo.org/487864 for more details." - eerror - return 1 - fi -} - -wine_env_vcs_vars() { - local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT" - local pn_live_val="${pn_live_var}" - eval pn_live_val='$'${pn_live_val} - if [[ ! -z ${EGIT_COMMIT} ]]; then - eerror "Commits must now be specified using the environmental variables" - eerror "EGIT_OVERRIDE_COMMIT_WINE" - eerror - return 1 - fi -} - -pkg_pretend() { - wine_build_environment_check || die - - # Verify OSS support - if use oss; then - if ! has_version ">=media-sound/oss-4"; then - eerror "You cannot build wine with USE=oss without having support from" - eerror ">=media-sound/oss-4 (only available through external repos)" - eerror - die - fi - fi - - 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 - type -P ${mingw}-gcc && continue - 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" - done - fi -} - -pkg_setup() { - wine_build_environment_check || die - wine_env_vcs_vars || die - - WINE_VARIANT="${PN#wine}-${PV}" - WINE_VARIANT="${WINE_VARIANT#-}" - - MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}" - MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}" - MY_DATADIR="${MY_DATAROOTDIR}" - MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}" - MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}" - MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}" - MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}" - MY_MANDIR="${MY_DATADIR}/man" -} - -src_unpack() { - if [[ ${PV} == "9999" ]] ; then - EGIT_CHECKOUT_DIR="${S}" git-r3_src_unpack - fi - - default - - plocale_find_changes "${S}/po" "" ".po" -} - -src_prepare() { - - eapply_bin(){ - local patch - for patch in ${PATCHES_BIN[@]}; do - patchbin --nogit < "${patch}" || die - done - } - - local md5="$(md5sum server/protocol.def)" - - default - eapply_bin - eautoreconf - - # Modification of the server protocol requires regenerating the server requests - if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then - einfo "server/protocol.def was patched; running tools/make_requests" - tools/make_requests || die #432348 - fi - sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die - if ! use run-exes; then - sed -i '/^MimeType/d' loader/wine.desktop || die #117785 - fi - - # Edit wine.desktop to work for specific variant - sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die - - # hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652 - cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die - - plocale_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS - - # Fix manpage generation for locales #469418 and abi_x86_64 #617864 - - # Duplicate manpages input files for wine64 - local f - for f in loader/*.man.in; do - cp ${f} ${f/wine/wine64} || die - done - # Add wine64 manpages to Makefile - if use abi_x86_64; then - sed -i "/wine.man.in/i \ - \\\twine64.man.in \\\\" loader/Makefile.in || die - sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\ -\164\2/' loader/Makefile.in || die - fi - - rm_man_file(){ - local file="${1}" - loc=${2} - sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die - } - - while read f; do - plocale_for_each_disabled_locale rm_man_file "${f}" - done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; -print) -} - -src_configure() { - wine_compiler_check || die - - export LDCONFIG=/bin/true - use custom-cflags || strip-flags - if use mingw; then - use crossdev-mingw || PATH="${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}" - - # use *FLAGS for mingw, but strip unsupported (e.g. --hash-style=gnu) - local mingwcc=${CROSSCC:-$(usex x86 i686 x86_64)-w64-mingw32-gcc} - : "${CROSSCFLAGS:=$(CC=${mingwcc} test-flags-CC ${CFLAGS:--O2})}" - : "${CROSSLDFLAGS:=$( - filter-flags '-fuse-ld=*' - CC=${mingwcc} test-flags-CCLD ${LDFLAGS})}" - export CROSS{C,LD}FLAGS - fi - - multilib-minimal_src_configure -} - -multilib_src_configure() { - local myconf=( - --prefix="${MY_PREFIX}" - --datarootdir="${MY_DATAROOTDIR}" - --datadir="${MY_DATADIR}" - --docdir="${MY_DOCDIR}" - --includedir="${MY_INCLUDEDIR}" - --libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}" - --libexecdir="${MY_LIBEXECDIR}" - --localstatedir="${MY_LOCALSTATEDIR}" - --mandir="${MY_MANDIR}" - --sysconfdir="${EPREFIX}/etc/wine" - $(use_with alsa) - $(use_with capi) - $(use_with cups) - $(use_with udisks dbus) - $(use_with fontconfig) - $(use_with ssl gnutls) - $(use_enable gecko mshtml) - $(use_with gphoto2 gphoto) - $(use_with gstreamer) - --enable-hal - $(use_with kerberos gssapi) - $(use_with kerberos krb5) - $(use_with ldap) - # TODO: Will bug 685172 still need special handling? - $(use_with mingw) - $(use_enable mono mscoree) - $(use_with netapi) - $(use_with nls gettext) - $(use_with openal) - $(use_with opencl) - $(use_with opengl) - $(use_with osmesa) - $(use_with oss) - $(use_with pcap) - $(use_with pulseaudio pulse) - $(use_with threads pthread) - $(use_with scanner sane) - $(use_with sdl) - $(use_enable test tests) - $(use_with truetype freetype) - $(use_with udev) - $(use_with unwind) - $(use_with usb) - $(use_with v4l v4l2) - $(use_with vulkan) - $(use_with X x) - $(use_with X xfixes) - $(use_with xcomposite) - $(use_with xinerama) - ) - - local PKG_CONFIG - # Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038 - tc-export PKG_CONFIG - - if use amd64; then - if [[ ${ABI} == amd64 ]]; then - myconf+=( --enable-win64 ) - else - myconf+=( --disable-win64 ) - fi - - # Note: using --with-wine64 results in problems with multilib.eclass - # CC/LD hackery. We're using separate tools instead. - fi - - ECONF_SOURCE=${S} \ - econf "${myconf[@]}" - emake depend -} - -multilib_src_test() { - # FIXME: win32-only; wine64 tests fail with "could not find the Wine loader" - if [[ ${ABI} == x86 ]]; then - if [[ $(id -u) == 0 ]]; then - ewarn "Skipping tests since they cannot be run under the root user." - ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf" - return - fi - - WINEPREFIX="${T}/.wine-${ABI}" \ - virtx emake test - fi -} - -multilib_src_install_all() { - local DOCS=( ANNOUNCE AUTHORS README ) - add_locale_docs() { - local locale_doc="documentation/README.$1" - [[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} ) - } - plocale_for_each_locale add_locale_docs - - einstalldocs - find "${ED}" -name *.la -delete || die - - if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script - rm "${D%}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \ - "${D%}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die - fi - - use abi_x86_32 && pax-mark psmr "${D%}${MY_PREFIX}"/bin/wine{,-preloader} #255055 - use abi_x86_64 && pax-mark psmr "${D%}${MY_PREFIX}"/bin/wine64{,-preloader} - - # Avoid double prefix from dosym and make_wrapper - MY_PREFIX=${MY_PREFIX#${EPREFIX}} - - if use abi_x86_64 && ! use abi_x86_32; then - dosym wine64 "${MY_PREFIX}"/bin/wine # 404331 - dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader - fi - - # Failglob for binloops, shouldn't be necessary, but including to stay safe - eshopts_push -s failglob #615218 - # Make wrappers for binaries for handling multiple variants - # Note: wrappers instead of symlinks because some are shell which use basename - local b - for b in "${ED%}${MY_PREFIX}"/bin/*; do - make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}" - done - eshopts_pop -} - -pkg_postinst() { - eselect wine register ${P} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine register --vanilla ${P} || die - fi - - eselect wine update --all --if-unset || die - - xdg_desktop_database_update - - if ! use gecko; then - ewarn "Without Wine Gecko, wine prefixes will not have a default" - ewarn "implementation of iexplore. Many older windows applications" - ewarn "rely upon the existence of an iexplore implementation, so" - ewarn "you will likely need to install an external one, like via winetricks" - fi - if ! use mono; then - ewarn "Without Wine Mono, wine prefixes will not have a default" - ewarn "implementation of .NET. Many windows applications rely upon" - ewarn "the existence of a .NET implementation, so you will likely need" - ewarn "to install an external one, like via winetricks" - fi -} - -pkg_prerm() { - eselect wine deregister ${P} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine deregister --vanilla ${P} || die - fi - - eselect wine update --all --if-unset || die -} - -pkg_postrm() { - xdg_desktop_database_update -} diff --git a/app-emulation/wine-vanilla/wine-vanilla-7.13.ebuild b/app-emulation/wine-vanilla/wine-vanilla-7.13.ebuild deleted file mode 100644 index 66f83e3746d6..000000000000 --- a/app-emulation/wine-vanilla/wine-vanilla-7.13.ebuild +++ /dev/null @@ -1,469 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PLOCALES="ar ast bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru si sk sl sr_RS@cyrillic sr_RS@latin sv ta te th tr uk wa zh_CN zh_TW" -PLOCALE_BACKUP="en" - -inherit autotools estack flag-o-matic multilib-minimal pax-utils plocale toolchain-funcs virtualx wrapper xdg-utils - -MY_PN="${PN%%-*}" -MY_P="${MY_PN}-${PV}" - -if [[ ${PV} == "9999" ]] ; then - EGIT_REPO_URI="https://source.winehq.org/git/wine.git" - EGIT_BRANCH="master" - inherit git-r3 - SRC_URI="" - #KEYWORDS="" -else - MAJOR_V=$(ver_cut 1) - SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz" - KEYWORDS="-* ~amd64 ~x86" -fi -S="${WORKDIR}/${MY_P}" - -GWP_V="20211122" -PATCHDIR="${WORKDIR}/gentoo-wine-patches" - -DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets" -HOMEPAGE="https://www.winehq.org/" -SRC_URI="${SRC_URI} - https://dev.gentoo.org/~sarnex/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz -" - -LICENSE="LGPL-2.1" -SLOT="${PV}" -IUSE="+abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups custom-cflags dos +fontconfig +gecko gphoto2 gssapi gstreamer kerberos ldap mingw +mono mp3 netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl test +threads +truetype udev +udisks +unwind usb v4l vulkan +X +xcomposite xinerama" -REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 ) - X? ( truetype ) - crossdev-mingw? ( mingw ) - elibc_glibc? ( threads ) - osmesa? ( opengl ) - test? ( abi_x86_32 )" # osmesa-opengl #286560 # X-truetype #551124 - -# FIXME: the test suite is unsuitable for us; many tests require net access -# or fail due to Xvfb's opengl limitations. -RESTRICT="test" - -BDEPEND="sys-devel/flex - virtual/yacc - virtual/pkgconfig - mingw? ( !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] ) )" - -COMMON_DEPEND=" - X? ( - x11-libs/libXcursor[${MULTILIB_USEDEP}] - x11-libs/libXext[${MULTILIB_USEDEP}] - x11-libs/libXfixes[${MULTILIB_USEDEP}] - x11-libs/libXrandr[${MULTILIB_USEDEP}] - x11-libs/libXi[${MULTILIB_USEDEP}] - x11-libs/libXxf86vm[${MULTILIB_USEDEP}] - ) - alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] ) - capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] ) - cups? ( net-print/cups:=[${MULTILIB_USEDEP}] ) - fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] ) - gphoto2? ( - media-libs/libgphoto2:=[${MULTILIB_USEDEP}] - media-libs/libjpeg-turbo:0=[${MULTILIB_USEDEP}] - ) - gssapi? ( virtual/krb5[${MULTILIB_USEDEP}] ) - gstreamer? ( - media-libs/gstreamer:1.0[${MULTILIB_USEDEP}] - media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] - ) - kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] ) - ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] ) - netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] ) - nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] ) - odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] ) - openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] ) - opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) - opengl? ( - virtual/opengl[${MULTILIB_USEDEP}] - ) - osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] ) - pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] ) - pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] ) - scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] ) - sdl? ( media-libs/libsdl2:=[haptic,joystick,${MULTILIB_USEDEP}] ) - ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] ) - truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] ) - udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] ) - udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) - unwind? ( sys-libs/libunwind[${MULTILIB_USEDEP}] ) - usb? ( virtual/libusb:1[${MULTILIB_USEDEP}] ) - v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] ) - vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] ) - xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) - xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )" - -RDEPEND="${COMMON_DEPEND} - app-emulation/wine-desktop-common - >app-eselect/eselect-wine-0.3 - dos? ( >=games-emulation/dosbox-0.74_p20160629 ) - gecko? ( app-emulation/wine-gecko:2.47.3[abi_x86_32?,abi_x86_64?] ) - mono? ( app-emulation/wine-mono:7.3.0 ) - perl? ( - dev-lang/perl - dev-perl/XML-Simple - ) - pulseaudio? ( - realtime? ( sys-auth/rtkit ) - ) - samba? ( >=net-fs/samba-3.0.25[winbind] ) - selinux? ( sec-policy/selinux-wine ) - udisks? ( sys-fs/udisks:2 )" - -# tools/make_requests requires perl -DEPEND="${COMMON_DEPEND} - ${BDEPEND} - >=sys-kernel/linux-headers-2.6 - X? ( x11-base/xorg-proto ) - xinerama? ( x11-base/xorg-proto )" - -# These use a non-standard "Wine" category, which is provided by -# /etc/xdg/applications-merged/wine.menu -QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop -usr/share/applications/wine-notepad.desktop -usr/share/applications/wine-uninstaller.desktop -usr/share/applications/wine-winecfg.desktop" - -PATCHES=( - "${PATCHDIR}/patches/${MY_PN}-6.22-winegcc.patch" #260726 - "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615 - "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611 -) -PATCHES_BIN=() - -# https://bugs.gentoo.org/show_bug.cgi?id=635222 -if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then - DEPEND+=" dev-util/patchbin" -fi - -wine_compiler_check() { - # Ensure compiler support - # (No checks here as of 2022) - return 0 -} - -wine_build_environment_check() { - [[ ${MERGE_TYPE} = "binary" ]] && return 0 - - if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then - eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only." - eerror "See https://bugs.gentoo.org/487864 for more details." - eerror - return 1 - fi -} - -wine_env_vcs_vars() { - local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT" - local pn_live_val="${pn_live_var}" - eval pn_live_val='$'${pn_live_val} - if [[ ! -z ${EGIT_COMMIT} ]]; then - eerror "Commits must now be specified using the environmental variables" - eerror "EGIT_OVERRIDE_COMMIT_WINE" - eerror - return 1 - fi -} - -pkg_pretend() { - wine_build_environment_check || die - - # Verify OSS support - if use oss; then - if ! has_version ">=media-sound/oss-4"; then - eerror "You cannot build wine with USE=oss without having support from" - eerror ">=media-sound/oss-4 (only available through external repos)" - eerror - die - fi - fi - - 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 - type -P ${mingw}-gcc && continue - 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" - done - fi -} - -pkg_setup() { - wine_build_environment_check || die - wine_env_vcs_vars || die - - WINE_VARIANT="${PN#wine}-${PV}" - WINE_VARIANT="${WINE_VARIANT#-}" - - MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}" - MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}" - MY_DATADIR="${MY_DATAROOTDIR}" - MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}" - MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}" - MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}" - MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}" - MY_MANDIR="${MY_DATADIR}/man" -} - -src_unpack() { - if [[ ${PV} == "9999" ]] ; then - EGIT_CHECKOUT_DIR="${S}" git-r3_src_unpack - fi - - default - - plocale_find_changes "${S}/po" "" ".po" -} - -src_prepare() { - - eapply_bin(){ - local patch - for patch in ${PATCHES_BIN[@]}; do - patchbin --nogit < "${patch}" || die - done - } - - local md5="$(md5sum server/protocol.def)" - - default - eapply_bin - eautoreconf - - # Modification of the server protocol requires regenerating the server requests - if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then - einfo "server/protocol.def was patched; running tools/make_requests" - tools/make_requests || die #432348 - fi - sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die - if ! use run-exes; then - sed -i '/^MimeType/d' loader/wine.desktop || die #117785 - fi - - # Edit wine.desktop to work for specific variant - sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die - - # hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652 - cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die - - plocale_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS - - # Fix manpage generation for locales #469418 and abi_x86_64 #617864 - - # Duplicate manpages input files for wine64 - local f - for f in loader/*.man.in; do - cp ${f} ${f/wine/wine64} || die - done - # Add wine64 manpages to Makefile - if use abi_x86_64; then - sed -i "/wine.man.in/i \ - \\\twine64.man.in \\\\" loader/Makefile.in || die - sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\ -\164\2/' loader/Makefile.in || die - fi - - rm_man_file(){ - local file="${1}" - loc=${2} - sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die - } - - while read f; do - plocale_for_each_disabled_locale rm_man_file "${f}" - done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; -print) -} - -src_configure() { - wine_compiler_check || die - - export LDCONFIG=/bin/true - use custom-cflags || strip-flags - if use mingw; then - use crossdev-mingw || PATH="${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}" - - # use *FLAGS for mingw, but strip unsupported (e.g. --hash-style=gnu) - local mingwcc=${CROSSCC:-$(usex x86 i686 x86_64)-w64-mingw32-gcc} - : "${CROSSCFLAGS:=$(CC=${mingwcc} test-flags-CC ${CFLAGS:--O2})}" - : "${CROSSLDFLAGS:=$( - filter-flags '-fuse-ld=*' - CC=${mingwcc} test-flags-CCLD ${LDFLAGS})}" - export CROSS{C,LD}FLAGS - fi - - multilib-minimal_src_configure -} - -multilib_src_configure() { - local myconf=( - --prefix="${MY_PREFIX}" - --datarootdir="${MY_DATAROOTDIR}" - --datadir="${MY_DATADIR}" - --docdir="${MY_DOCDIR}" - --includedir="${MY_INCLUDEDIR}" - --libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}" - --libexecdir="${MY_LIBEXECDIR}" - --localstatedir="${MY_LOCALSTATEDIR}" - --mandir="${MY_MANDIR}" - --sysconfdir="${EPREFIX}/etc/wine" - $(use_with alsa) - $(use_with capi) - $(use_with cups) - $(use_with udisks dbus) - $(use_with fontconfig) - $(use_with ssl gnutls) - $(use_enable gecko mshtml) - $(use_with gphoto2 gphoto) - $(use_with gssapi) - $(use_with gstreamer) - --enable-hal - $(use_with kerberos krb5) - $(use_with ldap) - # TODO: Will bug 685172 still need special handling? - $(use_with mingw) - $(use_enable mono mscoree) - $(use_with netapi) - $(use_with nls gettext) - $(use_with openal) - $(use_with opencl) - $(use_with opengl) - $(use_with osmesa) - $(use_with oss) - $(use_with pcap) - $(use_with pulseaudio pulse) - $(use_with threads pthread) - $(use_with scanner sane) - $(use_with sdl) - $(use_enable test tests) - $(use_with truetype freetype) - $(use_with udev) - $(use_with unwind) - $(use_with usb) - $(use_with v4l v4l2) - $(use_with vulkan) - $(use_with X x) - $(use_with X xfixes) - $(use_with xcomposite) - $(use_with xinerama) - ) - - local PKG_CONFIG - # Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038 - tc-export PKG_CONFIG - - if use amd64; then - if [[ ${ABI} == amd64 ]]; then - myconf+=( --enable-win64 ) - else - myconf+=( --disable-win64 ) - fi - - # Note: using --with-wine64 results in problems with multilib.eclass - # CC/LD hackery. We're using separate tools instead. - fi - - ECONF_SOURCE=${S} \ - econf "${myconf[@]}" - emake depend -} - -multilib_src_test() { - # FIXME: win32-only; wine64 tests fail with "could not find the Wine loader" - if [[ ${ABI} == x86 ]]; then - if [[ $(id -u) == 0 ]]; then - ewarn "Skipping tests since they cannot be run under the root user." - ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf" - return - fi - - WINEPREFIX="${T}/.wine-${ABI}" \ - virtx emake test - fi -} - -multilib_src_install_all() { - local DOCS=( ANNOUNCE AUTHORS README ) - add_locale_docs() { - local locale_doc="documentation/README.$1" - [[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} ) - } - plocale_for_each_locale add_locale_docs - - einstalldocs - find "${ED}" -name *.la -delete || die - - if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script - rm "${D%}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \ - "${D%}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die - fi - - use abi_x86_32 && pax-mark psmr "${D%}${MY_PREFIX}"/bin/wine{,-preloader} #255055 - use abi_x86_64 && pax-mark psmr "${D%}${MY_PREFIX}"/bin/wine64{,-preloader} - - # Avoid double prefix from dosym and make_wrapper - MY_PREFIX=${MY_PREFIX#${EPREFIX}} - - if use abi_x86_64 && ! use abi_x86_32; then - dosym wine64 "${MY_PREFIX}"/bin/wine # 404331 - dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader - fi - - # Failglob for binloops, shouldn't be necessary, but including to stay safe - eshopts_push -s failglob #615218 - # Make wrappers for binaries for handling multiple variants - # Note: wrappers instead of symlinks because some are shell which use basename - local b - for b in "${ED%}${MY_PREFIX}"/bin/*; do - make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}" - done - eshopts_pop -} - -pkg_postinst() { - eselect wine register ${P} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine register --vanilla ${P} || die - fi - - eselect wine update --all --if-unset || die - - xdg_desktop_database_update - - if ! use gecko; then - ewarn "Without Wine Gecko, wine prefixes will not have a default" - ewarn "implementation of iexplore. Many older windows applications" - ewarn "rely upon the existence of an iexplore implementation, so" - ewarn "you will likely need to install an external one, like via winetricks" - fi - if ! use mono; then - ewarn "Without Wine Mono, wine prefixes will not have a default" - ewarn "implementation of .NET. Many windows applications rely upon" - ewarn "the existence of a .NET implementation, so you will likely need" - ewarn "to install an external one, like via winetricks" - fi -} - -pkg_prerm() { - eselect wine deregister ${P} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine deregister --vanilla ${P} || die - fi - - eselect wine update --all --if-unset || die -} - -pkg_postrm() { - xdg_desktop_database_update -} diff --git a/app-emulation/wine-vanilla/wine-vanilla-7.14.ebuild b/app-emulation/wine-vanilla/wine-vanilla-7.14.ebuild deleted file mode 100644 index acf26429424f..000000000000 --- a/app-emulation/wine-vanilla/wine-vanilla-7.14.ebuild +++ /dev/null @@ -1,468 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PLOCALES="ar ast bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru si sk sl sr_RS@cyrillic sr_RS@latin sv ta te th tr uk wa zh_CN zh_TW" -PLOCALE_BACKUP="en" - -inherit autotools estack flag-o-matic multilib-minimal pax-utils plocale toolchain-funcs virtualx wrapper xdg-utils - -MY_PN="${PN%%-*}" -MY_P="${MY_PN}-${PV}" - -if [[ ${PV} == "9999" ]] ; then - EGIT_REPO_URI="https://source.winehq.org/git/wine.git" - EGIT_BRANCH="master" - inherit git-r3 - SRC_URI="" - #KEYWORDS="" -else - MAJOR_V=$(ver_cut 1) - SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz" - KEYWORDS="-* ~amd64 ~x86" -fi -S="${WORKDIR}/${MY_P}" - -GWP_V="20211122" -PATCHDIR="${WORKDIR}/gentoo-wine-patches" - -DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets" -HOMEPAGE="https://www.winehq.org/" -SRC_URI="${SRC_URI} - https://dev.gentoo.org/~sarnex/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz -" - -LICENSE="LGPL-2.1" -SLOT="${PV}" -IUSE="+abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups custom-cflags dos +fontconfig +gecko gphoto2 gstreamer kerberos ldap mingw +mono mp3 netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl test +threads +truetype udev +udisks +unwind usb v4l vulkan +X +xcomposite xinerama" -REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 ) - X? ( truetype ) - crossdev-mingw? ( mingw ) - elibc_glibc? ( threads ) - osmesa? ( opengl ) - test? ( abi_x86_32 )" # osmesa-opengl #286560 # X-truetype #551124 - -# FIXME: the test suite is unsuitable for us; many tests require net access -# or fail due to Xvfb's opengl limitations. -RESTRICT="test" - -BDEPEND="sys-devel/flex - virtual/yacc - virtual/pkgconfig - mingw? ( !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] ) )" - -COMMON_DEPEND=" - X? ( - x11-libs/libXcursor[${MULTILIB_USEDEP}] - x11-libs/libXext[${MULTILIB_USEDEP}] - x11-libs/libXfixes[${MULTILIB_USEDEP}] - x11-libs/libXrandr[${MULTILIB_USEDEP}] - x11-libs/libXi[${MULTILIB_USEDEP}] - x11-libs/libXxf86vm[${MULTILIB_USEDEP}] - ) - alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] ) - capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] ) - cups? ( net-print/cups:=[${MULTILIB_USEDEP}] ) - fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] ) - gphoto2? ( - media-libs/libgphoto2:=[${MULTILIB_USEDEP}] - media-libs/libjpeg-turbo:0=[${MULTILIB_USEDEP}] - ) - gstreamer? ( - media-libs/gstreamer:1.0[${MULTILIB_USEDEP}] - media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] - ) - kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] ) - ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] ) - netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] ) - nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] ) - odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] ) - openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] ) - opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) - opengl? ( - virtual/opengl[${MULTILIB_USEDEP}] - ) - osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] ) - pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] ) - pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] ) - scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] ) - sdl? ( media-libs/libsdl2:=[haptic,joystick,${MULTILIB_USEDEP}] ) - ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] ) - truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] ) - udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] ) - udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) - unwind? ( sys-libs/libunwind[${MULTILIB_USEDEP}] ) - usb? ( virtual/libusb:1[${MULTILIB_USEDEP}] ) - v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] ) - vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] ) - xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) - xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )" - -RDEPEND="${COMMON_DEPEND} - app-emulation/wine-desktop-common - >app-eselect/eselect-wine-0.3 - dos? ( >=games-emulation/dosbox-0.74_p20160629 ) - gecko? ( app-emulation/wine-gecko:2.47.3[abi_x86_32?,abi_x86_64?] ) - mono? ( app-emulation/wine-mono:7.3.0 ) - perl? ( - dev-lang/perl - dev-perl/XML-Simple - ) - pulseaudio? ( - realtime? ( sys-auth/rtkit ) - ) - samba? ( >=net-fs/samba-3.0.25[winbind] ) - selinux? ( sec-policy/selinux-wine ) - udisks? ( sys-fs/udisks:2 )" - -# tools/make_requests requires perl -DEPEND="${COMMON_DEPEND} - ${BDEPEND} - >=sys-kernel/linux-headers-2.6 - X? ( x11-base/xorg-proto ) - xinerama? ( x11-base/xorg-proto )" - -# These use a non-standard "Wine" category, which is provided by -# /etc/xdg/applications-merged/wine.menu -QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop -usr/share/applications/wine-notepad.desktop -usr/share/applications/wine-uninstaller.desktop -usr/share/applications/wine-winecfg.desktop" - -PATCHES=( - "${PATCHDIR}/patches/${MY_PN}-6.22-winegcc.patch" #260726 - "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615 - "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611 -) -PATCHES_BIN=() - -# https://bugs.gentoo.org/show_bug.cgi?id=635222 -if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then - DEPEND+=" dev-util/patchbin" -fi - -wine_compiler_check() { - # Ensure compiler support - # (No checks here as of 2022) - return 0 -} - -wine_build_environment_check() { - [[ ${MERGE_TYPE} = "binary" ]] && return 0 - - if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then - eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only." - eerror "See https://bugs.gentoo.org/487864 for more details." - eerror - return 1 - fi -} - -wine_env_vcs_vars() { - local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT" - local pn_live_val="${pn_live_var}" - eval pn_live_val='$'${pn_live_val} - if [[ ! -z ${EGIT_COMMIT} ]]; then - eerror "Commits must now be specified using the environmental variables" - eerror "EGIT_OVERRIDE_COMMIT_WINE" - eerror - return 1 - fi -} - -pkg_pretend() { - wine_build_environment_check || die - - # Verify OSS support - if use oss; then - if ! has_version ">=media-sound/oss-4"; then - eerror "You cannot build wine with USE=oss without having support from" - eerror ">=media-sound/oss-4 (only available through external repos)" - eerror - die - fi - fi - - 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 - type -P ${mingw}-gcc && continue - 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" - done - fi -} - -pkg_setup() { - wine_build_environment_check || die - wine_env_vcs_vars || die - - WINE_VARIANT="${PN#wine}-${PV}" - WINE_VARIANT="${WINE_VARIANT#-}" - - MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}" - MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}" - MY_DATADIR="${MY_DATAROOTDIR}" - MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}" - MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}" - MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}" - MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}" - MY_MANDIR="${MY_DATADIR}/man" -} - -src_unpack() { - if [[ ${PV} == "9999" ]] ; then - EGIT_CHECKOUT_DIR="${S}" git-r3_src_unpack - fi - - default - - plocale_find_changes "${S}/po" "" ".po" -} - -src_prepare() { - - eapply_bin(){ - local patch - for patch in ${PATCHES_BIN[@]}; do - patchbin --nogit < "${patch}" || die - done - } - - local md5="$(md5sum server/protocol.def)" - - default - eapply_bin - eautoreconf - - # Modification of the server protocol requires regenerating the server requests - if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then - einfo "server/protocol.def was patched; running tools/make_requests" - tools/make_requests || die #432348 - fi - sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die - if ! use run-exes; then - sed -i '/^MimeType/d' loader/wine.desktop || die #117785 - fi - - # Edit wine.desktop to work for specific variant - sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die - - # hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652 - cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die - - plocale_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS - - # Fix manpage generation for locales #469418 and abi_x86_64 #617864 - - # Duplicate manpages input files for wine64 - local f - for f in loader/*.man.in; do - cp ${f} ${f/wine/wine64} || die - done - # Add wine64 manpages to Makefile - if use abi_x86_64; then - sed -i "/wine.man.in/i \ - \\\twine64.man.in \\\\" loader/Makefile.in || die - sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\ -\164\2/' loader/Makefile.in || die - fi - - rm_man_file(){ - local file="${1}" - loc=${2} - sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die - } - - while read f; do - plocale_for_each_disabled_locale rm_man_file "${f}" - done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; -print) -} - -src_configure() { - wine_compiler_check || die - - export LDCONFIG=/bin/true - use custom-cflags || strip-flags - if use mingw; then - use crossdev-mingw || PATH="${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}" - - # use *FLAGS for mingw, but strip unsupported (e.g. --hash-style=gnu) - local mingwcc=${CROSSCC:-$(usex x86 i686 x86_64)-w64-mingw32-gcc} - : "${CROSSCFLAGS:=$(CC=${mingwcc} test-flags-CC ${CFLAGS:--O2})}" - : "${CROSSLDFLAGS:=$( - filter-flags '-fuse-ld=*' - CC=${mingwcc} test-flags-CCLD ${LDFLAGS})}" - export CROSS{C,LD}FLAGS - fi - - multilib-minimal_src_configure -} - -multilib_src_configure() { - local myconf=( - --prefix="${MY_PREFIX}" - --datarootdir="${MY_DATAROOTDIR}" - --datadir="${MY_DATADIR}" - --docdir="${MY_DOCDIR}" - --includedir="${MY_INCLUDEDIR}" - --libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}" - --libexecdir="${MY_LIBEXECDIR}" - --localstatedir="${MY_LOCALSTATEDIR}" - --mandir="${MY_MANDIR}" - --sysconfdir="${EPREFIX}/etc/wine" - $(use_with alsa) - $(use_with capi) - $(use_with cups) - $(use_with udisks dbus) - $(use_with fontconfig) - $(use_with ssl gnutls) - $(use_enable gecko mshtml) - $(use_with gphoto2 gphoto) - $(use_with gstreamer) - --enable-hal - $(use_with kerberos gssapi) - $(use_with kerberos krb5) - $(use_with ldap) - # TODO: Will bug 685172 still need special handling? - $(use_with mingw) - $(use_enable mono mscoree) - $(use_with netapi) - $(use_with nls gettext) - $(use_with openal) - $(use_with opencl) - $(use_with opengl) - $(use_with osmesa) - $(use_with oss) - $(use_with pcap) - $(use_with pulseaudio pulse) - $(use_with threads pthread) - $(use_with scanner sane) - $(use_with sdl) - $(use_enable test tests) - $(use_with truetype freetype) - $(use_with udev) - $(use_with unwind) - $(use_with usb) - $(use_with v4l v4l2) - $(use_with vulkan) - $(use_with X x) - $(use_with X xfixes) - $(use_with xcomposite) - $(use_with xinerama) - ) - - local PKG_CONFIG - # Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038 - tc-export PKG_CONFIG - - if use amd64; then - if [[ ${ABI} == amd64 ]]; then - myconf+=( --enable-win64 ) - else - myconf+=( --disable-win64 ) - fi - - # Note: using --with-wine64 results in problems with multilib.eclass - # CC/LD hackery. We're using separate tools instead. - fi - - ECONF_SOURCE=${S} \ - econf "${myconf[@]}" - emake depend -} - -multilib_src_test() { - # FIXME: win32-only; wine64 tests fail with "could not find the Wine loader" - if [[ ${ABI} == x86 ]]; then - if [[ $(id -u) == 0 ]]; then - ewarn "Skipping tests since they cannot be run under the root user." - ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf" - return - fi - - WINEPREFIX="${T}/.wine-${ABI}" \ - virtx emake test - fi -} - -multilib_src_install_all() { - local DOCS=( ANNOUNCE AUTHORS README ) - add_locale_docs() { - local locale_doc="documentation/README.$1" - [[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} ) - } - plocale_for_each_locale add_locale_docs - - einstalldocs - find "${ED}" -name *.la -delete || die - - if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script - rm "${D%}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \ - "${D%}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die - fi - - use abi_x86_32 && pax-mark psmr "${D%}${MY_PREFIX}"/bin/wine{,-preloader} #255055 - use abi_x86_64 && pax-mark psmr "${D%}${MY_PREFIX}"/bin/wine64{,-preloader} - - # Avoid double prefix from dosym and make_wrapper - MY_PREFIX=${MY_PREFIX#${EPREFIX}} - - if use abi_x86_64 && ! use abi_x86_32; then - dosym wine64 "${MY_PREFIX}"/bin/wine # 404331 - dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader - fi - - # Failglob for binloops, shouldn't be necessary, but including to stay safe - eshopts_push -s failglob #615218 - # Make wrappers for binaries for handling multiple variants - # Note: wrappers instead of symlinks because some are shell which use basename - local b - for b in "${ED%}${MY_PREFIX}"/bin/*; do - make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}" - done - eshopts_pop -} - -pkg_postinst() { - eselect wine register ${P} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine register --vanilla ${P} || die - fi - - eselect wine update --all --if-unset || die - - xdg_desktop_database_update - - if ! use gecko; then - ewarn "Without Wine Gecko, wine prefixes will not have a default" - ewarn "implementation of iexplore. Many older windows applications" - ewarn "rely upon the existence of an iexplore implementation, so" - ewarn "you will likely need to install an external one, like via winetricks" - fi - if ! use mono; then - ewarn "Without Wine Mono, wine prefixes will not have a default" - ewarn "implementation of .NET. Many windows applications rely upon" - ewarn "the existence of a .NET implementation, so you will likely need" - ewarn "to install an external one, like via winetricks" - fi -} - -pkg_prerm() { - eselect wine deregister ${P} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine deregister --vanilla ${P} || die - fi - - eselect wine update --all --if-unset || die -} - -pkg_postrm() { - xdg_desktop_database_update -} diff --git a/app-emulation/wine-vanilla/wine-vanilla-7.15.ebuild b/app-emulation/wine-vanilla/wine-vanilla-7.15.ebuild deleted file mode 100644 index acf26429424f..000000000000 --- a/app-emulation/wine-vanilla/wine-vanilla-7.15.ebuild +++ /dev/null @@ -1,468 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PLOCALES="ar ast bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru si sk sl sr_RS@cyrillic sr_RS@latin sv ta te th tr uk wa zh_CN zh_TW" -PLOCALE_BACKUP="en" - -inherit autotools estack flag-o-matic multilib-minimal pax-utils plocale toolchain-funcs virtualx wrapper xdg-utils - -MY_PN="${PN%%-*}" -MY_P="${MY_PN}-${PV}" - -if [[ ${PV} == "9999" ]] ; then - EGIT_REPO_URI="https://source.winehq.org/git/wine.git" - EGIT_BRANCH="master" - inherit git-r3 - SRC_URI="" - #KEYWORDS="" -else - MAJOR_V=$(ver_cut 1) - SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz" - KEYWORDS="-* ~amd64 ~x86" -fi -S="${WORKDIR}/${MY_P}" - -GWP_V="20211122" -PATCHDIR="${WORKDIR}/gentoo-wine-patches" - -DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets" -HOMEPAGE="https://www.winehq.org/" -SRC_URI="${SRC_URI} - https://dev.gentoo.org/~sarnex/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz -" - -LICENSE="LGPL-2.1" -SLOT="${PV}" -IUSE="+abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups custom-cflags dos +fontconfig +gecko gphoto2 gstreamer kerberos ldap mingw +mono mp3 netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl test +threads +truetype udev +udisks +unwind usb v4l vulkan +X +xcomposite xinerama" -REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 ) - X? ( truetype ) - crossdev-mingw? ( mingw ) - elibc_glibc? ( threads ) - osmesa? ( opengl ) - test? ( abi_x86_32 )" # osmesa-opengl #286560 # X-truetype #551124 - -# FIXME: the test suite is unsuitable for us; many tests require net access -# or fail due to Xvfb's opengl limitations. -RESTRICT="test" - -BDEPEND="sys-devel/flex - virtual/yacc - virtual/pkgconfig - mingw? ( !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] ) )" - -COMMON_DEPEND=" - X? ( - x11-libs/libXcursor[${MULTILIB_USEDEP}] - x11-libs/libXext[${MULTILIB_USEDEP}] - x11-libs/libXfixes[${MULTILIB_USEDEP}] - x11-libs/libXrandr[${MULTILIB_USEDEP}] - x11-libs/libXi[${MULTILIB_USEDEP}] - x11-libs/libXxf86vm[${MULTILIB_USEDEP}] - ) - alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] ) - capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] ) - cups? ( net-print/cups:=[${MULTILIB_USEDEP}] ) - fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] ) - gphoto2? ( - media-libs/libgphoto2:=[${MULTILIB_USEDEP}] - media-libs/libjpeg-turbo:0=[${MULTILIB_USEDEP}] - ) - gstreamer? ( - media-libs/gstreamer:1.0[${MULTILIB_USEDEP}] - media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] - ) - kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] ) - ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] ) - netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] ) - nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] ) - odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] ) - openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] ) - opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) - opengl? ( - virtual/opengl[${MULTILIB_USEDEP}] - ) - osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] ) - pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] ) - pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] ) - scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] ) - sdl? ( media-libs/libsdl2:=[haptic,joystick,${MULTILIB_USEDEP}] ) - ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] ) - truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] ) - udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] ) - udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) - unwind? ( sys-libs/libunwind[${MULTILIB_USEDEP}] ) - usb? ( virtual/libusb:1[${MULTILIB_USEDEP}] ) - v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] ) - vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] ) - xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) - xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )" - -RDEPEND="${COMMON_DEPEND} - app-emulation/wine-desktop-common - >app-eselect/eselect-wine-0.3 - dos? ( >=games-emulation/dosbox-0.74_p20160629 ) - gecko? ( app-emulation/wine-gecko:2.47.3[abi_x86_32?,abi_x86_64?] ) - mono? ( app-emulation/wine-mono:7.3.0 ) - perl? ( - dev-lang/perl - dev-perl/XML-Simple - ) - pulseaudio? ( - realtime? ( sys-auth/rtkit ) - ) - samba? ( >=net-fs/samba-3.0.25[winbind] ) - selinux? ( sec-policy/selinux-wine ) - udisks? ( sys-fs/udisks:2 )" - -# tools/make_requests requires perl -DEPEND="${COMMON_DEPEND} - ${BDEPEND} - >=sys-kernel/linux-headers-2.6 - X? ( x11-base/xorg-proto ) - xinerama? ( x11-base/xorg-proto )" - -# These use a non-standard "Wine" category, which is provided by -# /etc/xdg/applications-merged/wine.menu -QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop -usr/share/applications/wine-notepad.desktop -usr/share/applications/wine-uninstaller.desktop -usr/share/applications/wine-winecfg.desktop" - -PATCHES=( - "${PATCHDIR}/patches/${MY_PN}-6.22-winegcc.patch" #260726 - "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615 - "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611 -) -PATCHES_BIN=() - -# https://bugs.gentoo.org/show_bug.cgi?id=635222 -if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then - DEPEND+=" dev-util/patchbin" -fi - -wine_compiler_check() { - # Ensure compiler support - # (No checks here as of 2022) - return 0 -} - -wine_build_environment_check() { - [[ ${MERGE_TYPE} = "binary" ]] && return 0 - - if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then - eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only." - eerror "See https://bugs.gentoo.org/487864 for more details." - eerror - return 1 - fi -} - -wine_env_vcs_vars() { - local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT" - local pn_live_val="${pn_live_var}" - eval pn_live_val='$'${pn_live_val} - if [[ ! -z ${EGIT_COMMIT} ]]; then - eerror "Commits must now be specified using the environmental variables" - eerror "EGIT_OVERRIDE_COMMIT_WINE" - eerror - return 1 - fi -} - -pkg_pretend() { - wine_build_environment_check || die - - # Verify OSS support - if use oss; then - if ! has_version ">=media-sound/oss-4"; then - eerror "You cannot build wine with USE=oss without having support from" - eerror ">=media-sound/oss-4 (only available through external repos)" - eerror - die - fi - fi - - 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 - type -P ${mingw}-gcc && continue - 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" - done - fi -} - -pkg_setup() { - wine_build_environment_check || die - wine_env_vcs_vars || die - - WINE_VARIANT="${PN#wine}-${PV}" - WINE_VARIANT="${WINE_VARIANT#-}" - - MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}" - MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}" - MY_DATADIR="${MY_DATAROOTDIR}" - MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}" - MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}" - MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}" - MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}" - MY_MANDIR="${MY_DATADIR}/man" -} - -src_unpack() { - if [[ ${PV} == "9999" ]] ; then - EGIT_CHECKOUT_DIR="${S}" git-r3_src_unpack - fi - - default - - plocale_find_changes "${S}/po" "" ".po" -} - -src_prepare() { - - eapply_bin(){ - local patch - for patch in ${PATCHES_BIN[@]}; do - patchbin --nogit < "${patch}" || die - done - } - - local md5="$(md5sum server/protocol.def)" - - default - eapply_bin - eautoreconf - - # Modification of the server protocol requires regenerating the server requests - if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then - einfo "server/protocol.def was patched; running tools/make_requests" - tools/make_requests || die #432348 - fi - sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die - if ! use run-exes; then - sed -i '/^MimeType/d' loader/wine.desktop || die #117785 - fi - - # Edit wine.desktop to work for specific variant - sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die - - # hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652 - cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die - - plocale_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS - - # Fix manpage generation for locales #469418 and abi_x86_64 #617864 - - # Duplicate manpages input files for wine64 - local f - for f in loader/*.man.in; do - cp ${f} ${f/wine/wine64} || die - done - # Add wine64 manpages to Makefile - if use abi_x86_64; then - sed -i "/wine.man.in/i \ - \\\twine64.man.in \\\\" loader/Makefile.in || die - sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\ -\164\2/' loader/Makefile.in || die - fi - - rm_man_file(){ - local file="${1}" - loc=${2} - sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die - } - - while read f; do - plocale_for_each_disabled_locale rm_man_file "${f}" - done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; -print) -} - -src_configure() { - wine_compiler_check || die - - export LDCONFIG=/bin/true - use custom-cflags || strip-flags - if use mingw; then - use crossdev-mingw || PATH="${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}" - - # use *FLAGS for mingw, but strip unsupported (e.g. --hash-style=gnu) - local mingwcc=${CROSSCC:-$(usex x86 i686 x86_64)-w64-mingw32-gcc} - : "${CROSSCFLAGS:=$(CC=${mingwcc} test-flags-CC ${CFLAGS:--O2})}" - : "${CROSSLDFLAGS:=$( - filter-flags '-fuse-ld=*' - CC=${mingwcc} test-flags-CCLD ${LDFLAGS})}" - export CROSS{C,LD}FLAGS - fi - - multilib-minimal_src_configure -} - -multilib_src_configure() { - local myconf=( - --prefix="${MY_PREFIX}" - --datarootdir="${MY_DATAROOTDIR}" - --datadir="${MY_DATADIR}" - --docdir="${MY_DOCDIR}" - --includedir="${MY_INCLUDEDIR}" - --libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}" - --libexecdir="${MY_LIBEXECDIR}" - --localstatedir="${MY_LOCALSTATEDIR}" - --mandir="${MY_MANDIR}" - --sysconfdir="${EPREFIX}/etc/wine" - $(use_with alsa) - $(use_with capi) - $(use_with cups) - $(use_with udisks dbus) - $(use_with fontconfig) - $(use_with ssl gnutls) - $(use_enable gecko mshtml) - $(use_with gphoto2 gphoto) - $(use_with gstreamer) - --enable-hal - $(use_with kerberos gssapi) - $(use_with kerberos krb5) - $(use_with ldap) - # TODO: Will bug 685172 still need special handling? - $(use_with mingw) - $(use_enable mono mscoree) - $(use_with netapi) - $(use_with nls gettext) - $(use_with openal) - $(use_with opencl) - $(use_with opengl) - $(use_with osmesa) - $(use_with oss) - $(use_with pcap) - $(use_with pulseaudio pulse) - $(use_with threads pthread) - $(use_with scanner sane) - $(use_with sdl) - $(use_enable test tests) - $(use_with truetype freetype) - $(use_with udev) - $(use_with unwind) - $(use_with usb) - $(use_with v4l v4l2) - $(use_with vulkan) - $(use_with X x) - $(use_with X xfixes) - $(use_with xcomposite) - $(use_with xinerama) - ) - - local PKG_CONFIG - # Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038 - tc-export PKG_CONFIG - - if use amd64; then - if [[ ${ABI} == amd64 ]]; then - myconf+=( --enable-win64 ) - else - myconf+=( --disable-win64 ) - fi - - # Note: using --with-wine64 results in problems with multilib.eclass - # CC/LD hackery. We're using separate tools instead. - fi - - ECONF_SOURCE=${S} \ - econf "${myconf[@]}" - emake depend -} - -multilib_src_test() { - # FIXME: win32-only; wine64 tests fail with "could not find the Wine loader" - if [[ ${ABI} == x86 ]]; then - if [[ $(id -u) == 0 ]]; then - ewarn "Skipping tests since they cannot be run under the root user." - ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf" - return - fi - - WINEPREFIX="${T}/.wine-${ABI}" \ - virtx emake test - fi -} - -multilib_src_install_all() { - local DOCS=( ANNOUNCE AUTHORS README ) - add_locale_docs() { - local locale_doc="documentation/README.$1" - [[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} ) - } - plocale_for_each_locale add_locale_docs - - einstalldocs - find "${ED}" -name *.la -delete || die - - if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script - rm "${D%}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \ - "${D%}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die - fi - - use abi_x86_32 && pax-mark psmr "${D%}${MY_PREFIX}"/bin/wine{,-preloader} #255055 - use abi_x86_64 && pax-mark psmr "${D%}${MY_PREFIX}"/bin/wine64{,-preloader} - - # Avoid double prefix from dosym and make_wrapper - MY_PREFIX=${MY_PREFIX#${EPREFIX}} - - if use abi_x86_64 && ! use abi_x86_32; then - dosym wine64 "${MY_PREFIX}"/bin/wine # 404331 - dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader - fi - - # Failglob for binloops, shouldn't be necessary, but including to stay safe - eshopts_push -s failglob #615218 - # Make wrappers for binaries for handling multiple variants - # Note: wrappers instead of symlinks because some are shell which use basename - local b - for b in "${ED%}${MY_PREFIX}"/bin/*; do - make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}" - done - eshopts_pop -} - -pkg_postinst() { - eselect wine register ${P} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine register --vanilla ${P} || die - fi - - eselect wine update --all --if-unset || die - - xdg_desktop_database_update - - if ! use gecko; then - ewarn "Without Wine Gecko, wine prefixes will not have a default" - ewarn "implementation of iexplore. Many older windows applications" - ewarn "rely upon the existence of an iexplore implementation, so" - ewarn "you will likely need to install an external one, like via winetricks" - fi - if ! use mono; then - ewarn "Without Wine Mono, wine prefixes will not have a default" - ewarn "implementation of .NET. Many windows applications rely upon" - ewarn "the existence of a .NET implementation, so you will likely need" - ewarn "to install an external one, like via winetricks" - fi -} - -pkg_prerm() { - eselect wine deregister ${P} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine deregister --vanilla ${P} || die - fi - - eselect wine update --all --if-unset || die -} - -pkg_postrm() { - xdg_desktop_database_update -} diff --git a/app-emulation/wine-vanilla/wine-vanilla-7.17.ebuild b/app-emulation/wine-vanilla/wine-vanilla-7.17.ebuild new file mode 100644 index 000000000000..f0f96f49dcfd --- /dev/null +++ b/app-emulation/wine-vanilla/wine-vanilla-7.17.ebuild @@ -0,0 +1,316 @@ +# 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.3.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/" + +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 openal + 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}] ) + openal? ( media-libs/openal[${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/bison + sys-devel/flex + virtual/pkgconfig + mingw? ( !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] ) ) + nls? ( sys-devel/gettext )" +IDEPEND="app-eselect/eselect-wine" + +QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext + +PATCHES=( + "${FILESDIR}"/${PN}-7.0-noexecstack.patch + "${FILESDIR}"/${PN}-7.0-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_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 openal) + $(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} + + # 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 + + # CROSSCC_amd64/x86 are unused by Wine, but recognized here for users + if (( bits == 64 )); then + : "${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}}" + + # use *FLAGS for mingw, but strip unsupported (e.g. --hash-style=gnu) + if use mingw; then + : "${CROSSCFLAGS:=$(CC=${CROSSCC} test-flags-CC ${CFLAGS:--O2})}" + : "${CROSSLDFLAGS:=$( + filter-flags '-fuse-ld=*' + CC=${CROSSCC} test-flags-CCLD ${LDFLAGS})}" + export CROSS{CC,{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* +} + +wine-eselect() { + ebegin "${1^}ing ${P} using eselect-wine" + eselect wine ${1} ${P} && + eselect wine ${1} --${PN#wine-} ${P} && + eselect wine update --if-unset && + eselect wine update --${PN#wine-} --if-unset + eend ${?} || die -n "eselect failed, may need to manually handle ${P}" +} + +pkg_postinst() { + wine-eselect register +} + +pkg_prerm() { + nonfatal wine-eselect deregister +} diff --git a/app-emulation/wine-vanilla/wine-vanilla-9999.ebuild b/app-emulation/wine-vanilla/wine-vanilla-9999.ebuild index 1bb18ebe2ce5..f0f96f49dcfd 100644 --- a/app-emulation/wine-vanilla/wine-vanilla-9999.ebuild +++ b/app-emulation/wine-vanilla/wine-vanilla-9999.ebuild @@ -1,476 +1,316 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -PLOCALES="ar ast bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru si sk sl sr_RS@cyrillic sr_RS@latin sv ta te th tr uk wa zh_CN zh_TW" -PLOCALE_BACKUP="en" +MULTILIB_COMPAT=( abi_x86_{32,64} ) +inherit autotools flag-o-matic multilib multilib-build toolchain-funcs wrapper -inherit autotools estack flag-o-matic multilib-minimal pax-utils plocale toolchain-funcs virtualx wrapper xdg-utils +WINE_GECKO=2.47.3 +WINE_MONO=7.3.0 -MY_PN="${PN%%-*}" -MY_P="${MY_PN}-${PV}" -GECKO_VERSION="2.47.3" - -if [[ ${PV} == "9999" ]] ; then - EGIT_REPO_URI="https://source.winehq.org/git/wine.git" - EGIT_BRANCH="master" +if [[ ${PV} == *9999 ]]; then inherit git-r3 - SRC_URI="" - #KEYWORDS="" + EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git" else - MAJOR_V=$(ver_cut 1) - SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz" + (( $(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 -S="${WORKDIR}/${MY_P}" - -GWP_V="20211122" -PATCHDIR="${WORKDIR}/gentoo-wine-patches" DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets" HOMEPAGE="https://www.winehq.org/" -SRC_URI="${SRC_URI} - https://dev.gentoo.org/~sarnex/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz -" -LICENSE="LGPL-2.1" +LICENSE="LGPL-2.1+ BSD-2 IJG MIT ZLIB gsm libpng2 libtiff" SLOT="${PV}" -IUSE="+abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups custom-cflags dos +fontconfig +gecko gphoto2 gstreamer kerberos ldap mingw +mono mp3 netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl test +threads +truetype udev +udisks +unwind usb v4l vulkan +X +xcomposite xinerama" -REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 ) +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 openal + 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 ) - elibc_glibc? ( threads ) - osmesa? ( opengl ) - test? ( abi_x86_32 )" # osmesa-opengl #286560 # X-truetype #551124 + crossdev-mingw? ( mingw )" # bug #551124 for truetype -# FIXME: the test suite is unsuitable for us; many tests require net access -# or fail due to Xvfb's opengl limitations. +# 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" -BDEPEND="sys-devel/flex - virtual/yacc - virtual/pkgconfig - mingw? ( !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] ) )" - -COMMON_DEPEND=" +# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked +WINE_DLOPEN_DEPEND=" X? ( x11-libs/libXcursor[${MULTILIB_USEDEP}] - x11-libs/libXext[${MULTILIB_USEDEP}] x11-libs/libXfixes[${MULTILIB_USEDEP}] - x11-libs/libXrandr[${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}] ) ) - alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] ) - capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] ) - cups? ( net-print/cups:=[${MULTILIB_USEDEP}] ) - fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] ) - gphoto2? ( - media-libs/libgphoto2:=[${MULTILIB_USEDEP}] - media-libs/libjpeg-turbo:0=[${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}] - media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] ) - kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] ) ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] ) - netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] ) - nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] ) - odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] ) - openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] ) + openal? ( media-libs/openal[${MULTILIB_USEDEP}] ) opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) - opengl? ( - virtual/opengl[${MULTILIB_USEDEP}] - ) - osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] ) pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] ) - pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] ) - scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] ) - sdl? ( media-libs/libsdl2:=[haptic,joystick,${MULTILIB_USEDEP}] ) - ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] ) - truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] ) + pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] ) + scanner? ( media-gfx/sane-backends[${MULTILIB_USEDEP}] ) udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] ) - udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) - unwind? ( sys-libs/libunwind[${MULTILIB_USEDEP}] ) - usb? ( virtual/libusb:1[${MULTILIB_USEDEP}] ) - v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] ) - vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] ) - xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) - xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )" - -RDEPEND="${COMMON_DEPEND} + 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 - >app-eselect/eselect-wine-0.3 - dos? ( >=games-emulation/dosbox-0.74_p20160629 ) - gecko? ( app-emulation/wine-gecko:${GECKO_VERSION}[abi_x86_32?,abi_x86_64?] ) - mono? ( app-emulation/wine-mono:7.3.0 ) + 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-Simple - ) - pulseaudio? ( - realtime? ( sys-auth/rtkit ) + dev-perl/XML-LibXML ) - samba? ( >=net-fs/samba-3.0.25[winbind] ) + 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/bison + sys-devel/flex + virtual/pkgconfig + mingw? ( !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] ) ) + nls? ( sys-devel/gettext )" +IDEPEND="app-eselect/eselect-wine" -# tools/make_requests requires perl -DEPEND="${COMMON_DEPEND} - ${BDEPEND} - >=sys-kernel/linux-headers-2.6 - X? ( x11-base/xorg-proto ) - xinerama? ( x11-base/xorg-proto )" - -# These use a non-standard "Wine" category, which is provided by -# /etc/xdg/applications-merged/wine.menu -QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop -usr/share/applications/wine-notepad.desktop -usr/share/applications/wine-uninstaller.desktop -usr/share/applications/wine-winecfg.desktop" +QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext PATCHES=( - "${PATCHDIR}/patches/${MY_PN}-6.22-winegcc.patch" #260726 - "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615 - "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611 + "${FILESDIR}"/${PN}-7.0-noexecstack.patch + "${FILESDIR}"/${PN}-7.0-unwind.patch ) -PATCHES_BIN=() - -# https://bugs.gentoo.org/show_bug.cgi?id=635222 -if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then - DEPEND+=" dev-util/patchbin" -fi - -wine_compiler_check() { - # Ensure compiler support - # (No checks here as of 2022) - return 0 -} - -wine_build_environment_check() { - [[ ${MERGE_TYPE} = "binary" ]] && return 0 - - if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then - eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only." - eerror "See https://bugs.gentoo.org/487864 for more details." - eerror - return 1 - fi -} - -wine_env_vcs_vars() { - local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT" - local pn_live_val="${pn_live_var}" - eval pn_live_val='$'${pn_live_val} - if [[ ! -z ${EGIT_COMMIT} ]]; then - eerror "Commits must now be specified using the environmental variables" - eerror "EGIT_OVERRIDE_COMMIT_WINE" - eerror - return 1 - fi -} pkg_pretend() { - wine_build_environment_check || die - - # Verify OSS support - if use oss; then - if ! has_version ">=media-sound/oss-4"; then - eerror "You cannot build wine with USE=oss without having support from" - eerror ">=media-sound/oss-4 (only available through external repos)" - eerror - die - fi - fi + [[ ${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 - type -P ${mingw}-gcc && continue - 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" + 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 } -pkg_setup() { - wine_build_environment_check || die - wine_env_vcs_vars || die - - WINE_VARIANT="${PN#wine}-${PV}" - WINE_VARIANT="${WINE_VARIANT#-}" - - MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}" - MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}" - MY_DATADIR="${MY_DATAROOTDIR}" - MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}" - MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}" - MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}" - MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}" - MY_MANDIR="${MY_DATADIR}/man" -} - -src_unpack() { - if [[ ${PV} == "9999" ]] ; then - EGIT_CHECKOUT_DIR="${S}" git-r3_src_unpack - fi - - default - - plocale_find_changes "${S}/po" "" ".po" -} - src_prepare() { - - eapply_bin(){ - local patch - for patch in ${PATCHES_BIN[@]}; do - patchbin --nogit < "${patch}" || die - done - } - - if use gecko; then - local source_gecko_version=$( sed -n -e '/^#define GECKO_VERSION/p' dlls/appwiz.cpl/addons.c | grep -Eo -m 1 '[0-9.]+' ) - if [[ ${source_gecko_version} != ${GECKO_VERSION} ]] ; then - die "app-emulation/wine-gecko version is not correct! Please file a bug." - fi + # 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 - local md5="$(md5sum server/protocol.def)" - default - eapply_bin - eautoreconf - - # Modification of the server protocol requires regenerating the server requests - if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then - einfo "server/protocol.def was patched; running tools/make_requests" - tools/make_requests || die #432348 - fi - sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die - if ! use run-exes; then - sed -i '/^MimeType/d' loader/wine.desktop || die #117785 - fi - - # Edit wine.desktop to work for specific variant - sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die - - # hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652 - cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die - - plocale_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS - - # Fix manpage generation for locales #469418 and abi_x86_64 #617864 - - # Duplicate manpages input files for wine64 - local f - for f in loader/*.man.in; do - cp ${f} ${f/wine/wine64} || die - done - # Add wine64 manpages to Makefile - if use abi_x86_64; then - sed -i "/wine.man.in/i \ - \\\twine64.man.in \\\\" loader/Makefile.in || die - sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\ -\164\2/' loader/Makefile.in || die - fi - rm_man_file(){ - local file="${1}" - loc=${2} - sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die - } + # ensure .desktop calls this variant + slot + sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die - while read f; do - plocale_for_each_disabled_locale rm_man_file "${f}" - done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; -print) + # always update for patches (including user's wrt #432348) + eautoreconf + tools/make_requests || die # perl } src_configure() { - wine_compiler_check || die - - export LDCONFIG=/bin/true - use custom-cflags || strip-flags - if use mingw; then - use crossdev-mingw || PATH="${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}" - - # use *FLAGS for mingw, but strip unsupported (e.g. --hash-style=gnu) - local mingwcc=${CROSSCC:-$(usex x86 i686 x86_64)-w64-mingw32-gcc} - : "${CROSSCFLAGS:=$(CC=${mingwcc} test-flags-CC ${CFLAGS:--O2})}" - : "${CROSSLDFLAGS:=$( - filter-flags '-fuse-ld=*' - CC=${mingwcc} test-flags-CCLD ${LDFLAGS})}" - export CROSS{C,LD}FLAGS - fi - - multilib-minimal_src_configure -} - -multilib_src_configure() { - local myconf=( - --prefix="${MY_PREFIX}" - --datarootdir="${MY_DATAROOTDIR}" - --datadir="${MY_DATADIR}" - --docdir="${MY_DOCDIR}" - --includedir="${MY_INCLUDEDIR}" - --libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}" - --libexecdir="${MY_LIBEXECDIR}" - --localstatedir="${MY_LOCALSTATEDIR}" - --mandir="${MY_MANDIR}" - --sysconfdir="${EPREFIX}/etc/wine" + 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 udisks dbus) $(use_with fontconfig) - $(use_with ssl gnutls) - $(use_enable gecko mshtml) $(use_with gphoto2 gphoto) $(use_with gstreamer) - --enable-hal $(use_with kerberos gssapi) $(use_with kerberos krb5) $(use_with ldap) - # TODO: Will bug 685172 still need special handling? $(use_with mingw) - $(use_enable mono mscoree) $(use_with netapi) $(use_with nls gettext) $(use_with openal) $(use_with opencl) $(use_with opengl) $(use_with osmesa) - $(use_with oss) + --without-oss # media-sound/oss is not packaged (OSSv4) $(use_with pcap) $(use_with pulseaudio pulse) - $(use_with threads pthread) $(use_with scanner sane) $(use_with sdl) - $(use_enable test tests) + $(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 X x) - $(use_with X xfixes) $(use_with xcomposite) $(use_with xinerama) + $(usev !odbc ac_cv_lib_soname_odbc=) ) - local PKG_CONFIG - # Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038 - tc-export PKG_CONFIG - - if use amd64; then - if [[ ${ABI} == amd64 ]]; then - myconf+=( --enable-win64 ) - else - myconf+=( --disable-win64 ) + 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} + + # 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 + + # CROSSCC_amd64/x86 are unused by Wine, but recognized here for users + if (( bits == 64 )); then + : "${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}}" - # Note: using --with-wine64 results in problems with multilib.eclass - # CC/LD hackery. We're using separate tools instead. - fi - - ECONF_SOURCE=${S} \ - econf "${myconf[@]}" - emake depend -} - -multilib_src_test() { - # FIXME: win32-only; wine64 tests fail with "could not find the Wine loader" - if [[ ${ABI} == x86 ]]; then - if [[ $(id -u) == 0 ]]; then - ewarn "Skipping tests since they cannot be run under the root user." - ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf" - return + # use *FLAGS for mingw, but strip unsupported (e.g. --hash-style=gnu) + if use mingw; then + : "${CROSSCFLAGS:=$(CC=${CROSSCC} test-flags-CC ${CFLAGS:--O2})}" + : "${CROSSLDFLAGS:=$( + filter-flags '-fuse-ld=*' + CC=${CROSSCC} test-flags-CCLD ${LDFLAGS})}" + export CROSS{CC,{C,LD}FLAGS} fi - WINEPREFIX="${T}/.wine-${ABI}" \ - virtx emake test - fi + ECONF_SOURCE=${S} econf "${conf[@]}" + ) + done } -multilib_src_install_all() { - local DOCS=( ANNOUNCE AUTHORS README ) - add_locale_docs() { - local locale_doc="documentation/README.$1" - [[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} ) - } - plocale_for_each_locale add_locale_docs - - einstalldocs - find "${ED}" -name *.la -delete || die +src_compile() { + use abi_x86_64 && emake -C ../build64 # do first + use abi_x86_32 && emake -C ../build32 +} - if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script - rm "${D%}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \ - "${D%}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die +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 abi_x86_32 && pax-mark psmr "${D%}${MY_PREFIX}"/bin/wine{,-preloader} #255055 - use abi_x86_64 && pax-mark psmr "${D%}${MY_PREFIX}"/bin/wine64{,-preloader} - - # Avoid double prefix from dosym and make_wrapper - MY_PREFIX=${MY_PREFIX#${EPREFIX}} - - if use abi_x86_64 && ! use abi_x86_32; then - dosym wine64 "${MY_PREFIX}"/bin/wine # 404331 - dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader - fi + use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \ + "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die - # Failglob for binloops, shouldn't be necessary, but including to stay safe - eshopts_push -s failglob #615218 - # Make wrappers for binaries for handling multiple variants - # Note: wrappers instead of symlinks because some are shell which use basename - local b - for b in "${ED%}${MY_PREFIX}"/bin/*; do - make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}" + # create variant wrappers for eselect-wine + local bin + for bin in "${ED}"${WINE_PREFIX}/bin/*; do + make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}" done - eshopts_pop -} -pkg_postinst() { - eselect wine register ${P} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine register --vanilla ${P} || die + # 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 - eselect wine update --all --if-unset || die - - xdg_desktop_database_update - - if ! use gecko; then - ewarn "Without Wine Gecko, wine prefixes will not have a default" - ewarn "implementation of iexplore. Many older windows applications" - ewarn "rely upon the existence of an iexplore implementation, so" - ewarn "you will likely need to install an external one, like via winetricks" - fi - if ! use mono; then - ewarn "Without Wine Mono, wine prefixes will not have a default" - ewarn "implementation of .NET. Many windows applications rely upon" - ewarn "the existence of a .NET implementation, so you will likely need" - ewarn "to install an external one, like via winetricks" - fi + dodoc ANNOUNCE AUTHORS README* documentation/README* } -pkg_prerm() { - eselect wine deregister ${P} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine deregister --vanilla ${P} || die - fi +wine-eselect() { + ebegin "${1^}ing ${P} using eselect-wine" + eselect wine ${1} ${P} && + eselect wine ${1} --${PN#wine-} ${P} && + eselect wine update --if-unset && + eselect wine update --${PN#wine-} --if-unset + eend ${?} || die -n "eselect failed, may need to manually handle ${P}" +} - eselect wine update --all --if-unset || die +pkg_postinst() { + wine-eselect register } -pkg_postrm() { - xdg_desktop_database_update +pkg_prerm() { + nonfatal wine-eselect deregister } |