diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix index fa858454965b..3cff6512fe46 100644 --- a/pkgs/os-specific/linux/systemd/default.nix +++ b/pkgs/os-specific/linux/systemd/default.nix @@ -3,14 +3,11 @@ , glib, kbd, libxslt, coreutils, libgcrypt , kexectools, libmicrohttpd, linuxHeaders, libseccomp , autoreconfHook, gettext, docbook_xsl, docbook_xml_dtd_42, docbook_xml_dtd_45 -, pythonPackages ? null, pythonSupport ? false , enableKDbus ? false }: assert stdenv.isLinux; -assert pythonSupport -> pythonPackages != null; - stdenv.mkDerivation rec { version = "228"; name = "systemd-${version}"; @@ -32,7 +29,7 @@ stdenv.mkDerivation rec { 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 - ] ++ stdenv.lib.optionals pythonSupport [pythonPackages.python pythonPackages.lxml]; + ]; configureFlags = [ "--localstatedir=/var" diff --git a/pkgs/tools/security/fail2ban/default.nix b/pkgs/tools/security/fail2ban/default.nix index aeb665710fab..667157978a38 100644 --- a/pkgs/tools/security/fail2ban/default.nix +++ b/pkgs/tools/security/fail2ban/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchzip, python, pythonPackages, unzip, systemd, gamin }: +{ stdenv, fetchzip, python, pythonPackages, unzip, gamin }: let version = "0.9.3"; in @@ -14,18 +14,10 @@ pythonPackages.buildPythonPackage { buildInputs = [ unzip ]; - pythonPath = (stdenv.lib.optional stdenv.isLinux systemd) - ++ [ python.modules.sqlite3 gamin ]; + propagatedBuildInputs = [ python.modules.sqlite3 gamin ] + ++ (stdenv.lib.optional stdenv.isLinux pythonPackages.systemd); preConfigure = '' - substituteInPlace setup.cfg \ - --replace /usr $out - - substituteInPlace setup.py \ - --replace /usr $out \ - --replace /etc $out/etc \ - --replace /var $TMPDIR/var \ - for i in fail2ban-client fail2ban-regex fail2ban-server; do substituteInPlace $i \ --replace /usr/share/fail2ban $out/share/fail2ban @@ -40,6 +32,18 @@ pythonPackages.buildPythonPackage { doCheck = false; + 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; + ''; + 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"; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 672ec093f1b8..51b1b378b9c2 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1432,11 +1432,7 @@ let fabric = pythonPackages.fabric; - fail2ban = callPackage ../tools/security/fail2ban { - systemd = systemd.override { - pythonSupport = true; - }; - }; + fail2ban = callPackage ../tools/security/fail2ban { }; fakeroot = callPackage ../tools/system/fakeroot { }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 2cb41dfcae62..6b5e793d08cb 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -18587,7 +18587,6 @@ in modules // { }; }; - structlog = buildPythonPackage rec { name = "structlog-15.3.0"; @@ -18629,21 +18628,59 @@ in modules // { }; }; + 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"; + }; - # 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; - # }; + 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; + }; + }; + + 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 ' >> 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; + }; + }; tabulate = buildPythonPackage rec { version = "0.7.5"; @@ -18689,36 +18726,6 @@ in modules // { }; }; - 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; - }; - }; - tarsnapper = buildPythonPackage rec { name = "tarsnapper-0.2.1"; disabled = isPy3k;