Commit Graph

2004 Commits

Author SHA1 Message Date
Thomas Waldmann e1515ee251 remove deprecated "borg verify"
use borg extract --dry-run ...
2016-01-24 16:04:00 +01:00
Thomas Waldmann 1fc99ec9cd update docs, remove references to passphrase mode 2016-01-24 16:04:00 +01:00
Thomas Waldmann 815d2e23ce remove support for --encryption=passphrase, clean up 2016-01-24 16:04:00 +01:00
Thomas Waldmann 2f9b643edb migrate-to-repokey command, dispatch passphrase type to repokey handler
every chunk has the encryption key type as first byte and we do not want to rewrite the whole repo
to change the passphrase type to repokey type. thus we simply dispatch this type to repokey
handler.
if there is a repokey that contains the same secrets as they were derived from the passphrase, it will just work.
if there is none yet, one needs to run migrate-to-repokey command to create it.
2016-01-24 16:04:00 +01:00
Thomas Waldmann b2dedee3c8 refactor yes(), cleanup env var semantics, fixes #355
refactorings:

- introduced concept of default answer:

if the answer string is in the defaultish sequence, the return value of yes() will be the default.
e.g. if just pressing <enter> when asked on the console or if an empty string or "default" is
in the environment variable for overriding.

if an environment var has an invalid value and no retries are enabled: return default
if retries are enabled, next retry won't use the env var again, but either ask via input().

- simplify:

only one default - this should be a SAFE default as it is used in some special conditions
like EOF or invalid input with retries disallowed.

no isatty() magic, the "yes" shell command exists, so we could receive input even if it is not from a tty.

- clean:

separate retry flag from retry_msg
2016-01-24 16:04:00 +01:00
Thomas Waldmann 6d615ec30a change encryption to be on by default (repokey mode)
it's 2015, let's be safe-by-default and unsafe-as-option.

also: show default mode in builtin help
2016-01-24 15:44:09 +01:00
Thomas Waldmann 169634f2ca change the builtin default for --chunker-params, create 2MiB chunks, fixes #343
one of the biggest issues with borg < 1.0 was that it had a default target chunk
size of 64kiB, thus it created a lot of chunks, a huge chunk management overhead
(high RAM and disk usage).
2016-01-24 15:44:09 +01:00
Thomas Waldmann 5607e5aefe use os.urandom instead of own cython openssl RAND_bytes wrapper, fixes #493 2016-01-24 15:40:04 +01:00
Thomas Waldmann 3ade3d8a41 use hashlib.pbkdf2_hmac from py stdlib instead of own openssl wrapper
this is available in python 3.4+.

note:
before removing the pbkdf tests, i ran them with the pbkdf from stdlib to make sure it gives same result.
long term testing of this now belongs into stdlib tests, not into borg.
2016-01-24 15:40:04 +01:00
Thomas Waldmann 2cc0225527 use hmac.compare_digest instead of == operator
this is available in python 3.3+
2016-01-24 15:40:04 +01:00
Thomas Waldmann 9fa18c9ee9 use stat.filemode instead of homegrown code 2016-01-24 15:40:04 +01:00
Thomas Waldmann 7c8bfe6681 __file__ is now always an absolute path (3.4) 2016-01-24 15:36:04 +01:00
Thomas Waldmann 0be62d4233 stuff found on "Porting to Python 3.3" 2016-01-24 15:36:04 +01:00
Thomas Waldmann 8e13d315bb use PyMemoryView_FromMemory (py 3.3+) 2016-01-24 15:36:04 +01:00
Thomas Waldmann ef00f5d12d we always have shutil.get_terminal_size on py 3.3+ 2016-01-24 15:36:04 +01:00
Thomas Waldmann fc326df600 a2b_base64 now also accepts ascii-only str objects 2016-01-24 15:36:04 +01:00
Thomas Waldmann fc52101d46 suppress unneeded exception context (PEP 409) 2016-01-24 15:36:04 +01:00
Thomas Waldmann a6f9c29dfe use new OS and IO exception hierarchy of py 3.3 2016-01-24 15:36:04 +01:00
Thomas Waldmann 19729d3983 requirements: use latest pytest-cov, not blocked by py32 any more
also: pytest-benchmark 3.x is released, just use latest
2016-01-24 15:16:05 +01:00
Thomas Waldmann 4444113414 remove misc. compat code not needed for py 3.4+ 2016-01-24 15:16:05 +01:00
Thomas Waldmann 6a5629226f simplify to print(...., flush=True) 2016-01-24 15:16:05 +01:00
Thomas Waldmann fe8762ad28 os.utime on py 3.4+ always supports fd and follow_symlinks 2016-01-24 15:16:05 +01:00
Thomas Waldmann 265da6286f remove conditionals/wrappers, we always have stat nanosecond support on 3.4+
also: no wrapper needed for binascii.unhexlify any more
2016-01-24 15:16:05 +01:00
Thomas Waldmann 19998888ba remove support for missing PermissionError on py 3.2 2016-01-24 14:57:48 +01:00
Thomas Waldmann dabac6a4ed use mock from stdlib, fixes #145 2016-01-24 14:57:48 +01:00
Thomas Waldmann 8a819d4499 remove borg.support, fixes #358
we only needed it because argparse was broken on some 3.2.x and 3.3.x pythons.
2016-01-24 14:57:48 +01:00
Thomas Waldmann a2843bc939 docs: require python 3.4+
remove references to older pythons.
2016-01-24 14:57:48 +01:00
Thomas Waldmann 7d591226d2 remove support for python 3.2.x and 3.3.x, require 3.4+, fixes #65, fixes #221 2016-01-24 14:57:48 +01:00
TW de124aacd0 Merge pull request #593 from anarcat/deambigp
disambiguate -p versus -P
2016-01-24 14:53:08 +01:00
Thomas Waldmann 777fc89d3f Vagrantfile: rsync symlinks as symlinks, fixes #592 2016-01-24 14:49:07 +01:00
Antoine Beaupré 22efee3d2e disambiguate -p versus -P
we now use -P for --prefix and -p for --progress. previously, the
result of -p depended on the command: some were using it for
--progress, some for --prefix. this was confusing and was making it
impossible to both --progress and --prefix with on-letter options

--progress is likely used more often and interactively, so it get the
keystroke shortcut (lower "-p")

--prefix is used more rarely / in scripts, but important/dangerous for
prune, so it get the extra keystroke (higher "-P")

If somebody used -p someprefix and does not fix that to -P, it will
result in "no archive specified" or "unrecognized argument". So it
will neither cause pruning to remove wrong data nor go unnoticed.

Closes: #563
2016-01-23 20:50:52 -05:00
Thomas Waldmann 12c7ef1329 Vagrantfile: avoid pkg-config missing error msg on netbsd 2016-01-23 23:06:05 +01:00
Thomas Waldmann 9ea79d738e add chunks.archive.d trick to FAQ 2016-01-23 22:57:26 +01:00
Thomas Waldmann 74a9e8d52d Vagrantfile: remove python 3.2, use older pip/venv for trusty
pyenv installs latest virtualenv/pip that is not compatible with py 3.2 any more

I did a local python 3.2 tox run - it works.
2016-01-23 22:38:29 +01:00
Thomas Waldmann f4561e813f update CHANGES 2016-01-23 21:43:24 +01:00
Thomas Waldmann dee1d462cc ran setup.py build_usage 2016-01-23 20:54:20 +01:00
Thomas Waldmann 162d94b2e4 ran setup.py build_api 2016-01-23 20:52:04 +01:00
Thomas Waldmann e2f5983eef finer repo check progress indicator
a step size of 5% was way too much, now doing 0.1%
2016-01-23 20:00:03 +01:00
Thomas Waldmann 541bbd4a5b add --list requirement hint 2016-01-23 15:21:38 +01:00
TW f27cbd8c91 Merge pull request #589 from hansmi/chg30
Update changes for shell-style pattern support
2016-01-23 14:19:51 +01:00
Michael Hanselmann 14934dab08 Update changes for shell-style pattern support 2016-01-23 11:05:17 +01:00
Thomas Waldmann a237c1fb53 add virtualenv<14.0 to requirements so tox does not pull in a py32 incompatible one 2016-01-22 23:12:08 +01:00
Thomas Waldmann 69c8edc4e3 require virtualenv<14.0 so we get a py32 compatible pip 2016-01-22 22:14:41 +01:00
TW bceaf71f4b Merge pull request #587 from anarcat/netbsd
add netbsd install instructions
2016-01-22 21:59:33 +01:00
Antoine Beaupré da7bc4af94 add netbsd install instructions 2016-01-22 14:35:53 -05:00
TW 068c68b24c Merge pull request #584 from hansmi/shell-pattern
Add shell-style pattern syntax
2016-01-22 20:14:37 +01:00
TW 297ce6d40a Merge pull request #586 from ThomasWaldmann/fix-rh-docs
add gcc gcc-c++ to redhat/fedora/corora install docs, fixes #583
2016-01-22 14:04:36 +01:00
Thomas Waldmann 92969ea5f1 add gcc gcc-c++ to redhat/fedora/corora install docs 2016-01-22 14:03:48 +01:00
Michael Hanselmann c7fb598ab9 Add shell-style pattern syntax
The fnmatch module in Python's standard library implements a pattern
format for paths which is similar to shell patterns. However, “*”
matches any character including path separators. This newly introduced
pattern syntax with the selector “sh” no longer matches the path
separator with “*”. Instead “**/” can be used to match zero or more
directory levels.
2016-01-21 16:07:24 +01:00
Michael Hanselmann 382b79212b Reformat pattern syntax descriptions as definition list
There are already three different styles and a fourth will be added.
A definition list is easier to navigate when trying to find the
description of a specific style.
2016-01-21 14:24:32 +01:00