This reverts commit ec7eb74366.
With the symbol prefix renamed from gdbus into bdbus, we can install
the lib into /usr/lib/syncevolution again, to get it shared between
the "syncevolution" and "syncevo-dbus-server" binaries.
The previous solution of linking Bluex gdbus statically was not
enough. On Fedora 14, compile errors due to the glib header files
being pulled in indirectly appeared.
This patch does a global search/replace which changes the
"gdbus" (GLib D-Bus) prefix into "bdbus" (Bluez D-Bus). For the
record:
perl -pi 's/g_dbus_/b_dbus_/g; s/GDBus/BDBus/g; s/GDBUS/BDBUS/g' ...
Currently the configuration name for a new config is the
fingerPrint and it overwrites any existing configuration.
This commit starts using deviceName as the base name and adds a
incremental number to the end if a configuration already exists
for that name.
ZYB.com will be replaced with Vodafone 360, which we don't support (yet).
This patch removes the obsolete template for ZYB.com. The sync-UI still
has some strings for it, just in case that someone has an old template
around or runs it against an old syncevo-dbus-server.
The redundant charset specification was set by the Funambol
Thunderbird client. Because of a literal comparison against
'application/vnd.syncml+xml' the messages were rejected.
This patch strips everything after a semicolon. None of the options
there should matter for SyncML.
Using the GNOME keyring should be optional. Right now it is always on when
found.
--enable-gnome-keyring: fail if not available or invalid value given
--disable-gnome-keyring: disable, even if found
unset: use if found
SyncEvolution on FC 13 crashes because it conflicts with a different
system version of the gdbus library. Always linking statically fixes
this.
There never was an official upstream release of gdbus, so sharing the
implementation does not work.
"find" reports files in a filesystem dependent order. Added "sort"
to make that order deterministic, which minimizes changes when
comparing source distribution archives.
When running operations on a non-peer configuration (like --restore @default
addressbook), the operation fails with
[ERROR] <source name>: type 'select backend' not supported
The root cause is that the "type" property was read from a virtual, empty peer
node. MultiplexConfigNode already handled this by falling back to the non-peer
node.
The same special case also needs to be added to SyncSourceNodes::getNode().
Conflicts:
po/de.po
po/es.po
po/it.po
po/ja.po
po/ru.po
Translations were updated independently, leading
mostly to conflicts because of line number changes.
The .html version should have been only installed, not distributed
as part of the source:
dist_doc_DATA => doc_DATA
That broke when using "make dist" without --enable-doc.
Updated spec-to-docbook.xsl and the documentation in the .xml
files to improve formatting (added lists and paragraphs).
Added README explaining how this formatting works.
The updated spec-to-docbook.xsl no longer produces <reference>
elements in its output, which broke mergepages.xsl. Replaced
with some shell commands which concatenate the <refentry> elements
in a larger <reference> element with a title that also includes
the version.
Cross-references between the different APIs would be nice,
but don't work with the current spec-to-docbook.xsl (because
it only processes one API at a time?). Perhaps merge original
.xml files into one, then produce documentation? Nope, didn't
work. Seems that spec-to-docbook.xsl can only handle one interface
per file.
'--enable-doc' configure option is newly added to control
generation of API documentation for backend public API
and D-Bus API. The default value is 'no'.
D-Bus API html documentation could be generated and all
pages(currently 3 docbook files) are merged into one single
html page called 'syncevo-dbus-api-doc.html'. To dynamically
generate 'version' of syncevolution into the html page, a placeholder
'##VERSION##' is used and changed in the generation.
As reported by Peter Robison, the source code no longer compiles on
Fedora Core 13. The root cause is a name collision of a static
function with the previously defined system call sync().
Nightly testing shows that itodo20::testItems, a test which must have
passed in the past, now fails because the COMPLETED property is lost
on the server. It is definitely sent.
Disabling testing of this property for Funambol.
Our valgrind suppression for a libical internal error did not
longer match because it included a long call stack. Simplified
the callstack to the one inside libical and the one level
inside SyncEvolution. This one location has been checked and
definitely is not our fault - other locations might be, so
don't suppress the error there.
4 cases in LogDirTest classes are failed due to logging ouput
missing. The root cause is that the 'session' function in LogDirTest
sets the top logger as 'INFO' level and thus the testing output of
'DEBUG' info can't be written in the log file. Thus nightly testing
can't check the result.
The solution is to save the logging level before creating a new session
and restore it again when completion.
Found by valgrind: the cost function is called with indices just
outside the array, causing it to read unitialized (and potentially
unavailable) memory.
Calling it like this is intentional, as the original LCS algorithm
works like that. The cost function has to map access outside of the
array to the cost at the boundaries. It also has to handle empty
arrays.
When an exception occurred inside TestDBusSession.testSecondSession,
the timeout wasn't removed and would fire sometime later. If the
original problem was "server died", then the timeout code would
try to detach and cause another exception, which then stopped
the whole test-dbus.py run because it triggered outside of a test's
catch block.
This patch solves this by always removing the timeout in a "finally"
clause.
This problem is specific to SyncEvolution running as HTTP server:
when a second session is requested, SyncContext::analyzeSyncMLMessage()
creates a second sync session that is active temporarily instead
of the main one. This is necessary to detect when the same peer
connects again.
The static m_sourceListPtr was not reset properly by that function,
causing the main session to fail later on when reading it. This patch
solves the problem by making m_sourceListPtr a normal member of
SyncContext and relying on m_activeContext instead to find the current
source list.
When an application name is set (as introduced for client-test
by some recent changes), testing against "** (process:" as glib
prefix is insufficient, because "process" will be replaced by
the actual application name.
This was detected by the unit tests. This patch fixes the problem
by relaxing the glib testing (check for "** (" prefix and " **:")
and extends the unit test.
If (and only if) compiled with --enable-evolution-compatibility (as
the binaries on syncevolution.org), libical was only pulled into the
syncevo-dbus-server as part of running a sync. That was too late for
libsynthesis, which had already checked for libical earlier in that
sync session.
All following sync sessions then used libical time zone information.
The effect of not having libical time zone information were occasional
mismatches of time zones.
If the source type is 'calendar+todo' type, XML spec doesn't allow
'+' in the element tag. Thus the current solution is to replace
'calendar+todo' with 'calendar_todo'.
But this is not a good choice. Instead, escaped strings are used.
"_" is escaped to "__". "+" is escaped to "_-".
So firstly escape these 2 characters when generating nightly xml
documents and then unescape them when generating nightly html page.
When logdir can't be accessed, SyncContext handles the error and returns
an error status and command line only returns a false flag. So D-Bus
server has to handle the 'false' flag and throws an exception to
indicate this error to clients.
When combining calendar and todo into one source, phone config has
2 problems:
1) don't generate correct 'evolutionsource=calendar,todo' for the source
2) It should disable 'calendar' and 'todo' sources instead of 'calendar+
todo'. It's an obvious bug.
Now the tool can generate correct config for Nokia 7210c.
sync-ui can't create correct config for nokia s40 series phone
because config.ini doesn't include 'calendar+todo' source.
Add it now and then the config is correctly used to sync.