The EDS backend was asking for glib support even when it was not
active. In combination with not linking against the right libs
in that case there was a link failure because g_thread_init()
and g_type_init() were not found.
When the EDS backend was active, this wasn't a problem because
the necessary libs were linked indirectly.
This patch reduces the number of libs that are checked and used
when not enabling the EDS backend. This is done by resetting
the ECAL/EBOOK flags when inactive and only asking for glib
when active.
It also fixes the checking and linking against gobject and gthread
in the case that glib support is requested.
More recent libtool versions contain a check that the
install dir doesn't deviate too much from the libdir
compiled into the libs. This check failed when the
chosen path ended with a slash, leading to:
libtool: install: error: cannot install `syncecal.la' to a directory not ending in ...
I consider this a bug in libtool and sent a bug report
together with a fix. In the meantime, let's avoid the
problem by not adding any redundant slash in our
path...
Two more functions which have to be intercepted to avoid hard
dependencies on libecal or libical.
Because this is something which is likely to come up again
in the future, this patch also adds a "installcheck-local" for
undesired dependencies on libical/ecal/ebook/edataserver.
This check is triggered when building binary packages by using
"installcheck" instead of "install". It intentionally checks
.so files in the build directory, to catch problems even in
libs which are not currently installed.
The path compiled into libsyncevolution.so when developer mode
was active was "backends/", so backends were only found when
running SyncEvolution inside that directory. This is a bit
too limiting. Now the absolute path is compiled in.
Install head files to a standard path, the remaining dependencies are
synthesis and boost
client-test is portable when ENABLE_MODULES is defined, no longer link to
backends libraries.
Add --enable-developer-mode, in which mode the backend scan path will be
under current build directory for development purposes.
syncevo-dbus -> src/dbus
interfaces -> src/dbus/interfaces
Files generated from D-Bus interfaces are only built once, in src/dbus/interfaces.
This is changes makes the code layout a bit nicer and, more importantly,
fixes build dependencies when Synthesis is compiled in src.
Now everything that is needed by a certain directory is in that directory
or a sub directory.
Configure didn't check correctly for "glib": it invoked glib-config
but didn't notice when that command was missing. Removed that
check as it has been superseeded by "glib-2.0" anyway.
Boost wasn't checked for at all, although the Boost header files are
no longer bundled.
libecal and libebook are now obligatory unless explicitly disabled.
This catches a common mistake made by users: previously syncevolution
would compile, but without Evolution support. The drawback is that
on platforms without Evolution, support for it now must be disabled
explicitly.
The new TransportAgent base class supports sending a message and waiting
for a reply. Implementations which block in either the send() (CurlTransportAgent)
or the wait() (SoupTransportAgent) call are possible.
The default implementation is compiled into libsyncevolution. configure
picks libsoup if available, otherwise libcurl. The default can be changed
via --enable-libcurl/libsoup, including not compiling any transport. Normally
that triggers a configure error because it leads to an unusable syncevolution
binary.
Derived EvolutionSyncClients can change the default via createTransportAgent().
The new EvolutionSyncClient::displaySyncProgress(),
displaySourceProgress() and displayServerMessage() calls
can be overridden to display information to the user.
The default implementation prints into the log.
PEV_DSSTATS_* statistics are saved in EvolutionSyncClient
and printed to the log after each sync.
The older askPassword() is also one of the virtual callbacks
This works by mapping all EDS symbols to pointers initialized via dlopen/dlsym.
Avoids version checks as intented, but might lead to runtime crashes if the ABI
of the required symbols really changes...
Currently the binaries refuses to start when any of the EDS libs is not found.
Need to make it work again so that libecal and libebook are optional (Maemo!).
git-svn-id: https://zeitsenke.de/svn/SyncEvolution/trunk@747 15ad00c4-1369-45f4-8270-35d70d36bdcd