Commit Graph

302 Commits

Author SHA1 Message Date
Thomas Waldmann a71a83c380 require msgpack >= 0.4.6 and < 0.6.0, forbid 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
2018-01-10 07:23:57 +01:00
Thomas Waldmann 4a2fec32b6 crypto.low_level extension: build blake2 like zstd, see #3415 2017-12-18 01:06:30 +01:00
Thomas Waldmann fe48caf853 fix lz4 deprecation warning, require lz4 >= 1.7.0 (r129)
as we bundle lz4 1.8.0 now, platform not having a recent liblz4 can
now just use the bundled code.
2017-12-18 00:53:26 +01:00
Thomas Waldmann 9b6924d27f rename BORG_LZ4_PREFIX env var to BORG_LIBLZ4_PREFIX
consistency:
we also have BORG_LIBB2_PREFIX and BORG_LIBZSTD_PREFIX.
2017-12-18 00:53:26 +01:00
Thomas Waldmann 73a70082c2 compress extension: build lz4 like zstd, see #3415 2017-12-18 00:53:26 +01:00
TW e203b8739b
Merge pull request #3411 from ThomasWaldmann/zstd
add zstd compression
2017-12-15 01:55:20 +01:00
Thomas Waldmann 34b92ffdaa 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
2017-12-15 00:29:26 +01:00
Thomas Waldmann aec36f64a2 zstd: use own Cython-based binding, remove python-zstandard dep
currently requires an externally available libzstd >= 1.3.0,
no bundled zstd yet.
2017-12-15 00:29:26 +01:00
Thomas Waldmann 11b2311e6e 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
2017-12-15 00:29:26 +01:00
Thomas Waldmann 1f5b8c9219 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.
2017-12-13 04:33:50 +01:00
Milkey Mouse 897c003588
Don't generate HTML docs page for borgfs (fixes #3404) 2017-12-02 12:52:37 -08:00
Milkey Mouse 559ec0062e
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 17:06:02 -08:00
Thomas Waldmann feb428b4e0 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.
2017-11-25 13:48:46 +01:00
Milkey Mouse 17d5c794d3
Generate man page for borgfs (fixes #3216) 2017-11-10 11:25:19 -08:00
Thomas Waldmann bf3f8e5672 implement simple "issue" role for manpage generation, fixes #3075 2017-10-07 04:11:29 +02:00
TW 902581a96c Merge pull request #3090 from ThomasWaldmann/fuse-version-comments
add some comments about recent fuse versions to setup.py
2017-10-06 20:25:41 +02:00
Thomas Waldmann ce956fa0af add some comments about recent fuse versions to setup.py 2017-10-06 20:01:17 +02:00
Thomas Waldmann be9fb349de check for py 3.5 minimum requirement in setup.py
we do not test on 3.4 any more and have dropped support for it.
so we better enforce it in setup.py also.
2017-10-06 19:38:28 +02:00
Thomas Waldmann a5c6a50ebe increase Python minimum requirement to 3.5.0
also:
- drop testing on 3.4
- add some TODO for the docs and vagrant machines
2017-07-29 20:55:04 +02:00
enkore 5abfa0b266 Merge pull request #2887 from enkore/f/mt-1a
multithreading: add pyzmq dep, chunker GIL
2017-07-29 14:36:01 +02:00
Marian Beermann 55e0c43c53 add zeromq dependency 2017-07-29 11:58:01 +02:00
Thomas Waldmann 92080f9572 crypto: add functions missing in openssl 1.0.x 2017-07-27 23:22:31 +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
Marian Beermann e5ea876f90 man pages: remove reference to borg(1) -- would have to be written first
A compact introduction and perhaps a condensed quickstart would
be good for borg(1).
2017-02-05 15:46:44 +01:00
Marian Beermann c7106e756e create real nice man pages 2017-02-05 15:46:09 +01:00
Marian Beermann eace147611 setup.py: add crc32.c to sdist 2017-01-14 22:27:39 +01:00
Thomas Waldmann e4c5db4efc posix platform module: only build / import on non-win32 platforms, fixes #2041
rather use a inverted check like "not windows".
also: add a base implementation for this stuff, just raising NotImplementedError
2017-01-14 14:48:49 +01:00
Marian Beermann ecad0ed53a Merge branch '1.0-maint' into merge/1.0-maint
# Conflicts: ... everywhere ...
#	.travis.yml
#	Vagrantfile
#	borg/testsuite/key.py
#	docs/changes.rst
#	docs/quickstart.rst
#	docs/usage.rst
#	docs/usage/upgrade.rst.inc
#	src/borg/archive.py
#	src/borg/archiver.py
#	src/borg/crypto.pyx
#	src/borg/helpers.py
#	src/borg/key.py
#	src/borg/remote.py
#	src/borg/repository.py
#	src/borg/testsuite/archive.py
#	src/borg/testsuite/archiver.py
#	src/borg/testsuite/crypto.py
#	src/borg/testsuite/helpers.py
#	src/borg/testsuite/repository.py
#	src/borg/upgrader.py
#	tox.ini
2017-01-12 15:01:41 +01:00
Thomas Waldmann 7d4d7e7901 setup.py: add Python 3.6 qualifier 2017-01-04 01:03:18 +01:00
Marian Beermann 9afebead84 two fast CRC implementations
CRC slice by 8 for generic CPUs outperforms zlib CRC32 on ppc
and x86 (ARM untested but expected to as well).

PCLMULQDQ derived from Intel's zlib patches outperforms every other
CRC implementation by a huge margin.
2017-01-02 15:54:14 +01:00
Marian Beermann 5e1cb9d899 Add tertiary authentication for metadata (TAM) 2016-12-20 22:53:53 +01:00
Thomas Waldmann c855c687eb Merge branch '1.0-maint' 2016-12-14 03:33:53 +01:00
Marian Beermann b885841c39 make item native code
This makes an surprisingly large difference. Test case: ~70000 empty files.
(Ie. little data shoveling, lots of metadata shoveling). Before: 9.1 seconds
+- 0.1 seconds. After: 8.4 seconds +- 0.1 seconds.). That's a huge
win for changing a few lines.

I'd expect that this improves performance in almost all areas that touch
the items (list, delete, prune).
2016-12-03 00:11:36 +01:00
Marian Beermann 288cac788c setup.py: build_usage: don't generate includes for debug commands 2016-12-02 13:28:49 +01:00
Marian Beermann 1c261f6b7b setup.py: fix build_usage not processing all commands 2016-12-02 13:25:24 +01:00
Thomas Waldmann c83a124e65 Merge branch '1.0-maint' (into master) 2016-11-28 02:23:32 +01:00
Antoine Beaupré fbada18b0d display README correctly on PyPI
I have discovered that PyPI is way more sensitive to RST warnings than
other platforms: warnings and errors will make the document not show
up correctly, which is currently the case here:

https://pypi.python.org/pypi/borgbackup/

the suggested changes remove Sphinx-specific markup from the output,
namely the badges and `|replacement|` patterns, but also the
`higlight` directive. this also requires adding tags to the README to
mark the badges to remove and removal of the `none` argument for the
`.. code-block::` element which was not having any significant in
Sphinx anyways.
2016-11-24 09:09:15 -05:00
Marian Beermann c380d91805 fixes for flake 3.1.1 2016-11-14 21:50:20 +01:00
Marian Beermann a31ca4f022
crypto: link against system libb2, if possible 2016-11-11 03:08:11 +01:00
Thomas Waldmann 09e74af7bf Merge branch '1.0-maint' 2016-10-24 21:41:20 +02:00
Thomas Waldmann f10700841f add comment about requiring llfuse, fixes #1726 2016-10-19 00:56:22 +02:00
Thomas Waldmann 47cf501bc1 Merge branch '1.0-maint' into merge-1.0-maint 2016-09-27 22:35:30 +02:00
Martin Hostettler fe9816d8d4 setup.py: Fix build_usage to always process all commands. 2016-09-27 22:34:19 +02:00
Thomas Waldmann 2a864be84f Merge branch '1.0-maint' into merge-1.0-maint
# Conflicts:
#	setup.py
#	src/borg/archiver.py
#	src/borg/helpers.py
2016-09-27 21:31:41 +02:00
Martin Hostettler a11436cfb6 setup.py: Add subcommand support to build_usage. 2016-09-25 17:11:56 +02:00
Thomas Waldmann 3baa8a3728 Merge branch '1.0-maint'
# Conflicts:
#	docs/changes.rst
#	docs/usage/mount.rst.inc
#	src/borg/archive.py
#	src/borg/archiver.py
#	src/borg/fuse.py
#	src/borg/testsuite/archiver.py
2016-07-11 01:23:27 +02:00
Thomas Waldmann 5660cd1f96 fix most non-python-source related sphinx warnings
literal blocks must be followed by an empty line

suppressed the non-local image uri warning via sphinx config

the links on the resources page must have different label texts

setup.py: do not generate pointless "::\n" - it does not create a literal block if the stuff below is not indented
2016-07-10 17:25:51 +02:00
Thomas Waldmann 12f55f4e9f Merge branch '1.0-maint' 2016-07-06 01:33:53 +02:00
Thomas Waldmann 2f2925ed89 add a do-not-edit note to auto-generated files 2016-07-05 23:29:23 +02:00
Thomas Waldmann 9ef565b00e Merge branch '1.0-maint' 2016-06-09 20:21:48 +02:00
Thomas Waldmann 8e7ed8ebea llfuse: update version requirement for freebsd
as the requirement string is a AND operation, I used the rough "<2.0" requirement
and then excluded the non-working versions.
2016-06-04 15:53:30 +02:00
Marian Beermann 0ca1a18b33
Make borg.platform a package 2016-05-31 15:38:56 +02:00
Thomas Waldmann 045e5a1203 Merge branch 'master' into move-to-src 2016-05-30 19:38:16 +02:00
Marian Beermann 0e3bba7b64 Don't rebuild command line parser for each invocation
Makes tests faster
2016-05-25 22:01:38 +02:00
Thomas Waldmann 3ce35f6843 Merge branch 'master' into move-to-src 2016-05-21 19:06:01 +02:00
Thomas Waldmann b8303a38bf Merge branch '1.0-maint' 2016-05-20 22:48:57 +02:00
Thomas Waldmann 21a30269c2 freebsd: use a older llfuse release that builds
llfuse >0.41.1 <=1.0.0 does not build on freebsd.
the issue is already fixed, but no new release yet.
2016-05-20 21:50:26 +02:00
Thomas Waldmann 596a276a26 setup.py: add check for platform_darwin.c
this was just forgotten...
2016-05-18 18:07:10 +02:00
Thomas Waldmann d7500a1191 create new platform_posix module
move common posix cython code there.
2016-05-18 17:40:04 +02:00
Thomas Waldmann 0fa663febe seek /opt/pkg (pkgsrc OS X) for openssl and lz4
Add /opt/pkg (used by pkgsrc on Mac OS X) to possible openssl and
lz4 header path.

    from 2015Q2 onwards the prefix has changed to /opt/pkg
    in order to be compatible with El Capitan's
    "System Integrity Protection" feature.

-- pkgsrc.joynet.com

thanks to @weakish for finding this!
2016-05-06 14:56:54 +02:00
Thomas Waldmann 76839362e2 fix packaging/git/coverage for src/ path 2016-05-05 21:42:37 +02:00
Thomas Waldmann b641d11e1b Merge branch '1.0-maint' 2016-05-01 20:28:17 +02:00
Thomas Waldmann 4b73ebc613 update readthedocs urls, fixes #991 2016-04-29 03:19:27 +02:00
Marian Beermann 0a369c0985
Better help texts and Sphinx reproduction of usage
- Group options
- Nicer list of options in Sphinx
- Deduplicate 'Common options'
  (including --help)

The latter is done by explicitly declaring --help in the common_parser,
which is then inherited by the sub-parsers; no change in observable
behaviour.
2016-04-10 01:28:19 +02:00
Daniel Reichelt e1f6a34820 provide wrapper for borg mount, fixes #743
- add archiver.main_mount()

- provide borgfs behaviour when the monolithic binary is called via a
  symlink called borgfs

- docs: update usage of mount subcommand, provide examples for borgfs and
  add symlink creation to standalone binary installation

- run build_usage

- add entry point in setup.py

- patch helpers.py:get_keys_dir() to allow mounting fstab entries with
  "user" option set

  Without this, setuid() called at some point by mount changes the HOME
  environment variable to '/root' and os.expanduser('~') would return
  '/root' as well, thus the mount would fail with
 	 PermissionError: [Errno 13] Permission denied: '/root/.config'
  After setuid(), the HOME variable stays intact, so we still can
  explicitly query USER's home.

  Also, os.path.expanduser() behaves differently for '~' and '~someuser'
  as parameters: when called with an explicit username, the possibly set
  environment variable HOME is no longer respected. So we have to check if
  it is set and only expand the user's home directory if HOME is unset.

- add myself to AUTHORS
2016-03-17 01:40:17 +01:00
Thomas Waldmann dd6a795536 update llfuse requirement, llfuse 1.0 works 2016-03-09 15:45:10 +01:00
Thomas Waldmann a4ec69c610 setup.py: add note about llfuse 0.42 2016-02-27 20:59:32 +01:00
Thomas Waldmann 44c8a4af80 fix pep8 failures 2016-02-17 01:05:04 +01:00
Nikolaus Rath dbec05ab73 Make python-llfuse 0.42 compatible.
--HG--
extra : amend_source : 6004af01c4ee6f7ddf6f4138bfc9bbdf2a785eb2
2016-02-16 10:28:16 -08:00
Thomas Waldmann 08fe16c176 allow llfuse version 0.41.x, fixes #642 2016-02-07 22:54:53 +01:00
Thomas Waldmann c2edfab237 all FUSE related version requirements in 1 place 2016-02-07 19:08:03 +01:00
Thomas Waldmann 69300e473d document and automate llfuse requirement 2016-02-07 19:03:32 +01:00
Thomas Waldmann 4b339f5d69 cosmetic source cleanup (flake8) 2016-01-30 21:32:45 +01:00
Thomas Waldmann 0be62d4233 stuff found on "Porting to Python 3.3" 2016-01-24 15:36:04 +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 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
Thomas Waldmann 9c3b206bf7 fix mailing list address in setup.py, fixes #468 2015-12-08 10:12:15 +01:00
Antoine Beaupré f13dd6e579 completely remove have_cython() hack
this was making us require mock, which is really a test component and
shouldn't be part of the runtime dependencies. furthermore, it was
making the imports and the code more brittle: it may have been
possible that, through an environment variable, backups could be
corrupted because mock libraries would be configured instead of real
once, which is a risk we shouldn't be taking.

finally, this was used only to build docs, which we will build and
commit to git by hand with a fully working borg when relevant.

see #384.
2015-11-13 10:40:53 -05:00
Antoine Beaupré f52fb410a5 Revert "use build_py to fix build on RTD", disables docs build
This reverts commit 86487d192a.

We will instead commit the generated `.rst` usage and API files
directly into git. The setup commands remain to generate them when the
usage or API changes, but as things are the hoops required to generate
those RST files are way too complicated to justify simply build docs.

See #384.

Conflicts:
	setup.py
2015-11-13 10:40:43 -05:00
Thomas Waldmann 3238b8ea76 do not try to build api / usage docs for production install
it requires "mock" (and later also sphinx) and we do not (want to) have that in setup_requires.

I removed the build.sub_commands.append(...) because that made setup.py install run build_api
and build_usage automatically for production installs. the comment said it does not work on
readthedocs anyway.

build_api and build_usage can still be run manually.
2015-11-08 16:16:43 +01:00
Thomas Waldmann 6d5cc06cf6 remove unused imports, add missing imports 2015-11-02 20:36:13 +01:00
Thomas Waldmann 908e944bdd include the help offered by borg help <topic> in the usage docs, fixes #293
it's not pretty yet, but better than nothing.
2015-10-17 21:53:09 +02:00
Jakob Schnitzer 45a96fbc8d docs: change name of API section
from 'Borg Backup API documentation' to 'API Documentation'

It is pretty clear which software the API docs are for imho.
2015-10-13 17:02:15 +02:00
Thomas Waldmann 0b9dcbf8e5 Merge branch 'master' of github.com:borgbackup/borg 2015-10-11 21:20:56 +02:00
Thomas Waldmann 8eaf460da3 setup.py: fix bug related to BORG_LZ4_PREFIX processing 2015-10-11 21:20:29 +02:00
Antoine Beaupré da2ec7995f fix homepage URL in all remaining places
we update the documentation to mention the automatic updates, and also
remove the hack in the makefile to update the github.io pages, which
are gone.
2015-10-09 15:54:04 -04:00
Antoine Beaupré 2f9bdfe96b fix API generation
properly generate the module name
2015-10-09 14:29:16 -04:00
Antoine Beaupré ff04a654ab remove trailing quote 2015-10-09 14:25:29 -04:00
Antoine Beaupré 1c61f87da3 remove debugging code and fix all have_cython calls 2015-10-08 17:20:52 -04:00
Antoine Beaupré d68451574b more debug 2015-10-08 17:14:25 -04:00
Antoine Beaupré d6109b676c re-enable cython as late as possible 2015-10-08 17:09:33 -04:00
Antoine Beaupré 2f803b6489 fix typo, split sentence 2015-10-08 15:31:46 -04:00
Antoine Beaupré 2e9bd5a883 cosmetic: s/api/doc/ 2015-10-08 14:57:32 -04:00
Antoine Beaupré 6c5a7733a2 force build-ext build
it seems that what worked in the debug branch is not working in the
main branch, even though the commit IDs are exactly the same. the RTD environment doesn't seem really reliable...

besides, we want to build extensions before the rest, so should run it
first, in order to have msgpack loaded.
2015-10-08 10:37:56 -04:00
Antoine Beaupré 86487d192a use build_py to fix build on RTD
it seems that our subcommands are ignored over there, for some mysterious reason.
2015-10-08 10:26:02 -04:00
Antoine Beaupré 824f9c72a2 cosmetic: s/cmdfile/doc/ 2015-10-08 08:56:06 -04:00
Antoine Beaupré 6f9e04bc21 generalise the cython check hack
instead of applying this only to usage generation, use it as a generic
mechanism to disable loading of Cython code.

it may be incomplete: there may be other places where Cython code is
loaded that is not checked, but that is sufficient to build the usage
docs. the environment variable used is documented as such in the
docs/usage.rst.

we also move the check to a helper function and document it
better. this has the unfortunate side effect of moving includes
around, but I can't think of a better way.
2015-10-08 08:56:02 -04:00
Antoine Beaupré 7ccf6b32a6 simplify RTD env check 2015-10-08 08:23:37 -04:00
Antoine Beaupré 8190e33a64 faster and cleaner rtd check for cython 2015-10-08 08:22:52 -04:00
Antoine Beaupré 45d9c6b3b7 fix formatting 2015-10-08 08:21:52 -04:00
Antoine Beaupré c93d975d3f remove debugging code 2015-10-08 08:20:59 -04:00
Antoine Beaupré 9cbc868764 make tests and build work again in usage using environment
this is such a crude hack it is totally embarrassing....

the proper solution would probably be to move the `build_parser()`
function out of `Archiver` completely, but this is such an undertaking
that i doubt it is worth doing since we're looking at switching to
click anyways.

the main problem in moving build_parser() out is that it references
`self` all the time, so it *needs* an archiver context that it can
reuse. we could make the function static and pass self in there by
hand, but it seems like almost a worse hack... and besides, we would
need to load the archiver in order to do that, which would break usage
all over again...
2015-10-07 22:26:59 -04:00
Antoine Beaupré 13d3568548 move usage generation to setup.py
this is an unfortunate rewrite of the manpage creation code mentionned
in #208. ideally, this would be rewritten into a class that can
generate both man pages and .rst files.
2015-10-07 21:07:15 -04:00
Antoine Beaupré 4787424a66 move API generation to setup.py 2015-10-07 19:58:24 -04:00
Antoine Beaupré 28cbc6cbd1 fix build on RTFD
first off, this required ticking the `Install your project inside a
virtualenv using setup.py install` box in the advanced config.

then, i had to disable all the C extensions build and disable some
checks, based on whether we are running on RTD or not.

still missing: usage builds and possibly other stuff that is in our
Makefile and not in setup.py.
2015-10-07 19:29:27 -04:00
Thomas Waldmann d4de0fd019 remove remainders of versioneer, typo fix. 2015-09-19 21:44:40 +02:00
Thomas Waldmann f138d06dd5 more platform support, works on py 3.5
xattrs and ACLs on OpenBSD and NetBSD need development or adaptation of
the platform-specific code.
2015-09-16 11:44:53 +02:00
Thomas Waldmann 5eb04969f8 setup.py: add the place where we link the lz4 header/lib on the darwin vagrant VM 2015-09-13 18:03:43 +02:00
Thomas Waldmann 2b311846e0 add a argparse.py (from py 3.2.6) that is not broken
also: remove previois attempt to fix this, installing pypi argparse into virtualenv does not work.
2015-09-13 00:58:57 +02:00
Thomas Waldmann 6c619000e3 pull fixed argparse from pypi in case we have a buggy python
see argparse 1.4.0 changelog for details
2015-09-12 22:44:23 +02:00
Thomas Waldmann cff7dffc95 detect lz4.h header file location
use similar code as for openssl headers
2015-09-12 19:38:38 +02:00
Ronny Pfannschmidt 8b6ca0d912 propperly handle borg._version using setuptools_scm 2015-08-22 15:54:40 +02:00
Ronny Pfannschmidt c7023ed12a replace versioneer with setuptools_scm 2015-08-22 14:58:06 +02:00
Thomas Waldmann 27de1b0a43 add a wrapper around liblz4 2015-08-01 15:07:54 +02:00
Ronny Pfannschmidt 922a1f6bb7 never fall back to distutils, any sane install method uses setuptools 2015-07-12 15:07:24 +02:00
Ronny Pfannschmidt 45e89add52 switch to entrypoints 2015-07-12 15:00:47 +02:00