summaryrefslogtreecommitdiff
path: root/app-emulation/wine-vanilla
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2025-02-15 00:13:03 +0000
committerV3n3RiX <venerix@koprulu.sector>2025-02-15 00:13:03 +0000
commit770d63f36dbe1722e0ff9ab55eeca49986f01527 (patch)
treebe9aae0ef5001e4669f914ac9ad9b4eaa4db8500 /app-emulation/wine-vanilla
parent4fda045f90a4e301329bddb766e2e12a0b4401de (diff)
gentoo auto-resync : 15:02:2025 - 00:13:02HEADmaster
Diffstat (limited to 'app-emulation/wine-vanilla')
-rw-r--r--app-emulation/wine-vanilla/Manifest16
-rw-r--r--app-emulation/wine-vanilla/files/wine-vanilla-10.0-binutils2.44.patch105
-rw-r--r--app-emulation/wine-vanilla/files/wine-vanilla-7.0-unwind.patch40
-rw-r--r--app-emulation/wine-vanilla/metadata.xml1
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-10.0.ebuild1
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-10.1.ebuild1
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-7.0.2.ebuild394
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-8.0.2.ebuild3
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-9.0.ebuild3
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-9999.ebuild26
10 files changed, 121 insertions, 469 deletions
diff --git a/app-emulation/wine-vanilla/Manifest b/app-emulation/wine-vanilla/Manifest
index 8d9a293c69e5..c79baee704d0 100644
--- a/app-emulation/wine-vanilla/Manifest
+++ b/app-emulation/wine-vanilla/Manifest
@@ -1,16 +1,14 @@
+AUX wine-vanilla-10.0-binutils2.44.patch 4104 BLAKE2B 607821c8066161b611e01caa8d9754373e0726e1569ed3cd854bf61ec279d89a89e4e001e269b8c7da1b711e2ab2e6166709d6cc6f330c4d4ab96ed32f5fa8f9 SHA512 475b2ed549f39ae6b9381e644eae1e2a067bc9d7f2b48341458e3475e70c7eb5256a597dc87581b2d9253752f801fd9c4121d0ced8dfccc879b026abea48697d
AUX wine-vanilla-7.0-noexecstack.patch 223 BLAKE2B dff1867e2977bd14fcfab9dfa2c2f1d3288f7edca75ddd7c9f02bfd06e9f63fac37bd59ea8aa891e13ab77bac35b369825d5490a9175ed9a7736e523b61d8944 SHA512 4ba3677042b693e513fc7a133c76a509f63d0ca20633d1e8d448bca9534c0d1a0fc58e77fa9b28fd8d936393605e97ee6e3bb5fac00872d6ac5808b7712586e3
-AUX wine-vanilla-7.0-unwind.patch 1694 BLAKE2B 017c7b761d692f8e8d23f52e51529880f95bddf5fee4309ab97bee951527bd427924dbb335e4bf57a27405e3d2440666f774c6859b81933d3007247e1cbf4898 SHA512 5d20960a8eda2d80097d6db81287c9d05ed4ea50df974c93391a427b743383a6806f24bc552c18a9336e7aea0ceb801972865ff470bde8ea7fd9423f57eb09ae
AUX wine-vanilla-7.20-unwind.patch 1450 BLAKE2B 3f90cc131104ad72a11ae30c582b79b3e4d8c0278d51c0a193fb9e460cf088b315503bd08bd904e8d28f72f40ab3df90f83f2542b991888a2f504cc7d2adad4d SHA512 a6c4672a44c1220d5b1efabeca535a4a3510fe92aac73c38f65a09bfbd271af8b8b1bfe2c408ba5356806cb71252a6956b8130fcd06a475037b9e51d28c2a156
AUX wine-vanilla-8.13-rpath.patch 554 BLAKE2B 209d8c581a9178242ee622338c5252f79b798cf5574f72b3984d71b7933e011b488060502715aa75630fbc3d10fcb03743ac31ed31664cacfc22b725253a117b SHA512 bbb25e02d19bd7c1a1f2d7db331d93cfcd5ce9172206ad9e19a44c52e5ece865d474eac024c2a5791dfa006c6efe0f68cd783ffc925ac793bf447d56090bdd02
DIST wine-10.0.tar.xz 32011244 BLAKE2B 92178cf484cf33e9f3b8340429ee8e68c36e0d25eee4a892f059ab73f103cfcb9eb15e1883bc9fd8c8fe311d4ccbb56582d1f780da7b1406a7839a13addd29ae SHA512 effb41c5641993e2e52eaa825cc19b7d9846e084992c5a5b066ead2339b24384d320898a9cee347a9a87106bcb3b0f54c8cd2c8d4de3a887a658052ddd5168d6
DIST wine-10.1.tar.xz 32026152 BLAKE2B 573c4cc10c96c164eb02111b0a457be5500ab42c6d103180af5b2f88cdbcc134ea1fdb794687e6c736ebb5f9aa266e51424df26cd239fa26679d968ab5844cc3 SHA512 2dbc63e43e2cc1e0bf6294a926e8afc316e9f32efdce644229cb33bba98f6001c3f285b527767a83e5284558ef11f00515048aad031c6fc9122a4ce0692952af
-DIST wine-7.0.2.tar.xz 27179980 BLAKE2B 721ab574092638b32d3a483b6ae3def0c9d706cc888662ca461ab8c7060b10077e83cede69663ea2a8b97729f3801209fbba5f8e8828ce20454700ffbbd76cb5 SHA512 330c71005a6a8054b5068ac4484e9015e9f8bf55d5a451aaf5f79b7f78a025732b454251c31473abf21504cce3b78e50cf7e3e0d0116bb755dc8396bd790289a
DIST wine-8.0.2.tar.xz 29060452 BLAKE2B dcffaba6c90c4e02a7bc591a81e11aced06c006370c4c316c8a367b2f5814926063482959fabfe9d674ee1b5a560e59087e9b711e28360ced3aee2bbd6bb8fdb SHA512 e86dd31247d757d48ffb2d24f20edab3fc6ef9c3e395567a7b363951bb681335ba3adb8b84639011b24b6eb274582d56880298d6d95fb100acc072383d4e973f
DIST wine-9.0.tar.xz 30007216 BLAKE2B cf53177201a2f7eeb35d0d8ce220f80808d979099a928ad60652d1dee92620c433cc105dffab4e9309f41766087ad1544ef49d2922538bb420d62f6dd64117a1 SHA512 838daf2c4581f83f8573b988036f517d57b84894b090a2a17433255d6d044dfa880e6724cdb83082a36c333df9d2083ab68ae53927622a620edd59f33462ada4
-EBUILD wine-vanilla-10.0.ebuild 14493 BLAKE2B f6471f3260d1ea333e7bf9788d456327451fa82ff5572b33a108445b3bacf250c1373b8ee0403462aacdccfbc292993a0db768d29303780329f122600d61b521 SHA512 2f1773cef622aaf15cdba41b2b3a7b257d9e2d2cbc018c0f29c36fffffd8e37da09c7f38185fd31463c434fc8246783b7f100a3c678b2c194acd615998fbcd68
-EBUILD wine-vanilla-10.1.ebuild 14494 BLAKE2B 27dc34b9e28be42a76db150ee0c1eca3ac8bc29cfcc8892262549cb0a84729d3fc20128b6c5541190675b3997870d5a49d03bc05e68b1a7934fe66b1666576a2 SHA512 2f29b829f20d0a38c4e1db134b248ad5a182a140c41700f50cfcfcc76d87e905b3c1c55ece659d3f960b1e42928a582ffec527e60befb29cbb7690b3472db6e4
-EBUILD wine-vanilla-7.0.2.ebuild 12901 BLAKE2B c56de298278ea1f64164156da06828db82b418a5e1041b816635cf21a30b93127bdacd35caca340518a446d4a1cefaccb3095285882d1cc5b89c4de565ed5128 SHA512 5fe2e8c635e0625ae9abc418110498250db8fef4b45484c2c2b147f492f90043fcd251d14072bee2cbe4558c9d7672ea3a114174fff66ac0205c3c6256dd6906
-EBUILD wine-vanilla-8.0.2.ebuild 12989 BLAKE2B 38ec6d327ee3fe44fb3857615ceccd38ab8552d3c90ea7a5e3ca03eaa8b2c489ca02789c88f593bbb429304f62cd92a46f6af72b4cb63920cc0fb8a0338cdb57 SHA512 a39c6e6caa21abfe2a2a43119d4507769004fcc489c66af615d0761cbec02732a35e5bef7c7a2d8422e80311078167695d8d4fbf580aa7290dd06b25cdbe2a30
-EBUILD wine-vanilla-9.0.ebuild 14266 BLAKE2B 7eb89a6784065bdd547d3a4e768e57603a41dc8d5879006ef0e9cb630968000c00169b16bd77b7b2fc42296bb8bcbe3407020becf893b09b73c6c5ee798818cc SHA512 cf52d3b7a90152636c887c7576c17c540896dfd0195912829a49259f1506f84c35daf22f86ecbf9020951332ab32f846ca6cc251ef8ef13ca501566e0a9b0cbc
-EBUILD wine-vanilla-9999.ebuild 14494 BLAKE2B 4d06d529dc848c809041b80fa5b2abdb81e2cbc2b268e9c39aec3b8f0587b4059c872368c6c9c75f76d69a965fc6c874b26396af415ecfc975ff527c1f031870 SHA512 cccaf07d1df55481fdaa0ca1185b01b606f2eccc401e126ed84f25bdcb080b7c8528e4d77b0b3365e612a62a7f772e29dcbd6ebd586a0335e13706473608d043
-MISC metadata.xml 2785 BLAKE2B 8f5b1b8e24a96e3735964681c2f55d6c77c2584be75e82a93c79b44fdde34a3730405fc3f226209a2cb140efa106ae202c236f9b35444fbafa7f9cae1751fe4c SHA512 dac99517bc4dc1dce8174ae133e035bf76d14edb2a4b61165f6fade16db30c775f8dc26d4c5dd4ce2cb362dc5ac1df5dea4c18f1795007ece185686179251cb3
+EBUILD wine-vanilla-10.0.ebuild 14538 BLAKE2B 1abaa69f1bacf4834d7b7def542b67bc7a78cc8d5ff3305fcd7a95a14b0e191c6d1d81640d5f0c1c15260ec4753803cfcecb42cc2d1fc7bf24801e42fa07c0aa SHA512 e4178f22b70dca1ac0b495e50d7b742cf1153a79093cf75670f14c8db454032d4ea6ebee63d23a2675d431107a3c072ff85f9e15d85a6f35db9279f2d1eec881
+EBUILD wine-vanilla-10.1.ebuild 14539 BLAKE2B 2a0bc0ff6f1937599d35f41db8b79f514e2a92e4887911f3cf55a975833dc65a8ac41f2be8dec34e5bd19a73cd65106bebd6103957dec7af355b366127e60111 SHA512 0a35a294a4c8c398baec956344278635d950c7db78a3b31e4e97e95877999b79d833fb1af386fbefbfaf8e7ce9310ab1167774fef87fc02d59689c63e8f52ff1
+EBUILD wine-vanilla-8.0.2.ebuild 13034 BLAKE2B 898ed541c3311528ba4a4055da4043833428b2732b06ab5f51f5d87872cc591179c1362dc37b4eab9d6fdd3f1678c7fb1750469cd45c84afb8422de57cfab4a1 SHA512 099c2443f3e6a28bd0cd49c6a81f720f9eaa51c6da0759ee2ba9a4aa204306a319493e581efccef2ca437cc16df80cd7a90427c93e3981d631c82f5268b6ec62
+EBUILD wine-vanilla-9.0.ebuild 14311 BLAKE2B d8f6afb2bf29b3d8e4ecd51265cd3427c1e1711d97d2c77f16f70ba808ddbaca910d8b6993d66b684dc264f05e409fb6c0b62b59225047180ba79aa09cbcc2bd SHA512 b01db0b4849d60181035270e80a9043f659ebf19543d9451a4c5ecdaa73f40bf9eaba514d3c0d59c90429d8da64aad662e1f9dd16d96ce9963dc613f6b675b18
+EBUILD wine-vanilla-9999.ebuild 13722 BLAKE2B 326c9d3f4e877afc9f066b1ddad018cc68ce39e46a76c74d107d2c59c560b2b1f38cd3968e0809272d80dae5ff02d2642c0fa5e5231186336ca6f1936b1091ca SHA512 a576a236d7ec3eb3eeabd32d0cbf6d4f0d0ddffce62c5191a5d076c194d136903410c8103d16afb1126f65e6ea23b75710e5f82a4c5eba3db47c654c2c0743b0
+MISC metadata.xml 2694 BLAKE2B 01c000d837b123829986a3f60d8d70b7f3a294ed5b51a024f65c132daa7536237632c76113c866c250178bd44f833c2de6d3e4c77904dfa5ff7e8fb9a7dd332e SHA512 749d959889c8669c07e3f85c79780a08038b2547f4a9b343cb4f38bd79e62a36909723d405ce2f9c8c509720d7817bd2da21fd832b15ff63dd0bca04745319b6
diff --git a/app-emulation/wine-vanilla/files/wine-vanilla-10.0-binutils2.44.patch b/app-emulation/wine-vanilla/files/wine-vanilla-10.0-binutils2.44.patch
new file mode 100644
index 000000000000..d7e30393569e
--- /dev/null
+++ b/app-emulation/wine-vanilla/files/wine-vanilla-10.0-binutils2.44.patch
@@ -0,0 +1,105 @@
+Note that this is only an issue when using mingw (PE) binutils-2.44,
+host (ELF) binutils-2.44 has no impact on this and, before this patch,
+using 2.44 could only happen with off-by-default USE=crossdev-mingw.
+
+https://bugs.winehq.org/show_bug.cgi?id=57819
+https://sourceware.org/PR32675
+https://gitlab.winehq.org/wine/wine/-/merge_requests/7328
+--- a/dlls/ntdll/loader.c
++++ b/dlls/ntdll/loader.c
+@@ -3750,5 +3750,5 @@
+ NTSTATUS nts;
+ FARPROC fp;
+- DWORD id;
++ INT_PTR id;
+
+ TRACE( "(%p, %p, %p, %p, %p, 0x%08lx)\n", base, desc, dllhook, syshook, addr, flags );
+--- a/tools/winebuild/import.c
++++ b/tools/winebuild/import.c
+@@ -1332,4 +1332,14 @@
+ }
+
++static void output_import_section( int index, int is_delay )
++{
++ if (!is_delay)
++ output( "\n\t.section .idata$%d\n", index );
++ else if (index == 5)
++ output( "\n\t.section .data$didat%d\n", index );
++ else
++ output( "\n\t.section .rdata$didat%d\n", index );
++}
++
+ /* create a Windows-style import library */
+ static void build_windows_import_lib( const char *lib_name, DLLSPEC *spec, struct strarray files )
+@@ -1455,18 +1465,18 @@
+ output( "\t.long 0\n" ); /* TimeDateStamp */
+
+- output( "\n\t.section .idata$5\n" );
++ output_import_section( 5, is_delay );
+ output( "\t%s 0\n", get_asm_ptr_keyword() ); /* FirstThunk tail */
+ output( ".L__wine_import_addrs:\n" );
+
+- output( "\n\t.section .idata$4\n" );
++ output_import_section( 4, is_delay );
+ output( "\t%s 0\n", get_asm_ptr_keyword() ); /* OriginalFirstThunk tail */
+ output( ".L__wine_import_names:\n" );
+
+ /* required to avoid internal linker errors with some binutils versions */
+- output( "\n\t.section .idata$2\n" );
++ output_import_section( 2, is_delay );
+ }
+ else
+ {
+- output( "\n\t.section .idata$2\n" );
++ output_import_section( 2, is_delay );
+ output( "%s\n", asm_globl( import_desc ) );
+ output_rva( ".L__wine_import_names" ); /* OriginalFirstThunk */
+@@ -1476,8 +1486,8 @@
+ output_rva( ".L__wine_import_addrs" ); /* FirstThunk */
+
+- output( "\n\t.section .idata$4\n" );
++ output_import_section( 4, is_delay );
+ output( ".L__wine_import_names:\n" ); /* OriginalFirstThunk head */
+
+- output( "\n\t.section .idata$5\n" );
++ output_import_section( 5, is_delay );
+ output( ".L__wine_import_addrs:\n" ); /* FirstThunk head */
+ }
+@@ -1490,9 +1500,9 @@
+ new_output_as_file();
+
+- output( "\n\t.section .idata$4\n" );
++ output_import_section( 4, is_delay );
+ output( "\t%s 0\n", get_asm_ptr_keyword() ); /* OriginalFirstThunk tail */
+- output( "\n\t.section .idata$5\n" );
++ output_import_section( 5, is_delay );
+ output( "\t%s 0\n", get_asm_ptr_keyword() ); /* FirstThunk tail */
+- output( "\n\t.section .idata$7\n" );
++ output_import_section( 7, is_delay );
+ output( "%s\n", asm_globl( import_name ) );
+ output( "\t%s \"%s\"\n", get_asm_string_keyword(), spec->file_name );
+@@ -1585,8 +1595,8 @@
+ }
+
+- output( "\n\t.section .idata$4\n" );
++ output_import_section( 4, is_delay );
+ output_thunk_rva( by_name ? -1 : odp->ordinal, ".L__wine_import_name" );
+
+- output( "\n\t.section .idata$5\n" );
++ output_import_section( 5, is_delay );
+ output( "%s\n", asm_globl( imp_name ) );
+ if (is_delay)
+@@ -1597,5 +1607,5 @@
+ if (by_name)
+ {
+- output( "\n\t.section .idata$6\n" );
++ output_import_section( 6, is_delay );
+ output( ".L__wine_import_name:\n" );
+ output( "\t.short %d\n", odp->hint );
+@@ -1604,5 +1614,5 @@
+
+ /* reference head object to always pull its sections */
+- output( "\n\t.section .idata$7\n" );
++ output_import_section( 7, is_delay );
+ output_rva( "%s", asm_name( import_desc ) );
+
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
deleted file mode 100644
index 74f22362ea9b..000000000000
--- a/app-emulation/wine-vanilla/files/wine-vanilla-7.0-unwind.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-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 04c6a41bee45..dd7a4eda1c35 100644
--- a/app-emulation/wine-vanilla/metadata.xml
+++ b/app-emulation/wine-vanilla/metadata.xml
@@ -29,7 +29,6 @@ This variant of the Wine packaging does not include external patchsets
<flag name="perl">Install helpers that require perl (winedump/winemaker)</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="wow64">
Enable running 32bit applications without 32bit ELF
multilib by mapping to 64bit calls (experimental,
diff --git a/app-emulation/wine-vanilla/wine-vanilla-10.0.ebuild b/app-emulation/wine-vanilla/wine-vanilla-10.0.ebuild
index 9e662b350f3e..d912312e42aa 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-10.0.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-10.0.ebuild
@@ -163,6 +163,7 @@ PATCHES=(
"${FILESDIR}"/${PN}-7.0-noexecstack.patch
"${FILESDIR}"/${PN}-7.20-unwind.patch
"${FILESDIR}"/${PN}-8.13-rpath.patch
+ "${FILESDIR}"/${PN}-10.0-binutils2.44.patch
)
pkg_pretend() {
diff --git a/app-emulation/wine-vanilla/wine-vanilla-10.1.ebuild b/app-emulation/wine-vanilla/wine-vanilla-10.1.ebuild
index 7ad0553e1237..0a51b2565e22 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-10.1.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-10.1.ebuild
@@ -163,6 +163,7 @@ PATCHES=(
"${FILESDIR}"/${PN}-7.0-noexecstack.patch
"${FILESDIR}"/${PN}-7.20-unwind.patch
"${FILESDIR}"/${PN}-8.13-rpath.patch
+ "${FILESDIR}"/${PN}-10.0-binutils2.44.patch
)
pkg_pretend() {
diff --git a/app-emulation/wine-vanilla/wine-vanilla-7.0.2.ebuild b/app-emulation/wine-vanilla/wine-vanilla-7.0.2.ebuild
deleted file mode 100644
index 9cc201c4e78e..000000000000
--- a/app-emulation/wine-vanilla/wine-vanilla-7.0.2.ebuild
+++ /dev/null
@@ -1,394 +0,0 @@
-# Copyright 2022-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-MULTILIB_COMPAT=( abi_x86_{32,64} )
-inherit autotools flag-o-matic multilib multilib-build
-inherit prefix 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/
- https://gitlab.winehq.org/wine/wine/
-"
-
-LICENSE="LGPL-2.1+ BSD-2 IJG MIT ZLIB gsm libpng2 libtiff"
-SLOT="${PV}"
-IUSE="
- +X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos
- llvm-libunwind debug custom-cflags +fontconfig +gecko gphoto2
- +gstreamer kerberos ldap +mingw +mono netapi nls odbc openal
- opencl +opengl osmesa pcap perl pulseaudio samba scanner +sdl
- selinux +ssl +truetype udev udisks +unwind usb v4l +vkd3d +vulkan
- +xcomposite xinerama
-"
-# bug #551124 for truetype
-REQUIRED_USE="
- X? ( truetype )
- crossdev-mingw? ( mingw )
-"
-
-# tests are non-trivial to run, can hang easily, don't play well with
-# sandbox, and several need real opengl/vulkan or network access
-RESTRICT="test"
-
-# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked
-WINE_DLOPEN_DEPEND="
- X? (
- x11-libs/libXcursor[${MULTILIB_USEDEP}]
- x11-libs/libXfixes[${MULTILIB_USEDEP}]
- x11-libs/libXi[${MULTILIB_USEDEP}]
- x11-libs/libXrandr[${MULTILIB_USEDEP}]
- x11-libs/libXrender[${MULTILIB_USEDEP}]
- x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
- opengl? (
- media-libs/libglvnd[X,${MULTILIB_USEDEP}]
- osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] )
- )
- xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
- xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
- )
- cups? ( net-print/cups[${MULTILIB_USEDEP}] )
- fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] )
- kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] )
- netapi? ( net-fs/samba[${MULTILIB_USEDEP}] )
- odbc? ( dev-db/unixODBC[${MULTILIB_USEDEP}] )
- sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] )
- ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
- truetype? ( media-libs/freetype[${MULTILIB_USEDEP}] )
- udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
- v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
- vulkan? ( media-libs/vulkan-loader[X?,${MULTILIB_USEDEP}] )
-"
-WINE_COMMON_DEPEND="
- ${WINE_DLOPEN_DEPEND}
- X? (
- x11-libs/libX11[${MULTILIB_USEDEP}]
- x11-libs/libXext[${MULTILIB_USEDEP}]
- )
- alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
- capi? ( net-libs/libcapi:=[${MULTILIB_USEDEP}] )
- gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
- gstreamer? (
- dev-libs/glib:2[${MULTILIB_USEDEP}]
- media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
- media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
- )
- 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? ( llvm-runtimes/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
- games-emulation/dosbox-staging
- )
- )
- gecko? ( app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}] )
- gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] )
- mono? ( app-emulation/wine-mono:${WINE_MONO} )
- perl? (
- dev-lang/perl
- dev-perl/XML-LibXML
- )
- samba? ( net-fs/samba[winbind] )
- selinux? ( sec-policy/selinux-wine )
- udisks? ( sys-fs/udisks:2 )
-"
-DEPEND="
- ${WINE_COMMON_DEPEND}
- sys-kernel/linux-headers
- X? ( x11-base/xorg-proto )
-"
-BDEPEND="
- dev-lang/perl
- sys-devel/binutils
- 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-2"
-
-QA_CONFIG_IMPL_DECL_SKIP=(
- __clear_cache # unused on amd64+x86 (bug #900338)
- res_getservers # false positive
-)
-QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext
-
-PATCHES=(
- "${FILESDIR}"/${PN}-7.0-noexecstack.patch
- "${FILESDIR}"/${PN}-7.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
-
- if tc-is-clang; then
- if use mingw; then
- # -mabi=ms was ignored by <clang:16 then turned error in :17
- # if used without --target *-windows, then gets used in install
- # phase despite USE=mingw, drop as a quick fix for now
- sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die
- else
- # ./configure will fail, abort early
- die "building ${PN} with clang is only supported with USE=mingw"
- fi
- fi
-
- # ensure .desktop calls this variant + slot
- sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
-
- # datadir is not where wine-mono is installed, so prefixy alternate paths
- hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c
-
- # always update for patches (including user's wrt #432348)
- eautoreconf
- tools/make_requests || die # perl
- # tip: if need more for user patches, with portage can e.g. do
- # echo "post_src_prepare() { tools/make_specfiles || die; }" \
- # > /etc/portage/env/app-emulation/wine-vanilla
-}
-
-src_configure() {
- WINE_PREFIX=/usr/lib/${P}
- WINE_DATADIR=/usr/share/${P}
-
- local conf=(
- --prefix="${EPREFIX}"${WINE_PREFIX}
- --datadir="${EPREFIX}"${WINE_DATADIR}
- --includedir="${EPREFIX}"/usr/include/${P}
- --libdir="${EPREFIX}"${WINE_PREFIX}
- --mandir="${EPREFIX}"${WINE_DATADIR}/man
- $(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 # builds with non-bfd but broken at runtime (bug #867097)
- filter-lto # build failure
- filter-flags -Wl,--gc-sections # runtime issues (bug #931329)
- use custom-cflags || strip-flags # can break in obscure ways at runtime
- use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
-
- # broken with gcc-15's c23 default (TODO: try w/o occasionally, bug #943849)
- append-cflags -std=gnu17
-
- # temporary workaround for tc-ld-force-bfd not yet enforcing with mold
- # https://github.com/gentoo/gentoo/pull/28355
- [[ $($(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) == mold* ]] &&
- append-ldflags -fuse-ld=bfd
-
- # >=wine-vanilla-9 has proper fixes and builds with gcc-14, but
- # would rather not have to worry about fixing old branches
- append-cflags $(test-flags-CC -Wno-error=incompatible-pointer-types)
-
- # 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:=$(
- filter-flags '-fstack-protector*' #870136
- filter-flags '-mfunction-return=thunk*' #878849
-
- # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then
- # strip-unsupported-flags miss these during compile-only tests
- # (primarily done for 23.0 profiles' -z, not full coverage)
- filter-flags '-Wl,-z,*'
-
- # -mavx with mingw-gcc has a history of obscure issues and
- # disabling is seen as safer, e.g. `WINEARCH=win32 winecfg`
- # crashes with -march=skylake >=wine-8.10, similar issues with
- # znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273
- append-cflags -mno-avx #912268
-
- CC=${CROSSCC} test-flags-CC ${CFLAGS:--O2})}"
- : "${CROSSLDFLAGS:=$(
- filter-flags '-fuse-ld=*'
- CC=${CROSSCC} test-flags-CCLD ${LDFLAGS})}"
- export CROSS{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*
-}
-
-pkg_postinst() {
- if use abi_x86_32 && { use opengl || use vulkan; }; then
- # difficult to tell what is needed from here, but try to warn
- if has_version 'x11-drivers/nvidia-drivers'; then
- if has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]'; then
- ewarn "x11-drivers/nvidia-drivers is installed but is built without"
- ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit"
- ewarn "applications under ${PN} will likely not be usable."
- ewarn "Multi-card setups may need this on media-libs/mesa as well."
- fi
- elif has_version 'media-libs/mesa[-abi_x86_32]'; then
- ewarn "media-libs/mesa seems to be in use but is built without"
- ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit"
- ewarn "applications under ${PN} will likely not be usable."
- fi
- fi
-
- eselect wine update --if-unset || die
-}
-
-pkg_postrm() {
- eselect wine update --if-unset || die
-}
diff --git a/app-emulation/wine-vanilla/wine-vanilla-8.0.2.ebuild b/app-emulation/wine-vanilla/wine-vanilla-8.0.2.ebuild
index 95f7ef5d7382..1a8afb08db8d 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-8.0.2.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-8.0.2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Gentoo Authors
+# Copyright 2022-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -144,6 +144,7 @@ QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext
PATCHES=(
"${FILESDIR}"/${PN}-7.0-noexecstack.patch
"${FILESDIR}"/${PN}-7.20-unwind.patch
+ "${FILESDIR}"/${PN}-10.0-binutils2.44.patch
)
pkg_pretend() {
diff --git a/app-emulation/wine-vanilla/wine-vanilla-9.0.ebuild b/app-emulation/wine-vanilla/wine-vanilla-9.0.ebuild
index 0ee385cb279a..300262a71242 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-9.0.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-9.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Gentoo Authors
+# Copyright 2022-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -161,6 +161,7 @@ PATCHES=(
"${FILESDIR}"/${PN}-7.0-noexecstack.patch
"${FILESDIR}"/${PN}-7.20-unwind.patch
"${FILESDIR}"/${PN}-8.13-rpath.patch
+ "${FILESDIR}"/${PN}-10.0-binutils2.44.patch
)
pkg_pretend() {
diff --git a/app-emulation/wine-vanilla/wine-vanilla-9999.ebuild b/app-emulation/wine-vanilla/wine-vanilla-9999.ebuild
index d653eed512f5..a3201550680a 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-9999.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Gentoo Authors
+# Copyright 2022-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -364,28 +364,8 @@ src_install() {
use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install
use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last
- # Ensure both wine64 and wine are available if USE=abi_x86_64 (wow64,
- # -abi_x86_32, and/or EXTRA_ECONF could cause varying scenarios where
- # one or the other could be missing and that is unexpected for users
- # and some tools like winetricks)
- if use abi_x86_64; then
- if [[ -e ${ED}${WINE_PREFIX}/bin/wine64 && ! -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
- dosym wine64 ${WINE_PREFIX}/bin/wine
- dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader
-
- # also install wine(1) man pages (incl. translations)
- local man
- for man in ../build64/loader/wine.*man; do
- : "${man##*/wine}"
- : "${_%.*}"
- insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1
- newins ${man} wine.1
- done
- elif [[ ! -e ${ED}${WINE_PREFIX}/bin/wine64 && -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
- dosym wine ${WINE_PREFIX}/bin/wine64
- dosym wine-preloader ${WINE_PREFIX}/bin/wine64-preloader
- fi
- fi
+ # "wine64" is no longer provided, but a keep symlink for old scripts
+ use abi_x86_64 && dosym wine ${WINE_PREFIX}/bin/wine64
use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \
"${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die