Commit Graph

195 Commits

Author SHA1 Message Date
Thomas Waldmann fa924c64ff require msgpack >= 0.4.6 and < 0.5.0.
maybe this is the easiest way for us to deal with msgpack compatibility.

0.5.0 release had some troubles:
- FutureWarning on stderr disturbing other output there, breaking tests
- pip install -U broken due to a pip issue with the transisition pkg
  which was needed due to the package rename (ImportError for msgpack)
- some linux dists not packaging the transition pkg
- dropped py34 support/testing
2018-01-10 08:15:40 +01:00
Thomas Waldmann 1bdaffc62c crypto.low_level extension: build blake2 like zstd, see #3415
(cherry picked from commit 4a2fec32b6)
2017-12-18 04:29:33 +01:00
Thomas Waldmann 21ba3ff63c fix lz4 deprecation warning, require lz4 >= 1.7.0 (r129)
as we bundle lz4 1.8.0 now, platforms not having a recent liblz4 can
now just use the bundled code.

(cherry picked from commit fe48caf853)
2017-12-18 02:47:44 +01:00
Thomas Waldmann 83603acd48 rename BORG_LZ4_PREFIX env var to BORG_LIBLZ4_PREFIX
consistency:
we also have BORG_LIBB2_PREFIX and BORG_LIBZSTD_PREFIX.

(cherry picked from commit 9b6924d27f)
2017-12-18 02:42:03 +01:00
Thomas Waldmann 7d8ec62b50 compress extension: build lz4 like zstd, see #3415
(cherry picked from commit 73a70082c2)
2017-12-18 02:41:30 +01:00
Thomas Waldmann 0271ae6f95 support code to build bundled zstd code into the compress extension
setup_zstd.py modified so it is just amending the Extension() kwargs,
but the Extension is initialized by the caller.

this way, amending can happend multiple times (e.g. for multiple
compression algorithms).

also:
- move include/library dirs processing for system-library case
- move system zstd prefix detection to setup_zstd module
- cosmetic: setup.py whitespace fixes
- prefer system zstd option, document zstd min. requirement

(cherry picked from commit 34b92ffdaa)
2017-12-15 03:13:54 +01:00
Thomas Waldmann 01078328e2 zstd: use own Cython-based binding, remove python-zstandard dep
currently requires an externally available libzstd >= 1.3.0,
no bundled zstd yet.

(cherry picked from commit aec36f64a2)
2017-12-15 03:08:28 +01:00
Thomas Waldmann 6bad2395dd add zstd compression
based on willyvmm's work in PR #3116, but some changes:

- removed any mulithreading changes
- add zstandard in setup.py install_requires
- tests
- fix: minimum compression level is 1 (not 0)
- use 3 for the default compression level
- use ID 03 00 for zstd
- only convert to bytes if we don't have bytes yet
- move zstd code so that code blocks are ordered by ID
- other cosmetic fixes

(cherry picked from commit 11b2311e6e)
2017-12-15 02:13:15 +01:00
Thomas Waldmann 747ada77e6 fix building the "borg prune" man page, fixes #3398
will fix all ".. highlight:: none" issues (just killing it).

also a slight punctuation fix, so there is a dot at the end of
the prune man page.

(cherry picked from commit 1f5b8c9219)
2017-12-15 00:49:21 +01:00
Milkey Mouse 25bfb5b00d
Don't generate HTML docs page for borgfs (fixes #3404) 2017-12-03 00:03:33 -08:00
Milkey Mouse e488e69f41
Use name of command for "virtual man page" name
This makes it slightly easier to debug manpage issues without removing
the virtmanpage hack.
2017-11-25 19:37:17 -08:00
Thomas Waldmann 13d339bb85 clean up and simplify packaging
1.1.2 was released with a sdist that included quite some files that
did not belong into the package (I tried nuitka at some time).

This was because the old MANIFEST.in / setup.py included all the stuff
in the package dir.

Now, setuptools_scm is to automatically deal with the INCLUDES and
MANIFEST.in only handles the EXCLUDES, so only committed files get
into the sdist (minus some we do not want).

Also, no .c .h .pyx files will be installed - they are not needed as
they have been compiled into binary files.

(cherry picked from commit feb428b4e0)
2017-11-25 13:56:51 +01:00
Milkey Mouse eadb74eb6f
Generate man page for borgfs (fixes #3216) 2017-11-12 15:06:08 -08:00
Thomas Waldmann 355191ab0b implement simple "issue" role for manpage generation, fixes #3075
(cherry picked from commit bf3f8e5672)
2017-10-07 16:18:39 +02:00
Thomas Waldmann bfdb6c4558 add some comments about recent fuse versions to setup.py 2017-10-06 19:51:49 +02:00
Thomas Waldmann 73e5ac4a2b setup.py: fix same loop variables
lgtm:
Nested loops in which the target variable is the same for each loop make
the behavior of the loops difficult to understand.

(not really here, just wanted to get rid of lgtm warning)
2017-07-22 02:03:42 +02:00
enkore 12fd244801 Merge pull request #2748 from enkore/f/cleanup-argparse2
archiver: more argparse cleanup, redundant options, missing metavars
2017-06-27 10:05:21 +02:00
Marian Beermann 12bcccc0d6 docs: html: include group description in output 2017-06-26 23:10:12 +02:00
Thomas Waldmann 8aba5772b5 include attic.tar.gz when installing the package 2017-06-26 22:23:02 +02:00
Marian Beermann 88ae1ebf33 docs: format metavars more accurately 2017-06-21 00:13:33 +02:00
Marian Beermann a9059a64bd docs: use DOM ready event, not document loaded event 2017-06-20 15:48:30 +02:00
Marian Beermann 9d33ff1720 docs: skip empty option groups 2017-06-20 15:30:20 +02:00
Marian Beermann e76fae0545 docs: uniform tables for listing options (HTML only) 2017-06-20 15:23:52 +02:00
Marian Beermann a1a92bf00f docs: less space waste following "Common options" 2017-06-20 11:53:36 +02:00
Marian Beermann 6290b73863 docs: more compact options formatting 2017-06-20 11:48:46 +02:00
Marian Beermann 48e815883f docs: usage: fix unintended block quota in common options 2017-06-18 02:07:37 +02:00
enkore d06ee5648c Merge pull request #2572 from enkore/f/fastcachesync
Improve cache sync speed
2017-06-10 17:12:51 +02:00
Marian Beermann 3f8a0221ee Revert "move chunker to borg.algorithms"
This reverts commit 956b50b29c.

# Conflicts:
#	setup.py
#	src/borg/archive.py
#	src/borg/helpers.py
2017-06-07 23:51:42 +02:00
Marian Beermann 0d6064e7f3 docs: fix build_man for relocated examples 2017-06-07 16:29:37 +02:00
Marian Beermann 13adc80cde docs: usage: avoid bash highlight, [options] instead of <options> 2017-06-07 00:44:53 +02:00
Marian Beermann 8fb7db71bc docs: split usage 2017-06-07 00:38:48 +02:00
Marian Beermann c786a5941e CacheSynchronizer: redo as quasi FSM on top of unpack.h
This is a (relatively) simple state machine running in the
data callbacks invoked by the msgpack unpacking stack machine
(the same machine is used in msgpack-c and msgpack-python,
changes are minor and cosmetic, e.g. removal of msgpack_unpack_object,
removal of the C++ template thus porting to C and so on).

Compared to the previous solution this has multiple advantages
- msgpack-c dependency is removed
- this approach is faster and requires fewer and smaller
  memory allocations

Testability of the two solutions does not differ in my
professional opinion(tm).

Two other changes were rolled up; _hashindex.c can be compiled
without Python.h again (handy for fuzzing and testing);
a "small" bug in the cache sync was fixed which allocated too
large archive indices, leading to excessive archive.chunks.d
disk usage (that actually gave me an idea).
2017-06-02 17:43:15 +02:00
Marian Beermann 740898d83b CacheSynchronizer 2017-06-02 17:43:14 +02:00
Marian Beermann 6c91a750d1 algorithms: rename crc32 to checksums 2017-06-01 21:26:42 +02:00
Marian Beermann 0a295dd753 setup.py clean to remove compiled files 2017-05-25 17:58:57 +02:00
enkore 226d1f6094 Revert "docs: borg_domain for custom priority index entries" 2017-05-22 20:45:29 +02:00
Marian Beermann 7284413e3f docs: borg_domain for custom priority index entries 2017-05-22 20:08:11 +02:00
Marian Beermann d5edb011f0 support common options 2017-05-14 18:45:20 +02:00
Marian Beermann c99de523ea remove duplicated setup.py line 2017-05-05 14:42:41 +02:00
Marian Beermann a976e11a63 create crypto package with key, keymanager, low_level 2017-05-02 20:49:27 +02:00
Marian Beermann 956b50b29c move chunker to borg.algorithms 2017-05-02 19:15:01 +02:00
Marian Beermann fa381ffcbe create package borg.algorithms with borg.algorithms.crc32 module 2017-05-02 18:53:54 +02:00
Marian Beermann 475d53d9ef docs: kill api page 2017-03-25 15:41:11 +01:00
Marian Beermann 788b608aa9 setup.py build_usage/build_man fixes 2017-02-14 23:02:56 +01:00
Marian Beermann 44798e0edd setup.py: build_api: sort file list for determinism
# Conflicts:
#	docs/api.rst
#	setup.py

Original-Commit: e208d115
2017-02-13 21:24:33 +01:00
Martin Hostettler 179f1bc147 Add qr html export mode to `key export` command 2017-02-13 21:24:33 +01:00
Marian Beermann 1d9378f12c man pages: generate page for subparsers, eg. borg-key(1)
Conflicts:
	docs/man/borg-key.1
2017-02-12 15:28:59 +01:00
Marian Beermann fa24e1f38f man pages: add borg(1) master/intro page 2017-02-12 15:28:59 +01:00
Marian Beermann 0710bbd40e docs: create: move item flags to main doc 2017-02-12 15:28:58 +01:00
Marian Beermann 83bb25d848 man pages: add EXAMPLES
hacky, but works. Better would be to make a separate docs/examples dir
with only the examples in them, separated by command.

Or, putting these different sections; DESCRIPTION, EXAMPLES and NOTES
into the --help doc, but separately of course, so that they can be aptly
formatted for different media (html, --help, man).
2017-02-05 15:46:46 +01:00