1
0
Fork 0
mirror of https://github.com/borgbackup/borg.git synced 2024-12-24 16:55:36 +00:00
Commit graph

290 commits

Author SHA1 Message Date
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
Thomas Waldmann
0580f2b4eb style and cosmetic fixes, no semantic changes
use simpler super() syntax of python 3.x

remove fixed errors/warnings' codes from setup.cfg flake8 configuration

fix file exclusion list for flake8
2015-07-11 18:31:49 +02:00
Thomas Waldmann
0ad2ab2496 a bit too much glob there in setup.py, removed 2015-05-22 22:55:35 +02:00
Thomas Waldmann
5e98400a5a fix all references to package name
use relative imports if possible
reorder imports (1. stdlib 2. dependencies 3. borg 4. borg.testsuite)
2015-05-22 19:21:41 +02:00
Thomas Waldmann
7fee5dbbbf add python version classifiers 2015-05-14 12:04:38 +02:00
Thomas Waldmann
5f4e928eff add FreeBSD to platforms list in setup.py
it already was present in the classifiers.
2015-05-14 11:44:58 +02:00
Thomas Waldmann
673fda39c1 upgrade versioneer to 0.14, makes PEP440 compliant version numbers now 2015-05-14 01:25:18 +02:00
Thomas Waldmann
cb5c9b63b3 fork: s/attic/borg/g, fix URLs, add new section to AUTHORS
use borg instead attic except at the places where it was used:
- as toplevel package name, directory name, file name
- to refer to original attic

remove sphinx upload make command, will be replaced by github.io site later

remove references to binary downloads and linux packages for now

remove some software name references, fix grammar

use borgbackup rather than borg-backup (or borg) in URLs,
less name collision issues, better search results, no validity issues with "-"
2015-05-13 15:02:33 +02:00
Thomas Waldmann
354b3d34e3 Merge branch 'master' into merge 2015-04-21 21:02:42 +02:00
Thomas Waldmann
80dad2df61 use sys.platform everywhere, fixes #188
os.uname is UNIX-only, sys.platform is portable.

note:
- this doesn't implicate attic will now work on windows.
- windows is untested / unsupported and there might be a lot of other issues left.
- attic's xattr module already used sys.platform, so this is better for internal consistency also.
2015-04-19 23:54:44 +02:00
Thomas Waldmann
b7cefacb69 Merge branch 'python_cleanup' into merge
Conflicts:
	attic/archiver.py
	attic/remote.py
2015-03-18 00:23:41 +01:00
Thomas Waldmann
4ef6125f45 cleanup pep8 issues found by pycharm 2015-03-17 23:47:21 +01:00
Thomas Waldmann
4c7d0762a9 as msgpack-python 0.4.6 is released now, just use that. 2015-03-12 20:06:53 +01:00
Thomas Waldmann
a67d4219c3 avoid defect python-msgpack releases, fixes #171, fixes #185 2015-03-09 23:35:56 +01:00
Jonas Borgström
0741aef880 Add MacPorts' path to the default openssl search path
Closes #101
2014-08-01 14:48:49 +02:00
Jonas Borgström
47c6141aab Experimental OS X ACL support (#66) 2014-05-03 15:10:11 +02:00
Jonas Borgström
8c25d02481 Experimental FreeBSD ACL support (nfs4 and posix) (#66) 2014-04-27 14:17:52 +02:00
Jonas Borgström
14808b77cb Fix Python3.2 compatibility 2014-04-13 20:34:32 +02:00
Jonas Borgström
0ad5253d84 Experimental Linux ACL support (#66) 2014-04-13 20:26:46 +02:00
Jonas Borgström
0e39acffd3 crypto: convert attic.crypto into a cython module
This will give a slight performance boost and make the openssl
detection/linking more robust.
2014-03-10 22:50:38 +01:00
Jonas Borgström
10ef7fe0f2 Move website to attic-backup.org 2014-03-09 15:12:07 +01:00
Jonas Borgström
3b4875cf2e Start using versioneer for version numbers 2013-08-05 23:05:15 +02:00
Jonas Borgström
f230a96c40 Update homepage url and make version number pep440 compliant 2013-08-04 13:43:35 +02:00
Jonas Borgström
2be5867c5f Ported to FreeBSD 2013-07-28 14:56:13 +02:00
Jonas Borgström
b718a443a8 Project rename 2013-07-09 20:14:18 +02:00
Jonas Borgström
f827b99ffe Improved documentation. 2013-07-05 12:32:56 +02:00
Jonas Borgström
cda6d4ed6c Minor setup.py fix 2013-06-27 23:03:48 +02:00
Jonas Borgström
bf4b13d9dc More xattr code cleanup 2013-06-27 22:10:15 +02:00
Jonas Borgström
263b7f6fdd Switch to our own xattr implementation 2013-06-27 13:28:59 +02:00
Jonas Borgström
06db9e897c Various sphinx related fixes 2013-06-25 12:39:22 +02:00
Jonas Borgström
9421b64895 Test case refactoring 2013-06-25 12:05:58 +02:00
Jonas Borgström
8a2f555c68 Packaging improvements 2013-06-24 13:53:02 +02:00
Jonas Borgström
eec876e8dc Fix setup.py issue when Cython is not available 2013-06-18 21:34:22 +02:00
Jonas Borgström
1fdc5eabc6 Port to Python 3.2+ 2013-06-18 13:39:46 +02:00
Jonas Borgström
3e5433855c Use Cython for all native code 2013-05-31 14:08:02 +02:00
Jonas Borgström
da3e7a7470 setup.py: switch from setuptools to pure distutils 2012-02-29 23:30:24 +01:00
Jonas Borgström
1d525b4dc5 Bumped version number 2011-11-06 21:40:29 +01:00
Jonas Borgström
6ffa7e851c Fix setuptools Cython issue 2011-11-05 21:13:15 +01:00
Jonas Borgström
52c02ceda3 Include Cython output in sdist 2011-08-20 18:11:23 +02:00
Jonas Borgström
885823fdbd Added a few missing dependencies 2011-06-23 22:49:16 +02:00
Jonas Borgström
af614665ca New hashindex implementation. 2010-12-16 20:23:22 +01:00
Jonas Borgström
e71b70909c Added numpy dependency 2010-12-04 21:07:02 +01:00
Jonas Borgström
20935f809e Experimental remote store support 2010-11-16 22:30:27 +01:00
Jonas Borgström
cc9e81c754 Removed trailing comma 2010-11-09 20:29:29 +01:00
Jonas Borgström
1a1d8f87eb Added xattr dependency 2010-10-31 20:33:55 +01:00
Jonas Borgström
ae7b0eaf6d Added argparse as a dependency 2010-10-30 13:24:23 +02:00
Jonas Borgström
8cdca7aed4 Renamed dedupestore to darc 2010-10-27 20:12:40 +02:00
Jonas Borgström
a1bbe57460 Fix corner case bug in chunify() 2010-10-19 19:07:35 +02:00
Jonas Borgström
4bbd093a56 Added dedupestore "console script" 2010-10-15 20:46:17 +02:00
Jonas Borgström
357cad4d5d Nothing much. 2010-04-18 22:08:12 +02:00
Jonas Borgström
61cbaf8642 Implemented checksum() in _speedups.c 2010-03-01 23:39:14 +01:00
Jonas Borgström
8416de6219 Rename. 2010-03-01 22:04:43 +01:00
Jonas Borgström
aebf3cc6b1 Some ext experimentation. 2010-02-28 20:22:45 +01:00