diff --git a/pkgs/tools/misc/snapper/default.nix b/pkgs/tools/misc/snapper/default.nix index 1a0c805a2ec6..933788f57855 100644 --- a/pkgs/tools/misc/snapper/default.nix +++ b/pkgs/tools/misc/snapper/default.nix @@ -1,16 +1,16 @@ { stdenv, fetchFromGitHub , autoreconfHook, pkgconfig, docbook_xsl, libxslt, docbook_xml_dtd_45 , acl, attr, boost, btrfs-progs, dbus_libs, diffutils, e2fsprogs, libxml2 -, lvm2, pam, utillinux }: +, lvm2, pam, python, utillinux }: stdenv.mkDerivation rec { - name = "snapper-${ver}"; - ver = "0.2.8"; + name = "snapper-${version}"; + version = "0.2.8"; src = fetchFromGitHub { owner = "openSUSE"; repo = "snapper"; - rev = "v${ver}"; + rev = "v${version}"; sha256 = "1rj8vy6hq140pbnc7mjjb34mfqdgdah1dmlv2073izdgakh7p38j"; }; @@ -20,33 +20,48 @@ stdenv.mkDerivation rec { ]; buildInputs = [ acl attr boost btrfs-progs dbus_libs diffutils e2fsprogs libxml2 - lvm2 pam utillinux + lvm2 pam python utillinux ]; - patchPhase = '' - # work around missing btrfs/version.h; otherwise, use "-DHAVE_BTRFS_VERSION_H" - substituteInPlace snapper/Btrfs.cc --replace "define BTRFS_LIB_VERSION (100)" "define BTRFS_LIB_VERSION (200)"; + postPatch = '' + # Hard-coded root paths, hard-coded root paths everywhere... + for file in {client,data,pam,scripts}/Makefile.am; do + substituteInPlace $file \ + --replace '$(DESTDIR)/usr' "$out" \ + --replace "DESTDIR" "out" \ + --replace "/usr" "$out" + done + substituteInPlace pam/Makefile.am \ + --replace '/`basename $(libdir)`' "$out/lib" ''; - configurePhase = '' - ./configure --disable-silent-rules --disable-ext4 --disable-btrfs-quota --prefix=$out - ''; + configureFlags = [ + "--disable-ext4" # requires patched kernel & e2fsprogs + ]; - makeFlags = "DESTDIR=$(out)"; + enableParallelBuilding = true; - NIX_CFLAGS_COMPILE = [ "-I${libxml2}/include/libxml2" ]; + NIX_CFLAGS_COMPILE = [ + "-I${libxml2}/include/libxml2" + ]; - # Probably a hack, but using DESTDIR and PREFIX makes everything work! postInstall = '' - cp -r $out/$out/* $out - rm -r $out/nix - ''; + rm -r $out/etc/cron.* + patchShebangs $out/lib/zypp/plugins/commit/* + for file in \ + $out/lib/pam_snapper/* \ + $out/lib/systemd/system/* \ + $out/share/dbus-1/system-services/* \ + ; do + substituteInPlace $file --replace "/usr" "$out" + done + ''; meta = with stdenv.lib; { description = "Tool for Linux filesystem snapshot management"; homepage = http://snapper.io; license = licenses.gpl2; platforms = platforms.linux; - maintainers = [ maintainers.tstrobel ]; + maintainers = with maintainers; [ nckx tstrobel ]; }; }