When specifying a source type with a trailing '!',
syncevolution sets a force-format flag, which means
forcing to use the client's preferred format instead
giving the engine and server a choice to use it.
Funambol Server gets lost some properties of icalendar2.0:
'URL', 'ATTENDEE', 'RECURRENCE-ID'
The parameter 'CN' of the property 'ORGANIZER' is lost by server.
Also, it adds a new property 'REPEAT'.
Funambol server has a length limitation for 'DESCRIPTION' property. If item is larger
than the limitation, the rest part will be lost. Add the environment variable
"CLIENT_TEST_MAX_ITEMSIZE" to allow controlling this size
Funambol server could support icalendar2.0 but prefer vcalendar1.0. Under this circumstance,
it would like to force syncevolution to use icalendar2.0 instead of vcalendar1.0
Add README.funambol for funambol interoperability test information. These include Funambol
server information, desired test types, known properties got lost by server, known failures
Five properties are missed by Funambol, so synccompare doesn't compare these
properties. These include UID, SEQUENCE, TRANSP, LAST-MODIFIED, X-EVOLUTION-ALARM-UID.
In two places a string variable was passed where a format specifier
was expected. That only works as long as the string contains
no %, so replaced with "%s", string.
For each of the four entities that a backend might want to add (field
lists, profiles, datatypes, remote rules) a hash is kept which can
be updated by the virtual EvolutionSyncSource methods which are
called while assembling the information for the XML config (getSynthesisInfo(),
getDatastoreXML()).
This information is then subsituted in the right places of the
XML config template, in the right order.
1) Restric SOUP transport polling only when transport is active
2) Move singal handler to EvolutionSyncClient to make it avaliable also for
syncevo-dbus-server
3) Change to new version signal system call
4) fix a bug in SoupTransport: abort the soupsession when the transport is
aborted
1) add a signal handler to process CTR+C signal
2) update the logic in EvolutionSyncClient accordingly
3) modify transport, detect user abort while it is busy waiting
the keyring changes stupidly assumed base_url will be defined in
in_server_config_for_template_cb(), which is not true when defining
new services.
Fixes#3934
server_config has booleans 'changed' and 'auth_changed' to represent
user changes in the settings window. The former wasn't being set when
only the password was changed so "-" did not get written into
syncevolution config.
Fixes reopened#2430
Both EvolutionSyncSource::backupData() (implemented for the memo source
in the TrackingSyncSource base class) and Client::Source::text::testImport
must dump items in the native format, the one which is used for restore
and for the test cases. See Bugzilla #3967 and #3929.
This broke during the 0.9 development cycle, but wasn't detected during
automated testing because the necessary tests weren't enabled for
the "text" source until recently.
Now createItem() is passed a hint what the desired format is. "raw"
is used for backup and testing.
Also removed obsolete exportData() call in EvolutionCalendarSource.
This was used before introducing the newer backupData() call.
The test failed because it showed duplicate X-MANAGER/... properties.
This was a result of adding those a few commits earlier. Now synccompare
checks whether there are such redundant properties and removes
them.
Without that method most of the tests couldn't be done and combined
tests (Client::Sync::vcard30_ical20_itodo20_text::testCopy) failed
with an assertion.
All of the predefined tests share the same methods, so moved them
into the general section. Backends which need something else have
to override the defaults or unset them, if nothing works.
Makefile had Perl elsif instead of bash elif (didn't matter,
elif branch wasn't needed). syncevolution.xml
was replaced syncclient_sample_config.xml (fatal error).
src/gtk-ui had BUILT_SOURCE files which "make dist" tried
to generate even if the necessary tools where not available.
The generated files also must not be listed as
normal source of the binary, for the same reason.
Using WBXML reduces message sizes and increases parsing performance.
It was not enabled initially in the 0.9 releases in order to test
this new feature more thoroughly.
Old configs don't have an explicit enableWBXML setting and therefore
will automatically use the new default.
The Funambol server has a known issue with WBXML:
https://forge.ow2.org/tracker/index.php?func=detail&aid=313729&group_id=96&atid=100096
When creating new configs for it, the default is overridden
and WBXML is disabled. Old configs should be updated accordingly,
just to be safe. The bug is unlikely to be triggered, but if it happens,
sync sessions fail completely.
These properties are supported in addition to, not instead of, the
traditional X-EVOLUTION- variants. This is done by sending both
property variants to a SyncML server and accepting both when parsing
a vCard. When parsing, X-EVOLUTION- takes precendency over the normal
X- one, which is only relevant in case that they differ.
This is necessary for Funambol, which added support for normal X-
variants in the 7.x server release. ScheduleWorld accepts both
and still works (tested).
One way to convert data differently on the SyncML and local DB side of the
field list (Bugzilla #2417) is via "remote rules" in the Synthesis engine.
Normally these rules are activated by matching against the peers device information.
This patch adds an rule named "EVOLUTION" which is activated on the Evolution
side by giving its name to the PARSE/MAKETEXTWITHPROFILE() macros.
This depends on an extended Synthesis library.
Got an undefined reference to C++ GNOME keyring functions
which in reality should have been plain C functions. Reason
was that /usr/include/gnome-keyring-1/gnome-keyring.h (from 2.24.1)
didn't have an 'extern "C"' declarations.
Adding those in our source code fixed that and should be safe,
because double nesting of it is safe and the header is
unlikely to contain real C++ declarations.
When working with the Funambol engine, 0 meant "default values",
which were reasonably large for message size and unlimited for object
size.
After migrating to Synthesis and enabling these limits again, 0 has
no special meaning and is rounded up to some very small numbers. These
limits were too small for some items, therefore the settings used by
tests by default were bumped up to 128KB for message size (should
keep the overall message number fairly small) and 1GB for individual
items (basically unlimited again).
The key difference between the two is that syncclient_sample_config.xml
is kept in sync with the corresponding file on the "synthesis" branch,
which is the unmodified copy of the corresponding file in the libsynthesis
repository.
It is still possible to put an XML file into the current directory
when running SyncEvolution, but now it has to be called
syncclient_sample_config.xml.
Only minor changes are introduced as part of this transition:
- some comment changes
- PERCENT-COMPLETE is now only used in iCalendar 2.0 (as it should be,
because it is not valid in vCalendar 1.0)
- added vtimezonegenmode and tzidgenmode settings as in upstream
config (shouldn't change our behavior)
The upstream config massages the (possibly relative) alarm times
so that they are always absolute on the client (?). In Evolution
we don't need and don't want this, as Evolution is able to handle
all kinds of alarm specifications itself, so removing these script
instructions.
Multiple EXDATEs in the same property are encoded differently
in iCalendar 2.0 and vCalendar 1.0. ScheduleWorld had a problem
with this (bugzilla.moblin.org #2226) for a while. As other
peers might have similar issues, we accept all kinds of
encodings when parsing items and always generate several EXDATE
properties with one value each when encoding.
Added URL and X-EVOLUTION-ALARM-ID (both vCalendar 1.0 and iCalendar 2.0)
plus several standard iCalendar 2.0 properties. In contrast to vCard,
SyncEvolution is strict with standard compliance here: none of the
iCalendar 2.0 properties are enabled in vCalendar 1.0.
The upstream config declares the WEB field (maps to URL) as "url",
which has the effect that the http:// prefix is added if none
is present.
Evolution does not enforce a particular format nor does it depend on
one. If a user decides to enter a plain string, that's how it should
be synchronized => turned WEB into normal string field.
The upstream Synthesis config removes a DESCRIPTION if it
is identical with the SUMMARY and then writes an empty DESCRIPTION
property.
SyncEvolution reverts that logic: an empty DESCRIPTION is set
to the SUMMARY. That's more in line with how Evolution works.
Also, libical is unhappy about such empty properties, so don't encode
them if empty (which shouldn't happen, though).