[SyncEvolution] TDEPIM sync questions

deloptes deloptes at gmail.com
Fri Feb 5 13:26:26 UTC 2016


Patrick Ohly wrote:

> On Wed, 2016-02-03 at 20:05 +0100, deloptes wrote:
>> Hi to all @syncevolution, sorry for bothering you, but I hope one could
>> save me some digging by answering my questions.
>> I thank you in advance for the patience and support.
>> 
>> 1.
>> I have an item uid: libkcal-1629736449.222
>> which is returned by syncevolution (--print-items)
>> as urlencoded libkcal-1629736449%2e222
>> 
>> Is this on purpose and why?
> 
> Internally, item uids can be arbitrary strings. For use in shell
> scripting, the command line tool escapes "unsafe" characters when
> printing them and unescapes them when parsing parameters.
> 
> So yes, it is intentional. Whether a dot should be considered safe is
> debatable.

Understood - thanks - just needed confirmation.

> 
>> 2.
>> How are the sources/databases handled - example if I have 3 calendars
>> (1default, 1 read only and 1 custom). Imagine I set the custom or the
>> default as inactive or active - how would this influence the sync?
> 
> I'm not sure I follow. Do you mean you have a sync configuration and
> then change the sync mode of one datastore set to "none"? It'll be
> ignored when running a sync for that sync configuration.

I try to explain. I have calendar datastore with 3 databases : 1 is the
default (my calendar), 2 is holidays (read only) 3 is custom calendar.

I'm not sure what happens when I try to sync with my phone. Would all
databases be pushed to the default calendar in the phone? For this I would
just disable 2 and 3 and let only 1 active. The plugin ignores the
databases which are not active and provides the items from the active only
for sync. 
Now in regards to your comment - does it mean I have to configure explicitly
the database I want to sync. 
This also delivers few possible scenarios if a database was configured (and
was active) but for some reason the user would have deactivated it. what
happens

example --print-databases
TDE PIM Calendar = TDE PIM Events = tdepim-calendar:
        resource (kOBUWNvG42) <default>
        feiertage (uZzNwmwG32) <read-only>
        custom (xYggAVX5Bu) 

In this case syncevolution would sync resource + custom - correct?
Or it should be explicitly configured - this is a bit confusing from the
documentation on the other plugins I could read so far.

Now imagine it was configured for sync:
 - what would happen on the other side - does resource+custom go into one
calendar and if what happens when I sync back.
 - what if I would deactivate custom


> 
>> 3.
>> About the platform support.
>> Is this also picked up by the engine automatically ?
>> I saw something about KDE in the sync src code as well.
>> I would like to implement similar functionality with the tdewallet - it
>> sounds like nice feature to have when dealing with passwords, but I need
>> some hint here as I was not able to understand from the kde code what
>> exactly has to be done, so that syncevo can cope with it.
> 
> The platform modules themselves just register themselves when loaded by
> hooking into the callbacks provided by the core libraries. For example,
> KDEPlatformRegister.cpp hooks into the password handling via the boost
> signal returned by GetLoadPasswordSignal().
> 
> Then KWalletLoadPasswordSlot() itself decides whether it is active.
> UseKWallet() has some comments about the logic for that.
> 
> Basically that is what you need to replicate.

Ok thanks - I assume it is not a precondition for the plugin to work

> 
>> example
>> 
>> info.m_backendRule = "KDE";
> 
> That is not related to password handling. It is what a datastore uses to
> configure the conversion from the internal data format into the vCard
> "dialect" used by the store.
> 
> In this example, src/syncevo/configs/datatypes/01vcard-profile.xml has
> conditional rules that are only active in the "KDE" case.
> 

Thanks, but perhaps I should take care of that as well, because KDE is
successor of what is now TDE. I need to check if KDE can be reused or I
should have own version.

>> 4.
>> My last question is related to the problem I described earlier. When
>> compiled as shared I get the backend registered twice. When I compile
>> static it shows up once. I do have different descriptions in the
>> registerMe function and in the createSource function.
>> Should I post those functions here?
> 
> That may help.
> 
> Have you tried what I suggested, i.e. removing one of your two shared
> modules and checking how that affects the result?
> 

Yes I did, but it did not help - I removed all (so,a,la) for the addressbook
but calendar/todo/tasks showed up.

I tried with function implementation and looked into the cal/cardDav - liked
the class function impl, but still same result. I attach it here in a txt
file


-------------- next part --------------
A non-text attachment was scrubbed...
Name: register_func.txt
Type: text/x-c++src
Size: 3502 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/syncevolution/attachments/20160205/ff92bc49/attachment.c>
-------------- next part --------------
_______________________________________________
SyncEvolution mailing list
SyncEvolution at syncevolution.org
https://lists.syncevolution.org/mailman/listinfo/syncevolution


More information about the SyncEvolution mailing list