]> arthur.barton.de Git - bup.git/blobdiff - README.md
Update base_version to 0.34~ for 0.34 development
[bup.git] / README.md
index 05fc56f2c1043bac1a6c79dcd66f8b59e2a66673..2d46819d3f4a0c16063b0caee2b4bd092ee1b5c9 100644 (file)
--- 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
 =======================================
 
+ - <a href="note/0.33-from-0.32.md">Changes in 0.33 as compared to 0.32</a>
+ - <a href="note/0.32-from-0.31.md">Changes in 0.32 as compared to 0.31</a>
+ - <a href="note/0.31-from-0.30.1.md">Changes in 0.31 as compared to 0.30.1</a>
  - <a href="note/0.30.1-from-0.30.md">Changes in 0.30.1 as compared to 0.30</a>
  - <a href="note/0.30-from-0.29.3.md">Changes in 0.30 as compared to 0.29.3</a>
  - <a href="note/0.29.3-from-0.29.2.md">Changes in 0.29.3 as compared to 0.29.2</a>
@@ -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 <a
+    href="HACKING">./HACKING</a> 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.
+<a href="mailto:bup-list@googlegroups.com">bup mailing list</a>:
 
 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 <a href="HACKING">./HACKING</a> 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
+
+<!--
+Local Variables:
+mode: markdown
+End:
+-->