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