12018-03-09: 2.2.3
2	enhaencement: supporting includes with new filter and filterFrom options
3	change: needing now at least Lua 5.2 (Lua 5.1 no longer supported, Lua5.3 supported)
4	change: if the target/targetdir ends with a ':' do not append
5			a trailing '/' to it, since that would change it from homedir to rootdir!
6	add: example for Amazon S3 Bucket (Daniel Miranda)
7	fix: setting stdout/stderr to linebuffer mode.
8	fix: Lua5.3 compatiblity, using load() instead of loadstring()
9	fix: cmake lua detection, will resort to "lua" and "luac" binaries only if
10	     more specific suffixes (e.g. luac5.3) are not available
11	fix: test suit, Lua5.3 compatibility (table.unpack)
12
132017-02-16: 2.2.2
14	fix: checkgauge 'insist'
15	fix: no partial path exlusion tests
16	fix: write pid of forked process in pidfile
17	fix: crash on not reachable target
18	workaround:
19		changed back to filter style rsync calling
20		until https://bugzilla.samba.org/show_bug.cgi?id=12569
21		is fixed and released.
22
232017-01-05: 2.2.1
24	enhancement: now always using filter lists with rysnc
25		instead of include/exclude lists taking advantage of the new --delete-missing-args
26		parameter to delete files on target.
27		>>> Thus Lsyncd 2.2.1 needs rsync >= 3.1.0
28	change: added "tests" make target to run all the tests.
29	fix: crash due to typo in changed ^path, ^pathdir, ^pathname
30
312017-01-04: 2.2.0
32	enhancement: add rsync options:
33		"append",
34		"append_verify",
35		"backup",
36		"backup_dir",
37		"chmod",
38		"chown",
39		"copy_dirlinks",
40		"existing",
41		"groupmap",
42		"omit_dir_times",
43		"omit_link_times",
44		"suffix,"
45		"usermap",
46	enhancement: settings{ } now checks for unknown entries and errors if so.
47	change: Level3 scripts ^path,^pathdir and ^pathname now don't start with a slash.
48	change: Lsyncd now writes a startup log message before daemonizing
49		does in case logging fails, it is recognized before it cannot
50		message anything about it, since it deamonized
51	change: compatible with Lua5.3 (along with 5.1 and 5.2)
52	change: _verbatim forced for 'exitcodes' entry.
53	change: manpage is not rebuild by default.
54		it is provided precompiled.
55	change: faulty/deprecated config files that use settings = { ... }, with equal sign
56		are no longer worked around.
57	change: default.direct now calls copy with -p
58	fix: potential race conditions:
59		 default.rsyncssh will now channel deletes also through rsync and treats moves
60		 as blocking events.
61	fix: ']' is not escaped for rsync rules, since rsync only applies
62	     doesn't applie pattern matching if no other pattern chars
63		 are found.
64	fix: Shell injection hole close for default.direct on mv commands. (Marcin Szewczyk)
65	fix: Crash of default-direct when source doesn't exit (Michael Ploujnikov)
66	fix: fixed faulty event replacement,
67	     a race condition noticed by extensive default.rsyncssh testing
68	     changed Delays were not reflected in Events
69
702015-10-15: 2.1.6
71	enhancement: Lsyncd now locks its pidfile
72	enhancement: added ssh.identifyFile and ssh.options options
73	enhancement: added rsync inplace option
74	fix: ignore blank lines and rsync commenits in exclude files (David Reiss)
75	fix: don't tread exclude lines with embedded "+" chars as inclusions (David Reiss)
76	fix: crash when debugging inotify (Michael Ploujnikov)
77	fix: fixed Finished/Retrying error messages being swapped around (Jun Saito)
78	fix: properly encapsulate filenames on ssh mv commands to avoid shell command injections.
79	fix: postcmd example (Timo Teräs)
80	change: closes also on INT signals
81	change: now removes its pidfile on INT and TERM signals
82	change: changed build system from autotools to cmake
83
842013-06-07: 2.1.5
85	enhancement: Added rsync options: bwlimit, timeout
86	fix: Specifying ssh port no longer overwrites the last rsync option
87	fix: rsync option password_file is now accepted
88	fix: onAttrib is accepted again
89	fix: -log Exec now prints now fully all arguments
90	fix: configure script lua detection now includes math lib to workaround
91	     wrongly created "needs COMPAT_ALL" messages.
92	fix: repaired variable replacement for layer 3 scripts
93	fix: config.delay is now checked to a number >= 0
94	change: a2x is no longer checked by configure script.
95			should not be needed when building from tarball
96
972012-11-24: 2.1.4
98	fix: making ssh custom port changes work with ssh and rsync
99
1002012-11-23: 2.1.3
101	fix: fixed 2 crash conditions due to failure to read 'uSettings'
102
1032012-11-03: 2.1.2
104	fix: added excludeFrom to checkgauge (thx to DavidWittman)
105	fix: fixed rsync option computation
106	enhancement: added password_file file option to rsync
107
1082012-10-27: 2.1.1
109	fix: fix rsync.rsh, rsync.rsync_path, rsync.tmp_dir, rsync._extra parameters
110		 thanks go to Birger Schmidt for this fix.
111
1122012-10-23: 2.1.0
113	fix: fail startup if settings.inist is false and one of the target hosts fails
114	fix: in case of waiting for processes during restart only logs this state now once a minute
115	     rather than filling the log crazy about it
116	enhancement: rsyncOpts has been replaced by rsync = {...} parameter lists
117	enhancement: default.rsyncssh has now a ssh = {...} parameter similar to default.rsync to
118	             add option to ssh calls. Ditto for xargs = {...}
119	enhancement: the default.* implementations have a checkgauge erroring on any unknown
120	             parameters to the sync{} call
121	enhancement: the delete parameter now takes: true, false, 'running' and 'startup'
122	improvement: Dennis Schridde provided various improvements for Lsyncd's autoconf building
123	change: Lsyncd is now Lua 5.2 compatible
124	change: Lsyncd now exits with exitcode 143 on TERM signal
125	change: settings is now be used as call like settings{...} instead of settings = {...}
126
1272012-04-04: 2.0.7
128	fix: closed a memory leak due to not correct configured weak tables
129	fix: default.direct, do not use on OSX unrecognized option -t on modify
130	fix: default.direct, typo leading to compile error
131	fix: when using settings.inotifyMode = "Modify" events were longer ignored
132	fix: layer 3 function generator was messed up.
133	change: now uses a2x to generate the manpage (thus more compatible across distros)
134	change: removed --with-default-runner since it was broken, and will be replaced by something
135	        more generic in future
136
1372012-02-16: 2.0.6
138	fix: no longer stops syslogging on HUP signals
139	fix: OSX event watcher no longer misses moves into and out of the watch tree
140	fix: not refinding a relative path to the config file in case of HUP.
141	fix: rsync doing error 13 and killing Lsyncd.
142		see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=659941
143	fix: no event creation during shutdown (might loop before)
144	fix: no logging due to wrong log levels
145	fix: without-inotify compile option now works to compile on OSX
146	fix: in case of HUP-reset imply insist=true, since startup is known to be
147		configured correctly.
148	fix: a series of typos in comments, manpage etc.
149	fix: moves to and from deleted directories (deleted when Lsyncd gets notified)
150		were not correctly translated
151	fix: added --ignore-errors to rsync when deleting files, so it will not miss a delete
152		even when another part of the tree made an IO-error.
153	fix: default.direct now not using -p for mkdir since if the dir is not there it should fail
154	fix: default.direct now not using -t for cp since OSX binutils doesn't understand it
155	fix: some files might have been missed in splitting move events (especially on tests on OSX)
156	change: complain if any "rsyncOps" is given
157	change: splitted the default configurations in their own files.
158		more cleanly seperated from the Lsyncd runner, and highlights it are just
159		Layer 1 configurations that happen to be provided by default.
160	change: Beautified the code, no extra spaces at line end, ' instead of ",
161		supposing 100 char width to view,
162	change: Lsyncd now remembers the absolute path of its config file during HUPs
163	enhancement: Defaults now respect a 'delete=false' flag when set as parameter to sync{}
164		default.rsync:    does not add --delete to rsync
165		default.rsyncssh: does not add --delete to rsync, and does not use rm via ssh tunnel
166		default.direct:   does not add --delete to startup rsync and does not use rm
167
1682011-08-25: 2.0.5
169	fix: Lsyncd will now terminate if it inotify watching exceeds
170		its preset limit.
171	fix: rsync error exit code 12 now results in retries.
172	fix: Lsyncd 2.0.5 should now compile better on a bit elder
173		GNU/Linux versions.
174	fix: examples are now installed in the configured document directory.
175	fix: partial transfers during startup are considered ok. Lsyncd will
176		rework the specified files anyway.
177	change: Layer 1 interface init() now receives an "Init" event instead
178		of an inlet.
179	change: builtin Lua code is now loaded via a c-array.
180		Now more portable and correct memory flags are set.
181	change: Lsyncd will now bail on unknown error codes.
182	enhancement: settings.maxProcesses can now be set as a global limit
183		of childprocesses
184	enhancement: Lsyncd will refuse to start when any startup rsync
185		does not work cleanly and returns "again" unless settings.insist or
186		--insist is specified, then Lsyncd will keep retrying until it works.
187	enhancement: option "rsyncBinary" determines which rsync Lsyncd calls.
188		 Default is "/usr/bin/rsync"
189	enhancement: fsevents ("inotify for OSX") fixed for Snowleopard.
190		and is available to configure by default.
191	enhancement: settings.inotifyMode: the actualy Modification event
192		Lsyncd reacts to can now be configured. Default is to react on
193		file closing in write mode.
194	enhancement: readdir(path) is available to userscripts, reads the contents
195		of a directory.
196
1972011-03-27: 2.0.4
198	enhancement: new setting options logident, logfacility
199	fix: moving filenames with spaces through ssh
200	fix: excludes containing chars % $ ( ) . [ ] + -
201	fix: various typos
202	change: api, settings.statusInterval instead of settings.statusIntervall
203
2042011-02-25: 2.0.3
205	enhancement: new default target --direct using /bin/ binaries
206	             to keep to local dirs in sync (and by default
207				 not preserving ownership)
208	example: added a new example how to remotely execute a command
209	         after each rsync operations
210	fix: possible crash with long rsyncOps table exceeding lua stack.
211	fix: excludes now properly match relative and absolute paths
212	fix: call to nil function when manually adding blanket delays
213	fix: on ReiserFS not delivering proper dir stats and when encountering
214	     a symlink, aquire the node stat for the symlink instead from
215		 the linked node.
216	change: leave lua apichecking enabled by default.
217
218
2192011-01-20: 2.0.2
220	fix: exclude rules not terminated with '/' now match a file
221	     or dir named exactly the same not starting with.
222	fix: pass exclude rules to the startup sync
223	fix: when matching exclusion to not add inotify use same
224	     partial path than on syncs
225	fix: properly close pipes that needed more than one write.
226
2272011-01-11: 2.0.1
228	fix: write pidfile after daemonize()
229	fix: fixed weak tables that allowed  garbage collector to collect
230	     event lists too eraly.
231	improvement: allow multiple arguments as table for rsyncOps
232	change: added OSX fsevents interface, disabled in autoconf by default
233	        since still very experimental and limited to OSX 10.5 only.
234
2352010-12-02: 2.0.0
236	a complete recoding!
237
238	change:      format of command line arguments changed completly.
239	improvement: the config files format is not LUA instead of XML
240	             allowing a range from easy configuration up until
241				 complete scripts
242	enhancement: difference actions on different kind of events
243	             effents are combined logically.
244	enhancement: allow moves to moved on the target (rsyncssh)
245	enhancement: excludes now allow simple file patterns (?, * and **)
246	enhancement: optionally there is now a statusfile
247	improvement: multiple target queues do not interfer with each other
248	improvement: Lsyncd2 will no longer wait for child processes to return
249	             the monitor queue is constantly empties as long Lsyncd runs
250	improvement: Lsyncd2 can now retry operations on network failure and
251	             queue events up.
252	improvement: There are now several debugging categories that can be
253	             turned on individually.
254	change:      manpage is now written in asciidoc
255	change:      most more complex logic of Lsyncd is now written in Lua.
256
2572010-10-04:  1.39
258	enhancement: call action for multiple targets simultanously
259	fix: correctly accept <file-filter/> from config xml
260	fix: correctly close and free the inotify file descriptor in case of restart
261	     due to HUP signal or OVERFLOW condition
262	fix: when delay=0 a bug always called rsync file filter even when in
263	     directory mode
264
2652010-09-01:  1.38
266	enhancement: implemented file filters for singular operations
267	enhancement: added --singular parameter for single file calls
268	fix: fixed --dryrun messages
269	improvement: now restarts on an inotify OVERFLOW message, just like if
270	             being kill -HUPed
271	internal: printout the actual binary called when --debug specified
272
2732010-08-05:  1.37
274	enhancement: react on HUP signals (interpreted as complete restart)
275	enhancement: inotifies are configureable
276	enhancement: --no-startup skips the startup calls
277	fix : fixed delayed blocking handling.
278	improvement: made logging output better readable
279	internal: made all global variables local
280	internal: renamed "tackles" to "delays"
281	internal: removed the need of the "tosync" stack
282	internal: use more pointers instead of indexes
283
2842010-07-11:  1.34
285	fix: logging segfault on 64bit systems
286	changed: man page location, spellings
287
2882010-06-05:  1.33
289	fix: exlude file argument passing to rsync
290	fix: allow exlude files specified for individual sources
291	fix/enhancement: exlusions will be compared with extended
292	                 path files allowing sub dirs to be excluded.
293	enhancement: allow delays and call aggregation
294
2952009-01-05:  Release of lsyncd 1.26
296	fix: segfault on multitargets
297	changed meaning of "version" tag in lsyncd.conf.xml
298
2992008-12-14:  Release of lsyncd 1.25
300	fix: mv dir and cp -r working
301	fix: working with reiserfs
302	enhancement: config files
303	enhancement: multiple targets
304	enhancement: pidfiles
305	optimized: memory usage
306	improved documentation
307	lots of smaller stuff here and there ...
308	Thanks to all contributers!
309
3102007-12-05:  Release of lsyncd 1.0
311
312