These two options must be part of VALGRIND_ARGS is non-default
values are desired. Previously --leak-check=yes and --trace-children=no
were always set by the script, which is too inflexible.
Add README.zyb file for ZYB interoperability test and
customize specified test cases for ZYB.
Now ZYB only supports contacts(vcard2.1). Now all test
cases of contacts are passed.
Some properties in vcard21 are dismissed by ZYB server.
So we ignore them in synccompare:
CALURI, CATEGORIES, FBURL, NICKNAME, X-MOZILLA-HTML,
PHOTO, X-EVOLUTION-FILE-AS, X-ANNIVERSARY,
X-ASSISTANT, X-EVOLUTION-BLOG-URL, X-EVOLUTION-VIDEO-URL,
X-GROUPWISE, X-ICQ, X-MANAGER, X-SPOUSE, X-YAHOO, X-AIM
ZYB may send mismatched anchors though
there is no mistake between two syncs. If client
checks anchor, then a slow sync will be initiated.
So, synthesis adds an element 'lenientmode' in
'remoterule' to provide capability of disabling
or enabling anchors checking. Disable this kind
of checking for ZYB.
Mobical has a known server issue that it initiates a
slow sync when one client syncs with it in one-way-from-client
mode from the second time.
Because Mobical has no schedule on this, we skip this
test for Mobical interoperability test.
The command line did not read the global defaultPeer property unless
it found an existing context. This is an unnecessary optimization,
reading from an non-existant context yields no properties except
perhaps for defaultPeer, so we can do that and get the correct
result with and without a context.
Jussi mentioned that he didn't get defaultPeer when reading a
template. Added TestMultipleConfigs.testSharedTemplate to verify
that, but it passes without issues.
This patch allows a user to read and write the single "defaultPeer"
property in ~/.config/syncevolution/config.ini even when selecting
a peer which has a legacy config in ~/.config/syncevolution/<name>.
This is more convenient and ensures that the sync-UI works correctly
even in those cases where the legacy config cannot (or has not) been
migrated.
It works by adding multiplexing of properties to the HTTP_SERVER case
and then using a separate global config node.
Really, really old configs in .sync4j/evolution do not share the
defaultPeer property, but I think this is acceptable.
Broke while adding support for shared configs. We didn't have a test
for it, therefore this went unnoticed. I have added a test for it
(CmdlineTest::printFileTemplates) and fixed the issue (using the wrong
file layout for templates).
The test depends on having access to installed templates in a known
location, which previously was a problem due to the hard-coded
TEMPLATE_DIR. Now SyncContext::createServerTemplate() checks an env
variable (SYNCEVOLUTION_TEMPLATE_DIR) which is set by most of the
command line tests to prevent reading from there unintentionally and
once to "./templates" to ensure reading from there.
Adding
to the comment of "type" tripped up the Cmdline test,
which scans for lines which look like default property
values.
Rephrased the comment to avoid that, by removing the
"evolutionsource" keyword and the assignment.
Since introducing shared configs, the default value of "sync" is
"none", so that peers which happen to share a source not configured
for them do not accidentally use it.
The code which prepared templates had not been adapted, breaking the
Cmdline test. Now an unset sync property is set to "two-way" for all
four default data sources, just like it was set before.
File templates can still set a specific source to some other default,
like "sync = none".
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...
This depends on peer/context awareness in the code which looks for
the old config and renames it. If the old config is not in the same
context as the new one, it is searched by peer name alone. This
works for all old-style configs as well as rewriting a peer inside
the same context.
Without copying this directory, using the migrated configuration will
lead to a slow sync.
SyncEvo::CmdlineTest::testMigrate was extended to cover this problem.
Manually testing shows that the slow sync is indeed avoided with
this change.
The goal of this function is to copy the .synthesis directory
from one config into another. Therefore it only supports directories
and plain files. It is not very intelligent (no copying of a file
into a directory).
After merging the "phone" branch, incoming SyncML messages
were no longer replied to properly. The code always ignored
the available message and replied with a SAN message. Now
the code checks for server mode *and* availability of incoming
data before generating a SAN.
GetConfig(template=false) is meant to check for existance of the
corresponding config, except in one case: "@default" is excempt
from that check so that a GUI can read the "defaultPeer" property
in all cases, including one where only some other context exists.
The check for this was too liberal and also allowed reading
non-existant configs *inside* the default context, like
"no-such-config". Found by running test-dbus.py.
On 32 bit, %lu is not a proper formatter for size_t. Casting
the value to (unsigned long) to avoid this kind of problem
without causing it on 64 bit (as %u would).
"make distcheck" failed because it didn't include the new
C++ binding header files. Fixed by including them in the
files which need to be installed in /usr/include, just like
the rest of gdbus does it.
move initSAN from sync() to doSync()
It was once designed to put initSAN as early as possible to reduce
unnecessary resource if client does not respond (automatic sync).
However it lost the signal handling. Let's move it to doSync() at
the moment and come out the other solution for automatic sync later.
Timeout handler was not registerd for the transport, fixed.
"x-calendar" was a typo.. However, to be backward compatible we will
accept both "x-vcalendar" and "x-calendar".
The configuration example is change to "x-vcalendar" to educate new users
to use "x-vcalendar".
ObexEvent which wraps an underlying OBEX event source is expected to
be released during ObexTransportAgent class destructing or during
wait() where we copied it to the local stack.
The assumption was: wait() is called after each send(). This is not
correct for SyncML server case. Therefore later shutdown() sets up a
new ObexEvent and overwrites the old one without releasing the resource.
This may also occurs if user calls send(), send() without calling wait()
in between (Rarely, though).
The solution is to check explictly whether m_obexEvent already wraps a resource
before assigning a new value to it.
As Nokia phone stores calendar and todos in one datastore, we need to utilize
synthesis superdatastore to handle this case. A virtual SyncSource is introduced
which has a backend type "virtual" and its local database path points to a list
of sub syncsources. The virtual syncsource is maintained by SyncSourceList and
used to generate appropriate synthesis superdatastore configuraitons.
unescapeJoinedString is introduced to parse a comma seperated list of sub
syncsources. At this time, the configuration is fixed to work with
"calendar+todo" case.
Nokia phone (S40, 7710c) does not accept the null content type.
SyncSource::getPeerMimeType is added for this purpose, each backend
implementation can provide a MimeType used for sync by default. For
TrackingSyncSource based backend implementations it maps to getMimeType
directly.
Previously, the log file name was hard-coded inside libsynthesis and
changed between libsynthesis release (sysynclib_linux.html ->
sysynclib_uni_linux.html) without SyncEvolution being able to notice
or control this.
Now the file name is set by SyncEvolution. This depends on an
up-to-date libsynthesis with the "filename" configuration option.
remoteDevId must be user-visible, because it is necessary to configure
it in advance when the peer is an HTTP SyncML client.
Also updated several property documentation strings. We have to
explain how they apply when the local side acts as SyncML server
and/or OBEX is involved.
Reports returned to dbus clients are not what we
expect. Many keys are not included.
Current keys in dictionaries are conforming to
those in SyncML.cpp. They are defined formally in
BNF to be more accurate.
For statistics related reports, if value is 0,
it won't be put in the dictonaries to save time
and space.
Also refresh the unit test of GetReports in
test-dbus.py to make it successful.
Append CouchDB address books at the end of the list,
otherwise preserving the order of address books.
The reason is Moblin Bugzilla #7877 (aka CouchDB
feature request #479110): the initial release of
evolution-couchdb in Ubuntu 9.10 is unusable because
it does not support the REV property.
Reordering the entries ensures that the CouchDB
address book is not used as the default database by
SyncEvolution, as it happened in Ubuntu 9.10.
Users can still pick it intentionally via
"evolutionsource".