3
5
Fork 0
mirror of git://git.savannah.gnu.org/guix.git synced 2023-12-14 03:33:07 +01:00

gnu: hexchat: Fix crash on exit.

* gnu/packages/patches/hexchat-crash-exit.patch: New file.
* gnu/packages/hexchat.scm (orgin): Add patch.
* gnu/local.mk (dist_patch_DATA): Add it.
This commit is contained in:
Julien Lepiller 2019-11-21 22:24:07 +01:00
parent ce16a026d0
commit 8da527d5bc
No known key found for this signature in database
GPG key ID: 43111F4520086A0C
3 changed files with 34 additions and 1 deletions

View file

@ -978,6 +978,7 @@ dist_patch_DATA = \
%D%/packages/patches/hdf-eos5-remove-gctp.patch \
%D%/packages/patches/hdf-eos5-fix-szip.patch \
%D%/packages/patches/hdf-eos5-fortrantests.patch \
%D%/packages/patches/hexchat-crash-exit.patch \
%D%/packages/patches/higan-remove-march-native-flag.patch \
%D%/packages/patches/hubbub-sort-entities.patch \
%D%/packages/patches/hurd-fix-eth-multiplexer-dependency.patch \

View file

@ -263,7 +263,8 @@ access to servers running the Discord protocol.")
version ".tar.xz"))
(sha256
(base32
"064nq151nzsljv97dmkifyl162d2738vbgvm1phx7yv04pjvk4kp"))))
"064nq151nzsljv97dmkifyl162d2738vbgvm1phx7yv04pjvk4kp"))
(patches (search-patches "hexchat-crash-exit.patch"))))
(build-system meson-build-system)
(native-inputs `(("gettext" ,gettext-minimal)
("perl" ,perl)

View file

@ -0,0 +1,31 @@
From d9c637ae8a1137d3ca512d2c560589903a4bd79d Mon Sep 17 00:00:00 2001
From: Adam Williamson <awilliam@redhat.com>
Date: Tue, 30 Apr 2019 11:16:01 -0700
Subject: [PATCH] Python plugin: Call EndInterpreter when deinit'ing the plugin
This fixes https://github.com/hexchat/hexchat/issues/2237 , a
commonly-encountered bug when using Hexchat 2.14 on Python 3.7.
Thanks to @ncoghlan for the fix.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
---
plugins/python/python.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/plugins/python/python.c b/plugins/python/python.c
index 4403474d..475756ba 100644
--- a/plugins/python/python.c
+++ b/plugins/python/python.c
@@ -2806,6 +2806,9 @@ hexchat_plugin_deinit(void)
xchatout_buffer = NULL;
if (interp_plugin) {
+ PyThreadState *tstate = ((PluginObject*)interp_plugin)->tstate;
+ PyThreadState_Swap(tstate);
+ Py_EndInterpreter(tstate);
Py_DECREF(interp_plugin);
interp_plugin = NULL;
}
--
2.21.0