summaryrefslogtreecommitdiff
path: root/NEWS
blob: df6c29f0651e48b3b983fe833e97c9310c84c4b3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
------------------
1.0.2 (2024-08-08)
------------------
The new help subcommand, the improved build system, documentation
improvements and a couple of fixes and miscellaneous cleanups.

- Fix --config-file for relative paths.
- The new "help" subcommand shows help on subcommands.
- The build is quiet by default, use "make V=1" to get the old behaviour.
- The command "make README" now shows the README file.
- dss -V now shows the git version.
- Compressed man page (dss.1.gz)
- Nicer (and much shorter) web page
- Markdown is no longer required to build the web page
- A statically linked binary can be downloaded from the web page.
- Documentation improvements
- New phony targets: www, distclean, maintainer-clean
- dss now consults HOME and LOGNAME rather than calling getpwuid(3)

------------------
1.0.1 (2019-11-08)
------------------
Several fixes and improvements have accumulated over the years,
so here is a new release. There are also some new features:

- Support for multiple source directories.

- The prune subcommand has been tweaked to use the same algorithm as
  the run subcommand to decide which snapshot should be pruned. The
  prune subcommand also gained the new --disk-space option.

- When dss runs in daemon mode, it no longer sets the umask to zero.

- The logo has been replaced by a slightly smaller one in svg format.

------------------
1.0.0 (2017-11-19)
------------------
After almost ten years of development, dss has finally reached version
1.0.0. Many new features have been implemented for this release. The
list below contains the user-visible changes since the previous
0.1.7 release. For the complete changelog consult the git log.

The biggest user-visible change is that the former modes of operation
have been replaced by subcommands. For example, the former -R option
to start dss in "run" mode corresponds to the "run" subcommand of
version 1.0.0. Each subcommand has its own set of options. Global
options and options for subcommands are split with the usual "--"
separator. For example, to specify the global --loglevel option and
the run-specific --daemon option, use dss --loglevel 2 -- run --daemon.

Although the new version has different syntax rules, the on-disk
snapshot format remains the same. No conversion is required to continue
existing snapshot directories created with older dss versions.

The 0.1.x series will still be maintained for a while as the "maint"
branch of the git repository, but this branch will only receive
bug fixes.

 - The gengetopt option parser has been replaced by the
 [lopsub](http://people.tuebingen.mpg.de/maan/lopsub) library. Hence
 lopsub must be installed to compile this package. help2man is
 no longer required since lopsub has built-in roff support.

 - New subcommand "configtest" to check the command line options and
 the configuration file for syntactic correctness.

 - New option: --mountpoint. If this option is given, dss aborts if
 no file system is mounted on the destination directory.

 - New option --checksum to let rsync compute checksums occasionally.

 - The kill subcommand gained the new --wait option which instructs dss
 to wait until the signalled process has terminated.

 - The --no-resume option has been removed.

 - On exit, the run subcommand now waits for any previously spawned
 rsync or rm processes to terminate.

 - The ls subcommand now shows the age of incomplete snapshots rather
 than 0:00.

 - In run mode, dss no longer exits successfully if another instance
 is already running.

 - The command specified as the argument to --exit-hook is now subject
 to word splitting. Previously, the string was executed as-is.

 - Improved error diagnostics for the kill subcommand.

 - For all subcommands other than "run", timestamps and function names
 are omitted from the log output.

 - "make install" will install the executable and the man page.

 - CFLAGS, CPPFLAGS and LDFLAGS can now be used to override the flags
 of the build system.

 - Source code files are now annotated with the SPDX GPL-2.0 license
 identifier.

 - The dss logo is now created with ImageMagick rather than dia.

------------------
0.1.7 (2017-04-17)
------------------

 - Documentation improvements.

 - Improved error diagnostics.

 - dss no longer refuses to run in daemon mode without a log file.

 - Minor tweaks to the snapshot pruning algorithm.

 - A fix for create mode when rsync exists unsuccessfully.

 - NEWS and README have been converted to markdown format.

 - We now compile with -Wunused-parameter and -Wshadow.

------------------
0.1.6 (2015-08-05)
------------------

 - New option --min-complete to specify the minimal number of snapshots
   to keep.

 - Improved handling of rsync errors. The new --max-rsync-errors option
 tells dss to terminate after the given number of rsync failures.

 - New home page URL and email address.

 - Reworked rsync restart logic, new --max-rsync-errors option.

 - Avoidance of "Errors with program diagnostics" error from rsync.

 - Improved signal handling.

------------------
0.1.5 (2014-01-14)
------------------

 - snapshot recycling: outdated, redundant and orphaned snapshots are
 reused as the basis for new snapshots.

 - New subcommands: --kill, --reload.

 - The semaphore-based locking system prevents to start multiple
 instances of dss.

 - When dss receives SIGHUP it now writes the internal state and the
 configuration to the log file

 - First steps to make the source code ANSI C conform (thanks to
 Daniel Richard G).

 - dss writes log messages to stderr rather than to the logfile unless
 running in daemon mode.

 - Default hooks work also on systems where "/bin/true" does not exist,
 e.g. Mac OS.

------------------
0.1.4 (2010-11-08)
------------------
This version of dss contains some new features, many improvements of
existing features and several bug fixes.

Support for resuming snapshot creation after restart has been added
and snapshot removal is deferred until at least one current snapshot
exists. The internal handling of the various hooks has been simplified
and many error messages have been clarified. On SIGHUP, dss now writes
its configuration and internal state to the log file.

------------------
0.1.3 (2009-06-06)
------------------
You can now specify pre-rm/post-rm-hooks that are executed whenever
a snapshot is deleted. This release adds better compatibility with
rsync 3.0, and avoids busy loops when automatically restarting the
rsync process.

------------------
0.1.2 (2009-03-05)
------------------
This release includes the reason why a snapshot gets removed in the
log message. It will never remove the snapshot that is currently
being created. It will really pass the full path to the last complete
snapshot in the post_create_hook.

------------------
0.1.1 (2008-11-13)
------------------
This release prevents busy loops on rsync exit code 13. It ignores
any snapshot directory with creation time >= completion time. It
opens /dev/null for reading and writing when executing rsync. It shows
human readable snapshot creation duration when listing snapshots. It
restarts the rsync process if it returned with exit code 13.

------------------
0.1.0 (2008-10-10)
------------------
Initial public release.