forked from lsyncd/lsyncd
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ChangeLog
322 lines (291 loc) · 14.2 KB
/
ChangeLog
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
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
2022-11-17: 2.3.1
change: multiple bugfixes, style fixes
2022-03-09: 2.3.0
add: nix flake support
add: support for tunnel commands
add: support for batchSizeLimit
add: -onepass option
add: crontab support
change: support relative executable paths
2018-03-09: 2.2.3
enhaencement: supporting includes with new filter and filterFrom options
change: needing now at least Lua 5.2 (Lua 5.1 no longer supported, Lua5.3 supported)
change: if the target/targetdir ends with a ':' do not append
a trailing '/' to it, since that would change it from homedir to rootdir!
add: example for Amazon S3 Bucket (Daniel Miranda)
fix: setting stdout/stderr to linebuffer mode.
fix: Lua5.3 compatiblity, using load() instead of loadstring()
fix: cmake lua detection, will resort to "lua" and "luac" binaries only if
more specific suffixes (e.g. luac5.3) are not available
fix: test suit, Lua5.3 compatibility (table.unpack)
2017-02-16: 2.2.2
fix: checkgauge 'insist'
fix: no partial path exlusion tests
fix: write pid of forked process in pidfile
fix: crash on not reachable target
workaround:
changed back to filter style rsync calling
until https://bugzilla.samba.org/show_bug.cgi?id=12569
is fixed and released.
2017-01-05: 2.2.1
enhancement: now always using filter lists with rysnc
instead of include/exclude lists taking advantage of the new --delete-missing-args
parameter to delete files on target.
>>> Thus Lsyncd 2.2.1 needs rsync >= 3.1.0
change: added "tests" make target to run all the tests.
fix: crash due to typo in changed ^path, ^pathdir, ^pathname
2017-01-04: 2.2.0
enhancement: add rsync options:
"append",
"append_verify",
"backup",
"backup_dir",
"chmod",
"chown",
"copy_dirlinks",
"existing",
"groupmap",
"omit_dir_times",
"omit_link_times",
"suffix,"
"usermap",
enhancement: settings{ } now checks for unknown entries and errors if so.
change: Level3 scripts ^path,^pathdir and ^pathname now don't start with a slash.
change: Lsyncd now writes a startup log message before daemonizing
does in case logging fails, it is recognized before it cannot
message anything about it, since it deamonized
change: compatible with Lua5.3 (along with 5.1 and 5.2)
change: _verbatim forced for 'exitcodes' entry.
change: manpage is not rebuild by default.
it is provided precompiled.
change: faulty/deprecated config files that use settings = { ... }, with equal sign
are no longer worked around.
change: default.direct now calls copy with -p
fix: potential race conditions:
default.rsyncssh will now channel deletes also through rsync and treats moves
as blocking events.
fix: ']' is not escaped for rsync rules, since rsync only applies
doesn't applie pattern matching if no other pattern chars
are found.
fix: Shell injection hole close for default.direct on mv commands. (Marcin Szewczyk)
fix: Crash of default-direct when source doesn't exit (Michael Ploujnikov)
fix: fixed faulty event replacement,
a race condition noticed by extensive default.rsyncssh testing
changed Delays were not reflected in Events
2015-10-15: 2.1.6
enhancement: Lsyncd now locks its pidfile
enhancement: added ssh.identifyFile and ssh.options options
enhancement: added rsync inplace option
fix: ignore blank lines and rsync commenits in exclude files (David Reiss)
fix: don't tread exclude lines with embedded "+" chars as inclusions (David Reiss)
fix: crash when debugging inotify (Michael Ploujnikov)
fix: fixed Finished/Retrying error messages being swapped around (Jun Saito)
fix: properly encapsulate filenames on ssh mv commands to avoid shell command injections.
fix: postcmd example (Timo Teräs)
change: closes also on INT signals
change: now removes its pidfile on INT and TERM signals
change: changed build system from autotools to cmake
2013-06-07: 2.1.5
enhancement: Added rsync options: bwlimit, timeout
fix: Specifying ssh port no longer overwrites the last rsync option
fix: rsync option password_file is now accepted
fix: onAttrib is accepted again
fix: -log Exec now prints now fully all arguments
fix: configure script lua detection now includes math lib to workaround
wrongly created "needs COMPAT_ALL" messages.
fix: repaired variable replacement for layer 3 scripts
fix: config.delay is now checked to a number >= 0
change: a2x is no longer checked by configure script.
should not be needed when building from tarball
2012-11-24: 2.1.4
fix: making ssh custom port changes work with ssh and rsync
2012-11-23: 2.1.3
fix: fixed 2 crash conditions due to failure to read 'uSettings'
2012-11-03: 2.1.2
fix: added excludeFrom to checkgauge (thx to DavidWittman)
fix: fixed rsync option computation
enhancement: added password_file file option to rsync
2012-10-27: 2.1.1
fix: fix rsync.rsh, rsync.rsync_path, rsync.tmp_dir, rsync._extra parameters
thanks go to Birger Schmidt for this fix.
2012-10-23: 2.1.0
fix: fail startup if settings.inist is false and one of the target hosts fails
fix: in case of waiting for processes during restart only logs this state now once a minute
rather than filling the log crazy about it
enhancement: rsyncOpts has been replaced by rsync = {...} parameter lists
enhancement: default.rsyncssh has now a ssh = {...} parameter similar to default.rsync to
add option to ssh calls. Ditto for xargs = {...}
enhancement: the default.* implementations have a checkgauge erroring on any unknown
parameters to the sync{} call
enhancement: the delete parameter now takes: true, false, 'running' and 'startup'
improvement: Dennis Schridde provided various improvements for Lsyncd's autoconf building
change: Lsyncd is now Lua 5.2 compatible
change: Lsyncd now exits with exitcode 143 on TERM signal
change: settings is now be used as call like settings{...} instead of settings = {...}
2012-04-04: 2.0.7
fix: closed a memory leak due to not correct configured weak tables
fix: default.direct, do not use on OSX unrecognized option -t on modify
fix: default.direct, typo leading to compile error
fix: when using settings.inotifyMode = "Modify" events were longer ignored
fix: layer 3 function generator was messed up.
change: now uses a2x to generate the manpage (thus more compatible across distros)
change: removed --with-default-runner since it was broken, and will be replaced by something
more generic in future
2012-02-16: 2.0.6
fix: no longer stops syslogging on HUP signals
fix: OSX event watcher no longer misses moves into and out of the watch tree
fix: not refinding a relative path to the config file in case of HUP.
fix: rsync doing error 13 and killing Lsyncd.
see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=659941
fix: no event creation during shutdown (might loop before)
fix: no logging due to wrong log levels
fix: without-inotify compile option now works to compile on OSX
fix: in case of HUP-reset imply insist=true, since startup is known to be
configured correctly.
fix: a series of typos in comments, manpage etc.
fix: moves to and from deleted directories (deleted when Lsyncd gets notified)
were not correctly translated
fix: added --ignore-errors to rsync when deleting files, so it will not miss a delete
even when another part of the tree made an IO-error.
fix: default.direct now not using -p for mkdir since if the dir is not there it should fail
fix: default.direct now not using -t for cp since OSX binutils doesn't understand it
fix: some files might have been missed in splitting move events (especially on tests on OSX)
change: complain if any "rsyncOps" is given
change: splitted the default configurations in their own files.
more cleanly seperated from the Lsyncd runner, and highlights it are just
Layer 1 configurations that happen to be provided by default.
change: Beautified the code, no extra spaces at line end, ' instead of ",
supposing 100 char width to view,
change: Lsyncd now remembers the absolute path of its config file during HUPs
enhancement: Defaults now respect a 'delete=false' flag when set as parameter to sync{}
default.rsync: does not add --delete to rsync
default.rsyncssh: does not add --delete to rsync, and does not use rm via ssh tunnel
default.direct: does not add --delete to startup rsync and does not use rm
2011-08-25: 2.0.5
fix: Lsyncd will now terminate if it inotify watching exceeds
its preset limit.
fix: rsync error exit code 12 now results in retries.
fix: Lsyncd 2.0.5 should now compile better on a bit elder
GNU/Linux versions.
fix: examples are now installed in the configured document directory.
fix: partial transfers during startup are considered ok. Lsyncd will
rework the specified files anyway.
change: Layer 1 interface init() now receives an "Init" event instead
of an inlet.
change: builtin Lua code is now loaded via a c-array.
Now more portable and correct memory flags are set.
change: Lsyncd will now bail on unknown error codes.
enhancement: settings.maxProcesses can now be set as a global limit
of childprocesses
enhancement: Lsyncd will refuse to start when any startup rsync
does not work cleanly and returns "again" unless settings.insist or
--insist is specified, then Lsyncd will keep retrying until it works.
enhancement: option "rsyncBinary" determines which rsync Lsyncd calls.
Default is "/usr/bin/rsync"
enhancement: fsevents ("inotify for OSX") fixed for Snowleopard.
and is available to configure by default.
enhancement: settings.inotifyMode: the actualy Modification event
Lsyncd reacts to can now be configured. Default is to react on
file closing in write mode.
enhancement: readdir(path) is available to userscripts, reads the contents
of a directory.
2011-03-27: 2.0.4
enhancement: new setting options logident, logfacility
fix: moving filenames with spaces through ssh
fix: excludes containing chars % $ ( ) . [ ] + -
fix: various typos
change: api, settings.statusInterval instead of settings.statusIntervall
2011-02-25: 2.0.3
enhancement: new default target --direct using /bin/ binaries
to keep to local dirs in sync (and by default
not preserving ownership)
example: added a new example how to remotely execute a command
after each rsync operations
fix: possible crash with long rsyncOps table exceeding lua stack.
fix: excludes now properly match relative and absolute paths
fix: call to nil function when manually adding blanket delays
fix: on ReiserFS not delivering proper dir stats and when encountering
a symlink, aquire the node stat for the symlink instead from
the linked node.
change: leave lua apichecking enabled by default.
2011-01-20: 2.0.2
fix: exclude rules not terminated with '/' now match a file
or dir named exactly the same not starting with.
fix: pass exclude rules to the startup sync
fix: when matching exclusion to not add inotify use same
partial path than on syncs
fix: properly close pipes that needed more than one write.
2011-01-11: 2.0.1
fix: write pidfile after daemonize()
fix: fixed weak tables that allowed garbage collector to collect
event lists too eraly.
improvement: allow multiple arguments as table for rsyncOps
change: added OSX fsevents interface, disabled in autoconf by default
since still very experimental and limited to OSX 10.5 only.
2010-12-02: 2.0.0
a complete recoding!
change: format of command line arguments changed completly.
improvement: the config files format is not LUA instead of XML
allowing a range from easy configuration up until
complete scripts
enhancement: difference actions on different kind of events
effents are combined logically.
enhancement: allow moves to moved on the target (rsyncssh)
enhancement: excludes now allow simple file patterns (?, * and **)
enhancement: optionally there is now a statusfile
improvement: multiple target queues do not interfer with each other
improvement: Lsyncd2 will no longer wait for child processes to return
the monitor queue is constantly empties as long Lsyncd runs
improvement: Lsyncd2 can now retry operations on network failure and
queue events up.
improvement: There are now several debugging categories that can be
turned on individually.
change: manpage is now written in asciidoc
change: most more complex logic of Lsyncd is now written in Lua.
2010-10-04: 1.39
enhancement: call action for multiple targets simultanously
fix: correctly accept <file-filter/> from config xml
fix: correctly close and free the inotify file descriptor in case of restart
due to HUP signal or OVERFLOW condition
fix: when delay=0 a bug always called rsync file filter even when in
directory mode
2010-09-01: 1.38
enhancement: implemented file filters for singular operations
enhancement: added --singular parameter for single file calls
fix: fixed --dryrun messages
improvement: now restarts on an inotify OVERFLOW message, just like if
being kill -HUPed
internal: printout the actual binary called when --debug specified
2010-08-05: 1.37
enhancement: react on HUP signals (interpreted as complete restart)
enhancement: inotifies are configureable
enhancement: --no-startup skips the startup calls
fix : fixed delayed blocking handling.
improvement: made logging output better readable
internal: made all global variables local
internal: renamed "tackles" to "delays"
internal: removed the need of the "tosync" stack
internal: use more pointers instead of indexes
2010-07-11: 1.34
fix: logging segfault on 64bit systems
changed: man page location, spellings
2010-06-05: 1.33
fix: exlude file argument passing to rsync
fix: allow exlude files specified for individual sources
fix/enhancement: exlusions will be compared with extended
path files allowing sub dirs to be excluded.
enhancement: allow delays and call aggregation
2009-01-05: Release of lsyncd 1.26
fix: segfault on multitargets
changed meaning of "version" tag in lsyncd.conf.xml
2008-12-14: Release of lsyncd 1.25
fix: mv dir and cp -r working
fix: working with reiserfs
enhancement: config files
enhancement: multiple targets
enhancement: pidfiles
optimized: memory usage
improved documentation
lots of smaller stuff here and there ...
Thanks to all contributers!
2007-12-05: Release of lsyncd 1.0