From 5e1bea1ec27f11bf9ffdb19a8a0a750958131257 Mon Sep 17 00:00:00 2001 From: Joachim Fasting <joachifm@fastmail.fm> Date: Sat, 28 May 2016 02:01:15 +0200 Subject: [PATCH] bup: refactorings - Use `fetchFromGitHub` - Apply patches standard patch phase - Use `pythonPackages` - Use `stdenv.is{Darwin,Linux}` - meta fixups - Enable support for the web front-end --- pkgs/tools/backup/bup/default.nix | 41 +++++++++++++++++-------------- pkgs/top-level/all-packages.nix | 3 +-- 2 files changed, 23 insertions(+), 21 deletions(-) diff --git a/pkgs/tools/backup/bup/default.nix b/pkgs/tools/backup/bup/default.nix index af5116eaa724..b7136c16fb3c 100644 --- a/pkgs/tools/backup/bup/default.nix +++ b/pkgs/tools/backup/bup/default.nix @@ -1,5 +1,7 @@ -{ stdenv, fetchzip, fetchurl, python, pyxattr, pylibacl, setuptools -, fuse, git, perl, pandoc, makeWrapper, par2cmdline, par2Support ? false }: +{ stdenv, fetchFromGitHub, fetchurl, makeWrapper +, perl, pandoc, pythonPackages, git +, par2cmdline ? null, par2Support ? false +}: assert par2Support -> par2cmdline != null; @@ -10,27 +12,28 @@ with stdenv.lib; stdenv.mkDerivation rec { name = "bup-${version}"; - src = fetchzip { - url = "https://github.com/bup/bup/archive/${version}.tar.gz"; + src = fetchFromGitHub { + repo = "bup"; + owner = "bup"; + rev = version; sha256 = "0g7b0xl3kg0z6rn81fvzl1xnvva305i7pjih2hm68mcj0adk3v0d"; }; - buildInputs = [ python git ]; + buildInputs = [ git pythonPackages.python ]; nativeBuildInputs = [ pandoc perl makeWrapper ]; - darwin_10_10_patch = fetchurl { + patches = optional stdenv.isDarwin (fetchurl { url = "https://github.com/bup/bup/commit/75d089e7cdb7a7eb4d69c352f56dad5ad3aa1f97.diff"; sha256 = "05kp47p30a45ip0fg090vijvzc7ijr0alc3y8kjl6bvv3gliails"; - }; + name = "darwin_10_10.patch"; + }); postPatch = '' patchShebangs . substituteInPlace Makefile --replace "-Werror" "" - substituteInPlace Makefile --replace "./format-subst.pl" "perl ./format-subst.pl" + substituteInPlace Makefile --replace "./format-subst.pl" "${perl}/bin/perl ./format-subst.pl" '' + optionalString par2Support '' substituteInPlace cmd/fsck-cmd.py --replace "['par2'" "['${par2cmdline}/bin/par2'" - '' + optionalString (elem stdenv.system platforms.darwin) '' - patch -p1 < ${darwin_10_10_patch} ''; dontAddPrefix = true; @@ -42,24 +45,24 @@ stdenv.mkDerivation rec { "LIBDIR=$(out)/lib/bup" ]; - postInstall = ''wrapProgram $out/bin/bup --prefix PATH : ${git}/bin '' - + optionalString (elem stdenv.system platforms.linux) '' --prefix PYTHONPATH : \ - ${stdenv.lib.concatStringsSep ":" - (map (path: "$(toPythonPath ${path})") [ pyxattr pylibacl setuptools fuse ])} + postInstall = '' + wrapProgram $out/bin/bup \ + --prefix PATH : ${git}/bin \ + --prefix PYTHONPATH : ${concatStringsSep ":" (map (x: "$(toPythonPath ${x})") + (with pythonPackages; [ pyxattr pylibacl setuptools fuse tornado ]))} ''; meta = { homepage = "https://github.com/bup/bup"; - description = "efficient file backup system based on the git packfile format"; - license = stdenv.lib.licenses.gpl2Plus; + description = "Efficient file backup system based on the git packfile format"; + license = licenses.gpl2Plus; longDescription = '' Highly efficient file backup system based on the git packfile format. Capable of doing *fast* incremental backups of virtual machine images. ''; - hydraPlatforms = stdenv.lib.platforms.linux; - maintainers = with stdenv.lib.maintainers; [ muflax ]; - + hydraPlatforms = platforms.linux; + maintainers = with maintainers; [ muflax ]; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 2511df503872..cd1c6da3edeb 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -957,8 +957,7 @@ in }; bup = callPackage ../tools/backup/bup { - inherit (pythonPackages) pyxattr pylibacl setuptools fuse; - par2Support = (config.bup.par2Support or false); + par2Support = config.bup.par2Support or false; }; burp_1_3 = callPackage ../tools/backup/burp/1.3.48.nix { };