fail2ban: switch to Python 3

We are dropping Python support from gamin so nothing is holding us any more.
Instead of gamin, we will use systemd on Linux and polling on Darwin;
gamin is the worst backend any way, according to upstream:

https://github.com/fail2ban/fail2ban/issues/1330#issuecomment-314429043
This commit is contained in:
Jan Tojnar 2019-12-14 21:58:10 +01:00
parent a4721054c1
commit 7adbfb1220
No known key found for this signature in database
GPG Key ID: 7FAB2A15F7A607A4

View File

@ -1,8 +1,8 @@
{ stdenv, fetchFromGitHub, python, pythonPackages, gamin }: { stdenv, fetchFromGitHub, fetchpatch, python3, gamin }:
let version = "0.10.4"; in let version = "0.10.4"; in
pythonPackages.buildPythonApplication { python3.pkgs.buildPythonApplication {
pname = "fail2ban"; pname = "fail2ban";
inherit version; inherit version;
@ -13,8 +13,19 @@ pythonPackages.buildPythonApplication {
sha256 = "07ik6rm856q0ic2r7vbg6j3hsdcdgkv44hh5ck0c2y21fqwrck3l"; sha256 = "07ik6rm856q0ic2r7vbg6j3hsdcdgkv44hh5ck0c2y21fqwrck3l";
}; };
propagatedBuildInputs = [ gamin ] patches = [
++ (stdenv.lib.optional stdenv.isLinux pythonPackages.systemd); # 0.10.3 supports Python 3 but somehow this got into the way
# https://github.com/fail2ban/fail2ban/issues/2255
(fetchpatch {
url = "https://github.com/fail2ban/fail2ban/commit/657b147c0d7830f3600f3dc7feaa4815a7e19fde.patch";
sha256 = "1hrk2x7ssrfhab1wrjk5xw1sxhiv2735glfcp6qcj8x4dss3q7f7";
})
];
pythonPath = with python3.pkgs;
stdenv.lib.optionals stdenv.isLinux [
systemd
];
preConfigure = '' preConfigure = ''
for i in config/action.d/sendmail*.conf; do for i in config/action.d/sendmail*.conf; do
@ -33,11 +44,11 @@ pythonPackages.buildPythonApplication {
substituteInPlace setup.py --replace /usr/share/doc/ share/doc/ substituteInPlace setup.py --replace /usr/share/doc/ share/doc/
# see https://github.com/NixOS/nixpkgs/issues/4968 # see https://github.com/NixOS/nixpkgs/issues/4968
${python}/bin/${python.executable} setup.py install_data --install-dir=$out --root=$out ${python3.interpreter} setup.py install_data --install-dir=$out --root=$out
''; '';
postInstall = let postInstall = let
sitePackages = "$out/lib/${python.libPrefix}/site-packages"; sitePackages = "$out/${python3.sitePackages}";
in '' in ''
# see https://github.com/NixOS/nixpkgs/issues/4968 # see https://github.com/NixOS/nixpkgs/issues/4968
rm -rf ${sitePackages}/etc ${sitePackages}/usr ${sitePackages}/var; rm -rf ${sitePackages}/etc ${sitePackages}/usr ${sitePackages}/var;