2021-06-19 17:31:25 +01:00
|
|
|
{ lib, stdenv, python3, fetchpatch, acl, libb2, lz4, zstd, openssl, openssh, nixosTests }:
|
2015-07-21 19:41:13 +01:00
|
|
|
|
2019-05-21 13:32:06 +01:00
|
|
|
python3.pkgs.buildPythonApplication rec {
|
2018-03-31 21:11:31 +01:00
|
|
|
pname = "borgbackup";
|
2021-03-23 00:01:08 +00:00
|
|
|
version = "1.1.16";
|
2018-03-31 21:11:31 +01:00
|
|
|
|
2019-05-21 13:32:06 +01:00
|
|
|
src = python3.pkgs.fetchPypi {
|
2018-03-31 21:11:31 +01:00
|
|
|
inherit pname version;
|
2021-03-23 00:01:08 +00:00
|
|
|
sha256 = "0l1dqfwrd9l34rg30cmzmq5bs6yha6kg4vy313jq611jsqj94mmw";
|
2015-07-21 19:41:13 +01:00
|
|
|
};
|
|
|
|
|
2021-06-19 17:31:25 +01:00
|
|
|
patches = [
|
|
|
|
# fix compatibility with sphinx 4
|
|
|
|
(fetchpatch {
|
|
|
|
url = "https://github.com/borgbackup/borg/commit/6a1f31bf2914d167e2f5051f1d531d5d4a19f54b.patch";
|
|
|
|
includes = [ "docs/conf.py" ];
|
|
|
|
sha256 = "0aa4kyb3j4apgwqcy1hzg6lxvpf60m2mijcj60vh101b42410hiz";
|
|
|
|
})
|
|
|
|
];
|
|
|
|
|
2019-05-21 13:32:06 +01:00
|
|
|
nativeBuildInputs = with python3.pkgs; [
|
2021-03-23 11:14:33 +00:00
|
|
|
setuptools-scm
|
2016-01-24 03:02:27 +00:00
|
|
|
# For building documentation:
|
2017-10-12 09:17:24 +01:00
|
|
|
sphinx guzzle_sphinx_theme
|
2016-01-24 03:02:27 +00:00
|
|
|
];
|
2016-12-31 19:44:47 +00:00
|
|
|
buildInputs = [
|
2021-03-23 11:14:33 +00:00
|
|
|
libb2 lz4 zstd openssl
|
2021-01-15 09:19:50 +00:00
|
|
|
] ++ lib.optionals stdenv.isLinux [ acl ];
|
2019-05-21 13:32:06 +01:00
|
|
|
propagatedBuildInputs = with python3.pkgs; [
|
2020-01-24 19:09:23 +00:00
|
|
|
cython llfuse
|
|
|
|
];
|
2015-07-21 19:41:13 +01:00
|
|
|
|
|
|
|
preConfigure = ''
|
2016-04-16 18:44:32 +01:00
|
|
|
export BORG_OPENSSL_PREFIX="${openssl.dev}"
|
2016-09-09 16:24:00 +01:00
|
|
|
export BORG_LZ4_PREFIX="${lz4.dev}"
|
2018-04-15 22:54:00 +01:00
|
|
|
export BORG_LIBB2_PREFIX="${libb2}"
|
2021-03-23 11:05:31 +00:00
|
|
|
export BORG_LIBZSTD_PREFIX="${zstd.dev}"
|
2015-07-21 19:41:13 +01:00
|
|
|
'';
|
|
|
|
|
2017-10-28 13:13:48 +01:00
|
|
|
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 20:43:43 +01: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
|
|
|
'';
|
|
|
|
|
2019-05-21 13:32:06 +01:00
|
|
|
checkInputs = with python3.pkgs; [
|
2018-08-12 23:16:34 +01: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 23:16:34 +01:00
|
|
|
doCheck = false;
|
|
|
|
|
2021-03-23 11:08:12 +00:00
|
|
|
passthru.tests = {
|
|
|
|
inherit (nixosTests) borgbackup;
|
|
|
|
};
|
|
|
|
|
2021-03-29 16:27:24 +01:00
|
|
|
outputs = [ "out" "doc" ];
|
|
|
|
|
2021-01-11 07:54:33 +00:00
|
|
|
meta = with lib; {
|
2020-10-16 15:21:36 +01:00
|
|
|
description = "Deduplicating archiver with compression and encryption";
|
2020-04-01 02:11:51 +01:00
|
|
|
homepage = "https://www.borgbackup.org";
|
2015-07-21 19:41:13 +01:00
|
|
|
license = licenses.bsd3;
|
|
|
|
platforms = platforms.unix; # Darwin and FreeBSD mentioned on homepage
|
2019-08-20 18:36:05 +01:00
|
|
|
maintainers = with maintainers; [ flokli dotlambda globin ];
|
2015-07-21 19:41:13 +01:00
|
|
|
};
|
|
|
|
}
|