summaryrefslogtreecommitdiff
path: root/app-emulation
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2022-09-14 11:10:11 +0100
committerV3n3RiX <venerix@koprulu.sector>2022-09-14 11:10:11 +0100
commit81b8f20732954c4508baf2f77472b5435e3f851f (patch)
tree4180177cb7ba85eab50159ce96218c2419fb24a6 /app-emulation
parent946859e0e36904cffb3e0ccbccb6b7b1347c1cc8 (diff)
gentoo auto-resync : 14:09:2022 - 11:10:10
Diffstat (limited to 'app-emulation')
-rw-r--r--app-emulation/Manifest.gzbin15122 -> 15127 bytes
-rw-r--r--app-emulation/crossover-bin/Manifest4
-rw-r--r--app-emulation/crossover-bin/crossover-bin-22.0.0.ebuild (renamed from app-emulation/crossover-bin/crossover-bin-21.1.0-r2.ebuild)46
-rw-r--r--app-emulation/libvirt/Manifest2
-rw-r--r--app-emulation/libvirt/metadata.xml1
-rw-r--r--app-emulation/ruffle/Manifest47
-rw-r--r--app-emulation/ruffle/ruffle-0_p20220914.ebuild523
-rw-r--r--app-emulation/ruffle/ruffle-9999.ebuild2
-rw-r--r--app-emulation/vice/Manifest2
-rw-r--r--app-emulation/vice/vice-3.6.1-r2.ebuild (renamed from app-emulation/vice/vice-3.6.1-r1.ebuild)2
-rw-r--r--app-emulation/wine-mono/Manifest15
-rw-r--r--app-emulation/wine-mono/wine-mono-5.1.1.ebuild29
-rw-r--r--app-emulation/wine-mono/wine-mono-6.4.0.ebuild29
-rw-r--r--app-emulation/wine-mono/wine-mono-7.2.0.ebuild29
-rw-r--r--app-emulation/wine-mono/wine-mono-7.3.1.ebuild (renamed from app-emulation/wine-mono/wine-mono-7.1.1.ebuild)19
-rw-r--r--app-emulation/wine-proton/Manifest5
-rw-r--r--app-emulation/wine-proton/files/wine-proton-7.0.4-llvm-libunwind.patch9
-rw-r--r--app-emulation/wine-proton/files/wine-proton-7.0.4-unwind.patch40
-rw-r--r--app-emulation/wine-proton/wine-proton-7.0.4.ebuild63
-rw-r--r--app-emulation/wine-proton/wine-proton-7.0.9999.ebuild319
-rw-r--r--app-emulation/wine-staging/Manifest22
-rw-r--r--app-emulation/wine-staging/files/wine-staging-7.17-noexecstack.patch7
-rw-r--r--app-emulation/wine-staging/files/wine-staging-7.17-unwind.patch40
-rw-r--r--app-emulation/wine-staging/metadata.xml27
-rw-r--r--app-emulation/wine-staging/wine-staging-7.12.ebuild544
-rw-r--r--app-emulation/wine-staging/wine-staging-7.13-r1.ebuild543
-rw-r--r--app-emulation/wine-staging/wine-staging-7.13.ebuild544
-rw-r--r--app-emulation/wine-staging/wine-staging-7.14.ebuild543
-rw-r--r--app-emulation/wine-staging/wine-staging-7.15.ebuild543
-rw-r--r--app-emulation/wine-staging/wine-staging-7.17.ebuild350
-rw-r--r--app-emulation/wine-staging/wine-staging-9999.ebuild665
-rw-r--r--app-emulation/wine-vanilla/Manifest16
-rw-r--r--app-emulation/wine-vanilla/files/wine-vanilla-7.0-noexecstack.patch7
-rw-r--r--app-emulation/wine-vanilla/files/wine-vanilla-7.0-unwind.patch40
-rw-r--r--app-emulation/wine-vanilla/metadata.xml28
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-7.0-r3.ebuild318
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-7.13-r1.ebuild468
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-7.13.ebuild469
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-7.14.ebuild468
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-7.15.ebuild468
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-7.17.ebuild316
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-9999.ebuild568
42 files changed, 2550 insertions, 5630 deletions
diff --git a/app-emulation/Manifest.gz b/app-emulation/Manifest.gz
index 17c59f225079..938ece1e9035 100644
--- a/app-emulation/Manifest.gz
+++ b/app-emulation/Manifest.gz
Binary files differ
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
}