nixpkgs/pkgs/tools/backup/borg/default.nix

72 lines
2 KiB
Nix
Raw Normal View History

{ stdenv, python3, acl, libb2, lz4, zstd, openssl, openssh }:
python3.pkgs.buildPythonApplication rec {
2018-03-31 20:11:31 +00:00
pname = "borgbackup";
version = "1.1.14";
2018-03-31 20:11:31 +00:00
src = python3.pkgs.fetchPypi {
2018-03-31 20:11:31 +00:00
inherit pname version;
sha256 = "1fpdj73cgp96xwasdcifxl7q2pr1my2f4vfdjpv771llri3hgfvx";
};
nativeBuildInputs = with python3.pkgs; [
2016-01-24 03:02:27 +00:00
# For building documentation:
sphinx guzzle_sphinx_theme
2016-01-24 03:02:27 +00:00
];
buildInputs = [
libb2 lz4 zstd openssl python3.pkgs.setuptools_scm
] ++ stdenv.lib.optionals stdenv.isLinux [ acl ];
propagatedBuildInputs = with python3.pkgs; [
2020-01-24 19:09:23 +00:00
cython llfuse
];
preConfigure = ''
export BORG_OPENSSL_PREFIX="${openssl.dev}"
2016-09-09 15:24:00 +00:00
export BORG_LZ4_PREFIX="${lz4.dev}"
export BORG_LIBB2_PREFIX="${libb2}"
2018-04-16 06:32:28 +00:00
export BORG_LIBZSTD_PREFIX="${zstd}"
'';
makeWrapperArgs = [
''--prefix PATH ':' "${openssh}/bin"''
];
2016-01-24 03:02:27 +00:00
postInstall = ''
make -C docs singlehtml
mkdir -p $out/share/doc/borg
cp -R docs/_build/singlehtml $out/share/doc/borg/html
make -C docs man
mkdir -p $out/share/man
cp -R docs/_build/man $out/share/man/man1
2018-05-13 19:43:43 +00:00
mkdir -p $out/share/bash-completion/completions
cp scripts/shell_completions/bash/borg $out/share/bash-completion/completions/
mkdir -p $out/share/fish/vendor_completions.d
cp scripts/shell_completions/fish/borg.fish $out/share/fish/vendor_completions.d/
mkdir -p $out/share/zsh/site-functions
cp scripts/shell_completions/zsh/_borg $out/share/zsh/site-functions/
2016-01-24 03:02:27 +00:00
'';
checkInputs = with python3.pkgs; [
2018-08-12 22:16:34 +00:00
pytest
];
checkPhase = ''
HOME=$(mktemp -d) py.test --pyargs borg.testsuite
'';
borgbackup: 1.1.10 → 1.1.11 Version 1.1.11 (2020-03-08) Compatibility notes: When upgrading from borg 1.0.x to 1.1.x, please note: read all the compatibility notes for 1.1.0*, starting from 1.1.0b1. borg upgrade: you do not need to and you also should not run it. borg might ask some security-related questions once after upgrading. You can answer them either manually or via environment variable. One known case is if you use unencrypted repositories, then it will ask about a unknown unencrypted repository one time. your first backup with 1.1.x might be significantly slower (it might completely read, chunk, hash a lot files) - this is due to the --files-cache mode change (and happens every time you change mode). You can avoid the one-time slowdown by using the pre-1.1.0rc4-compatible mode (but that is less safe for detecting changed files than the default). See the --files-cache docs for details. 1.1.11 removes WSL autodetection (Windows 10 Subsystem for Linux). If WSL still has a problem with sync_file_range, you need to set BORG_WORKAROUNDS=basesyncfile in the borg process environment to work around the WSL issue. Fixes: fixed potential index corruption / data loss issue due to bug in hashindex_set, #4829 Please read and follow the more detailled notes close to the top of this document. upgrade bundled xxhash to 0.7.3, #4891 0.7.2 is the minimum requirement for correct operations on ARMv6 in non-fixup mode, where unaligned memory accesses cause bus errors. 0.7.3 adds some speedups and libxxhash 0.7.3 even has a pkg-config file now. upgrade bundled lz4 to 1.9.2 upgrade bundled zstd to 1.4.4 fix crash when upgrading erroneous hints file, #4922 extract: fix KeyError for "partial" extraction, #4607 fix "partial" extract for hardlinked contentless file types, #4725 fix preloading for old (0.xx) remote servers, #4652 fix confusing output of borg extract --list --strip-components, #4934 delete: after double-force delete, warn about necessary repair, #4704 create: give invalid repo error msg if repo config not found, #4411 mount: fix FUSE mount missing st_birthtime, #4763 #4767 check: do not stumble over invalid item key, #4845 info: if the archive doesn't exist, print a pretty message, #4793 SecurityManager.known(): check all files, #4614 Repository.open: use stat() to check for repo dir, #4695 Repository.check_can_create_repository: use stat() to check, #4695 fix invalid archive error message fix optional/non-optional location arg, #4541 commit-time free space calc: ignore bad compact map entries, #4796 ignore EACCES (errno 13) when hardlinking the old config, #4730 --prefix / -P: fix processing, avoid argparse issue, #4769 New features: enable placeholder usage in all extra archive arguments new BORG_WORKAROUNDS mechanism, basesyncfile, #4710 recreate: support --timestamp option, #4745 support platforms without os.link (e.g. Android with Termux), #4901 if we don't have os.link, we just extract another copy instead of making a hardlink. support linux platforms without sync_file_range (e.g. Android 7 with Termux), #4905 Other: ignore --stats when given with --dry-run, but continue, #4373 add some ProgressIndicator msgids to code / fix docs, #4935 elaborate on "Calculating size" message argparser: always use REPOSITORY in metavar, also use more consistent help phrasing. check: improve error output for matching index size, see #4829 docs: changelog: add advisory about hashindex_set bug #4829 better describe BORG_SECURITY_DIR, BORG_CACHE_DIR, #4919 infos about cache security assumptions, #4900 add FAQ describing difference between a local repo vs. repo on a server. document how to test exclusion patterns without performing an actual backup timestamps in the files cache are now usually ctime, #4583 fix bad reference to borg compact (does not exist in 1.1), #4660 create: borg 1.1 is not future any more extract: document limitation "needs empty destination", #4598 how to supply a passphrase, use crypto devices, #4549 fix osxfuse github link in installation docs add example of exclude-norecurse rule in help patterns update macOS Brew link add note about software for automating backups, #4581 AUTHORS: mention copyright+license for bundled msgpack fix various code blocks in the docs, #4708 updated docs to cover use of temp directory on remote, #4545 add restore docs, #4670 add a pull backup / push restore how-to, #1552 add FAQ how to retain original paths, #4532 explain difference between --exclude and --pattern, #4118 add FAQs for SSH connection issues, #3866 improve password FAQ, #4591 reiterate that 'file cache names are absolute' in FAQ tests: cope with ANY error when importing pytest into borg.testsuite, #4652 fix broken test that relied on improper zlib assumptions test_fuse: filter out selinux xattrs, #4574 travis / vagrant: misc python versions removed / changed (due to openssl 1.1 compatibility) or added (3.7 and 3.8, for better borg compatibility testing) binary building is on python 3.5.9 now vagrant: add new boxes: ubuntu 18.04 and 20.04, debian 10 update boxes: openindiana, darwin, netbsd remove old boxes: centos 6 darwin: updated osxfuse to 3.10.4 use debian/ubuntu pip/virtualenv packages rather use python 3.6.2 than 3.6.0, fixes coverage/sqlite3 issue use requirements.d/development.lock.txt to avoid compat issues travis: darwin: backport some install code / order from master remove deprecated keyword "sudo" from travis config allow osx builds to fail, #4955 this is due to travis-ci frequently being so slow that the OS X builds just fail because they exceed 50 minutes and get killed by travis.
2020-03-08 13:00:40 +00:00
# 64 failures, needs pytest-benchmark
2018-08-12 22:16:34 +00:00
doCheck = false;
meta = with stdenv.lib; {
description = "Deduplicating archiver with compression and encryption";
homepage = "https://www.borgbackup.org";
license = licenses.bsd3;
platforms = platforms.unix; # Darwin and FreeBSD mentioned on homepage
maintainers = with maintainers; [ flokli dotlambda globin ];
};
}