#617320 syncevolution: Fails to sync with evolution "Cannot get cal from factory: Invalid source"

Package:
syncevolution
Source:
syncevolution
Description:
Sync personal information data via SyncML/CalDAV/CardDAV (CLI)
Submitter:
Ken Bloom
Date:
2021-11-29 06:00:04 UTC
Severity:
important
#617320#5
Date:
2011-03-08 01:54:14 UTC
From:
To:
SyncEvolution fails to sync with my Evolution calendar, it gives me
the following error on the command line:

[ERROR] Error allocating calendar

Synchronization failed, see /home/bloom/.cache/syncevolution/funambol-2011-03-07-19-50/syncevolution-log.html for details.

And the log file is attached.

(Some quick googling suggests that this bug is related to
https://bugzilla.gnome.org/show_bug.cgi?id=638080)

#617320#10
Date:
2011-03-08 17:29:24 UTC
From:
To:
I discovered that SyncEvolution 1.1+ds1 is still linked against
various libs from Evolution 2.30.3. When I upgraded SyncEvolution to
1.1.1a and rebuilt against Evolution 2.32.2 (the current unstable).

To work around bug #615263, I added -lsmltk to the end of CORE_LDADD
(line 115) in src/Makefile-gen.am.

#617320#13
Date:
2011-03-08 23:52:56 UTC
From:
To:
Thanks for the followup.  If you could try Debian version 1.1.99.3+ds1-1
(just uploaded to experimental) to see if it works for you, that would be
helpful.

d

#617320#18
Date:
2011-03-11 02:56:48 UTC
From:
To:
the upgrade process:

First, the new syncevolution doesn't have a versioned dependency on
libsynthesis0 and libsmltk0, so I had to upgrade those separately.

Second, I had to kill syncevo-dbus-server and restart it in order for
things to work. I'm not 100% certain about why I needed to do either of
those things, but here's my take:

I hadn't run syncevolution today before upgrading. (That means I hadn't
run it since the last time I powercycled the computer)

aptitude install -t experimental syncevolution

I tried to run syncevolution -- and an error message with lots of XML
I remembered I needed to migrate the configuration. (You need to make
this automatic somehow.)
I tried to run syncevolution again -- same error message with lots of
XML

aptitude install -t experimental libsynthesis0 libsmltk0,

I tried to run syncevolution again -- same error message with lots of
XML

kill syncevo-dbus-server

I ran syncevolution again, and this time I succeeded.

The only thing I can think of is that the first time I ran synceovlution
after the upgrade, it started the new syncevo-dbus-server with the old
libsynthesis0, with which it's incompatible. It didn't actually pick up
the new libsynthesis0 (even after I installed the new version) until I
killed syncevo-dbus-server so that it could start again linked to the
new version.

The moral of the story: I think you need a versioned dependency on
libsynthesis0 and libsmltk0, you need a way to kill syncevo-dbus-server
after the upgrade, and you need a way to automatically migrate the
configuration.

#617320#21
Date:
2011-03-11 02:56:48 UTC
From:
To:
the upgrade process:

First, the new syncevolution doesn't have a versioned dependency on
libsynthesis0 and libsmltk0, so I had to upgrade those separately.

Second, I had to kill syncevo-dbus-server and restart it in order for
things to work. I'm not 100% certain about why I needed to do either of
those things, but here's my take:

I hadn't run syncevolution today before upgrading. (That means I hadn't
run it since the last time I powercycled the computer)

aptitude install -t experimental syncevolution

I tried to run syncevolution -- and an error message with lots of XML
I remembered I needed to migrate the configuration. (You need to make
this automatic somehow.)
I tried to run syncevolution again -- same error message with lots of
XML

aptitude install -t experimental libsynthesis0 libsmltk0,

I tried to run syncevolution again -- same error message with lots of
XML

kill syncevo-dbus-server

I ran syncevolution again, and this time I succeeded.

The only thing I can think of is that the first time I ran synceovlution
after the upgrade, it started the new syncevo-dbus-server with the old
libsynthesis0, with which it's incompatible. It didn't actually pick up
the new libsynthesis0 (even after I installed the new version) until I
killed syncevo-dbus-server so that it could start again linked to the
new version.

The moral of the story: I think you need a versioned dependency on
libsynthesis0 and libsmltk0, you need a way to kill syncevo-dbus-server
after the upgrade, and you need a way to automatically migrate the
configuration.

#617320#24
Date:
2011-03-11 14:35:12 UTC
From:
To:
It sounds like we need to go back to forcing the versions of
libsynthesis and libsmltk like we used to; somehow the compatability of
these libraries is not very well reflected by the SONAME/set of symbols.

At the moment upstream (hi Patrick!) explicitly makes the migration
manual because it isn't backward compatible. Perhaps the next
stable upstream release will have a smoother migration path.

I don't know of a clean way to have the package upgrade process restart
a bunch of user processes. This seems to be a bit dangerous in general
in a multi-user environment.  I'm open to suggestions, but for the
moment the best I can think of is to add a message to NEWS.Debian.

d

#617320#29
Date:
2011-03-11 17:21:49 UTC
From:
To:
He changes the configuration so that you don't *downgrade* without
having to do some manual stuff to make the downgrade work. I'm not sure
that's a reason not to automatically update the configuration on
upgrade.

One could solve the problem by making the new version of syncevolution
put a version number in its DBUS interface (just like they've been
discussing doing with Evolution, which broke its DBUS interface) -- then
the new SyncEvolution *can't* call the old DBUS service.

I would also speculate the old dbus service will still work properly
(assuming one didn't migrate the configuration) so long as you didn't
make the mistake of loading the old dbus service with the new
libsynthesis.

#617320#32
Date:
2011-03-11 17:21:49 UTC
From:
To:
He changes the configuration so that you don't *downgrade* without
having to do some manual stuff to make the downgrade work. I'm not sure
that's a reason not to automatically update the configuration on
upgrade.

One could solve the problem by making the new version of syncevolution
put a version number in its DBUS interface (just like they've been
discussing doing with Evolution, which broke its DBUS interface) -- then
the new SyncEvolution *can't* call the old DBUS service.

I would also speculate the old dbus service will still work properly
(assuming one didn't migrate the configuration) so long as you didn't
make the mistake of loading the old dbus service with the new
libsynthesis.

#617320#35
Date:
2011-03-11 18:58:29 UTC
From:
To:
Well, maybe you could discuss this with upstream. It isn't the kind of
change I'm likely to undertake as a debian maintainer.

All the best,

David

#617320#40
Date:
2011-03-11 19:48:45 UTC
From:
To:
I admit that I don't know enough about DBUS to know whether this is
the solution (or even whether we have a real problem here). I don't
think I have the expertise to raise it with anyone myself.

#617320#45
Date:
2011-03-12 11:56:53 UTC
From:
To:
I already bumped the libtool versioning (admittedly after releasing
1.1.99.3), but that alone is probably not enough, because the soname
stays libsynthesis.so.0. David, please add a minimum version to
SyncEvolution.

My only explanation for that is out-dated libsynthesis. More recent
SyncEvolution uses XML elements not supported by the older libsynthesis.

It will be automatic in the next stable SyncEvolution release. In the
current pre-releases it is not, because I don't want to get users who
are unaware of the config rewriting into a state where they don't know
how to downgrade.

Yes, that's also my interpretation.

Agreed. David, I believe there are ways to restart daemons in Debian
(think glibc security update) - can you investigate how that could be
applied to SyncEvolution updates?

#617320#48
Date:
2011-03-12 11:56:53 UTC
From:
To:
I already bumped the libtool versioning (admittedly after releasing
1.1.99.3), but that alone is probably not enough, because the soname
stays libsynthesis.so.0. David, please add a minimum version to
SyncEvolution.

My only explanation for that is out-dated libsynthesis. More recent
SyncEvolution uses XML elements not supported by the older libsynthesis.

It will be automatic in the next stable SyncEvolution release. In the
current pre-releases it is not, because I don't want to get users who
are unaware of the config rewriting into a state where they don't know
how to downgrade.

Yes, that's also my interpretation.

Agreed. David, I believe there are ways to restart daemons in Debian
(think glibc security update) - can you investigate how that could be
applied to SyncEvolution updates?

#617320#53
Date:
2011-03-12 12:02:44 UTC
From:
To:
I would have to introduce a "restart as soon as possible" feature. A
hard-kill during a sync wouldn't be very nice, and not restarting would
prevent further automatic syncing.

That won't help, because it would keep the old syncevo-dbus-server
running, if automatic syncing is enabled. Those sync attempts then will
fail.

No, it will use the old libsynthesis (loaded during process startup) and
incompatible XML files from current SyncEvolution (loaded during each
sync).

#617320#56
Date:
2011-03-12 12:02:44 UTC
From:
To:
I would have to introduce a "restart as soon as possible" feature. A
hard-kill during a sync wouldn't be very nice, and not restarting would
prevent further automatic syncing.

That won't help, because it would keep the old syncevo-dbus-server
running, if automatic syncing is enabled. Those sync attempts then will
fail.

No, it will use the old libsynthesis (loaded during process startup) and
incompatible XML files from current SyncEvolution (loaded during each
sync).

#617320#61
Date:
2011-03-12 13:21:03 UTC
From:
To:
Hi Patrick;

As far as I know, the daemons restarted are system daemons, started
through /etc/init.d/blah. They therefore have mechanisms in place (e.g
pid files) to restart them.  The obvious mechanism to restart
syncevo-dbus-daemon is via dbus. I suppose it would be possible to send
a message from the install process via the system dbus session, but it
would need support on the application side, and I don't know what the
security implications would be.  Maybe some real dbus expert can think
about this?

All the best,

David

#617320#66
Date:
2011-07-23 16:43:54 UTC
From:
To:
Hi,

a new version was uploaded to experimental. If you can test this, it
would be nice to know if all of your issues are fixed.

Regards,
Tino

#617320#69
Date:
2011-07-23 16:43:54 UTC
From:
To:
Hi,

a new version was uploaded to experimental. If you can test this, it
would be nice to know if all of your issues are fixed.

Regards,
Tino

#617320#74
Date:
2019-08-25 00:50:57 UTC
From:
To:
Dear submitter,

as the package syncevolution has just been removed from the Debian archive
unstable we hereby close the associated bug reports.  We are sorry
that we couldn't deal with your issue properly.

For details on the removal, please see https://bugs.debian.org/935239

The version of this package that was in Debian prior to this removal
can still be found using http://snapshot.debian.org/.

This message was generated automatically; if you believe that there is
a problem with it please contact the archive administrators by mailing
ftpmaster@ftp-master.debian.org.

Debian distribution maintenance software
pp.
Scott Kitterman (the ftpmaster behind the curtain)

#617320#87
Date:
2021-11-29 05:57:05 UTC
From:
To:
This bug has likely been fixed in the last decade, please check
syncevolution version 2.0.0-3 from Debian testing/bookworm or later.
If you still have the same issue, please report it upstream and let us
know the URL of the new upstream issue.

https://syncevolution.org/support