./sysutils/bup, Highly efficient file backup system based on the git packfile format

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 0.33.4, Package name: bup-0.33.4, Maintainer: gdt

bup is a program that backs things up. bup has a few advantages over other
backup software:

It uses a rolling checksum algorithm (similar to rsync) to split large files
into chunks. The most useful result of this is you can backup huge virtual
machine (VM) disk images, databases, and XML files incrementally, even though
they're typically all in one huge file, and not use tons of disk space for
multiple versions.

It uses the packfile format from git (the open source version control system),
so you can access the stored data even if you don't like bup's user interface.

Unlike git, it writes packfiles directly (instead of having a separate garbage
collection/repacking stage) so it's fast even with gratuitously huge amounts of
data. bup's improved index formats also allow you to track far more filenames
than git (millions) and keep track of far more objects (hundreds or thousands of
gigabytes).

Data is "automagically" shared between incremental backups without having to
know which backup is based on which other one - even if the backups are made
from two different computers that don't even know about each other. You just
tell bup to back stuff up, and it saves only the minimum amount of data needed.


Required to run:
[archivers/par2] [lang/perl5] [devel/py-readline] [lang/python27] [www/py-tornado] [devel/git-base]

Required to build:
[net/rsync] [pkgtools/cwrappers]

Master sites:

Filesize: 467.235 KB

Version history: (Expand)


CVS history: (Expand)


   2024-08-26 15:57:02 by Greg Troxel | Files touched by this commit (2)
Log message:
sysutils/bup: Update to 0.33.4

Notable changes in 0.33.4 since 0.33.3 (incomplete)
===================================================

May require attention
---------------------

* The `par2` command (invoked by `bup fsck -g`) may generate empty
  recovery files if interrupted (say via C-c).  To mitigate this, bup
  now runs `par2` in a temporary directory, and only moves the
  recovery files into place if the generation succeeds.  It will also
  look for any empty par2 files, or incomplete sets, associated with
  packfiles that it has been asked to examine.  If found, they will
  provoke an error.  See also
  https://github.com/Parchive/par2cmdline/issues/84

* Previously, any `bup on REMOTE ...` commands that attempted to read
  from standard input (for example `bup on HOST split < something` or
  `bup on HOST split --git-ids ...`) would read nothing instead of the
  original content of standard input.  Now those commands will either
  reject the invocation, or just crash when they attempt to read a
  closed stream.

* When building bup, if your version of GNU make is not named `make`,
  prefer invoking it directly (e.g. `gmake -j4 check`) instead of
  relying on the ./Makefile to redirect to GNU make.  Some non-GNU
  makes now break this redirection.  For example, if you include a
  `-j` option in your build command one of them adds a `-J` to
  `MAKEFLAGS` that GNU make rejects.  In future releases, we're likely
  to drop the redirection entirely.

Bugs
----

* `bup-config(5)` has been added, and mentions that at the moment `bup
  on REMOTE ...` incorrectly reads the `pack.packSizeLimit` from the
  `REMOTE` repository.

* `bup fsck` no longer requires a repository via `BUP_DIR`, `-d`,
  etc. when paths are provided on the command line.

Thanks to (at least)
====================

Ed Maste, Greg Troxel, Johannes Berg, and Rob Browning
   2024-08-12 19:45:52 by Greg Troxel | Files touched by this commit (1)
Log message:
sysutils/bup: Pass explicit reference to python-config

Otherwise, if python 3.11 and 3.12 are both installed, and pkgsrc is
building for 3.12, bup's configure might find 3.11.
   2023-12-30 16:35:22 by Greg Troxel | Files touched by this commit (1)
Log message:
sysutils/bup: Remove local patches from distinfo
   2023-12-30 16:34:49 by Greg Troxel | Files touched by this commit (2)
Log message:
sysutils/bup: Update to 0.33.3

Upstream NEWS:

  bugfixes

  performance improvements (significant, but in specific
  circumstances, and low risk)
   2023-12-09 02:46:30 by Greg Troxel | Files touched by this commit (3) | Package updated
Log message:
sysutils/bup: Update to 0.33.2

Upstream NEWS less some bugfixes and minor improvements:

Notable changes in 0.33 since 0.32

  Python 3 is now required, in particular 3.7 or newer.

  The version of Python is no longer determined by the value of PYTHON
  during ./configure. It is now determined by the version of
  python-config selected during configuration. The BUP_PYTHON_CONFIG
  environment variable can be set during configuration to select a
  particular executable (e.g. BUP_PYTHON_CONFIG=python3.9-config
  ./configure). See the README for further details.

  The bup executable is now a binary rather than a Python
  script. Practically speaking, this means that the Python version is
  determined by the libpython that the executable is linked against
  (selected via python-config), and it means that bup will show up as
  "bup" in process listings rather than a python invocation.

  The output of bup ls for multiple paths includes each path before
  its contents, more closely matching the system ls.

  The bup ftp ls command should now respect the working directory (set
  by cd), and that directory has been added to the prompt.

  The index-cache is no longer included in the bup midx --dir default.

  Performance may have improved after the relocation of a number of
  operations from Python to C, and a number of improvements to the
  VFS.

Bugs

  Bup should now respect the current umask, directory sgid bit,
  etc. when creating new files (e.g. new packfiles). Previously, it
  would create them via mkstemp, which would cause them to be readable
  only by the current user.

  Bup should now be able to handle repositories containing signed
  commits.

  bup tag has been changed to rely on git update-ref instead of
  writing the (loose) refs directly so that it can handle packed refs
  correctly.

  bup save should be more careful about noting an error and skipping
  paths whose type (link, regular file, ...) has changed since
  indexing.

  There should no longer be a narrow window where save could store
  conflicting symlink targets or conflicting sizes (in the metadata
  record and the packfile symlink blob) for a path if the filesystem
  changed at just the wrong time during a save.

  bup fuse should no longer become unusable after an unfinished read
  of commits associated with tags. The underlying VFS issue may have
  affected other commands too.

  Bup's packfile names should now match git's. Previously bup computed
  the SHA1 from just the sorted object list (cf. git-index-pack(1)),
  but git appears to include the entire pack file in the hash.

  Passing idx files to bup midx along with --dir should now work
  correctly.

  Resource usage (e.g. memory) may have improved, given a number of
  changes intended to make bup release resources more carefully and
  sooner.

Build and install

  The build process should now work on systems where make isn't GNU
  Make (the Makefile automatically redirects to GNUmakefile).

Thanks to (at least)

  Abdel Said, Arthur Ward, Bas Stottelaar, Brian Minton, Greg Troxel,
  Johannes Berg, Mark Hewitt, Muh Muhten, and Rob Browning
   2023-08-14 07:25:36 by Thomas Klausner | Files touched by this commit (1247)
Log message:
*: recursive bump for Python 3.11 as new default
   2023-06-19 00:35:59 by Greg Troxel | Files touched by this commit (2) | Package updated
Log message:
sysutils/bup: Update to 0.32.1

This is a bug-fix micro update.
   2022-06-30 13:19:02 by Nia Alarie | Files touched by this commit (524)
Log message:
*: Revbump packages that use Python at runtime without a PKGNAME prefix