Bug 52731 - 1.0.1 fails to build without libsoup (I think)
Summary: 1.0.1 fails to build without libsoup (I think)
Alias: None
Product: SyncEvolution
Classification: Unclassified
Component: SyncEvolution (show other bugs)
Version: unspecified
Hardware: All All
: high normal
Assignee: Patrick Ohly
QA Contact:
Depends on:
Reported: 2010-09-07 01:45 UTC by SyncEvolution Community
Modified: 2011-06-22 21:58 UTC (History)
2 users (show)

See Also:
i915 platform:
i915 features:


Description Patrick Ohly 2012-07-29 18:36:00 UTC

---- Reported by matthijs@stdin.nl 2010-09-07 01:45:41 +0000 ----

Hi folks,

I've been having a build failure compiling 1.0.1 on an i386 Debian stable system. The (first) error was "invalid use of undefined type TransportAgent" or something similar in syncevo-dbus-server.cpp (I forgot to copy the full error, sorry). My analysis is that the file TransportAgent.h is not included in syncevo-dbus-server.cpp, while it does define a subclass of TransportAgent. syncevo-dbus-server.cpp does include SoupTransportAgent.h, which includes TransportAgent.h (but only when libsoup is enabled). Thus I suspect that this build failure only happens when building with libsoup disabled.

Here's a trivial patch that fixed compilation for me:

Index: syncevolution-1.0.1+ds1/src/syncevo-dbus-server.cpp
--- syncevolution-1.0.1+ds1.orig/src/syncevo-dbus-server.cpp    2010-09-07 10:23:29.000000000 +0200
+++ syncevolution-1.0.1+ds1/src/syncevo-dbus-server.cpp 2010-09-07 10:24:06.000000000 +0200
@@ -27,6 +27,7 @@
 #include <syncevo/LogRedirect.h>
 #include <syncevo/util.h>
 #include <syncevo/SyncContext.h>
+#include <syncevo/TransportAgent.h>
 #include <syncevo/SoupTransportAgent.h>
 #include <syncevo/SyncSource.h>
 #include <syncevo/SyncML.h>

---- Additional Comments From patrick.ohly@intel.com 2010-09-07 02:11:24 +0000 ----

Your analysis sounds plausible. I'll apply the patch.

But I'm not sure whether syncevo-dbus-server works well enough with libcurl as HTTP transport. When using libcurl, we block during HTTP POST. During that time the D-Bus daemon is unresponsive for D-Bus calls. With libsoup, we enter the main loop and continue to service D-Bus requests.

Or do you build syncevo-dbus-server to be used as HTTP server? In that case the HTTP library doesn't matter.

---- Additional Comments From matthijs@stdin.nl 2010-09-07 04:17:21 +0000 ----

I'm only using this particular version to run as http server, so I haven't had any problems yet. I didn't disable libsoup explicitly, it's just not installed (and apparently the Debian package doesn't list it as a build-dep. The official builds have libsoup enabled anyway, so I guess that on Debian unstable some other build-dep pulls in libsoup).

---- Additional Comments From patrick.ohly@intel.com 2010-09-07 08:04:26 +0000 ----

(In reply to comment #1)
> Your analysis sounds plausible. I'll apply the patch.

Applied to master. I won't put this into a 1.0.2 because it occurs only in unusual configurations and because 1.1 shouldn't be too far away.

--- Bug imported by patrick.ohly@gmx.de 2012-07-29 20:36 UTC  ---

This bug was previously known as _bug_ 6367 at https://bugs.meego.com/show_bug.cgi?id=6367

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.