1
2Notable changes in 0.28 as compared to 0.27.1
3=============================================
4
5May require attention
6---------------------
7
8* The default install PREFIX is now "/usr/local".
9
10* BINDIR, DOCDIR, LIBDIR, and MANDIR settings no longer side-step
11  DESTDIR.  i.e. `make DESTDIR=/x MANDIR=/y` install will install the
12  manpages to "/x/y" not just "/y".
13
14* The index format has changed, which will trigger a full index
15  rebuild on the next index run, making that run more expensive than
16  usual.
17
18* When given `--xdev`, `bup save` should no longer skip directories
19  that are explicitly listed on the command line when the directory is
20  both on a separate filesystem, and a subtree of another path listed
21  on the command line.  Previously `bup save --xdev / /usr` could skip
22  "/usr" if it was on a separate filesystem from "/".
23
24* Tags along a branch are no longer shown in the branch's directory in
25  the virtual filesystem (VFS).  i.e. given `bup tag special
26  /foo/latest`, "/foo/special" will no longer be visible via `bup ls`,
27  `bup web`, `bup fuse`, etc., but the tag will still be available as
28  "/.tag/special".
29
30General
31-------
32
33* bup now provides experimental `rm` and `gc` subcommands, which
34  should allow branches and saves to be deleted, and their storage
35  space reclaimed (assuming nothing else refers to the relevant data).
36  For the moment, these commands require an `--unsafe` argument and
37  should be treated accordingly.  Although if an attempt to `join` or
38  `restore` the data you still care about after a `gc` succeeds,
39  that's a fairly encouraging sign that the commands worked correctly.
40  (The `t/compare-trees` command in the source tree can be used to
41  help test before/after results.)
42
43  Note that the current `gc` command is probabilistic, which means it
44  may not remove *all* of the obsolete data from the repository, but
45  also means that the command should be fairly efficient, even for
46  large repositories.
47
48* bup may have less impact on the filesystem cache.  It now attempts
49  to leave the cache roughly the way it found it when running a `save`
50  or `split`.
51
52* A specific Python can be specified at `./configure` time via PYTHON,
53  i.e. `PYTHON=/some/python ./configure`, and that Python will be
54  embedded in all of the relevant scripts as an explicit "#!/..." line
55  during `make install`.
56
57* `bup web` will now attempt an orderly shutdown when it receives a
58  SIGTERM.
59
60* `bup web` will listen on a filesystem socket when given an address
61  like "unix://...".
62
63* bup no longer limits the number of files in a directory to 100000.
64  The limit is now UINT_MAX.
65
66* `bup fuse` now has a `--verbose` argument, and responds to
67  `--debug`.
68
69Bugs
70----
71
72* bup save should not fail when asked to save a subdirectory of a
73  directory that was completely up to date in the index.  Previously
74  this could cause a "shalists" assertion failure.
75
76* The way bup writes the data to disk (the packfiles in particular),
77  should be a bit safer now if there is a coincident power failure or
78  system crash.
79
80* A problem has been fixed that could cause bup to ignore the current
81  TZ setting when computing the local time.
82
83* bup should no longer generate broken commits when the timezone
84  offset is not an integer number of hours
85  (e.g. TZ=Australia/Adelaide).
86
87* `bup midx --output` should now work when used with `--auto` or
88  `--force`.
89
90* `bup import-rsnapshot` should exit with a status of 1, not -1.
91
92* bup should be more likely to get the data to permanent storage
93  safely on OS X, which appears to follow a surprising interpretation
94  of the `fsync()` specification.
95
96* `bup web` should handle non-ASCII paths better.  It will no longer
97  treat them as (and try to convert them to) Unicode (which they're
98  not).
99
100* `bup restore` should no longer crash when an attempt to remove an
101  xattr returns EACCES.
102
103Build system
104------------
105
106* The tests can now be run in parallel (and possibly much more
107  quickly) via `make -j check`.
108
109* The build system now creates and uses cmd/bup-python which refers to
110  the `./configure` selected python.
111
112
113Thanks to (at least)
114====================
115
116Aidan Hobson Sayers, Ben Kelly, Ben Wiederhake, Brandon Smith, Brian Minton,
117David Kettler, Frank Gevaerts, Gabriel Filion, Greg Troxel, James Lott,
118Karl-Philipp Richter, Luis Sanchez Sanchez, Marcus Schopen, Mark J
119Hewitt, Markus, Mathieu Schroeter, Michael March, Nimen Nachname, Nix,
120Patrick Rouleau, Paul Kronenwetter, Rob Browning, Robert Edmonds,
121Simon Persson, Tadej Janež, Thomas Klausner, Tilo Schwarz, Tim
122Riemenschneider, Wayne Scott, pspdevel, and stevelr
123