![]() Registered Member ![]()
|
Hi,
I ran into a seemingly small problem which I'm not really sure how to handle: I have a quite old Kontact addressbook (since at least 4.4, but updated) that includes people which have ICQ and/or Jabber accounts entered. The contacts seem to be overall valid, and are shown correctly in Kontact (including their ICQ/Jabber accounts). Now I tried to export all my contacts to the owncloud akonadi agent (owncloud version 4.0.0) (via Kontact → Drag and Drop → Copy), but received a lot of "Invalid VObject, line 14 did not follow the icalendar/vcard format" errors, which made the contacts (silently!) be dropped/ignored. When I exported one of the missing/non-exported contacts to a file and checked line 14, it was: "X-messaging/icq-All:…" The error in OwnCloud comes from "3rdparty/Sabre/VObject/Reader.php" around line 110:
As you can see the regular expression matches against alpha-numerical charaters, hyphens and dots. Thus, the slash in "X-messaging/icq-All" is invalid. (I think that I once hacked this regexp in an older version to accept slashes…) I guess I'm not the first person to try to export his kontact addressbook which includes IM references, am I? So, I guessed this would an error in my data and not owncloud's error. Playing around with Kontact (removing old reference, adding a new one) didn't help. It just added a "X-KADDRESSBOOK-X-IMAddress:…" line, but kept the old "X-messaging/icq-All:…". And therefore, didn't fix the problem. Then I thought about manually editing the source file of the information and remove the "bad" line. But my "~/.local/share/contacts/" folder has a file called "WARNING_README.txt" that advise against playing around. But the file mentions akonadi. So next attempt: akonadiconsole → Browser → "Personal Contacts" → select item via remote id → Raw Payload → edit → realize that the save button is disabled. Checking "http://en.wikipedia.org/wiki/VCard" → vCard extensions → see "X-ICQ"… Next attempt: akonadi's SQL database → PartTable → update/edit "data" field (replacing "X-messaging/icq-All" with "X-ICQ") → check kontact → IM reference gone → re-adding reference → checking result:
Still invalid and double redundant. (And yes, Akonadi changes "X-ICQ" to "X-ICQ-ICQ".) Again SQL: Replacing "X-ICQ-ICQ" with "X-ICQ" and removing "X-messaging/icq-All" line → checking akonadi → again "X-ICQ-ICQ", but no "X-messaging/icq-All" → starting kontact → contact seems to have a reference, but only the ICQ number is displayed, the "Edit Instant Messaging Addresses" dialog is empty → adding the ICQ reference again → check akonadi: same three lines like before. So I tried to debug: created a new contact "Test McTestson", added an ICQ reference → tried to copy to owncloud → same problem again:
And now I'm really wondering what's going on. Is it the old data? Is kontact broken? Is owncloud broken? Do I just have to apply an arbitrary sequence of export, delete, restart, import etc.? (And where is the ICQ stuff in the source code? I couldn't find it…) KDE version is 4.8.3 (4.8.4 is out, but the "fixed bugs list" doesn't mention anything similar). akonadi-server version is 1.7.2. Owncloud version is 4.0.0. Distribution is Gentoo (regular updated, mostly stable amd64). Sincerly Yours, Sven |
![]() Administrator ![]()
|
In this case, it may be worth stopping Akonadi (close Kontact, then run 'akonadictl stop') then simply edit the file on disk.
Afterward, start Akonadi again (akonadictl start) and open Kontact. My guess is that X-messaging/icq-All is an old, now unused field which Kontact supports reading of only for migration purposes. Manual removal is needed in this case.
KDE Sysadmin
[img]content/bcooksley_sig.png[/img] |
![]() Registered Member ![]()
|
Hi bcooksley,
thanks for your response! But there is something not correct:
Actually, even if you create a new contact, let's call him "Mr. Test", and give him an IM address via the "Messaging" menu. Let's say his "ICQ" number is "123". Then try to export him via "File" → "Export" → "Export via vCard 3.0…", then open the exported vcf file with a text editor. You'll see something like this:
Exactly the same data is shown when using Akonadi Console. So it's not a read-only thing, but the currently used standard. I just recently updated to KDE 4.8.4. Yours, Sven |
![]() Administrator ![]()
|
I would recommend filing a bug against Owncloud - as if my reading of the specification is correct, then X-* keys are always permitted, and are assumed to be vendor-specific data which should be retained.
KDE Sysadmin
[img]content/bcooksley_sig.png[/img] |
![]() Registered Member ![]()
|
Just for the record: As you suggested, I filed a bug against OwnCloud which was declined and re-routed to a new KDE bug. |
Registered users: Baidu [Spider], Bing [Bot], Google [Bot]