Change:
with current current unstable channel, the fail2ban package misses its etc path. The package hasn't been updated for some time and the out path is apparently generated by rewriting pathes in its : This suggests that the breakage might be related to the recent python packaging rework, so /cc as well as pkg maintainers

Discussion:
, glib, kbd, libxslt, coreutils, libgcrypt , kexectools, libmicrohttpd, linuxHeaders, libseccomp , autoreconfHook, gettext, docbook_xsl, docbook_xml_dtd_42, docbook_xml_dtd_45 <del> , pythonPackages ? null, pythonSupport ? false </del> , enableKDbus ? false }: assert stdenv.isLinux; <del> assert pythonSupport -> pythonPackages != null; </del> stdenv.mkDerivation rec { version = "228"; name = "systemd-${version}";

by generating an autoconf'd tarball, but that's probably not worth it. */ autoreconfHook gettext docbook_xsl docbook_xml_dtd_42 docbook_xml_dtd_45 <del> ] ++ stdenv.lib.optionals pythonSupport [pythonPackages.python pythonPackages.lxml]; </del> <ins> ]; </ins> configureFlags = [ "--localstatedir=/var"

<del> { stdenv, fetchzip, python, pythonPackages, unzip, systemd, gamin }: </del> <ins> { stdenv, fetchzip, python, pythonPackages, unzip, gamin }: </ins> <del> let version = "0.9.1"; in </del> <ins> let version = "0.9.3"; in </ins> pythonPackages.buildPythonPackage { name = "fail2ban-${version}";

src = fetchzip { name   = "fail2ban-${version}-src"; url    = "https://github.com/fail2ban/fail2ban/archive/${version}.tar.gz"; <del> sha256 = "111xvy2gxwn868kn0zy2fmdfa423z6fk57i7wsfrc0l74p1cdvs5"; </del> <ins> sha256 = "1pwgr56i6l6wh2ap8b5vknxgsscfzjqy2nmd1c3vzdii5kf72j0f"; </ins> }; buildInputs = [ unzip ]; <del> pythonPath = (stdenv.lib.optional stdenv.isLinux systemd) ++ [ python.modules.sqlite3 gamin ]; </del> <ins> propagatedBuildInputs = [ python.modules.sqlite3 gamin ] ++ (stdenv.lib.optional stdenv.isLinux pythonPackages.systemd); </ins> preConfigure = '' <del> substituteInPlace setup.cfg  --replace /usr $out substituteInPlace setup.py  --replace /usr $out  --replace /etc $out/etc  --replace /var $TMPDIR/var  </del> for i in fail2ban-client fail2ban-regex fail2ban-server; do substituteInPlace $i  --replace /usr/share/fail2ban $out/share/fail2ban

doCheck = false; <ins> preInstall = '' # see https://github.com/NixOS/nixpkgs/issues/4968 ${python}/bin/${python.executable} setup.py install_data --install-dir=$out --root=$out ''; postInstall = let sitePackages = "$out/lib/${python.libPrefix}/site-packages"; in '' # see https://github.com/NixOS/nixpkgs/issues/4968 rm -rf ${sitePackages}/etc ${sitePackages}/usr ${sitePackages}/var; ''; </ins> meta = with stdenv.lib; { homepage    = http://www.fail2ban.org/; description = "A program that scans log files for repeated failing login attempts and bans IP addresses";

fabric = pythonPackages.fabric; <del> fail2ban = callPackage ../tools/security/fail2ban { systemd = systemd.override { pythonSupport = true; }; }; </del> <ins> fail2ban = callPackage ../tools/security/fail2ban { }; </ins> fakeroot = callPackage ../tools/system/fakeroot { };

}; }; structlog = buildPythonPackage rec { name = "structlog-15.3.0";

}; }; <ins> syncthing-gtk = buildPythonPackage rec { version = "0.6.3"; name = "syncthing-gtk-${version}"; src = pkgs.fetchFromGitHub { owner = "syncthing"; repo = "syncthing-gtk"; rev = "v${version}"; sha256 = "1qa5bw2qizjiqvkms8i31wsjf8cw9p0ciamxgfgq6n37wcalv6ms"; }; disabled = isPy3k; </ins> <del> # XXX: ValueError: ZIP does not support timestamps before 1980 # svneverever =  buildPythonPackage rec { #   name = "svneverever-778489a8"; # #   src = pkgs.fetchgit { #     url = git://git.goodpoint.de/svneverever.git; #     rev = "778489a8c6f07825fb18c9da3892a781c3d659ac"; #     sha256 = "41c9da1dab2be7b60bff87e618befdf5da37c0a56287385cb0cbd3f91e452bb6"; #   }; # #   propagatedBuildInputs = with self; [ pysvn argparse ]; # #   doCheck = false; # }; </del> <ins> propagatedBuildInputs = with self; [ pkgs.syncthing dateutil pyinotify pkgs.libnotify pkgs.psmisc pygobject3 pkgs.gtk3 ]; patchPhase = '' substituteInPlace "scripts/syncthing-gtk"  --replace "/usr/share" "$out/share" substituteInPlace setup.py --replace "version = get_version()" "version = '${version}'" ''; meta = { description = " GTK3 & python based GUI for Syncthing "; maintainers = with maintainers; [ DamienCassou ]; platforms = pkgs.syncthing.meta.platforms; homepage = "https://github.com/syncthing/syncthing-gtk"; license = licenses.gpl2; }; }; systemd = buildPythonPackage rec { version = "231"; name = "python-systemd-${version}"; src = pkgs.fetchurl { url = "https://github.com/systemd/python-systemd/archive/v${version}.tar.gz"; sha256 = "1sifq7mdg0y5ngab8vjy8995nz9c0hxny35dxs5qjx0k0hyzb71c"; }; buildInputs = with pkgs; [ systemd pkgconfig ]; patchPhase = '' substituteInPlace setup.py  --replace "/usr/include" "${pkgs.systemd}/include" echo '#include <time.h>' >> systemd/pyutil.h ''; meta = { description = "Python module for native access to the systemd facilities"; homepage = http://www.freedesktop.org/software/systemd/python-systemd/; license = licenses.lgpl21; }; }; </ins> tabulate = buildPythonPackage rec { version = "0.7.5";

}; }; <del> syncthing-gtk = buildPythonPackage rec { version = "0.6.3"; name = "syncthing-gtk-${version}"; src = pkgs.fetchFromGitHub { owner = "syncthing"; repo = "syncthing-gtk"; rev = "v${version}"; sha256 = "1qa5bw2qizjiqvkms8i31wsjf8cw9p0ciamxgfgq6n37wcalv6ms"; }; disabled = isPy3k; propagatedBuildInputs = with self; [ pkgs.syncthing dateutil pyinotify pkgs.libnotify pkgs.psmisc pygobject3 pkgs.gtk3 ]; patchPhase = '' substituteInPlace "scripts/syncthing-gtk"  --replace "/usr/share" "$out/share" substituteInPlace setup.py --replace "version = get_version()" "version = '${version}'" ''; meta = { description = " GTK3 & python based GUI for Syncthing "; maintainers = with maintainers; [ DamienCassou ]; platforms = pkgs.syncthing.meta.platforms; homepage = "https://github.com/syncthing/syncthing-gtk"; license = licenses.gpl2; }; }; </del> tarsnapper = buildPythonPackage rec { name = "tarsnapper-0.2.1"; disabled = isPy3k;