commit:     56503f6777856b3e3b37ae6046c2ef39d4addbb8
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sun Jul  2 20:31:54 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Jul  2 20:32:52 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=56503f67

net-analyzer/fail2ban: avoid test umask affecting installed files

Bug: https://bugs.gentoo.org/790251
Closes: https://bugs.gentoo.org/907350
Signed-off-by: Sam James <sam <AT> gentoo.org>

 ...il2ban-9999.ebuild => fail2ban-1.0.2-r2.ebuild} |  9 ++++-
 net-analyzer/fail2ban/fail2ban-9999.ebuild         |  1 +
 .../files/fail2ban-1.0.2-umask-tests.patch         | 45 ++++++++++++++++++++++
 3 files changed, 54 insertions(+), 1 deletion(-)

diff --git a/net-analyzer/fail2ban/fail2ban-9999.ebuild 
b/net-analyzer/fail2ban/fail2ban-1.0.2-r2.ebuild
similarity index 94%
copy from net-analyzer/fail2ban/fail2ban-9999.ebuild
copy to net-analyzer/fail2ban/fail2ban-1.0.2-r2.ebuild
index 19d76da94cf4..a440fa2f6374 100644
--- a/net-analyzer/fail2ban/fail2ban-9999.ebuild
+++ b/net-analyzer/fail2ban/fail2ban-1.0.2-r2.ebuild
@@ -4,7 +4,6 @@
 EAPI=8
 
 DISTUTILS_SINGLE_IMPL=1
-DISUTILS_USE_PEP517=setuptools
 PYTHON_COMPAT=( python3_{10..11} )
 
 inherit bash-completion-r1 distutils-r1 systemd tmpfiles
@@ -39,6 +38,8 @@ DOCS=( ChangeLog DEVELOP README.md THANKS TODO 
doc/run-rootless.txt )
 
 PATCHES=(
        "${FILESDIR}"/${PN}-0.11.2-adjust-apache-logs-paths.patch
+       "${FILESDIR}"/${PN}-1.0.2-umask-tests.patch
+       "${FILESDIR}"/${P}-configreader-warning.patch
 )
 
 python_prepare_all() {
@@ -49,10 +50,16 @@ python_prepare_all() {
                sed -i -e 's|/var\(/run/fail2ban\)|\1|g' {} + || die
 }
 
+python_compile() {
+       ./fail2ban-2to3 || die
+       distutils-r1_python_compile
+}
+
 python_test() {
        # Skip testRepairDb for bug #907348 (didn't always fail..)
        bin/fail2ban-testcases \
                --no-network \
+               --no-gamin \
                --ignore databasetestcase.DatabaseTest.testRepairDb \
                --verbosity=4 || die "Tests failed with ${EPYTHON}"
 

diff --git a/net-analyzer/fail2ban/fail2ban-9999.ebuild 
b/net-analyzer/fail2ban/fail2ban-9999.ebuild
index 19d76da94cf4..b657eb644f4a 100644
--- a/net-analyzer/fail2ban/fail2ban-9999.ebuild
+++ b/net-analyzer/fail2ban/fail2ban-9999.ebuild
@@ -39,6 +39,7 @@ DOCS=( ChangeLog DEVELOP README.md THANKS TODO 
doc/run-rootless.txt )
 
 PATCHES=(
        "${FILESDIR}"/${PN}-0.11.2-adjust-apache-logs-paths.patch
+       "${FILESDIR}"/${PN}-1.0.2-umask-tests.patch
 )
 
 python_prepare_all() {

diff --git a/net-analyzer/fail2ban/files/fail2ban-1.0.2-umask-tests.patch 
b/net-analyzer/fail2ban/files/fail2ban-1.0.2-umask-tests.patch
new file mode 100644
index 000000000000..8feca43412ec
--- /dev/null
+++ b/net-analyzer/fail2ban/files/fail2ban-1.0.2-umask-tests.patch
@@ -0,0 +1,45 @@
+Avoid corrupting umask permanently in the testdir because of 
fail2ban/server/server.py::start.
+
+In particular:
+* https://bugs.gentoo.org/659010#c11
+* https://bugs.gentoo.org/790251#c10
+* https://bugs.gentoo.org/907350
+
+But see also the many dupes.
+--- a/fail2ban/tests/fail2banclienttestcase.py
++++ b/fail2ban/tests/fail2banclienttestcase.py
+@@ -23,6 +23,7 @@ __author__ = "Serg Brester"
+ __copyright__ = "Copyright (c) 2014- Serg G. Brester (sebres), 2008- Fail2Ban 
Contributors"
+ __license__ = "GPL"
+ 
++import atexit
+ import fileinput
+ import os
+ import re
+@@ -40,6 +41,14 @@ from ..client.fail2bancmdline import Fail2banCmdLine
+ from ..client.fail2banclient import exec_command_line as _exec_client, 
CSocket, VisualWait
+ from ..client.fail2banserver import Fail2banServer, exec_command_line as 
_exec_server
+ from .. import protocol
++
++def current_umask():
++      tmp = os.umask(0o022)
++      os.umask(tmp)
++      return tmp
++
++old_umask = current_umask()
++
+ from ..server import server
+ from ..server.mytime import MyTime
+ from ..server.utils import Utils
+@@ -48,6 +57,11 @@ from .utils import LogCaptureTestCase, logSys as DefLogSys, 
with_tmpdir, shutil,
+ 
+ from ..helpers import getLogger
+ 
++def restore_umask():
++      os.umask(old_umask)
++
++atexit.register(restore_umask)
++
+ # Gets the instance of the logger.
+ logSys = getLogger(__name__)
+ 

Reply via email to