commit:     57b678c1afd96922ad2db5d1ffb63d1a65386584
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Mar 29 06:52:27 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Mar 29 07:28:15 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=57b678c1

sys-apps/pkgcore: Backport signal handler pytest problem fix

Closes: https://bugs.gentoo.org/779013
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 .../pkgcore/files/pkgcore-0.10.18-sighdlr.patch    | 47 ++++++++++++++++++++++
 ...e-0.11.4-r2.ebuild => pkgcore-0.11.4-r3.ebuild} |  1 +
 ...e-0.11.5-r2.ebuild => pkgcore-0.11.5-r3.ebuild} |  1 +
 ...core-0.11.6.ebuild => pkgcore-0.11.6-r1.ebuild} |  4 ++
 ...core-0.11.8.ebuild => pkgcore-0.11.8-r1.ebuild} |  4 ++
 5 files changed, 57 insertions(+)

diff --git a/sys-apps/pkgcore/files/pkgcore-0.10.18-sighdlr.patch 
b/sys-apps/pkgcore/files/pkgcore-0.10.18-sighdlr.patch
new file mode 100644
index 00000000000..30cec9114f5
--- /dev/null
+++ b/sys-apps/pkgcore/files/pkgcore-0.10.18-sighdlr.patch
@@ -0,0 +1,47 @@
+From 533f1edd70054a5479ee85719d3cbef0d15627fd Mon Sep 17 00:00:00 2001
+From: Tim Harder <[email protected]>
+Date: Sun, 28 Mar 2021 17:18:16 -0600
+Subject: [PATCH] ebuild.processor: register SIGINT and SIGTERM signal handlers
+ on ebd init
+
+Rather than at a global, module level to avoid issues with inadvertent
+issues during 3rd party imports, e.g. the pkgcore pytest plugin getting
+autoloaded by some other project's testsuite.
+---
+ src/pkgcore/ebuild/processor.py | 9 +++------
+ 1 file changed, 3 insertions(+), 6 deletions(-)
+
+diff --git a/src/pkgcore/ebuild/processor.py b/src/pkgcore/ebuild/processor.py
+index e8c3c2cd4..65437efcf 100644
+--- a/src/pkgcore/ebuild/processor.py
++++ b/src/pkgcore/ebuild/processor.py
+@@ -275,9 +275,6 @@ def chuck_KeyboardInterrupt(*args):
+     raise KeyboardInterrupt("ctrl+c encountered")
+ 
+ 
+-signal.signal(signal.SIGINT, chuck_KeyboardInterrupt)
+-
+-
+ def chuck_TermInterrupt(ebp, *args):
+     """Event handler for SIGTERM."""
+     if ebp is None:
+@@ -292,9 +289,6 @@ def chuck_TermInterrupt(ebp, *args):
+         ebp.shutdown_processor()
+ 
+ 
+-signal.signal(signal.SIGTERM, partial(chuck_TermInterrupt, None))
+-
+-
+ def chuck_UnhandledCommand(ebp, line):
+     """Event handler for unhandled commands."""
+     raise UnhandledCommand(line)
+@@ -332,6 +326,9 @@ def __init__(self, userpriv, sandbox, fd_pipes=None):
+         self._outstanding_expects = []
+         self._metadata_paths = None
+ 
++        signal.signal(signal.SIGTERM, partial(chuck_TermInterrupt, None))
++        signal.signal(signal.SIGINT, chuck_KeyboardInterrupt)
++
+         if userpriv:
+             self.__userpriv = True
+             spawn_opts.update({

diff --git a/sys-apps/pkgcore/pkgcore-0.11.4-r2.ebuild 
b/sys-apps/pkgcore/pkgcore-0.11.4-r3.ebuild
similarity index 96%
rename from sys-apps/pkgcore/pkgcore-0.11.4-r2.ebuild
rename to sys-apps/pkgcore/pkgcore-0.11.4-r3.ebuild
index 2b806114e42..7aca2d4c654 100644
--- a/sys-apps/pkgcore/pkgcore-0.11.4-r2.ebuild
+++ b/sys-apps/pkgcore/pkgcore-0.11.4-r3.ebuild
@@ -37,6 +37,7 @@ BDEPEND="
 
 PATCHES=(
        "${FILESDIR}/pkgcore-0.10.13-metadata-xsd-2.patch"
+       "${FILESDIR}/pkgcore-0.10.18-sighdlr.patch"
 )
 
 distutils_enable_tests setup.py

diff --git a/sys-apps/pkgcore/pkgcore-0.11.5-r2.ebuild 
b/sys-apps/pkgcore/pkgcore-0.11.5-r3.ebuild
similarity index 96%
rename from sys-apps/pkgcore/pkgcore-0.11.5-r2.ebuild
rename to sys-apps/pkgcore/pkgcore-0.11.5-r3.ebuild
index 2b806114e42..7aca2d4c654 100644
--- a/sys-apps/pkgcore/pkgcore-0.11.5-r2.ebuild
+++ b/sys-apps/pkgcore/pkgcore-0.11.5-r3.ebuild
@@ -37,6 +37,7 @@ BDEPEND="
 
 PATCHES=(
        "${FILESDIR}/pkgcore-0.10.13-metadata-xsd-2.patch"
+       "${FILESDIR}/pkgcore-0.10.18-sighdlr.patch"
 )
 
 distutils_enable_tests setup.py

diff --git a/sys-apps/pkgcore/pkgcore-0.11.6.ebuild 
b/sys-apps/pkgcore/pkgcore-0.11.6-r1.ebuild
similarity index 94%
rename from sys-apps/pkgcore/pkgcore-0.11.6.ebuild
rename to sys-apps/pkgcore/pkgcore-0.11.6-r1.ebuild
index d98868c1bf8..274ef900e79 100644
--- a/sys-apps/pkgcore/pkgcore-0.11.6.ebuild
+++ b/sys-apps/pkgcore/pkgcore-0.11.6-r1.ebuild
@@ -33,6 +33,10 @@ BDEPEND="
        )
 "
 
+PATCHES=(
+       "${FILESDIR}/pkgcore-0.10.18-sighdlr.patch"
+)
+
 distutils_enable_tests setup.py
 
 src_test() {

diff --git a/sys-apps/pkgcore/pkgcore-0.11.8.ebuild 
b/sys-apps/pkgcore/pkgcore-0.11.8-r1.ebuild
similarity index 94%
rename from sys-apps/pkgcore/pkgcore-0.11.8.ebuild
rename to sys-apps/pkgcore/pkgcore-0.11.8-r1.ebuild
index 9500e0ab3d3..ccaf1c6d439 100644
--- a/sys-apps/pkgcore/pkgcore-0.11.8.ebuild
+++ b/sys-apps/pkgcore/pkgcore-0.11.8-r1.ebuild
@@ -33,6 +33,10 @@ BDEPEND="
        )
 "
 
+PATCHES=(
+       "${FILESDIR}/pkgcore-0.10.18-sighdlr.patch"
+)
+
 distutils_enable_tests setup.py
 
 src_test() {

Reply via email to