OpenSync 0.34 Release Notes

Yet another experimental OpenSync release for developers, testers and this time especially for packagers. Late as usual, but OpenSync 0.40 is coming more closer.

I would like to thank Felix Möller, who is helping a lot with cleaning up the still reaming tickets. Alban Browaeys who is doing a very nice job in improving our xmlformat in the quality of comparing and provided us an initial draft for vjournal support.

We changed, once again, the build environment. This time it's CMake. It's recommend to build out of the source, since we don't test in build source builds:

mkdir -p build/libopensync;
cd build/libopensync;
cmake -DCMAKE_INSTALL_PREFIX=/your/prefix/ /path/to/opensync/source/
make
make install

For 64bit systems you should add -DLIB_SUFFIX=64

cmake -DLIB_SUFFIX=64 -DCMAKE_INSTALL_PREFIX=/your/prefix/ /path/to/opensync/source/

If you're building OpenSync in a separated location, you should set PKG_CONFIG_PATH as usual so the plugins find your opensync build in this custom location.

For further information about CMake you should check:

We're all new to CMake, if you're more experienced about CMake, our even one of the developers, please give us some feedback what could be done in a better way. We provide some CMake Macros to make the build environment of the as easy as possible. For example: OPENSYNC_PLUGIN_ADD(), OPENSYNC_FORMAT_ADD(), OPENSYNC_ADD_TEST() and OPENSYNC_PACKAGE().

Next steps:

  • Solve plain and xmlformat-$objtype-doc detectors issues
  • Review OpenSync API
    • Shrink OpenSync API
    • " (12) In protocol design, perfection has been reached not when there is nothing left to add, but when there is nothing left to take away." - [RFC1925], OpenSync isn't a protocol, but i guess this fits as well.
  • Discuss if we should split helpers like time format, hashtable and so on which aren't used by the OpenSync core, in to a separated shared library. Those helpers are more likely to get changed in future.
  • Prepare facilities for update process from 0.40 to further versions.
  • Versioning of OpenSync shared directories, like descriptions, schemas and capabilities directories and plugin directories.
  • Common XSD for all plugins(?)
  • Finish vformat plugin and fix the XSD Schemas of XMLFormat-*:
    • Review and add vjournal
    • Testing cases are building again, but non of the unit tests pass to 100%, we should fix them.
    • Write two-way-converter testcase which test user supplied vformat files
  • Our unit test framework is great and very important! But still three testcases are failing:
    • time_unix_converters
      • looks like one of the testcase can only run in a certain timezone ;)
    • engine_sync_stress
      • stress test timeouts (at least on my slow machine) we should do some performance profiling. Maybe we can tweak the osync_obj_engine_initialize() call or call it with osync_engine_initialize() so the mapping table don't have to be loaded on every osync_engine_synchronize() call. Another thing is the archive - the sqlite calls take a lot. There is even one call which makes use of a sub-select which have to get rid of.
    • client_run
      • testcase times out - looks like the testcase is broken - client process isn't able to disconnect correctly - looks like yet another HUP signal problem.
  • Improve our unit tests with the help of code coverage
  • Cleanup bug tickets
    • Felix Möller is doing already a very nice job. If you have a ticket which is still open, please review if you still can review this with 0.34.
  • Testing, testing and testing
  • Add capabilities support for plugins
  • Testing, testing and testing
  • Make a major release 0.40

Released tarballs can be found at, this time including .tar.gz as well: http://www.opensync.org/download/releases/0.34/