diff --git a/app-emulation/wine/Manifest b/app-emulation/wine/Manifest index 8f51741b..9d4cad26 100644 --- a/app-emulation/wine/Manifest +++ b/app-emulation/wine/Manifest @@ -1,7 +1,7 @@ DIST wine-1.7.34-gstreamer-v5.patch.bz2 5703 SHA256 c3bb6f669f46d9f2d7ba494a2264cee457349f559d4b0758db80e39eb22f2aee SHA512 e780394e8739a58593d264322c462bfe9040c1cabce93b84d24f09040026368efb4ac34a6a302beb6048d14b4ac835b87a0c515b52c1a0c143aa4e15691eb01b WHIRLPOOL 1befbb0fbd026d6e833c5d72341064dd6e12157e1b7df58e349b9985648bfbc63f70e9cab45b61155515ac65057968e30ba313e71e183b8027153c9392d89192 -DIST wine-1.7.39.tar.bz2 22122289 SHA256 6affb007fe772eb5588c584e3bdb62db96d8291c7fc8e75a5fd0bb098391335c SHA512 0eda88c4c092c2d596097548a341f62128dc39ffd6c88c514378639864dfbeedad3cb436065a85981cb2d9399a4cf439d1c301ec651a7e21eac886931218b6f5 WHIRLPOOL 9cb9d99d94e5abecbf5c6717165b58c7c23784aef0a4ffe2edaca2aef63e5706f17aa1102e00424fd849b30598f5d3b8206ea6b473c4337bb486211d7c3daf46 +DIST wine-1.7.40.tar.bz2 22183479 SHA256 0d82e639a553765437f9a3f864f383e8e4e1eb0f1dd815263f9fda1c78d5cab6 SHA512 3d812b8eefa14f3fea908345b9a8950e9a409e5e45b38d73105c181bfc3fa5f9ef82a022cffcc2efd45f79220ab9ff139b3729410b7708ed6ff960647761dd61 WHIRLPOOL c9935e5daf077b3bb66209fe572b494ca8250c16f76a13122f61899112559a010344ff9e2046a9132d904b0396e519291eba641ebc8add364dda85becfd5d14b DIST wine-gentoo-2015.03.07.tar.bz2 85419 SHA256 f13f93dc49bbc33a294c4d511b6e01aec2d38bff77a1e44d07668291add1ab04 SHA512 bae1d2d5575d340d01f44008104f0e5ec0c4a4982995dec37d501594cd21d07a2b4ad4465c4273646d5bf6521996b4b82471097864be75342abe3e7d478a56bd WHIRLPOOL 0f254dd692e87a1f71dd19f6c1c8c59b8a91b994e75912a2e6e3ba5e875b85119fe497a331a95c2ce33bbf5f064143d23ee00275da92c494227de0807c9abb06 DIST wine-mono-4.5.6.msi 53705216 SHA256 ac681f737f83742d786706529eb85f4bc8d6bdddd8dcdfa9e2e336b71973bc25 SHA512 4d8df04c1d0da09d1abe423dd271e5dd14a193d607fb54e214d2e340827f7c33829342d1580b6907d7cf466e70993d743c6e1ca9a026d4b6225dd7c1fc8b1386 WHIRLPOOL 9a68e502da0be6768e92d88f2ccace607300f3a331e0f9e1b6d60e9c6c2d4eb635b902f03e13aad73461dd5f0c2691c7b41958356ebb7f445e8def4282c675d3 -DIST wine-staging-1.7.39.tar.gz 9096658 SHA256 b7b3ba39e2a8829a6fd6aef4b3701dd0009eebc85539ac946e31de6d7fe36649 SHA512 d14780c30303a17f575f22adeab5cc026c2f41520d47dbb7ec70b939252eae656070eb8532cf1a42cca2b1c9c589a44081d12b2647b0d97c3c90b896a7433d23 WHIRLPOOL 8d71a49c3172261e83193ccfe85dfbd94421ee20063f4127ecb328450916cddbea742c59c09c34e10035d9f2fa0df0ebd0d68bbc6e90b92c1aa1a1071a26b055 +DIST wine-staging-1.7.40.tar.gz 9096658 SHA256 b7b3ba39e2a8829a6fd6aef4b3701dd0009eebc85539ac946e31de6d7fe36649 SHA512 d14780c30303a17f575f22adeab5cc026c2f41520d47dbb7ec70b939252eae656070eb8532cf1a42cca2b1c9c589a44081d12b2647b0d97c3c90b896a7433d23 WHIRLPOOL 8d71a49c3172261e83193ccfe85dfbd94421ee20063f4127ecb328450916cddbea742c59c09c34e10035d9f2fa0df0ebd0d68bbc6e90b92c1aa1a1071a26b055 DIST wine_gecko-2.36-x86.msi 29718016 SHA256 afa457ce8f9885225b6e549dd6f154713ce15bf063c23e38c1327d2f869e128a SHA512 6099240fb76368ed9bb6b775d5972b6124972ace92ccfe1051caeb8884d9e12d40c35220419f0d02443584bf2d82799dfca8206410d171470ce15903703924f0 WHIRLPOOL 4b8fc20a8b228268f3407ca425427a2d91f81ff9e6f0860d4f3eb156c97e3ec1ea83ca3510ee10bfb37598f91c3323a46ba75eace3334632b26cbd45959dc908 DIST wine_gecko-2.36-x86_64.msi 31222784 SHA256 701b84004bf584a2dae7c1296121172c933321cb795c3817b64435fd3364ed44 SHA512 814b13268beeac4d0ace4ab62dbc29ccd92fc13a135499b8ea5a14355992d576268e1e401b28906e8379a826159c5bb051ad274a1e64dd0d5424d495f8e10e10 WHIRLPOOL dbd0e275bdca2ff7a1930daa62d23fd438a90f71b0fed1096b34b8d00a3f51cb91468ce61acaa9361a57deb9f3cfe70a21d16fc23de95cb4e0f7f957d4727010 diff --git a/app-emulation/wine/files/wine-1.7.39-gstreamer-v5-staging-post.patch b/app-emulation/wine/files/wine-1.7.39-gstreamer-v5-staging-post.patch deleted file mode 100644 index 3d653993..00000000 --- a/app-emulation/wine/files/wine-1.7.39-gstreamer-v5-staging-post.patch +++ /dev/null @@ -1,58 +0,0 @@ -From 695c19cdd2fc24aaa7ed89976c4965b376707131 Mon Sep 17 00:00:00 2001 -From: Sebastian Lackner -Date: Wed, 25 Feb 2015 22:45:42 +0100 -Subject: ntdll: Fix race-condition when threads are killed during shutdown. - -When exit_thread is executed, nb_threads is decremented before the thread is -fully shutdown. When another thread runs ExitProcess() this will cause a SIGQUIT -signal to all threads, effectively decrementing nb_threads twice. The process -will terminate with a wrong exitcode then because the refcount reaches zero too -early. - -Currently Wine has no locking protection of LdrShutdownProcess(), so it can -only be executed safely when all other threads have terminated before. Most -likely there are more Wine bugs in this area, but the attached patch should -fix the most critical one (messed up refcounting of threads) for now. - -[Alexandre Rostovtsev : rebase to be applied after - Maarten Lankhorst's "override pthreads to fix gstreamer v5" patch.] ---- - dlls/ntdll/thread.c | 8 +++++++- - 1 file changed, 7 insertions(+), 1 deletion(-) - -diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c -index 4f181dc..1bdbcbf 100755 ---- a/dlls/ntdll/thread.c -+++ b/dlls/ntdll/thread.c -@@ -461,6 +461,7 @@ static void exit_thread_common( int status ) - static void *prev_teb; - TEB *teb; - #endif -+ sigset_t sigset; - - if (status) /* send the exit code to the server (0 is already the default) */ - { -@@ -473,7 +474,7 @@ static void exit_thread_common( int status ) - SERVER_END_REQ; - } - -- if (interlocked_xchg_add( &nb_threads, -1 ) <= 1) -+ if (interlocked_xchg_add( &nb_threads, 0 ) <= 1) - { - LdrShutdownProcess(); - exit( status ); -@@ -499,6 +500,11 @@ static void exit_thread_common( int status ) - reap_thread(NtCurrentTeb()); - #endif - -+ sigemptyset( &sigset ); -+ sigaddset( &sigset, SIGQUIT ); -+ pthread_sigmask( SIG_BLOCK, &sigset, NULL ); -+ if (interlocked_xchg_add( &nb_threads, -1 ) <= 1) _exit( status ); -+ - close( ntdll_get_thread_data()->wait_fd[0] ); - close( ntdll_get_thread_data()->wait_fd[1] ); - close( ntdll_get_thread_data()->reply_fd ); --- -2.3.1 - diff --git a/app-emulation/wine/files/wine-1.7.39-gstreamer-v5-staging-pre.patch b/app-emulation/wine/files/wine-1.7.39-gstreamer-v5-staging-pre.patch deleted file mode 100644 index eee42ff9..00000000 --- a/app-emulation/wine/files/wine-1.7.39-gstreamer-v5-staging-pre.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 0d92921d264d5d0d1041c66353f022f1bc88577f Mon Sep 17 00:00:00 2001 -From: Alexandre Rostovtsev -Date: Sun, 8 Mar 2015 00:10:31 -0500 -Subject: [PATCH] Revert "ntdll: Fix race-condition when threads are killed - during shutdown." - -This reverts Sebastian Lackner's Wine-Staging patch to allow Maarten -Lankhorst's "override pthreads to fix gstreamer v5" to apply ---- - dlls/ntdll/thread.c | 8 +------- - 1 file changed, 1 insertion(+), 7 deletions(-) - -diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c -index 74e64c9..3696c8e 100644 ---- a/dlls/ntdll/thread.c -+++ b/dlls/ntdll/thread.c -@@ -370,7 +370,6 @@ void terminate_thread( int status ) - void exit_thread( int status ) - { - static void *prev_teb; -- sigset_t sigset; - TEB *teb; - - if (status) /* send the exit code to the server (0 is already the default) */ -@@ -384,7 +383,7 @@ void exit_thread( int status ) - SERVER_END_REQ; - } - -- if (interlocked_xchg_add( &nb_threads, 0 ) <= 1) -+ if (interlocked_xchg_add( &nb_threads, -1 ) <= 1) - { - LdrShutdownProcess(); - exit( status ); -@@ -406,11 +405,6 @@ void exit_thread( int status ) - } - } - -- sigemptyset( &sigset ); -- sigaddset( &sigset, SIGQUIT ); -- pthread_sigmask( SIG_BLOCK, &sigset, NULL ); -- if (interlocked_xchg_add( &nb_threads, -1 ) <= 1) _exit( status ); -- - close( ntdll_get_thread_data()->wait_fd[0] ); - close( ntdll_get_thread_data()->wait_fd[1] ); - close( ntdll_get_thread_data()->reply_fd ); --- -2.3.1 - diff --git a/app-emulation/wine/files/wine-1.7.40-gstreamer-v5-staging-post.patch b/app-emulation/wine/files/wine-1.7.40-gstreamer-v5-staging-post.patch new file mode 100644 index 00000000..25eb2357 --- /dev/null +++ b/app-emulation/wine/files/wine-1.7.40-gstreamer-v5-staging-post.patch @@ -0,0 +1,38 @@ +From b97783fd33b4d9897c149d7a14747aa4969bd9e9 Mon Sep 17 00:00:00 2001 +From: Sebastian Lackner +Date: Thu, 19 Mar 2015 07:56:04 +0100 +Subject: Reapply various changes conflicting with Maarten Lankhorst's + gstreamer hack v5. + +--- + dlls/ntdll/thread.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c +index 1e7f231..cf0461d 100644 +--- a/dlls/ntdll/thread.c ++++ b/dlls/ntdll/thread.c +@@ -461,6 +461,8 @@ static void exit_thread_common( int status ) + static void *prev_teb; + TEB *teb; + #endif ++ shmlocal_t *shmlocal; ++ sigset_t sigset; + + if (status) /* send the exit code to the server (0 is already the default) */ + { +@@ -502,6 +504,11 @@ static void exit_thread_common( int status ) + reap_thread(NtCurrentTeb()); + #endif + ++ sigemptyset( &sigset ); ++ sigaddset( &sigset, SIGQUIT ); ++ pthread_sigmask( SIG_BLOCK, &sigset, NULL ); ++ if (interlocked_xchg_add( &nb_threads, -1 ) <= 1) _exit( status ); ++ + close( ntdll_get_thread_data()->wait_fd[0] ); + close( ntdll_get_thread_data()->wait_fd[1] ); + close( ntdll_get_thread_data()->reply_fd ); +-- +2.3.2 + diff --git a/app-emulation/wine/files/wine-1.7.40-gstreamer-v5-staging-pre.patch b/app-emulation/wine/files/wine-1.7.40-gstreamer-v5-staging-pre.patch new file mode 100644 index 00000000..81aa699b --- /dev/null +++ b/app-emulation/wine/files/wine-1.7.40-gstreamer-v5-staging-pre.patch @@ -0,0 +1,40 @@ +From 1527fb44c331f2c61224514beb758895a5f85c8d Mon Sep 17 00:00:00 2001 +From: Sebastian Lackner +Date: Thu, 19 Mar 2015 07:51:48 +0100 +Subject: Revert various changes conflicting with Maarten Lankhorst's gstreamer + hack v5. + +Note: These changes have to be reapplied with the corresponding -post patchset +afterwards. +--- + dlls/ntdll/thread.c | 7 ------- + 1 file changed, 7 deletions(-) + +diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c +index 30a4720..843be0f 100644 +--- a/dlls/ntdll/thread.c ++++ b/dlls/ntdll/thread.c +@@ -385,8 +385,6 @@ void terminate_thread( int status ) + void exit_thread( int status ) + { + static void *prev_teb; +- shmlocal_t *shmlocal; +- sigset_t sigset; + TEB *teb; + + if (status) /* send the exit code to the server (0 is already the default) */ +@@ -425,11 +423,6 @@ void exit_thread( int status ) + } + } + +- sigemptyset( &sigset ); +- sigaddset( &sigset, SIGQUIT ); +- pthread_sigmask( SIG_BLOCK, &sigset, NULL ); +- if (interlocked_xchg_add( &nb_threads, -1 ) <= 1) _exit( status ); +- + close( ntdll_get_thread_data()->wait_fd[0] ); + close( ntdll_get_thread_data()->wait_fd[1] ); + close( ntdll_get_thread_data()->reply_fd ); +-- +2.3.2 + diff --git a/app-emulation/wine/wine-1.7.39.ebuild b/app-emulation/wine/wine-1.7.40.ebuild similarity index 96% rename from app-emulation/wine/wine-1.7.39.ebuild rename to app-emulation/wine/wine-1.7.40.ebuild index 2fb27f41..271d02e3 100644 --- a/app-emulation/wine/wine-1.7.39.ebuild +++ b/app-emulation/wine/wine-1.7.40.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2015 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/app-emulation/wine/wine-1.7.39.ebuild,v 1.1 2015/03/08 07:00:24 tetromino Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-emulation/wine/wine-1.7.40,v 1.1 2015/03/22 19:58:44 tetromino Exp $ EAPI="5" @@ -44,8 +44,8 @@ if [[ ${PV} == "9999" ]] ; then STAGING_EGIT_REPO_URI="git://github.com/wine-compholio/wine-staging.git" else SRC_URI="${SRC_URI} - staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}.tar.gz -> ${STAGING_P}.tar.gz ) - pulseaudio? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}.tar.gz -> ${STAGING_P}.tar.gz )" + staging? ( https://github.com/wine-compholio/wine-staging/archive/v1.7.39.tar.gz -> ${STAGING_P}.tar.gz ) + pulseaudio? ( https://github.com/wine-compholio/wine-staging/archive/v1.7.39.tar.gz -> ${STAGING_P}.tar.gz )" fi LICENSE="LGPL-2.1" @@ -336,15 +336,17 @@ src_prepare() { ewarn "Applying experimental patch to fix GStreamer support. Note that" ewarn "this patch has been reported to cause crashes in certain games." - # Wine-Staging 1.7.39 "ntdll: Fix race-condition when threads are killed - # during shutdown" patch prevents the gstreamer patch from applying cleanly. + # Wine-Staging 1.7.38 "ntdll: Fix race-condition when threads are killed + # during shutdown" patch and "Added patch to implement shared memory + # wineserver communication for various user32 functions" prevents the + # gstreamer patch from applying cleanly. # So undo the staging patch, apply gstreamer, then re-apply rebased staging # patch on top. if use staging; then PATCHES+=( - "${FILESDIR}/${PN}-1.7.39-gstreamer-v5-staging-pre.patch" + "${FILESDIR}/${PN}-1.7.40-gstreamer-v5-staging-pre.patch" "${WORKDIR}/${GST_P}.patch" - "${FILESDIR}/${PN}-1.7.39-gstreamer-v5-staging-post.patch" ) + "${FILESDIR}/${PN}-1.7.40-gstreamer-v5-staging-post.patch" ) else PATCHES+=( "${WORKDIR}/${GST_P}.patch" ) fi