X-Git-Url: https://arthur.barton.de/gitweb/?p=bup.git;a=blobdiff_plain;f=README.md;h=d08ea4ca28f32052a86a75b749ccf4ab2251a758;hp=05fc56f2c1043bac1a6c79dcd66f8b59e2a66673;hb=HEAD;hpb=938537c3a9bb76cfa7d62f931ffee0ff3359aa55 diff --git a/README.md b/README.md index 05fc56f..2d46819 100644 --- a/README.md +++ b/README.md @@ -71,18 +71,14 @@ Reasons you might want to avoid bup more likely to eat your data. It's also missing some probably-critical features, though fewer than it used to be. - - It requires python >= 2.6, a C compiler, and an installed git + - It requires python 3.7 or newer, a C compiler, and an installed git version >= 1.5.6. It also requires par2 if you want fsck to be able to generate the information needed to recover from some types of corruption. - It currently only works on Linux, FreeBSD, NetBSD, OS X >= 10.4, - Solaris, or Windows (with Cygwin, and maybe with WSL). Patches to - support other platforms are welcome. - - - Until resolved, a [glibc bug](https://sourceware.org/bugzilla/show_bug.cgi?id=26034) - might cause bup to crash on startup for some (unusual) command line - argument values, when bup is configured to use Python 3. + Solaris, or Windows (with Cygwin, and WSL). Patches to support + other platforms are welcome. - Any items in "Things that are stupid" below. @@ -90,6 +86,9 @@ Reasons you might want to avoid bup Notable changes introduced by a release ======================================= + - Changes in 0.33 as compared to 0.32 + - Changes in 0.32 as compared to 0.31 + - Changes in 0.31 as compared to 0.30.1 - Changes in 0.30.1 as compared to 0.30 - Changes in 0.30 as compared to 0.29.3 - Changes in 0.29.3 as compared to 0.29.2 @@ -104,11 +103,9 @@ Notable changes introduced by a release Test status =========== -| branch | Debian | FreeBSD | macOS | -|--------|------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------| -| master | [![Debian test status](https://api.cirrus-ci.com/github/bup/bup.svg?branch=master&task=debian)](https://cirrus-ci.com/github/bup/bup) | [![FreeBSD test status](https://api.cirrus-ci.com/github/bup/bup.svg?branch=master&task=freebsd)](https://cirrus-ci.com/github/bup/bup) | [![macOS test status](https://api.cirrus-ci.com/github/bup/bup.svg?branch=master&task=macos)](https://cirrus-ci.com/github/bup/bup) | -| 0.30.x | [![Debian test status](https://api.cirrus-ci.com/github/bup/bup.svg?branch=0.30.x&task=debian)](https://cirrus-ci.com/github/bup/bup) | [![FreeBSD test status](https://api.cirrus-ci.com/github/bup/bup.svg?branch=0.30.x&task=freebsd)](https://cirrus-ci.com/github/bup/bup) | [![macOS test status](https://api.cirrus-ci.com/github/bup/bup.svg?branch=0.30.x&task=macos)](https://cirrus-ci.com/github/bup/bup) | -| 0.29.x | [![Debian test status](https://api.cirrus-ci.com/github/bup/bup.svg?branch=0.29.x&task=debian)](https://cirrus-ci.com/github/bup/bup) | [![FreeBSD test status](https://api.cirrus-ci.com/github/bup/bup.svg?branch=0.29.x&task=freebsd)](https://cirrus-ci.com/github/bup/bup) | [![macOS test status](https://api.cirrus-ci.com/github/bup/bup.svg?branch=0.29.x&task=macos)](https://cirrus-ci.com/github/bup/bup) | +| master | +|--------| +| [![master branch test status](https://api.cirrus-ci.com/github/bup/bup.svg?branch=master)](https://cirrus-ci.com/github/bup/bup) | Getting started =============== @@ -127,15 +124,20 @@ From source bup, please check out the latest stable release like this: ```sh - git checkout 0.29.1 + git checkout 0.33 ``` You can see the latest stable release here: - https://github.com/bup/bup/releases. + https://github.com/bup/bup/tags - Install the required python libraries (including the development libraries). + For `bup fuse` you will need to install + [python-fuse](https://github.com/libfuse/python-fuse) rather than + [fusepy](https://github.com/fusepy/fusepy). For example, in + Debian, install python3-fuse rather than python3-fusepy. + On very recent Debian/Ubuntu versions, this may be sufficient (run as root): @@ -143,33 +145,21 @@ From source apt-get build-dep bup ``` - Otherwise try this (substitute python2.6-dev if you have an older - system): + Otherwise try this: ```sh - apt-get install python2.7-dev python-fuse - apt-get install python-pyxattr python-pylibacl - apt-get install linux-libc-dev - apt-get install acl attr + apt-get install python3-dev python3-fuse + apt-get install python3-pyxattr python3-pytest + apt-get install python3-distutils + apt-get install pkg-config linux-libc-dev libacl1-dev + apt-get install gcc make acl attr rsync + apt-get isntall python3-pytest-xdist # optional (parallel tests) + apt-get install par2 # optional (error correction) apt-get install libreadline-dev # optional (bup ftp) - apt-get install python-tornado # optional (bup web) - ``` - - On CentOS (for CentOS 6, at least), this should be sufficient (run - as root): + apt-get install python3-tornado # optional (bup web) - ```sh - yum groupinstall "Development Tools" - yum install python python-devel - yum install fuse-python pyxattr pylibacl - yum install perl-Time-HiRes - yum install readline-devel # optional (bup ftp) - yum install python-tornado # optional (bup web) ``` - In addition to the default CentOS repositories, you may need to add - RPMForge (for fuse-python) and EPEL (for pyxattr and pylibacl). - On Cygwin, install python, make, rsync, and gcc4. If you would like to use the optional bup web server on systems @@ -179,7 +169,7 @@ From source pip install tornado ``` - - Build the python module and symlinks: + - Build: ```sh make @@ -197,6 +187,14 @@ From source make check ``` + If you have the Python xdist module installed, then you can + probably run the tests faster by adding the make -j option (see ./HACKING for additional information): + + ```sh + make -j check + ``` + The tests should pass. If they don't pass for you, stop here and send an email to bup-list@googlegroups.com. Though if there are symbolic links along the current working directory path, the tests @@ -218,12 +216,20 @@ From source make install DESTDIR=/opt/bup PREFIX='' ``` - - The Python executable that bup will use is chosen by ./configure, - which will search for a reasonable version unless PYTHON is set in - the environment, in which case, bup will use that path. You can - see which Python executable was chosen by looking at the - configure output, or examining cmd/python-cmd.sh, and you can - change the selection by re-running ./configure. + - The Python version that bup will use is determined by the + `python-config` program chosen by `./configure`, which will search + for a reasonable version unless `BUP_PYTHON_CONFIG` is set in the + environment. You can see which Python executable was chosen by + looking at the configure output, or examining + `config/config.var/bup-python-config`, and you can change the + selection by re-running `./configure`. + +- If you want to specify your own `CPPFLAGS`, `CFLAGS`, or `LDFLAGS`, + you can set them for individual `make` invocations, e.g. `make + CFLAGS=-O0 check`, or persistently via `./configure` with + `CFLAGS=-O0 ./configure`. At the moment, `make clean` clears the + configuration, but we may change that at some point, perhaps by + adding and requiring a `make distclean` to clear the configuration. From binary packages -------------------- @@ -241,6 +247,8 @@ Binary packages of bup are known to be built for the following OSes: https://www.archlinux.org/packages/?sort=&q=bup - Fedora: https://apps.fedoraproject.org/packages/bup + - macOS (Homebrew): + https://formulae.brew.sh/formula/bup Using bup @@ -257,9 +265,9 @@ Using bup ... ``` - - Initialize the default BUP_DIR (~/.bup -- you can choose another by - either specifying `bup -d DIR ...` or setting the `BUP_DIR` - environment variable for a command): + - Initialize the default bup repository (~/.bup -- you can choose + another by either specifying `bup -d DIR ...` or setting the + `BUP_DIR` environment variable for a command): ```sh bup init @@ -416,10 +424,8 @@ That's all there is to it! Notes on FreeBSD ---------------- -- FreeBSD's default 'make' command doesn't like bup's Makefile. In order to - compile the code, run tests and install bup, you need to install GNU Make - from the port named 'gmake' and use its executable instead in the commands - seen above. (i.e. 'gmake test' runs bup's test suite) +- In order to compile the code, run tests and install bup, you need to + install GNU Make from the `gmake` port. - Python's development headers are automatically installed with the 'python' port so there's no need to install them separately. @@ -452,20 +458,20 @@ Notes on NetBSD/pkgsrc cycle and error out, so "ls -R" and "find" will not work. - There is no support for ACLs. If/when some enterprising person - fixes this, adjust t/compare-trees. + fixes this, adjust dev/compare-trees. Notes on Cygwin --------------- - There is no support for ACLs. If/when some enterprising person - fixes this, adjust t/compare-trees. + fixes this, adjust dev/compare-trees. - - In t/test.sh, two tests have been disabled. These tests check to - see that repeated saves produce identical trees and that an - intervening index doesn't change the SHA1. Apparently Cygwin has - some unusual behaviors with respect to access times (that probably - warrant further investigation). Possibly related: + - In test/ext/test-misc, two tests have been disabled. These tests + check to see that repeated saves produce identical trees and that + an intervening index doesn't change the SHA1. Apparently Cygwin + has some unusual behaviors with respect to access times (that + probably warrant further investigation). Possibly related: http://cygwin.com/ml/cygwin/2007-06/msg00436.html @@ -473,7 +479,7 @@ Notes on OS X ------------- - There is no support for ACLs. If/when some enterprising person - fixes this, adjust t/compare-trees. + fixes this, adjust dev/compare-trees. How it works @@ -571,8 +577,8 @@ mailing list (see below) if you'd like to help. __setitem__, and __setslice__ [3]. [1] http://comments.gmane.org/gmane.comp.sysutils.backup.bup/613 - [2] http://docs.python.org/2/library/mmap.html - [3] http://docs.python.org/2/reference/datamodel.html#emulating-container-types + [2] http://docs.python.org/3/library/mmap.html + [3] http://docs.python.org/3/reference/datamodel.html#emulating-container-types - 'bup index' is slower than it should be. @@ -589,18 +595,6 @@ mailing list (see below) if you'd like to help. give the continuous-backup process a really low CPU and I/O priority so you wouldn't even know it was running. - - bup only has experimental support for pruning old backups. - - While you should now be able to drop old saves and branches with - `bup rm`, and reclaim the space occupied by data that's no longer - needed by other backups with `bup gc`, these commands are - experimental, and should be handled with great care. See the - man pages for more information. - - Unless you want to help test the new commands, one possible - workaround is to just start a new BUP_DIR occasionally, - i.e. bup-2013, bup-2014... - - bup has never been tested on anything but Linux, FreeBSD, NetBSD, OS X, and Windows+Cygwin. @@ -644,7 +638,7 @@ How you can help bup is a work in progress and there are many ways it can still be improved. If you'd like to contribute patches, ideas, or bug reports, please join the -bup mailing list. +bup mailing list: You can find the mailing list archives here: @@ -654,6 +648,11 @@ and you can subscribe by sending a message to: bup-list+subscribe@googlegroups.com +You can also reach us via the +\#bup IRC channel at ircs://irc.libera.chat:6697/bup +on the [libera.chat](https://libera.chat/) network or via this +[web interface](https://web.libera.chat/?channels=bup). + Please see ./HACKING for additional information, i.e. how to submit patches (hint - no pull requests), how we handle branches, etc. @@ -662,3 +661,9 @@ requests), how we handle branches, etc. Have fun, Avery + +