20 Commits

Author SHA1 Message Date
Adolf Belka
d06c224ed6 borgbackup: Update to version 1.2.7
- Update from version 1.2.3 to 1.2.7
- Update of rootfile
- Patch set put together to also update the dependency packages where they have been
   updated.
- Changelog
    1.2.7
	Fixes:
		- docs: CVE-2023-36811 upgrade steps: consider checkpoint archives, #7802
		- check/compact: fix spurious reappearance of orphan chunks since borg
		   1.2, #6687 -
		  this consists of 2 fixes:
		  - for existing chunks: check --repair: recreate shadow index, #6687
		  - for newly created chunks: update shadow index when doing a
		     double-put, #5661
		- LockRoster.modify: no KeyError if element was already gone, #7937
		- create --X-from-command: run subcommands with a clean environment, #7916
		- list --sort-by: support "archive" as alias of "name", #7873
		- fix rc and msg if arg parsing throws an exception, #7885
	Other changes:
		- support and test on Python 3.12
		- include unistd.h in _chunker.c (fix for Python 3.13)
		- allow msgpack 1.0.6 and 1.0.7
		- TAM issues: show tracebacks, improve borg check logging, #7797
		- replace "datetime.utcfromtimestamp" with custom helper to avoid
		  deprecation warnings when using Python 3.12
		- vagrant:
		  - use generic/debian9 box, fixes #7579
		  - add VM with debian bookworm / test on OpenSSL 3.0.x.
		- docs:
		  - not only attack/unsafe, can also be a fs issue, #7853
		  - point to CVE-2023-36811 upgrade steps from borg 1.1 to 1.2 upgrade
		     steps, #7899
		  - upgrade steps needed for all kinds of repos (including "none"
		     encryption mode), #7813
		  - upgrade steps: talk about consequences of borg check, #7816
		  - upgrade steps: remove period that could be interpreted as part of
		     the command
		  - automated-local.rst: use GPT UUID for consistent udev rule
		  - create disk/partition sector backup by disk serial number, #7934
		  - update macOS hint about full disk access
		  - clarify borg prune -a option description, #7871
		  - readthedocs: also build offline docs (HTMLzip), #7835
		  - frontends: add "check.rebuild_refcounts" message
    1.2.6
	Fixes:
		- The upgrade procedure docs as published with borg 1.2.5 did not work,
		   if the repository had archives resulting from a borg rename or borg
		   recreate operation.
		  The updated docs now use BORG_WORKAROUNDS=ignore_invalid_archive_tam
		   at some places to avoid that issue, #7791.
		  See: fix pre-1.2.5 archives spoofing vulnerability (CVE-2023-36811),
		   details and necessary upgrade procedure described above.
	Other changes:
		- updated 1.2.5 changelog entry: 1.2.5 already has the fix for
		   rename/recreate.
		- remove cython restrictions. recommended is to build with
		   cython 0.29.latest, because borg 1.2.x uses this since years and it
		   is very stable. You can also try to build with cython 3.0.x, there is
		   a good chance that it works. As a 3rd option, we also bundle the
		   `*.c` files cython outputs in the release pypi package, so you can
		   also just use these and not need cython at all.
    1.2.5
	Fixes:
		- Security: fix pre-1.2.5 archives spoofing vulnerability (CVE-2023-36811),
		  see details and necessary upgrade procedure described above.
		- rename/recreate: correctly update resulting archive's TAM, see #7791
		- create: do not try to read parent dir of recursion root, #7746
		- extract: fix false warning about pattern never matching, #4110
		- diff: remove surrogates before output, #7535
		- compact: clear empty directories at end of compact process, #6823
		- create --files-cache=size: fix crash, #7658
		- keyfiles: improve key sanity check, #7561
		- only warn about "invalid" chunker params, #7590
		- ProgressIndicatorPercent: fix space computation for wide chars, #3027
		- improve argparse validator error messages
	New features:
		- mount: make up volname if not given (macOS), #7690.
		  macFUSE supports a volname mount option to give what finder displays on
		  the desktop / in the directory view. if the user did not specify it,
		  we make something up, because otherwise it would be "macFUSE Volume 0
		  (Python)" and hide the mountpoint directory name.
		- BORG_WORKAROUNDS=authenticated_no_key to extract from authenticated repos
		  without key, #7700
	Other changes:
		- add `utcnow()` helper function to avoid deprecated `datetime.utcnow()`
		- stay on latest Cython 0.29 (0.29.36) for borg 1.2.x (do not use
		  Cython 3.0 yet)
		- docs:
		  - move upgrade notes to own section, see #7546
		  - mount -olocal: how to show mount in finder's sidebar, #5321
		  - list: fix --pattern examples, #7611
		  - improve patterns help
		  - incl./excl. options, path-from-stdin exclusiveness
		  - obfuscation docs: markup fix, note about MAX_DATA_SIZE
		  - --one-file-system: add macOS apfs notes, #4876
		  - improve --one-file-system help string, #5618
		  - rewrite borg check docs
		  - improve the docs for --keep-within, #7687
		  - fix borg init command in environment.rst.inc
		  - 1.1.x upgrade notes: more precise borg upgrade instructions, #3396
		 -tests:
		  - fix repo reopen
		  - avoid long ids in pytest output
		  - check buzhash chunksize distribution, see #7586
    1.2.4
	New features:
		- import-tar: add --ignore-zeros to process concatenated tars, #7432.
		- debug id-hash: computes file/chunk content id-hash, #7406
		- diff: --content-only does not show mode/ctime/mtime changes, #7248
		- diff: JSON strings in diff output are now sorted alphabetically
	Bug fixes:
		- xattrs: fix namespace processing on FreeBSD, #6997
		- diff: fix path related bug seen when addressing deferred items.
		- debug get-obj/put-obj: always give chunkid as cli param, see #7290
		  (this is an incompatible change, see also borg debug id-hash)
		- extract: fix mtime when ResourceFork xattr is set (macOS specific), #7234
		- recreate: without --chunker-params, do not re-chunk, #7337
		- recreate: when --target is given, do not detect "nothing to do".
		  use case: borg recreate -a src --target dst can be used to make a copy
		  of an archive inside the same repository, #7254.
		- set .hardlink_master for ALL hardlinkable items, #7175
		- locking: fix host, pid, tid order.
		  tid (thread id) must be parsed as hex from lock file name.
		- update development.lock.txt, including a setuptools security fix, #7227
	Other changes:
		- requirements: allow msgpack 1.0.5 also
		- upgrade Cython to 0.29.33
		- hashindex minor fixes, refactor, tweaks, tests
		- use os.replace not os.rename
		- remove BORG_LIBB2_PREFIX (not used any more)
		- docs:
		  - BORG_KEY_FILE: clarify docs, #7444
		  - update FAQ about locale/unicode issues, #6999
		  - improve mount options rendering, #7359
		  - make timestamps in manual pages reproducible
		  - installation: update Fedora in distribution list, #7357
		- tests:
		  - fix test_size_on_disk_accurate for large st_blksize, #7250
		  - add same_ts_ns function and use it for relaxed timestamp comparisons
		  - "auto" compressor tests: don't assume a specific size,
		    do not assume zlib is better than lz4, #7363
		  - add test for extracted directory mtime
		- vagrant:
		  - upgrade local freebsd 12.1 box -> generic/freebsd13 box (13.1)
		  - use pythons > 3.8 which work on freebsd 13.1
		  - pyenv: also install python 3.11.1 for testing
		  - pyenv: use python 3.10.1, 3.10.0 build is broken on freebsd

Tested-by: Adolf Belka <adolf.belka@ipfire.org>
Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-01-29 16:03:31 +00:00
Adolf Belka
b84d82176b borgbackup: Removed python3-pkgconfig as run time dependency
Tested-by: Adolf Belka <adolf.belka@ipfire.org>
Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
2023-05-18 09:31:12 +00:00
Adolf Belka
b8a598fc92 borgbackup: Update to version 1.2.3 and fix bug 13032
- Update from version 1.2.0 to 1.2.3
- Update of rootfile
- This update works with python3-msgpack-1.0.4 and fixes bug 13032
- To make it work then the borgbackup-1.2.3-py3.10.egg-info directory must be the only
   egg-info directory for borgbackup otherwise version 1.2.3 will end up with an error.
   Versions 1.2.2 and earlier workled without any problem if there was an earlier egg-info
   directory for a different version number. The borgbackup rootfile had the egg-info
   directory commented out so an uninstall cleared the directory but did not remove it.
   This patch has the egg-info directory in the rootfile uncommented and so an uninstall
   removes the directory.
- borgbackup paks files created so that the uninstall.sh file will remove any egg-info
   directory that starts with "borgbackup-1." as the first ever borgbackup was 1.0.12
   When the old 1.2.0 or earlier borgbackup is uninstalled it will use the old default
   paks uninstall.sh file and rootfile which will leave the old egg-info directory in
   place. When version 1.2.3 is installed it will use the new install.sh script which
   will remove any existing egg-info directories present still.
- Changelog
Version 1.2.3 (2022-12-24)
Upgrade notes:
Some things can be recommended for the upgrade process from borg 1.1.x (please also read the important compatibility notes below):
    do you already want to upgrade? 1.1.x also will get fixes for a while.
    be careful, first upgrade your less critical / smaller repos.
    first upgrade to a recent 1.1.x release - especially if you run some older 1.1.* or even 1.0.* borg release.
    using that, run at least one borg create (your normal backup), prune and especially a check to see everything is in a good state.
    check the output of borg check - if there is anything special, consider a borg check --repair followed by another borg check.
    if everything is fine so far (borg check reports no issues), you can consider upgrading to 1.2.x. if not, please first fix any already existing issue.
    if you want to play safer, first create a backup of your borg repository.
    upgrade to latest borg 1.2.x release (you could use the fat binary from github releases page)
    run borg compact --cleanup-commits to clean up a ton of 17 bytes long files in your repo caused by a borg 1.1 bug
    run borg check again (now with borg 1.2.x) and check if there is anything special.
    run borg info (with borg 1.2.x) to build the local pre12-meta cache (can take significant time, but after that it will be fast) - for more details see below.
    check the compatibility notes (see below) and adapt your scripts, if needed.
    if you run into any issues, please check the github issue tracker before posting new issues there or elsewhere.
If you follow this procedure, you can help avoiding that we get a lot of “borg 1.2” issue reports that are not really 1.2 issues, but existed before and maybe just were not noticed.
Compatibility notes:
    matching of path patterns has been aligned with borg storing relative paths. Borg archives file paths without leading slashes. Previously, include/exclude patterns could contain leading slashes. You should check your patterns and remove leading slashes.
    dropped support / testing for older Pythons, minimum requirement is 3.8. In case your OS does not provide Python >= 3.8, consider using our binary, which does not need an external Python interpreter. Or continue using borg 1.1.x, which is still supported.
    freeing repository space only happens when “borg compact” is invoked.
    mount: the default for --numeric-ids is False now (same as borg extract)
    borg create --noatime is deprecated. Not storing atime is the default behaviour now (use --atime if you want to store the atime).
    --prefix is deprecated, use -a / --glob-archives, see #6806
    list: corrected mix-up of “isomtime” and “mtime” formats. Previously, “isomtime” was the default but produced a verbose human format, while “mtime” produced a ISO-8601-like format. The behaviours have been swapped (so “mtime” is human, “isomtime” is ISO-like), and the default is now “mtime”. “isomtime” is now a real ISO-8601 format (“T” between date and time, not a space).
    create/recreate --list: file status for all files used to get announced AFTER the file (with borg < 1.2). Now, file status is announced BEFORE the file contents are processed. If the file status changes later (e.g. due to an error or a content change), the updated/final file status will be printed again.
    removed deprecated-since-long stuff (deprecated since):
        command “borg change-passphrase” (2017-02), use “borg key …”
        option “--keep-tag-files” (2017-01), use “--keep-exclude-tags”
        option “--list-format” (2017-10), use “--format”
        option “--ignore-inode” (2017-09), use “--files-cache” w/o “inode”
        option “--no-files-cache” (2017-09), use “--files-cache=disabled”
    removed BORG_HOSTNAME_IS_UNIQUE env var. to use borg you must implement one of these 2 scenarios:
            the combination of FQDN and result of uuid.getnode() must be unique and stable (this should be the case for almost everybody, except when having duplicate FQDN and MAC address or all-zero MAC address)
            if you are aware that 1) is not the case for you, you must set BORG_HOST_ID env var to something unique.
    exit with 128 + signal number, #5161. if you have scripts expecting rc == 2 for a signal exit, you need to update them to check for >= 128.
Fixes:
    create: fix --list --dry-run output for directories, #7209
    diff/recreate: normalize chunker params before comparing them, #7079
    check: fix uninitialised variable if repo is completely empty, #7034
    xattrs: improve error handling, #6988
    fix args.paths related argparsing, #6994
    archive.save(): always use metadata from stats (e.g. nfiles, size, …), #7072
    tar_filter: recognize .tar.zst as zstd, #7093
    get_chunker: fix missing sparse=False argument, #7056
    file_integrity.py: make sure file_fd is always closed on exit
    repository: cleanup(): close segment before unlinking
    repository: use os.replace instead of os.rename
Other changes:
    remove python < 3.7 compatibility code
    do not use version_tuple placeholder in setuptools_scm template
    CI: fix tox4 passenv issue, #7199
    vagrant: update to python 3.9.16, use the openbsd 7.1 box
    misc. test suite and docs fixes / improvements
    remove deprecated --prefix from docs, #7109
    Windows: use MSYS2 for Github CI, remove Appveyor CI
Version 1.2.2 (2022-08-20)
New features:
    prune/delete --checkpoint-interval=1800 and ctrl-c/SIGINT support, #6284
Fixes:
    SaveFile: use a custom mkstemp with mode support, #6933, #6400, #6786. This fixes umask/mode/ACL issues (and also “chmod not supported” exceptions seen in 1.2.1) of files updated using SaveFile, e.g. the repo config.
    hashindex_compact: fix eval order (check idx before use), #5899
    create --paths-from-(stdin|command): normalize paths, #6778
    secure_erase: avoid collateral damage, #6768. If a hardlink copy of a repo was made and a new repo config shall be saved, do NOT fill in random garbage before deleting the previous repo config, because that would damage the hardlink copy.
    list: fix {flags:<WIDTH>} formatting, #6081
    check: try harder to create the key, #5719
    misc commands: ctrl-c must not kill other subprocesses, #6912
        borg create with a remote repo via ssh
        borg create --content-from-command
        borg create --paths-from-command
        (de)compression filter process of import-tar / export-tar
Other changes:
    deprecate --prefix, use -a / --glob-archives, see #6806
    make setuptools happy (“package would be ignored”), #6874
    fix pyproject.toml to create a fixed _version.py file, compatible with both old and new setuptools_scm version, #6875
    automate asciinema screencasts
    CI: test on macOS 12 without fuse / fuse tests (too troublesome on github CI due to kernel extensions needed by macFUSE)
    tests: fix test_obfuscate byte accounting
    repository: add debug logging for issue #6687
    _chunker.c: fix warnings on macOS
    requirements.lock.txt: use the latest cython 0.29.32
    docs:
        add info on man page installation, #6894
        update archive_progress json description about “finished”, #6570
        json progress_percent: some values are optional, #4074
        FAQ: full quota / full disk, #5960
        correct shell syntax for installation using git
Version 1.2.1 (2022-06-06)
Fixes:
    create: skip with warning if opening the parent dir of recursion root fails, #6374
    create: fix crash. metadata stream can produce all-zero chunks, #6587
    fix crash when computing stats, escape % chars in archive name, #6500
    fix transaction rollback: use files cache filename as found in txn.active/, #6353
    import-tar: kill filter process in case of borg exceptions, #6401 #6681
    import-tar: fix mtime type bug
    ensure_dir: respect umask for created directory modes, #6400
    SaveFile: respect umask for final file mode, #6400
    check archive: improve error handling for corrupt archive metadata block, make robust_iterator more robust, #4777
    pre12-meta cache: do not use the cache if want_unique is True, #6612
    fix scp-style repo url parsing for ip v6 address, #6526
    mount -o versions: give clear error msg instead of crashing. it does not make sense to request versions view if you only look at 1 archive, but the code shall not crash in that case as it did, but give a clear error msg.
    show_progress: add finished=true/false to archive_progress json, #6570
    delete/prune: fix --iec mode output (decimal vs. binary units), #6606
    info: fix authenticated mode repo to show “Encrypted: No”, #6462
    diff: support presence change for blkdev, chrdev and fifo items, #6615
New features:
    delete: add repository id and location to prompt, #6453
    borg debug dump-repo-objs --ghost: new --segment=S --offset=O options
Other changes:
    support python 3.11
    allow msgpack 1.0.4, #6716
    load_key: no key is same as empty key, #6441
    give a more helpful error msg for unsupported key formats, #6561
    better error msg for defect or unsupported repo configs, #6566
    docs:
        document borg 1.2 pattern matching behavior change, #6407 Make clear that absolute paths always go into the matcher as if they are relative (without leading slash). Adapt all examples accordingly.
        authentication primitives: improved security and performance infos
        mention BORG_FILES_CACHE_SUFFIX as alternative to BORG_FILES_CACHE_TTL, #5602
        FAQ: add a hint about --debug-topic=files_cache
        improve borg check --max-duration description
        fix values of TAG bytes, #6515
        borg compact --cleanup-commits also runs a normal compaction, #6324
        virtualization speed tips
        recommend umask for passphrase file perms
        borg 1.2 is security supported
        update link to ubuntu packages, #6485
        use --numeric-ids in pull mode docs
        remove blake2 docs, blake2 code not bundled any more, #6371
        clarify on-disk order and size of segment file log entry fields, #6357
        docs building: do not transform --/--- to unicode dashes
    tests:
        check that borg does not require pytest for normal usage, fixes #6563
        fix OpenBSD symlink mode test failure, #2055
    vagrant:
        darwin64: remove fakeroot, #6314
        update development.lock.txt
        use pyinstaller 4.10 and python 3.9.13 for binary build
        upgrade VMCPUS and xdistn from 4 to 16, maybe this speeds up the tests
    crypto:
        use hmac.compare_digest instead of ==, #6470
        hmac_sha256: replace own cython wrapper code by hmac.digest python stdlib (since py38)
        hmac and blake2b minor optimizations and cleanups
        removed some unused crypto related code, #6472
        avoid losing the key (potential use-after-free). this never could happen in 1.2 due to the way we use the code. The issue was discovered in master after other changes, so we also “fixed” it here before it bites us.
    setup / build:
        add pyproject.toml, fix sys.path, #6466
        setuptools_scm: also require it via pyproject.toml
        allow extra compiler flags for every extension build
        fix misc. C / Cython compiler warnings, deprecation warnings
        fix zstd.h include for bundled zstd, #6369
    source using python 3.8 features: pyupgrade --py38-plus ./**/*.py

Fixes: Bug #13032
Tested-by: Adolf Belka <adolf.belka@ipfire.org>
Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
2023-01-26 22:44:30 +00:00
Adolf Belka
c02bffe2be borgbackup: Fix Bug#12611 by adding fuse mount capability with pyfuse3
- The addition of pyfuse3 requires a total of 11 python3 module dependencies and the
   addition of python3-Cython during the build
- The other dependencies etc are submitted in the rest of this patch series.

Fixes: Bug#12611
Tested-by: Adolf Belka <adolf.belka@ipfire.org>
Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
2022-08-05 09:09:29 +00:00
Adolf Belka
c9336f7a1f borgbackup: Fix bug #12884 - borgbackup 1.2.0 crashes on running any borg command
- When borgbackup was upgraded from version 1.1.17 to 1.2.0 the build was sucessfully
   completed but there was no testing feedback till after full release. It turned out
   that it did not successfully run.
- python3-packaging which had been installed for the build of borgbackup needed to also
   be available for the execution.
- When borgbackup was upgraded to 1.2.0 it was noticed that the old python3-msgpack was
   no longer needed as borgbackup used its own bundled msgpack since around version 1.1.10
   What was not seen was that in version 1.1.19 or 1.1.18 the bundled version of msgpack
   had been removed and that the newer version of python3-msgpack now needed to be
   installed but the version number has to meet the borgbackup requirements which currently
   require it to be =<1.0.3
- This patch adds the python3-packaging and python3-msgpack modules as dependencies for
   borgbackup
- The egg-info files are uncommented in the rootfile so that the borgbackup metadata can
   be found by python.
- The updated borgbackup build together with the python3-packaging and python3-msgpack
   modules were installed into a vm system using the .ipfire packages.
   Successfully initialised a borgbackup repo and ran two backups to the repo and checked
   the stats for the backup. Everything ran fine.

Fixes: Bug #12884
Tested-by: Adolf Belka <adolf.belka@ipfire.org>
Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
2022-06-25 09:11:58 +00:00
Peter Müller
0676b7b777 borgbackup: Add missing 'python3-pkgconfig' dependency
Signed-off-by: Peter Müller <peter.mueller@ipfire.org>
2022-04-18 21:16:03 +00:00
Adolf Belka
8b27f672f8 borgbackup: Update to version 1.2.0
- Update from 1.1.17 to 1.2.0
- Update of rootfile
- v2 version has x86_64 replaced by xxxMACHINExxx in the rootfile
- borgbackup now requires the python module pkgconfig, installed as a set with this patch
- Changelog
	Compatibility notes:
	    dropped support / testing for older Pythons, minimum requirement is 3.8. In
             case your OS does not provide Python >= 3.8, consider using our binary,
             which does not need an external Python interpreter. Or continue using
             borg 1.1.x, which is still supported.
	    freeing repository space only happens when “borg compact” is invoked.
	    mount: the default for --numeric-ids is False now (same as borg extract)
	    borg create --noatime is deprecated. Not storing atime is the default
             behaviour now (use --atime if you want to store the atime).
	    list: corrected mix-up of “isomtime” and “mtime” formats. Previously,
             “isomtime” was the default but produced a verbose human format, while
             “mtime” produced a ISO-8601-like format. The behaviours have been swapped
             (so “mtime” is human, “isomtime” is ISO-like), and the default is now
             “mtime”. “isomtime” is now a real ISO-8601 format (“T” between date and
             time, not a space).
	    create/recreate --list: file status for all files used to get announced
             AFTER the file (with borg < 1.2). Now, file status is announced BEFORE the
             file contents are processed. If the file status changes later (e.g. due to
             an error or a content change), the updated/final file status will be
             printed again.
	    removed deprecated-since-long stuff (deprecated since):
	        command “borg change-passphrase” (2017-02), use “borg key …”
	        option “--keep-tag-files” (2017-01), use “--keep-exclude-tags”
	        option “--list-format” (2017-10), use “--format”
	        option “--ignore-inode” (2017-09), use “--files-cache” w/o “inode”
	        option “--no-files-cache” (2017-09), use “--files-cache=disabled”
	    removed BORG_HOSTNAME_IS_UNIQUE env var. to use borg you must implement one
             of these 2 scenarios:
	            the combination of FQDN and result of uuid.getnode() must be unique
                     and stable (this should be the case for almost everybody, except
                     when having duplicate FQDN and MAC address or all-zero MAC address)
	            if you are aware that 1) is not the case for you, you must set
                     BORG_HOST_ID env var to something unique.
	    exit with 128 + signal number, #5161. if you have scripts expecting rc == 2
             for a signal exit, you need to update them to check for >= 128.
	Fixes:
	    diff: reduce memory consumption, fix is_hardlink_master, #6295
	    compact: fix / improve freeable / freed space log output
	        derive really freed space from quota use before/after, #5679
	        do not say “freeable”, but “maybe freeable” (based on hint, unsure)
	    fix race conditions in internal SaveFile function, #6306 #6028
	    implement internal safe_unlink (was: truncate_and_unlink) function more
             safely: usually it does not truncate any more, only under “disk full”
             circumstances and only if there is only one hardlink. see:
             https://github.com/borgbackup/borg/discussions/6286
	Other changes:
	    info: use a pre12-meta cache to accelerate stats for borg < 1.2 archives.
             the first time borg info is invoked on a borg 1.1 repo, it can take a
             rather long time computing and caching some stats values for 1.1 archives,
             which borg 1.2 archives have in their archive metadata structure. be
             patient, esp. if you have lots of old archives. following invocations are
             much faster due to the cache. related change: add archive name to
             calc_stats progress display.
	    docs:
	        add borg 1.2 upgrade notes, #6217
	        link to borg placeholders and borg patterns help
	        init: explain the encryption modes better
	        clarify usage of patternfile roots
	        put import-tar docs into same file as export-tar docs
	        explain the difference between a path that ends with or without a slash,
                 #6297

Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
2022-04-18 21:15:51 +00:00
Peter Müller
9a7e4d8506 Switch checksums from MD5 to BLAKE2
Historically, the MD5 checksums in our LFS files serve as a protection
against broken downloads, or accidentally corrupted source files.

While the sources are nowadays downloaded via HTTPS, it make sense to
beef up integrity protection for them, since transparently intercepting
TLS is believed to be feasible for more powerful actors, and the state
of the public PKI ecosystem is clearly not helping.

Therefore, this patch switches from MD5 to BLAKE2, updating all LFS
files as well as make.sh to deal with this checksum algorithm. BLAKE2 is
notably faster (and more secure) than SHA2, so the performance penalty
introduced by this patch is negligible, if noticeable at all.

In preparation of this patch, the toolchain files currently used have
been supplied with BLAKE2 checksums as well on
https://source.ipfire.org/.

Cc: Michael Tremer <michael.tremer@ipfire.org>
Signed-off-by: Peter Müller <peter.mueller@ipfire.org>
Acked-by: Michael Tremer <michael.tremeripfire.org>
2022-04-02 14:19:25 +00:00
Robin Roevens
f15707c78c buildprocess: Add extra metadata to pak lfs files
* Add a Summary and Services field to all pak lfs files
* Replace occurances of INSTALL_INITSCRIPT with new INSTALL_INITSCRIPTS
  macro in all pak lfs files.

Signed-off-by: Robin Roevens <robin.roevens@disroot.org>
Reviewed-by: Peter Müller <peter.mueller@ipfire.org>
2022-02-11 15:13:15 +00:00
Adolf Belka
ff7b52a1b4 borgbackup: Update to version 1.1.17 to work with python-3.10
- Update from 1.1.13 to 1.1.17
- Update of rootfile
- Changelog
Version 1.1.17 (2021-07-12)
- 1.1.17 install_requires the "packaging" pypi package now.
Fixes:
- pyinstaller dir-mode: fix pyi detection / LIBPATH treatment, #5897
- handle crash due to kill stale lock race, #5828
- fix BORG_CACHE_DIR crashing borg if empty, #5216
- create --dry-run: fix display of kept tagfile, #5834
- fix missing parameter in "did not consistently fail" msg, #5822
- missing / healed chunks: always tell chunk ID, #5704
- benchmark: make sure cleanup happens even on exceptions, #5630
New features:
- implement BORG_SELFTEST env variable, #5871.
  this can be used to accelerate borg startup a bit. not recommended for
  normal usage, but borg mass hosters with a lot of borg invocations can
  save some resources with this. on my laptop, this saved ~100ms cpu time
  (sys+user) per borg command invocation.
- implement BORG_LIBC env variable to give the libc filename, #5870.
  you can use this if a borg does not find your libc.
- check: add progress indicator for archive check.
- allow --files-cache=size (not recommended, make sure you know what you do)
Other changes:
- Python 3.10 now officially supported!
  we test on py310-dev on github CI since a while and now also on the vagrant
  machines, so it should work ok.
- github CI: test on py310 (again)
- get rid of distutils, use packaging and setuptools.
  distutils is deprecated and gives warnings on py 3.10.
- setup.py: rename "clean" to "clean2" to avoid shadowing the "clean" command.
- remove libc filename fallback for the BSDs (there is no "usual" name)
- cleanup flake8 checks, fix some pep8 violations.
- docs building: replace deprecated function ".add_stylesheet()" for Sphinx 4 compatibility
- docs:
  - add a hint on sleeping computer and ssh connections, #5301
  - update the documentation on hacked backup client, #5480
  - improve docs/FAQ about append-only remote repos, #5497
  - complement the documentation for pattern files and exclude files, #5520
  - "filename with spaces" example added to exclude file, #5236
    note: no whitespace escaping needed, processed by borg.
  - add info on renaming repositories, #5240
  - clarify borg check --verify-data, #5808
  - add notice about defective hardware to check documentation, #5753
  - add paragraph added in #5855 to utility documentation source
  - add missing leading slashes in help patterns, #5857
  - clarify "you will need key and passphrase" borg init warning, #4622
  - pull mode: add some warnings, #5827
  - mention tar --compare (compare archive to fs files), #5880
  - fix typos, backport of #5597
- vagrant:
  - add py3.7.11 for binary build, also add 3.10-dev.
  - use latest Cython 0.29.23 for py310 compat fixes.
  - more RAM for openindiana upgrade plan resolver, it just hangs (swaps?) if
    there is too little RAM.
  - fix install_pyenv to adapt to recent changes in pyenv (same as in master now).
  - use generic/netbsd9 box, copied from master branch.
Version 1.1.16 (2021-03-23)
Fixes:
- setup.py: add special openssl prefix for Apple M1 compatibility
- do not recurse into duplicate roots, #5603
- remove empty shadowed_segments lists, #5275, #5614
- fix libpython load error when borg fat binary / dir-based binary is invoked
  via a symlink by upgrading pyinstaller to v4.2, #5688
- config: accept non-int value (like 500M or 100G) for max_segment_size or
  storage_quota, #5639.
  please note: when setting a non-int value for this in a repo config,
  using the repo will require borg >= 1.1.16.
New features:
- bundled msgpack: drop support for old buffer protocol to support Python 3.10
- verbose files cache logging via --debug-topic=files_cache, #5659.
  Use this if you suspect that borg does not detect unmodified files as expected.
- create/extract: add --noxattrs and --noacls option, #3955.
  when given with borg create, borg will not get xattrs / ACLs from input files
  (and thus, it will not archive xattrs / ACLs). when given with borg extract,
  borg will not read xattrs / ACLs from archive and will not set xattrs / ACLs
  on extracted files.
- diff: add --json-lines option, #3765
- check: debug log segment filename
- borg debug dump-hints
Other changes:
- Tab completion support for additional archives for 'borg delete'
- repository: deduplicate code of put and delete, no functional change
- tests: fix result order issue (sporadic test failure on openindiana)
- vagrant:
  - upgrade pyinstaller to v4.2, #5671
  - avoid grub-install asking interactively for device
  - remove the xenial box
  - update freebsd box to 12.1
- docs:
  - update macOS install instructions, #5677
  - use macFUSE (not osxfuse) for Apple M1 compatibility
  - update docs for dev environment installation instructions, #5643
  - fix grammar in faq
  - recomend running tests only on installed versions for setup
  - add link back to git-installation
  - remove /var/cache exclusion in example commands, #5625.
    This is generally a poor idea and shouldn't be promoted through examples.
  - add repology.org badge with current packaging status
  - explain hash collision
  - add unsafe workaround to use an old repo copy, #5722
Version 1.1.15 (2020-12-25)
Fixes:
- extract:
  - improve exception handling when setting xattrs, #5092.
  - emit a warning message giving the path, xattr key and error message.
  - continue trying to restore other xattrs and bsdflags of the same file
    after an exception with xattr-setting happened.
- export-tar:
  - set tar format to GNU_FORMAT explicitly, #5274
  - fix memory leak with ssh: remote repository, #5568
  - fix potential memory leak with ssh: remote repository with partial extraction
- create: fix --dry-run and --stats coexistence, #5415
- use --timestamp for {utcnow} and {now} if given, #5189
New features:
- create: implement --stdin-mode, --stdin-user and --stdin-group, #5333
- allow appending the files cache filename with BORG_FILES_CACHE_SUFFIX env var
Other changes:
- drop python 3.4 support, minimum requirement is 3.5 now.
- enable using libxxhash instead of bundled xxh64 code
- update llfuse requirements (1.3.8)
- set cython language_level in some files to fix warnings
- allow EIO with warning when trying to hardlink
- PropDict: fail early if internal_dict is not a dict
- update shell completions
- tests / CI
  - add a test for the hashindex corruption bug, #5531 #4829
  - fix spurious failure in test_cache_files, #5438
  - added a github ci workflow
  - reduce testing on travis, no macOS, no py3x-dev, #5467
  - travis: use newer dists, native py on dist
- vagrant:
  - remove jessie and trusty boxes, #5348 #5383
  - pyinstaller 4.0, build on py379
  - binary build on stretch64, #5348
  - remove easy_install based pip installation
- docs:
  - clarify '--one-file-system' for btrfs, #5391
  - add example for excluding content using the --pattern cmd line arg
  - complement the documentation for pattern files and exclude files, #5524
  - made ansible playbook more generic, use package instead of pacman. also
    change state from "latest" to "present".
  - complete documentation on append-only remote repos, #5497
  - internals: rather talk about target size than statistics, #5336
  - new compression algorithm policy, #1633 #5505
  - faq: add a hint on sleeping computer, #5301
  - note requirements for full disk access on macOS Catalina, #5303
  - fix/improve description of borg upgrade hardlink usage, #5518
- modernize 1.1 code:
  - drop code/workarounds only needed to support Python 3.4
  - remove workaround for pre-release py37 argparse bug
  - removed some outdated comments/docstrings
  - requirements: remove some restrictions, lock on current versions
Version 1.1.14 (2020-10-07)
- 1.1.14 changes return codes due to a bug fix:
  In case you have scripts expecting rc == 2 for a signal exit, you need to
  update them to check for >= 128 (as documented since long).
Fixes:
- check --repair: fix potential data loss when interrupting it, #5325
- exit with 128 + signal number (as documented) when borg is killed by a signal, #5161
- fix hardlinked CACHEDIR.TAG processing, #4911
- create --read-special: .part files also should be regular files, #5217
- llfuse dependency: choose least broken 1.3.6/1.3.7.
  1.3.6 is broken on python 3.9, 1.3.7 is broken on FreeBSD.
Other changes:
- upgrade bundled xxhash to 0.7.4
- self test: if it fails, also point to OS and hardware, #5334
- pyinstaller: compute basepath from spec file location
- prettier error message when archive gets too big, #5307
- check/recreate are not "experimental" any more (but still potentially dangerous):
  - recreate: remove extra confirmation
  - rephrase some warnings, update docs, #5164
- shell completions:
  - misc. updates / fixes
  - support repositories in fish tab completion, #5256
  - complete $BORG_RECREATE_I_KNOW_WHAT_I_AM_DOING
  - rewrite zsh completion:
    - completion for almost all optional and positional arguments
    - completion for Borg environment variables (parameters)
- use "allow/deny list" instead of "white/black list" wording
- declare "allow_cache_wipe" marker in setup.cfg to avoid pytest warning
- vagrant / tests:
  - misc. fixes / updates
  - use python 3.5.10 for binary build
  - build directory-based binaries additionally to the single file binaries
  - add libffi-dev, required to build python
  - use cryptography<3.0, more recent versions break the jessie box
  - test on python 3.9
  - do brew update with /dev/null redirect to avoid "too much log output" on travis-ci
- docs:
  - add ssh-agent pull backup method docs, #5288
  - how to approach borg speed issues, #5371
  - mention double --force in prune docs
  - update Homebrew install instructions, #5185
  - better description of how cache and rebuilds of it work
  - point to borg create --list item flags in recreate usage, #5165
  - add security faq explaining AES-CTR crypto issues, #5254
  - add a note to create from stdin regarding files cache, #5180
  - fix borg.1 manpage generation regression, #5211
  - clarify how exclude options work in recreate, #5193
  - add section for retired contributors
  - update Homebrew install instructions, #5185
  - better description of how cache and rebuilds of it work
  - point to borg create --list item flags in recreate usage, #5165
  - add security faq explaining AES-CTR crypto issues, #5254
  - add a note to create from stdin regarding files cache, #5180
  - fix borg.1 manpage generation regression, #5211
  - clarify how exclude options work in recreate, #5193
  - add section for retired contributors
  - hint about not misusing private email addresses of contributors for borg support

Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
Reviewed-by: Peter Müller <peter.mueller@ipfire.org>
2022-02-11 09:11:51 +00:00
Michael Tremer
16b587ca2e Drop python3-llfuse
See https://bugzilla.ipfire.org/show_bug.cgi?id=12611

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2021-04-20 12:14:34 +00:00
Michael Tremer
d6b43978e7 borgbackup: Bump release
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2020-10-10 11:42:37 +00:00
Jonatan Schlag
09a4ff4027 Ship testsuite of BorgBackup
BorgBackup seems to need this testsuite on all systems, because it does
some selftests when starting a backup.

Fixes: #12438

Signed-off-by: Jonatan Schlag <jonatan.schlag@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2020-09-28 10:11:54 +00:00
Matthias Fischer
c9f49bc693 borgbackup: Update to 1.1.13
For details see:
https://borgbackup.readthedocs.io/en/stable/changes.html#changelog

Signed-off-by: Matthias Fischer <matthias.fischer@ipfire.org>
Reviewed-by: Michael Tremer <michael.tremer@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2020-06-19 17:14:58 +00:00
Arne Fitzenreiter
69c484e56e borgbackup: fix 32bit rootfiles
Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
2020-05-03 09:47:44 +02:00
Erik Kapfer
086c09eefb borgbackup: Fixes DEP error. Update to 1.1.11
Fixes #12356

Several fixes but also new features has been added with this version.
Full changelog can be found in here --> https://github.com/borgbackup/borg/blob/1.1.11/docs/changes.rst#version-1111-2020-03-08 .

Signed-off-by: Erik Kapfer <ummeegge@ipfire.org>
Reviewed-by: Michael Tremer <michael.tremer@ipfire.org>
Reviewed-by: Jonatan Schlag <jonatan.schlag@ipfire.org>
Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
2020-04-30 15:06:28 +00:00
Michael Tremer
2dc2a27803 lfs: Drop quotes in DEPS variable
Not sure why this has ever been there. This simply makes it
nicer to read and edit because we can have line-breaks now.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
2020-03-24 08:57:27 +00:00
Arne Fitzenreiter
6ede197501 pathon: update to 3.8 and move pyhton to core
Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
2020-01-11 14:35:11 +01:00
Jonatan Schlag
56f4ba9b01 Update borgbackup to version 1.1.9
Fixes: #12016

Signed-off-by: Jonatan Schlag <jonatan.schlag@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2019-03-31 13:32:10 +01:00
Jonatan Schlag
46114d79d9 Add new package borgbackup
Signed-off-by: Jonatan Schlag <jonatan.schlag@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2019-02-01 16:27:23 +00:00