commit:     5e75f94661d665527b763aa8a5a85e4c7f45a130
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sun Oct 24 03:37:21 2021 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Oct 24 03:38:58 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5e75f946

net-analyzer/fail2ban: fix install with newer setuptools (2to3 usage)

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

 net-analyzer/fail2ban/fail2ban-0.11.2-r1.ebuild    |   1 +
 .../files/fail2ban-0.11.2-fix-2to3-usage.patch     | 109 +++++++++++++++++++++
 2 files changed, 110 insertions(+)

diff --git a/net-analyzer/fail2ban/fail2ban-0.11.2-r1.ebuild 
b/net-analyzer/fail2ban/fail2ban-0.11.2-r1.ebuild
index d2a4540b0ea..3e667a2f573 100644
--- a/net-analyzer/fail2ban/fail2ban-0.11.2-r1.ebuild
+++ b/net-analyzer/fail2ban/fail2ban-0.11.2-r1.ebuild
@@ -40,6 +40,7 @@ DOCS=( ChangeLog DEVELOP README.md THANKS TODO 
doc/run-rootless.txt )
 PATCHES=(
        "${FILESDIR}"/${P}-fix-tests-for-2021.patch
        "${FILESDIR}"/${PN}-0.11.2-adjust-apache-logs-paths.patch
+       "${FILESDIR}"/${PN}-0.11.2-fix-2to3-usage.patch
 )
 
 python_prepare_all() {

diff --git a/net-analyzer/fail2ban/files/fail2ban-0.11.2-fix-2to3-usage.patch 
b/net-analyzer/fail2ban/files/fail2ban-0.11.2-fix-2to3-usage.patch
new file mode 100644
index 00000000000..9098d096e8a
--- /dev/null
+++ b/net-analyzer/fail2ban/files/fail2ban-0.11.2-fix-2to3-usage.patch
@@ -0,0 +1,109 @@
+https://github.com/fail2ban/fail2ban/commit/7f22c4873aed3b5ffce0953f079f3c1977297c9a
+https://github.com/fail2ban/fail2ban/commit/5ac303df8a171f748330d4c645ccbf1c2c7f3497
+https://github.com/fail2ban/fail2ban/commit/d6b884f3b72b8a42b21da863836569ef6836c2ea
+https://github.com/fail2ban/fail2ban/issues/3098
+https://bugs.gentoo.org/818733
+
+From: "Sergey G. Brester" <serg.bres...@sebres.de>
+Date: Sun, 19 Sep 2021 18:36:02 +0200
+Subject: [PATCH] remove 2to3 in setup (should be called outside before setup)
+
+--- a/setup.py
++++ b/setup.py
+@@ -39,14 +39,6 @@
+ if setuptools is None:
+       from distutils.command.install import install
+       from distutils.command.install_scripts import install_scripts
+-try:
+-      # python 3.x
+-      from distutils.command.build_py import build_py_2to3
+-      from distutils.command.build_scripts import build_scripts_2to3
+-      _2to3 = True
+-except ImportError:
+-      # python 2.x
+-      _2to3 = False
+ 
+ import os
+ from os.path import isfile, join, isdir, realpath
+
+From: sebres <i...@sebres.de>
+Date: Sun, 19 Sep 2021 18:49:18 +0200
+Subject: [PATCH] fix gh-3098: build fails with error in fail2ban setup
+ command: use_2to3 is invalid (setuptools 58+)
+
+--- a/setup.py
++++ b/setup.py
+@@ -48,7 +48,7 @@
+ from glob import glob
+ 
+ from fail2ban.setup import updatePyExec
+-
++from fail2ban.version import version
+ 
+ source_dir = os.path.realpath(os.path.dirname(
+       # __file__ seems to be overwritten sometimes on some python versions 
(e.g. bug of 2.6 by running under cProfile, etc.):
+@@ -112,22 +112,12 @@ def update_scripts(self, dry_run=False):
+ # Wrapper to specify fail2ban own options:
+ class install_command_f2b(install):
+       user_options = install.user_options + [
+-              ('disable-2to3', None, 'Specify to deactivate 2to3, e.g. if the 
install runs from fail2ban test-cases.'),
+               ('without-tests', None, 'without tests files installation'),
+       ]
+       def initialize_options(self):
+-              self.disable_2to3 = None
+               self.without_tests = not with_tests
+               install.initialize_options(self)
+       def finalize_options(self):
+-              global _2to3
+-              ## in the test cases 2to3 should be already done 
(fail2ban-2to3):
+-              if self.disable_2to3:
+-                      _2to3 = False
+-              if _2to3:
+-                      cmdclass = self.distribution.cmdclass
+-                      cmdclass['build_py'] = build_py_2to3
+-                      cmdclass['build_scripts'] = build_scripts_2to3
+               if self.without_tests:
+                       
self.distribution.scripts.remove('bin/fail2ban-testcases')
+ 
+@@ -178,7 +168,6 @@ def run(self):
+ if setuptools:
+       setup_extra = {
+               'test_suite': "fail2ban.tests.utils.gatherTests",
+-              'use_2to3': True,
+       }
+ else:
+       setup_extra = {}
+@@ -202,9 +191,6 @@ def run(self):
+               ('/usr/share/doc/fail2ban', doc_files)
+       )
+ 
+-# Get version number, avoiding importing fail2ban.
+-# This is due to tests not functioning for python3 as 2to3 takes place later
+-exec(open(join("fail2ban", "version.py")).read())
+ 
+ setup(
+       name = "fail2ban",
+From: sebres <i...@sebres.de>
+Date: Sun, 19 Sep 2021 18:52:34 +0200
+Subject: [PATCH] amend to fix gh-3098: no option `--disable-2to3` anymore
+
+--- a/fail2ban/tests/misctestcase.py
++++ b/fail2ban/tests/misctestcase.py
+@@ -111,7 +111,7 @@ def testSetupInstallDryRun(self):
+               supdbgout = ' >/dev/null 2>&1' if unittest.F2B.log_level >= 
logging.DEBUG else '' # HEAVYDEBUG
+               try:
+                       # try dry-run:
+-                      os.system("%s %s --dry-run install --disable-2to3 
--root=%s%s"
++                      os.system("%s %s --dry-run install --root=%s%s"
+                                         % (sys.executable, self.setup , tmp, 
supdbgout))
+                       # check nothing was created:
+                       self.assertTrue(not os.listdir(tmp))
+@@ -127,7 +127,7 @@ def testSetupInstallRoot(self):
+               # suppress stdout (and stderr) if not heavydebug
+               supdbgout = ' >/dev/null' if unittest.F2B.log_level >= 
logging.DEBUG else '' # HEAVYDEBUG
+               try:
+-                      self.assertEqual(os.system("%s %s install 
--disable-2to3 --root=%s%s"
++                      self.assertEqual(os.system("%s %s install --root=%s%s"
+                                         % (sys.executable, self.setup, tmp, 
supdbgout)), 0)
+ 
+                       def strippath(l):

Reply via email to