Skip to content

Releases: deajan/osync

This is it

15 Jun 22:29
Compare
Choose a tag to compare

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.

long time lost

07 Jul 09:01
Compare
Choose a tag to compare

This is hopefully the last git tag before releasing osync v1.3.
The only thing missing is some tests on MacOS X.

osync v1.3-beta3 "bigbash"

22 May 17:25
Compare
Choose a tag to compare
Pre-release

Basically the same as beta2, with minor fixes among:

  • Config file upgrade script fixes
  • Fixes for running with Win10 1809 bash (breaks 1607 beta version, yeah... Nothing I can do about that)

osync v1.3-beta2 "bigbash"

20 May 22:10
Compare
Choose a tag to compare
Pre-release

It's been another while since the last osync beta release.
I think the code is pretty stable for most linux distributions now, so I've decided to release another beta, which will be the last before OS compatibility tests and documentation updates needed for an RC release.

I'd love anyone to give me feedback on this version in order to make a final release happen sooner.

This beta brings the following new features:

  • New --sync-type option that allows to use osync as unidirectional sync tool
  • New osync target helper service that notifies initiator osync service when target has file modifications
  • Better --summary output

Other changes:

  • Config file now uses booleans (but yes/no syntax is still allowed)
  • Config file revision is now checked
  • Config file update script has been updated

Bug fixes:

  • Fixed race conditions in parallel executions
  • Multiple fixes when dealing with spaces in filenames, especially in deletion code
  • A lot of minor fixes in the ofunctions library
  • Multiple installer and batch fixes

osync v1.3-beta1 "bigbash"

08 Aug 09:44
Compare
Choose a tag to compare
Pre-release

It's been awhile since a new osync release, and the code should be good enough to go beta now.
Testers are welcome.

The branch 1.3 brings the following new features

  • Logging of conflictual files, with email alerts
  • New --initialize option in order to prepare deletion lists before actually synching anything
  • OpenRC support
  • Multiple portability enhancements
  • Lots of smaller bugfixes (see CHANGELOG)
  • Better OS detection

Under the hood improvements

  • Really improved timed execution function with numerous enhancements
  • Improved unit testing
  • Better security for log files not being readable by other users

Bug fixes

  • Summary file for deletions is now correct
  • Fixed filenames ending with spaces not being synchronized correctly
  • Fixed deletions on systems with ssh banners
  • Fixed daemon mode under FreeBSD
  • Installer fixes

osync v1.2 beyond

25 Mar 13:49
Compare
Choose a tag to compare

After ten month of developpment, I'm proud to announce the release of osync v1.2 "beyond"

Big thanks to all contributors and testers for their involvement and time.

This release introduces some major new features, a lot of fixes and minor tweaks among:

  • Speed improvments

    • Most of all initiator and target actions are now parallelized
    • Remote calls have been refactored to reduce the amount of calls and time needed
    • Various speed optimizations
    • Sync resume process has been rewritten in order to exclude more unnecessary checks
    • Faster remote OS detection
    • Unlock functions are no longer launched if locking failed
  • Core improvements & fixes

    • More preflight checks before execution
    • Refactored soft deletion handles errors better
    • Support for various symlink options
    • New output modes (ex: --summary, --errors-only, --no-prefix)
    • Remote authentication now also accepts ssh password files
    • Simplified batch runner
    • Allow optional rsync arguments directly in config file
    • Resumed executions won't send alert emails anymore because failed executions already do (unless too many resume tries)
    • Prevented a rare collision issue when earlier runs had same PID as actual run in debug mode
    • Fixed daemon mode didn't enforce exclusions
    • Fixed directory ctime softdeletion (has also been backported to v1.1.5)
    • Fixed remote commands could also be run on local runs which obviously fails
    • Fixed proper symlink deletion routine
    • By default rsync algorithm won't try to compress some specific already compressed file extensions anymore
    • Added skip deletions option
    • Added options to ignore permissions, ownership and groups
  • Security improvements & fixes

    • Brand new ssh filter improving remote connection security
    • Improved privilege elevation on remote SUDO_EXEC runs
  • Compatibility improvements & fixes

    • Deeper unit and program testing
    • Major code rework in order to make osync way more portable on different platforms
    • Busybox / Android has finally been added to supported systems
    • MacOSX has been added to supported systems
    • FreeBSD 11 has been added to supported systems
    • Windows 10 bash has been added to supported systems
    • Toolchain is now compatible with more platforms
    • Preserve ACLs and XATTR are ignored depending on OS support
    • Added monitoring capability to FreeBSD and MacOS X
  • Developpment specific improvements & fixes

    • More paranoia mode checks
    • Added include-like functionnality making easier dev versions using bootstrap.sh script
    • Refactored most of fork controlling & process killing code
  • Misc additions and fixes

    • Better email support on various platforms
    • Alert sending is now more readable and less noisy
    • Added sendmail support
    • Improved logging with UTF-8 filenames resulting in multibyte logged characters
    • Improved installer script
    • Fixed sync can hang when internet failure is detected
    • Fixed installer statistics didn't report OS version
    • Spinner is less prone to move on screen log output
    • Improved upgrade script sanity
    • Huge list of other improvements (see changelog file)
  • Distro specific improvements

    • Added RPM file suitable for RHEL / CentOS / Fedora
    • Added PKGBUILD file for ArchLinux

osync v1.2-RC3 "beyond"

10 Feb 10:57
Compare
Choose a tag to compare
Pre-release

Yeah ! This pre-release is production ready

Quick fixes for new ssh_filter related installs (doesn't affect non ssh_filter users):

  • Security fix for where log files would contain _REMOTE_TOKEN value if command fails
  • Uninstall script now checks if other programs need ssh_filter.sh before removal

osync v1.2-RC2 "beyond"

08 Feb 15:50
Compare
Choose a tag to compare
Pre-release

Next final release should only add updated documentation and RPM spec file.

This new release candidate of next osync comes with the following improvements:

  • Improved optional ssh filter for more security on remote connections
  • Improved optional sudo privilege remote run
  • Installer has new --remove option

And fixes:

  • Optional mail body encoding option to work around mail being sent without UTF-8 header
  • Fixed escaped UTF-8 log lines because of LC_ALL=C in script
  • Minor tweaks and fixes

osync v1.2-RC1 "beyond"

13 Dec 19:47
Compare
Choose a tag to compare
Pre-release

This is the first release candidate of next osync.
With particular emphasis on maximal compatibility with most environments, and HEAVY testing.
Codename is beyond because this is beyond normal complexity of bash scripts :)

Release highlights:

  • Faster execution by refactoring multiple remote connections into one
  • Forced remote system to execute bash instead of default shell
  • Better and simplified osync-batch runner
  • More complete testing framework
  • Lots and lots of bugfixes, most introduced by v1.2 rewrite
  • Updated documentation

This RC has been tested on CentOS 5, 6, 7, Debian 8, Mint 18, MacOSX Sierra, FreeBSD 11, pfSense/FreeBSD 10.3, Cygwin x64 current, MSYS2 current and Win10 bash.

Beyond

18 Nov 09:00
Compare
Choose a tag to compare
Beyond Pre-release
Pre-release

[EDIT: Due to a blocker bug, this tag has been updated from 18 Nov to 19 Nov]

This beta release has the following release highlights:

  • Busybox / Android support (work is still in progress)
  • New --summary switch and --errors-only, which combined give a better user experience in quicksync mode
  • Hugely improved unit testing
  • Added support for skipping deletion on initiator, target or both
  • Added support for SSH password file (caution about security here)
  • Overall improved speed

Most importantly, the unit tests have been backported to v1.1 and led to resolve a couple of bugs that were present in both branches, see changelog for details.

Next pre-release will be RC and will focus on documentation and multi-platform testing.