From a107a8e7d2f1e55e317425cc12acbd813d9e6dee Mon Sep 17 00:00:00 2001 From: sebres Date: Mon, 23 Nov 2020 14:59:45 +0100 Subject: [PATCH] setup.py: cherry-pick from 0.11 (option --without-tests) --- setup.py | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/setup.py b/setup.py index 8da29268..2e2a77fa 100755 --- a/setup.py +++ b/setup.py @@ -63,6 +63,8 @@ source_dir = os.path.realpath(os.path.dirname( sys.argv[0] if os.path.basename(sys.argv[0]) == 'setup.py' else __file__ )) +with_tests = True + # Wrapper to install python binding (to current python version): class install_scripts_f2b(install_scripts): @@ -119,9 +121,11 @@ class install_scripts_f2b(install_scripts): 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 @@ -132,6 +136,13 @@ class install_command_f2b(install): 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') + + self.distribution.packages.remove('fail2ban.tests') + self.distribution.packages.remove('fail2ban.tests.action_d') + + del self.distribution.package_data['fail2ban.tests'] install.finalize_options(self) def run(self): install.run(self) @@ -159,6 +170,12 @@ elif "test" in sys.argv: print("python distribute required to execute fail2ban tests") print("") +# if build without tests: +if "build" in sys.argv: + if "--without-tests" in sys.argv: + with_tests = False + sys.argv.remove("--without-tests") + longdesc = ''' Fail2Ban scans log files like /var/log/pwdfail or /var/log/apache/error_log and bans IP that makes @@ -208,23 +225,25 @@ setup( license = "GPL", platforms = "Posix", cmdclass = { - 'build_py': build_py, 'build_scripts': build_scripts, + 'build_py': build_py, 'build_scripts': build_scripts, 'install_scripts': install_scripts_f2b, 'install': install_command_f2b }, scripts = [ 'bin/fail2ban-client', 'bin/fail2ban-server', 'bin/fail2ban-regex', - 'bin/fail2ban-testcases', # 'bin/fail2ban-python', -- link (binary), will be installed via install_scripts_f2b wrapper - ], + ] + [ + 'bin/fail2ban-testcases', + ] if with_tests else [], packages = [ 'fail2ban', 'fail2ban.client', 'fail2ban.server', + ] + [ 'fail2ban.tests', 'fail2ban.tests.action_d', - ], + ] if with_tests else [], package_data = { 'fail2ban.tests': [ join(w[0], f).replace("fail2ban/tests/", "", 1) @@ -236,7 +255,7 @@ setup( [ join(w[0], f).replace("fail2ban/tests/", "", 1) for w in os.walk('fail2ban/tests/action_d') for f in w[2]] - }, + } if with_tests else {}, data_files = [ ('/etc/fail2ban', glob("config/*.conf")