Skip to content

This is it

Latest
Compare
Choose a tag to compare
@deajan deajan released this 15 Jun 22:29
· 28 commits to master since this release

Finally, a long awaited stable release of osync v1.3.

This release is packed with lots of features / fixes / enhancements, you name it.

  • Fix for newer RSYNC protocol
  • New options ALWAYS_SEND_MAILS to allow sending logs regardless of execution states
  • New option to use SSH_CONTROLMASTER in order to speed up remote sync tasks and preserve a single ssh channel
  • New option SSH_OPTIONAL_ARGS
  • Fixed a problem with macos mv not preserving ownership of files from /tmp
  • Fixed very long outstanding issue with special characters in remote target handling
  • Fixed an issue where STOP_ON_ERROR_CMD did not work anymore
  • Fixed a remote file lock problem (thanks to https://github.com/zhangzhishan)
  • Fixed various cosmetic issues with code and logs
  • Improved upgrade script
  • Fixed a possible bash buffer overflow when synchronizing large filesets (tested with 2M files)
    • This fix actually truncats every string sent to Logger not being more than 16KB
  • Fixed osync leaving temporary log files behind in RUN_DIR (/tmp by default)
  • Updated target helper service configuration file
  • Improved codacy results
  • Added more debugging
  • Fixed service logs being junked by spinner
  • Fixed MINIMUM_SPACE=0 didn't stop the disk space check anymore (Thanks to Val)
  • Fixed conflict file logs to be less verbose when no conflicts happen
  • Config file update script fixes
  • Removed old Win10 1607 bash fixes to make Win10 1809 work (breaks Win10 1607 beta bash version...Yeah, nothing I can do about that)
  • More --summary statistics
  • Config file syntax now uses booleans instead of yes / no (but still accepts old syntax)
    • Added boolean update in upgrade script
  • Config file revision check
    • Added config file revision in upgrade script
  • New option --sync-type=initator2target|target2initiator that allows using osync as rsync wrapper for unidirectional sync
  • New osync target helper service
  • Fixed multiple race conditions in parallel executions (which also fixes random conflict logs failures)
  • Fixed directory softdeletion bug
  • Fixed multiple failed deletions will be retried as many times as failures happened
  • Fixed remote running on FreeBSD for some commands, thanks to Vladimirek
  • Fixed (again) deletion propagation when file contains spaces (thanks to http://github.com/weinhold)
  • Deprecated --log-conflicts for 1.3 branch (is now experimental)
  • Updated ofunctions
    • Has better random number generator
    • IsInteger, IsNumeric and IsNumericExpand are now busybox compatible
  • Multiple installer fixes
  • Multiple batch fixes
  • Added an option to log conflictual files
    • Presence of conflictual files can trigger a special mail
  • New option --initialize (see #141)
  • Added OpenRC support (thanks to kozross, see #140)
  • Added --no-resume option in order to disable resuming execution on failure
  • Added basic performance profiler to debug version
  • Fixed summary for file deletions
  • Fixed an issue with filenames ending with spaces, their deletion not being propagated, and ACL / conflicts not being managed (still they got synced)
  • Fixed missing options passed to subprocess in daemon mode
  • Fixed bogus pgrep can lead to segfault 11 because of recursive KillChilds
  • Fixed osync deletion not working on systems with ssh banner enabled
  • Improved GetLocalOS and GetRemoteOS OS detection
  • Fixed GetRemoteOS missing GetConfFileValue preventing to get OS details from /etc/os-release
  • Fixed low severity security issue where log and run files could be read by other users
  • Merged Logger and QuickLogger for simplified usage
  • Fixed inotifyway error in FreeBSD (see #119)
  • Minor enhancements in installer / ofunctions
    • Added --prefix option for installer
    • Installer path fixes
    • Fixed logging bug with QuickLogger
  • Refactored time control and parallel execution functions into one single function
  • Multiple portability improvements
    • UrlEncode function is now Busybox compatible
    • IsInteger function is now Busybox compatible
  • Prevented non unique runtime filenames on some systems where no milliseconds exist
    • Fixed bogus runtime filenames on Busybox
  • Upgraded shunit2 test framework to v2.1.8pre (git commit 07bb329)
  • Multiple smaller fixes and improvements

I've not been very active on osync since a couple of years, as always, there's work, other (nicer) open source projets where I'm involved, etc...
Nevertheless, osync is what made me learn (and love/hate) bash ;)
I've finally managed to take some time to make github actions work, so I could tests running on all three OSes (yes, I know, there are more... but not supported on github and I do run those tests manually).
This was the last thing I wanted to fix before making a release.

The force of osync is and has always been statefulness, but I do think that a Python project would be quite easier to maintain.
I'll stick around here to handle bugs as always, but a 6000 liner bash script is big to maintain, and there won't be any major features... Since it looks quite feature complete.
Still, feel free to open issues for feature requests / bugs / whatever.