pykms: replace logging patch

The logging "sed-patch" that was introduced for version 20190611 worked poorly:
it was too intrusive (breaking the --logfile option), and it didn't prevent
using in-store file for logging by default. The new logging patch (an actual
"diff-patch") is less intrusive: it just changes the default log file's
location to be the current directory instead of the executable's directory.
This commit is contained in:
Pavel Goran 2020-02-29 10:19:01 +00:00
parent de71be7723
commit 462fa8bbaf
2 changed files with 23 additions and 5 deletions

@ -44,16 +44,14 @@ in buildPythonApplication rec {
propagatedBuildInputs = [ systemd pytz tzlocal ];
# Fix https://github.com/SystemRage/py-kms/issues/64 :
patches = [ ./log-to-current-directory-by-default.patch ];
postPatch = ''
siteDir=$out/${python3.sitePackages}
substituteInPlace pykms_DB2Dict.py \
--replace "'KmsDataBase.xml'" "'$siteDir/KmsDataBase.xml'"
# we are logging to journal
sed -i pykms_Misc.py \
-e '6ifrom systemd import journal' \
-e 's/log_obj.addHandler(log_handler)/log_obj.addHandler(journal.JournalHandler())/'
'';
format = "other";

@ -0,0 +1,20 @@
# By default, create log files in current directory, instead of the script directory.
--- ../original/py-kms/pykms_Client.py
+++ py-kms/pykms_Client.py
@@ -48,5 +48,5 @@
'choi' : ["CRITICAL", "ERROR", "WARNING", "INFO", "DEBUG", "MINI"]},
'lfile' : {'help' : 'Use this option to set an output log file. The default is \"pykms_logclient.log\" or type \"STDOUT\" to view log info on stdout.',
- 'def' : os.path.dirname(os.path.abspath( __file__ )) + "/pykms_logclient.log", 'des' : "logfile"},
+ 'def' : "pykms_logclient.log", 'des' : "logfile"},
'lsize' : {'help' : 'Use this flag to set a maximum size (in MB) to the output log file. Desactivated by default.', 'def' : 0, 'des': "logsize"},
}
--- ../original/py-kms/pykms_Server.py
+++ py-kms/pykms_Server.py
@@ -85,5 +85,5 @@
'choi' : ["CRITICAL", "ERROR", "WARNING", "INFO", "DEBUG", "MINI"]},
'lfile' : {'help' : 'Use this option to set or not an output log file. The default is \"pykms_logserver.log\" or type \"STDOUT\" to view log info on stdout.',
- 'def' : os.path.dirname(os.path.abspath( __file__ )) + "/pykms_logserver.log", 'des' : "logfile"},
+ 'def' : "pykms_logserver.log", 'des' : "logfile"},
'lsize' : {'help' : 'Use this flag to set a maximum size (in MB) to the output log file. Desactivated by default.', 'def' : 0, 'des': "logsize"},
}
'');