As mentioned by Tino Keitel on the mailing list, some libs and
executables were only implicitly linked against libraries that they
called directly. This happened to work by chance because these libraries
ended up in the running executable anyway, due to indirect loading.
To catch such problems, the "make installcheck" was extended:
dpkg-shlibdeps is run, if available, and the error output is scanned
for the messages which indicate that a symbol is used without linking
to the right library (example output below).
Had to fix quite a few _LIBADD lines to pass the test.
Some exceptions are allowed:
- libsmltk depends on the caller providing SySync logging support.
- libneon is intentionally not linked explicitly for syncevolution.org
binaries, to make resulting binaries work with GNUTLS and OpenSSL.
dpkg-shlibdeps: warning: debian/syncevolution-libs/usr/lib/syncevolution/backends/syncdav.so contains an unresolvable reference to symbol icalparameter_new_from_value_string: it's probably a plugin.
dpkg-shlibdeps: warning: 51 other similar warnings have been skipped (use -v to see them all).
...
dpkg-shlibdeps: warning: symbol dlsym used by debian/libsyncevolution0/usr/lib/libsyncevolution.so.0.0.0 found in none of the libraries.
dpkg-shlibdeps: warning: symbol dlerror used by debian/libsyncevolution0/usr/lib/libsyncevolution.so.0.0.0 found in none of the libraries.
dpkg-shlibdeps: warning: symbol dlopen used by debian/libsyncevolution0/usr/lib/libsyncevolution.so.0.0.0 found in none of the libraries.
Nightly builds with --enable-doc tended to fail occassionally due to
download errors of the current docbook XSL from SourceForge. Using
a local copy of those files avoids that problem, speeds up compilation
and gives us some control over potentially incompatible changes
in the upstream docbook XSL.
The HTML version of the .log files links to ClientTest.cpp.html,
colorizes important parts and links to the sync session
directories.
Because it is much more useful than the plain text version, the
nightly.html now links to these .html files.
ClientTest.cpp.html is built with Python pygments if installed,
otherwise some builtin fallback code is used.
All but toplevel Makefile.am are replaced with their non-recursive
counterparts. The generation of configure.in was removed (and thus
configure-{pre,post}.in are also removed) in favor of configure.ac
and m4 macros adding backend specific configure parts.
Version number is generated like in old build system.
There are still many things to improve, but for now there are no
immediate regressions. AUTOTOOLS-TODO contains a list of possible
improvements and fixes. AUTOTOOLS-TESTING contains what was tested
with current build system (configure flags, make options).
If patch fails, let caller resolve it manually before continuing. Can
happen if the imported history includes branches and merges with merge
conflicts.
These XML config fragments constitute the bulk of what can
be shared between different apps built on the Synthesis engine.
The rest is very app specific (like datastores, paths, version, etc).
When separating file names from arguments with --, git log accepts parameters
which stand for files which are not under git control (yet). This is
necessary in import-foreign-git.sh when new files are getting added to
an existing branch.
"git show-ref" printed two hashes, one for the local branch and one
for the remote branch. This broke the rest of the script. We want
only the local branch hash, which is what the "--heads" option is for.
The import-synthesis-xml.sh script mirrors all changes made to
syncclient_sample_config.xml on the libsynthesis master branch
on a "synthesis" branch, with the file itself moved into src
alongside our own syncevolution.xml.
update-copyright.sh can be used to add copyright remarks for the current
year. It finds the authors who made a change in each file and adds/updates
their copyright remark. Intel employees are grouped under "Intel Corporation".