From c8e7c1f7f4527da431b41bd7d23d1b51dd135b20 Mon Sep 17 00:00:00 2001 From: sebres Date: Fri, 12 Aug 2016 16:41:55 +0200 Subject: [PATCH] BF: prefer sys.argv[0] by retrieving of root resp. bin path: __file__ seems to be overwritten sometimes on some python versions (e.g. bug of 2.6 by running under cProfile, etc.) --- bin/fail2ban-testcases | 6 +++++- setup.py | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/bin/fail2ban-testcases b/bin/fail2ban-testcases index 34d392e4..7e5f7aca 100755 --- a/bin/fail2ban-testcases +++ b/bin/fail2ban-testcases @@ -45,7 +45,11 @@ from fail2ban.server.mytime import MyTime from optparse import OptionParser, Option # Update fail2ban-python env to current python version (where f2b-modules located/installed) -updatePyExec(os.path.dirname(__file__)) +bindir = os.path.dirname( + # __file__ seems to be overwritten sometimes on some python versions (e.g. bug of 2.6 by running under cProfile, etc.): + sys.argv[0] if os.path.basename(sys.argv[0]) == 'fail2ban-testcases' else __file__ +) +updatePyExec(bindir) def get_opt_parser(): # use module docstring for help output diff --git a/setup.py b/setup.py index be1fe685..11d0a20b 100755 --- a/setup.py +++ b/setup.py @@ -66,7 +66,11 @@ class install_scripts_f2b(install_scripts): # Update fail2ban-python env to current python version (where f2b-modules located/installed) -updatePyExec(os.path.join(os.path.dirname(__file__), 'bin')) +rootdir = 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.): + sys.argv[0] if os.path.basename(sys.argv[0]) == 'setup.py' else __file__ +)) +updatePyExec(os.path.join(rootdir, 'bin')) if setuptools and "test" in sys.argv: import logging