nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at 19.03 85 lines 2.5 kB view raw
1{ stdenv, fetchpatch, python3, acl, libb2, lz4, zstd, openssl, openssh }: 2 3let 4 python = python3.override { 5 packageOverrides = self: super: { 6 # https://github.com/borgbackup/borg/issues/3753#issuecomment-454011810 7 msgpack-python = super.msgpack-python.overridePythonAttrs (oldAttrs: rec { 8 version = "0.5.6"; 9 src = oldAttrs.src.override { 10 inherit version; 11 sha256 = "0ee8c8c85aa651be3aa0cd005b5931769eaa658c948ce79428766f1bd46ae2c3"; 12 }; 13 }); 14 }; 15 }; 16 17in python.pkgs.buildPythonApplication rec { 18 pname = "borgbackup"; 19 version = "1.1.9"; 20 21 src = python.pkgs.fetchPypi { 22 inherit pname version; 23 sha256 = "7d0ff84e64c4be35c43ae2c047bb521a94f15b278c2fe63b43950c4836b42575"; 24 }; 25 26 nativeBuildInputs = with python.pkgs; [ 27 # For building documentation: 28 sphinx guzzle_sphinx_theme 29 ]; 30 buildInputs = [ 31 libb2 lz4 zstd openssl python.pkgs.setuptools_scm 32 ] ++ stdenv.lib.optionals stdenv.isLinux [ acl ]; 33 propagatedBuildInputs = with python.pkgs; [ 34 cython msgpack-python 35 ] ++ stdenv.lib.optionals (!stdenv.isDarwin) [ llfuse ]; 36 37 preConfigure = '' 38 export BORG_OPENSSL_PREFIX="${openssl.dev}" 39 export BORG_LZ4_PREFIX="${lz4.dev}" 40 export BORG_LIBB2_PREFIX="${libb2}" 41 export BORG_LIBZSTD_PREFIX="${zstd}" 42 ''; 43 44 makeWrapperArgs = [ 45 ''--prefix PATH ':' "${openssh}/bin"'' 46 ]; 47 48 postInstall = '' 49 make -C docs singlehtml 50 mkdir -p $out/share/doc/borg 51 cp -R docs/_build/singlehtml $out/share/doc/borg/html 52 53 make -C docs man 54 mkdir -p $out/share/man 55 cp -R docs/_build/man $out/share/man/man1 56 57 mkdir -p $out/share/bash-completion/completions 58 cp scripts/shell_completions/bash/borg $out/share/bash-completion/completions/ 59 60 mkdir -p $out/share/fish/vendor_completions.d 61 cp scripts/shell_completions/fish/borg.fish $out/share/fish/vendor_completions.d/ 62 63 mkdir -p $out/share/zsh/site-functions 64 cp scripts/shell_completions/zsh/_borg $out/share/zsh/site-functions/ 65 ''; 66 67 checkInputs = with python.pkgs; [ 68 pytest 69 ]; 70 71 checkPhase = '' 72 HOME=$(mktemp -d) py.test --pyargs borg.testsuite 73 ''; 74 75 # 63 failures, needs pytest-benchmark 76 doCheck = false; 77 78 meta = with stdenv.lib; { 79 description = "A deduplicating backup program (attic fork)"; 80 homepage = https://www.borgbackup.org; 81 license = licenses.bsd3; 82 platforms = platforms.unix; # Darwin and FreeBSD mentioned on homepage 83 maintainers = with maintainers; [ flokli dotlambda ]; 84 }; 85}