diff options
author | Tobias Geerinckx-Rice <tobias.geerinckx.rice@gmail.com> | 2016-01-20 08:00:06 +0100 |
---|---|---|
committer | Tobias Geerinckx-Rice <tobias.geerinckx.rice@gmail.com> | 2016-01-20 09:21:44 +0100 |
commit | f1f2b87fdd64c08c7b8625ffcdefa5fa7628e735 (patch) | |
tree | e6d14f9d5c5e8649dc276157edc3d137834c90ff /pkgs/tools/misc | |
parent | 72cd96a0e14775a92e677bc82841e95206f5d5a6 (diff) | |
download | nixlib-f1f2b87fdd64c08c7b8625ffcdefa5fa7628e735.tar nixlib-f1f2b87fdd64c08c7b8625ffcdefa5fa7628e735.tar.gz nixlib-f1f2b87fdd64c08c7b8625ffcdefa5fa7628e735.tar.bz2 nixlib-f1f2b87fdd64c08c7b8625ffcdefa5fa7628e735.tar.lz nixlib-f1f2b87fdd64c08c7b8625ffcdefa5fa7628e735.tar.xz nixlib-f1f2b87fdd64c08c7b8625ffcdefa5fa7628e735.tar.zst nixlib-f1f2b87fdd64c08c7b8625ffcdefa5fa7628e735.zip |
snapper: various tweaks and fixes
Fix numerous configuration files referring to ‘/usr’ and ‘/lib’. Some paths were still ending up in ‘/nix/store/.../nix/store/...’, despite some well-intended hacks meant to avoid that. Replace them with other hacks. It's all very fragile and ugly, so snapper should feel right at home. Oh, and `snapper create-config ~` still won't actually *do* anything, because D-Bus (#12452). Use `--no-dbus` and add files to ‘/etc’ as long as it complains. Only fair that I help maintain this mess.
Diffstat (limited to 'pkgs/tools/misc')
-rw-r--r-- | pkgs/tools/misc/snapper/default.nix | 51 |
1 files changed, 33 insertions, 18 deletions
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 ]; }; } |