]> 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.
    
    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,
    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.
 
 
  - 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
 =======================================
 
 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>
  - <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
 ===========
 
 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
 ===============
 
 Getting started
 ===============
@@ -127,15 +124,20 @@ From source
    bup, please check out the latest stable release like this:
 
     ```sh
    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:
     ```
 
    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).
 
 
  - 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):
 
    On very recent Debian/Ubuntu versions, this may be sufficient (run
    as root):
 
@@ -143,33 +145,21 @@ From source
     apt-get build-dep bup
     ```
 
     apt-get build-dep bup
     ```
 
-   Otherwise try this (substitute python2.6-dev if you have an older
-   system):
+   Otherwise try this:
 
     ```sh
 
     ```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 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
    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
     ```
 
     pip install tornado
     ```
 
- - Build the python module and symlinks:
+ - Build:
 
     ```sh
     make
 
     ```sh
     make
@@ -197,6 +187,14 @@ From source
     make check
     ```
        
     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
     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=''
     ```
 
     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
 --------------------
 
 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
     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
 
 
 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
 
     ```sh
     bup init
@@ -416,10 +424,8 @@ That's all there is to it!
 Notes on FreeBSD
 ----------------
 
 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.
 
 - 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
    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
 
 
 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
 
 
    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
 -------------
 
  - 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
 
 
 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
    __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.
  
 
  - '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.
 
     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.
  
  - 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 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:
 
 
 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
 
 
        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.
 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
 Have fun,
 
 Avery
+
+<!--
+Local Variables:
+mode: markdown
+End:
+-->