Fix --config-file for relative paths.
[dss.git] / NEWS
1 ------------------
2 1.0.1 (2019-11-08)
3 ------------------
4 Several fixes and improvements have accumulated over the years,
5 so here is a new release. There are also some new features:
6
7 - Support for multiple source directories.
8
9 - The prune subcommand has been tweaked to use the same algorithm as
10   the run subcommand to decide which snapshot should be pruned. The
11   prune subcommand also gained the new --disk-space option.
12
13 - When dss runs in daemon mode, it no longer sets the umask to zero.
14
15 - The logo has been replaced by a slightly smaller one in svg format.
16
17 ------------------
18 1.0.0 (2017-11-19)
19 ------------------
20 After almost ten years of development, dss has finally reached version
21 1.0.0. Many new features have been implemented for this release. The
22 list below contains the user-visible changes since the previous
23 0.1.7 release. For the complete changelog consult the git log.
24
25 The biggest user-visible change is that the former modes of operation
26 have been replaced by subcommands. For example, the former -R option
27 to start dss in "run" mode corresponds to the "run" subcommand of
28 version 1.0.0. Each subcommand has its own set of options. Global
29 options and options for subcommands are split with the usual "--"
30 separator. For example, to specify the global --loglevel option and
31 the run-specific --daemon option, use dss --loglevel 2 -- run --daemon.
32
33 Although the new version has different syntax rules, the on-disk
34 snapshot format remains the same. No conversion is required to continue
35 existing snapshot directories created with older dss versions.
36
37 The 0.1.x series will still be maintained for a while as the "maint"
38 branch of the git repository, but this branch will only receive
39 bug fixes.
40
41  - The gengetopt option parser has been replaced by the
42  [lopsub](http://people.tuebingen.mpg.de/maan/lopsub) library. Hence
43  lopsub must be installed to compile this package. help2man is
44  no longer required since lopsub has built-in roff support.
45
46  - New subcommand "configtest" to check the command line options and
47  the configuration file for syntactic correctness.
48
49  - New option: --mountpoint. If this option is given, dss aborts if
50  no file system is mounted on the destination directory.
51
52  - New option --checksum to let rsync compute checksums occasionally.
53
54  - The kill subcommand gained the new --wait option which instructs dss
55  to wait until the signalled process has terminated.
56
57  - The --no-resume option has been removed.
58
59  - On exit, the run subcommand now waits for any previously spawned
60  rsync or rm processes to terminate.
61
62  - The ls subcommand now shows the age of incomplete snapshots rather
63  than 0:00.
64
65  - In run mode, dss no longer exits successfully if another instance
66  is already running.
67
68  - The command specified as the argument to --exit-hook is now subject
69  to word splitting. Previously, the string was executed as-is.
70
71  - Improved error diagnostics for the kill subcommand.
72
73  - For all subcommands other than "run", timestamps and function names
74  are omitted from the log output.
75
76  - "make install" will install the executable and the man page.
77
78  - CFLAGS, CPPFLAGS and LDFLAGS can now be used to override the flags
79  of the build system.
80
81  - Source code files are now annotated with the SPDX GPL-2.0 license
82  identifier.
83
84  - The dss logo is now created with ImageMagick rather than dia.
85
86 ------------------
87 0.1.7 (2017-04-17)
88 ------------------
89
90  - Documentation improvements.
91
92  - Improved error diagnostics.
93
94  - dss no longer refuses to run in daemon mode without a log file.
95
96  - Minor tweaks to the snapshot pruning algorithm.
97
98  - A fix for create mode when rsync exists unsuccessfully.
99
100  - NEWS and README have been converted to markdown format.
101
102  - We now compile with -Wunused-parameter and -Wshadow.
103
104 ------------------
105 0.1.6 (2015-08-05)
106 ------------------
107
108  - New option --min-complete to specify the minimal number of snapshots
109    to keep.
110
111  - Improved handling of rsync errors. The new --max-rsync-errors option
112  tells dss to terminate after the given number of rsync failures.
113
114  - New home page URL and email address.
115
116  - Reworked rsync restart logic, new --max-rsync-errors option.
117
118  - Avoidance of "Errors with program diagnostics" error from rsync.
119
120  - Improved signal handling.
121
122 ------------------
123 0.1.5 (2014-01-14)
124 ------------------
125
126  - snapshot recycling: outdated, redundant and orphaned snapshots are
127  reused as the basis for new snapshots.
128
129  - New subcommands: --kill, --reload.
130
131  - The semaphore-based locking system prevents to start multiple
132  instances of dss.
133
134  - When dss receives SIGHUP it now writes the internal state and the
135  configuration to the log file
136
137  - First steps to make the source code ANSI C conform (thanks to
138  Daniel Richard G).
139
140  - dss writes log messages to stderr rather than to the logfile unless
141  running in daemon mode.
142
143  - Default hooks work also on systems where "/bin/true" does not exist,
144  e.g. Mac OS.
145
146 ------------------
147 0.1.4 (2010-11-08)
148 ------------------
149 This version of dss contains some new features, many improvements of
150 existing features and several bug fixes.
151
152 Support for resuming snapshot creation after restart has been added
153 and snapshot removal is deferred until at least one current snapshot
154 exists. The internal handling of the various hooks has been simplified
155 and many error messages have been clarified. On SIGHUP, dss now writes
156 its configuration and internal state to the log file.
157
158 ------------------
159 0.1.3 (2009-06-06)
160 ------------------
161 You can now specify pre-rm/post-rm-hooks that are executed whenever
162 a snapshot is deleted. This release adds better compatibility with
163 rsync 3.0, and avoids busy loops when automatically restarting the
164 rsync process.
165
166 ------------------
167 0.1.2 (2009-03-05)
168 ------------------
169 This release includes the reason why a snapshot gets removed in the
170 log message. It will never remove the snapshot that is currently
171 being created. It will really pass the full path to the last complete
172 snapshot in the post_create_hook.
173
174 ------------------
175 0.1.1 (2008-11-13)
176 ------------------
177 This release prevents busy loops on rsync exit code 13. It ignores
178 any snapshot directory with creation time >= completion time. It
179 opens /dev/null for reading and writing when executing rsync. It shows
180 human readable snapshot creation duration when listing snapshots. It
181 restarts the rsync process if it returned with exit code 13.
182
183 ------------------
184 0.1.0 (2008-10-10)
185 ------------------
186 Initial public release.