From e124f3c67bbaada0c422f16ba7ca272a9f359253 Mon Sep 17 00:00:00 2001 From: Thomas Waldmann Date: Thu, 29 Sep 2016 17:01:32 +0200 Subject: [PATCH 1/3] update CHANGES --- docs/changes.rst | 67 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/docs/changes.rst b/docs/changes.rst index debf4feb6..b1c8a1ba5 100644 --- a/docs/changes.rst +++ b/docs/changes.rst @@ -50,6 +50,73 @@ The best check that everything is ok is to run a dry-run extraction:: borg extract -v --dry-run REPO::ARCHIVE +Version 1.0.8rc1 (not released yet) +----------------------------------- + +Bug fixes: + +- fix signal handling (SIGINT, SIGTERM, SIGHUP), #1620 #1593 + Fixes e.g. leftover lock files for quickly repeated signals (e.g. Ctrl-C + Ctrl-C) or lost connections or systemd sending SIGHUP. +- progress display: adapt formatting to narrow screens, do not crash, #1628 +- borg create --read-special - fix crash on broken symlink, #1584. + also correctly processes broken symlinks. before this regressed to a crash + (5b45385) a broken symlink would've been skipped. +- process_symlink: fix missing backup_io() + Fixes a chmod/chown/chgrp/unlink/rename/... crash race between getting dirents + and dispatching to process_symlink. +- yes(): abort on wrong answers, saying so +- fixed exception borg serve raised when connection was closed before reposiory + was openend. add an error message for this. +- fix read-from-closed-FD issue, #1551 + (this seems not to get triggered in 1.0.x, but was discovered in master) +- hashindex: fix iterators (always raise StopIteration when exhausted) + (this seems not to get triggered in 1.0.x, but was discovered in master) + +New features: + +- add "borg key export" / "borg key import" commands, #1555, so users are able + to backup / restore their encryption keys more easily. + + Supported formats are the keyfile format used by borg internally and a + special "paper" format with by line checksums for printed backups. For the + paper format, the import is an interactive process which checks each line as + soon as it is input. + +Other changes: + +- add "borg debug ..." subcommands + (borg debug-* still works, but will be removed in borg 1.1) +- setup.py: Add subcommand support to build_usage. +- remote: change exception message for unexpected RPC data format to indicate + dataflow direction. +- vagrant: + + - upgrade OSXfuse / FUSE for macOS to 3.5.2 + - update Debian Wheezy boxes to 7.11 +- docs: + + - add docs for "key export" and "key import" commands, #1641 + - fix inconsistency in FAQ (pv-wrapper). + - fix second block in "Easy to use" section not showing on GitHub, #1576 + - add bestpractices badge + - link reference docs and faq about BORG_FILES_CACHE_TTL, #1561 + - improve borg info --help, explain size infos, #1532 + - add release signing key / security contact to README, #1560 + - add contribution guidelines for developers + - development.rst: add sphinx_rtd_theme to the sphinx install command + - adjust border color in borg.css + - add debug-info usage help file + - internals.rst: fix typos + - setup.py: fix build_usage to always process all commands +- tests: + + - work around fuse xattr test issue with recent fakeroot + - simplify repo/hashindex tests + - travis: test fuse-enabled borg, use trusty to have a recent FUSE + - re-enable fuse tests for RemoteArchiver (no deadlocks any more) + + Version 1.0.7 (2016-08-19) -------------------------- From 4174291f6f97ead3780593c6295ddce4058a91af Mon Sep 17 00:00:00 2001 From: Thomas Waldmann Date: Fri, 30 Sep 2016 20:38:46 +0200 Subject: [PATCH 2/3] hashindex: bump api version API_VERSION is used to check whether the compiled binaries are up-to-date. the tests for the recent iterator fixes of course need updated (fixed) binaries, so we bump api_version, so not-up-to-date binaries will get identified. --- borg/hashindex.pyx | 2 +- borg/helpers.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/borg/hashindex.pyx b/borg/hashindex.pyx index 09ec89614..a27d0e8fc 100644 --- a/borg/hashindex.pyx +++ b/borg/hashindex.pyx @@ -4,7 +4,7 @@ import os cimport cython from libc.stdint cimport uint32_t, UINT32_MAX, uint64_t -API_VERSION = 2 +API_VERSION = 3 cdef extern from "_hashindex.c": diff --git a/borg/helpers.py b/borg/helpers.py index e7be78cbb..db579d34f 100644 --- a/borg/helpers.py +++ b/borg/helpers.py @@ -80,7 +80,7 @@ class PlaceholderError(Error): def check_extension_modules(): from . import platform - if hashindex.API_VERSION != 2: + if hashindex.API_VERSION != 3: raise ExtensionModuleError if chunker.API_VERSION != 2: raise ExtensionModuleError From a65707beb8e98b4867ae951d40fd41b24aebdcf4 Mon Sep 17 00:00:00 2001 From: Thomas Waldmann Date: Fri, 30 Sep 2016 21:09:02 +0200 Subject: [PATCH 3/3] add more specific warning about write-access debug commands --- docs/usage.rst | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/docs/usage.rst b/docs/usage.rst index a3015f61b..0452c164a 100644 --- a/docs/usage.rst +++ b/docs/usage.rst @@ -567,9 +567,20 @@ Miscellaneous Help Debug Commands -------------- + There are some more commands (all starting with "debug-") which are all **not intended for normal use** and **potentially very dangerous** if used incorrectly. +For example, ``borg debug-put-obj`` and ``borg debug-delete-obj`` will only do +what their name suggests: put objects into repo / delete objects from repo. + +Please note: + +- they will not update the chunks cache (chunks index) about the object +- they will not update the manifest (so no automatic chunks index resync is triggered) +- they will not check whether the object is in use (e.g. before delete-obj) +- they will not update any metadata which may point to the object + They exist to improve debugging capabilities without direct system access, e.g. in case you ever run into some severe malfunction. Use them only if you know what you are doing or if a trusted |project_name| developer tells you what to do.