From 107f5e3560e446d690ab62bc5b8f3d86f7032459 Mon Sep 17 00:00:00 2001 From: Mathijs Kwik Date: Sun, 5 Aug 2012 14:02:05 +0200 Subject: [PATCH] bup: include support for xattrs, acls and fuse on linux this enables the commands "bup meta" and "bup fuse". --- pkgs/tools/backup/bup/default.nix | 33 ++++++++++++++++++++++++++----- pkgs/top-level/all-packages.nix | 3 ++- 2 files changed, 30 insertions(+), 6 deletions(-) diff --git a/pkgs/tools/backup/bup/default.nix b/pkgs/tools/backup/bup/default.nix index 6d4555d34e56a9..586fc514ba6571 100644 --- a/pkgs/tools/backup/bup/default.nix +++ b/pkgs/tools/backup/bup/default.nix @@ -1,24 +1,47 @@ -{ stdenv, fetchgit, python, git, perl, pandoc }: +{ stdenv, fetchgit, python, pyxattr, pylibacl, setuptools, fuse, git, perl, pandoc, makeWrapper }: + +with stdenv.lib; stdenv.mkDerivation { name = "bup-0.25git20120722"; + src = fetchgit { url = "https://github.com/apenwarr/bup.git"; sha256 = "3ad232d7f23071ed34f920bd4c3137583f1adffbe23c022896289bc0a03fe7aa"; rev = "02bd2b566ea5eec2fd656e0ae572b4c7b6b9550a"; }; - buildNativeInputs = [ pandoc perl ]; + + buildNativeInputs = [ pandoc perl makeWrapper ]; + buildInputs = [ python git ]; + + postInstall = optionalString (elem stdenv.system platforms.linux) '' + wrapProgram $out/bin/bup --prefix PYTHONPATH : \ + ${stdenv.lib.concatStringsSep ":" + (map (path: "$(toPythonPath ${path})") [ pyxattr pylibacl setuptools fuse ])} + ''; + patchPhase = '' for f in cmd/* lib/tornado/* lib/tornado/test/* t/* wvtest.py main.py; do substituteInPlace $f --replace "/usr/bin/env python" "${python}/bin/python" done substituteInPlace Makefile --replace "./format-subst.pl" "perl ./format-subst.pl" - substituteInPlace lib/bup/csetup.py --replace "'bupsplit.c'])" "'bupsplit.c'], library_dirs=['${python}/lib'])" + substituteInPlace lib/bup/csetup.py \ + --replace "'bupsplit.c'])" "'bupsplit.c'], library_dirs=['${python}/lib'])" ''; - makeFlags = "MANDIR=$(out)/share/man DOCDIR=$(out)/share/doc/bup BINDIR=$(out)/bin LIBDIR=$(out)/lib/bup"; + + makeFlags = [ + "MANDIR=$(out)/share/man" + "DOCDIR=$(out)/share/doc/bup" + "BINDIR=$(out)/bin" + "LIBDIR=$(out)/lib/bup" + ]; + meta = { - description = "Highly efficient file backup system based on the git packfile format. Capable of doing *fast* incremental backups of virtual machine images."; + description = '' + Highly efficient file backup system based on the git packfile format. + Capable of doing *fast* incremental backups of virtual machine images. + ''; homepage = "https://github.com/apenwarr/bup"; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 5536d6fcabbeef..a0cf5f4739a58b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -488,7 +488,8 @@ let btar = callPackage ../tools/backup/btar { }; bup = callPackage ../tools/backup/bup { - pandoc = haskellPackages.pandoc; + inherit (pythonPackages) pyxattr pylibacl setuptools fuse; + inherit (haskellPackages) pandoc; }; bzip2 = callPackage ../tools/compression/bzip2 { };