nixpkgs-suyu/pkgs/tools/backup/duplicity/default.nix
Russell O'Connor 8df0bb7aac duplicity: add dependency on rsync
When using the rsync:// protocol, duplicity expects to find the rsync binary in the path.
Without rsync in the path, duplicity fails with the following error

    Attempt 1 failed. AttributeError: 'NoneType' object has no attribute 'rfind'

Adding rsync to the path enables the rsync:// protocol to work correctly.
2016-09-09 18:37:25 +02:00

33 lines
1.4 KiB
Nix

{ stdenv, fetchurl, pythonPackages, librsync, ncftp, gnupg, rsync, makeWrapper
}:
let
version = "0.7.07.1";
inherit (pythonPackages) boto ecdsa lockfile paramiko pycrypto python setuptools;
in stdenv.mkDerivation {
name = "duplicity-${version}";
src = fetchurl {
url = "http://code.launchpad.net/duplicity/0.7-series/${version}/+download/duplicity-${version}.tar.gz";
sha256 = "594c6d0e723e56f8a7114d57811c613622d535cafdef4a3643a4d4c89c1904f8";
};
installPhase = ''
python setup.py install --prefix=$out
wrapProgram $out/bin/duplicity \
--prefix PYTHONPATH : "$(toPythonPath $out):$(toPythonPath ${pycrypto}):$(toPythonPath ${ecdsa}):$(toPythonPath ${paramiko}):$(toPythonPath ${boto}):$(toPythonPath ${lockfile})" \
--prefix PATH : "${stdenv.lib.makeBinPath [ gnupg ncftp rsync ]}"
wrapProgram $out/bin/rdiffdir \
--prefix PYTHONPATH : "$(toPythonPath $out):$(toPythonPath ${pycrypto}):$(toPythonPath ${ecdsa}):$(toPythonPath ${paramiko}):$(toPythonPath ${boto}):$(toPythonPath ${lockfile})"
'';
buildInputs = [ python librsync makeWrapper setuptools ];
meta = {
description = "Encrypted bandwidth-efficient backup using the rsync algorithm";
homepage = "http://www.nongnu.org/duplicity";
license = stdenv.lib.licenses.gpl2Plus;
maintainers = with stdenv.lib.maintainers; [viric peti];
platforms = with stdenv.lib.platforms; linux;
};
}