On Wed, 2011-02-16 at 15:11 +0100, Patrick Ohly wrote: > I believe a user ran into issues with the migration of the .evolution > file layout - at least that is what I am seeing while trying to > reproduce the issue. I see "FAILED" remarks for the migration itself and > then calendar and contact factories are unhappy about "e_source_get_uri > () called on source with no absolute URI!" - see below. > > It seems related to https://bugzilla.gnome.org/show_bug.cgi?id=638080
FAILED messages during file migration is normal, believe it or not. The file migration is distributed across three different processes: evolution, e-addressbook-factory and e-calendar-factory. Each process migrates the files its responsible for at startup. But since we can't predict in which order the processes will run, all three of them try to remove old directories after running their own migration routines. Only the last process to run is expected to successfully remove directories. The migration routines are triggered by the existence of ~/.evolution. They also refuse to overwrite files and directories which are already in the new locations. So if the migration leaves unexpected files behind in ~/.evolution, or if ~/.evolution gets recreated somehow (such as by running an older Evolution release), you will also see FAILED messages on subsequent migration attempts. In this scenario the remaining files in ~/.evolution have to be cleaned up by hand. The URI messages are likely related to the fact that the URI scheme for local data sources changed in 2.32 to make the file migration possible. It went from something like: file:///home/mbarnes/.evolution/calendar/local/<<source-uid>> to simply: local:<<source-uid>> This change had to be accounted for in many places throughout Evolution and E-D-S and I think we missed a few in the initial 2.32 release (Milan Crha, I believe, fixed the remaining issues in 2.32.2). Another nasty side-effect of this change which I failed to realize until we shipped 2.32 was that it broke the D-Bus interfaces in a subtle way. If the address book and calendar D-Bus services are running code from 2.32, they won't understand what a "file:" data source URI is. But if they're running code from 2.30 or earlier, they won't understand what a "local:" data source URI is. Unfortunately it's common for the Evolution and backend process versions to get mismatched by upgrading and restarting Evolution while the older backend processes are still running. Because of this issue we have now added version numbers to our D-Bus bus names to prevent similar problems the next time we have to break the D-Bus interface. In 2.32, however, the damage has to be cleaned up by hand. Shut down evolution, e-addressbook-factory and e-calendar-factory. Then open Applications -> System Tools -> Configuration Editor and check the following GConf keys for multiple entries with name="On This Computer". /apps/evolution/addressbook/sources /apps/evolution/calendar/sources /apps/evolution/memos/sources /apps/evolution/tasks/sources Unfortunately these keys are stuffed with XML blobs which are difficult to read in Configuration Editor, but if you scroll to the right a bit you should be able to spot the "On This Computer" entries. Following the "name" attribute there should be a "base_uri" attribute with a URI scheme of either "file:" or "local:". Delete all the "On This Computer" entries with a base_uri="file://..." attribute. Hope this helps, Matthew Barnes _______________________________________________ evolution-hackers mailing list evolution-hackers@gnome.org To change your list options or unsubscribe, visit ... http://mail.gnome.org/mailman/listinfo/evolution-hackers