1{ stdenv, fetchurl, python3Packages, acl, lz4, openssl, openssh }:
2
3python3Packages.buildPythonApplication rec {
4 name = "borgbackup-${version}";
5 version = "1.1.4";
6 namePrefix = "";
7
8 src = fetchurl {
9 url = "https://github.com/borgbackup/borg/releases/download/"
10 + "${version}/${name}.tar.gz";
11 sha256 = "1cicqwh85wfp65y00qaq6q4i4jcyy9b66qz5gpl80qc880wab912";
12 };
13
14 nativeBuildInputs = with python3Packages; [
15 # For building documentation:
16 sphinx guzzle_sphinx_theme
17 ];
18 buildInputs = [
19 lz4 openssl python3Packages.setuptools_scm
20 ] ++ stdenv.lib.optionals stdenv.isLinux [ acl ];
21 propagatedBuildInputs = with python3Packages; [
22 cython msgpack-python
23 ] ++ stdenv.lib.optionals (!stdenv.isDarwin) [ llfuse ];
24
25 preConfigure = ''
26 export BORG_OPENSSL_PREFIX="${openssl.dev}"
27 export BORG_LZ4_PREFIX="${lz4.dev}"
28 '';
29
30 makeWrapperArgs = [
31 ''--prefix PATH ':' "${openssh}/bin"''
32 ];
33
34 postInstall = ''
35 make -C docs singlehtml
36 mkdir -p $out/share/doc/borg
37 cp -R docs/_build/singlehtml $out/share/doc/borg/html
38
39 make -C docs man
40 mkdir -p $out/share/man
41 cp -R docs/_build/man $out/share/man/man1
42 '';
43
44 meta = with stdenv.lib; {
45 description = "A deduplicating backup program (attic fork)";
46 homepage = https://borgbackup.github.io/;
47 license = licenses.bsd3;
48 platforms = platforms.unix; # Darwin and FreeBSD mentioned on homepage
49 maintainers = with maintainers; [ flokli ];
50 };
51}