jdev - 2020-11-07

  1. lovetox

    hm that avatar conversion XEP did not really think about clients that want to support vcards

  2. lovetox

    it seems the thought was, vcard is only used by legacy clients so they set their avatar with the vcard and we convert it

  3. Zash

    do we need a XEP about the thing Prosody does with vcard-temp → vcard4 conversion?

  4. lovetox

    but how do is set a avatar, if i want to support vcard and iam not a legacy client

  5. Zash

    Use XEP-0084?

  6. lovetox

    yeah i just did

  7. lovetox

    and what happens is, i publish with 0084, afterwards publish my vcard

  8. lovetox

    ups my avatar is gone now

  9. lovetox

    no i have to now publish my avatar with 0084 and at the same time have to put it into the vcard

  10. Zash


  11. lovetox

    and all because of anonymous mucs

  12. lovetox

    we really should have gone the way, yeah anonymous means anonymous, so no vcard, no avatar, nothing

  13. lovetox

    thats what anonymous means

  14. Zash

    to be pedantic, we already got rid of anonymous mucs, what we have is semi-anonymous :)

  15. lovetox

    omg i want to deactivate that conversion

  16. Zash

    With Prosody, you can. Tho you may get nice enough behavior by publishing vcard as vcard4 instead of vcard-temp

  17. lovetox

    why because there is no conversion yet?

  18. lovetox

    actually i want to switch to vcard 4

  19. lovetox

    but we dont need conversion there really do we?

  20. lovetox

    a client that supports vcard 4 is not legacy, and can do his own avatar publishing

  21. Zash

    Interop with legacy clients

  22. lovetox

    yeah but for example i want to publish my vcard 4 with access=presence

  23. lovetox

    but my avatar with access=open

  24. Zash

    You can, if you talk PEP directly

  25. lovetox

    yes i know i can

  26. lovetox

    but what does the conversion mod then?

  27. Zash


  28. Zash

    The prosody legacy vcard compat module syntesizes a vcard-temp from vcard4+pep avatar on request.

  29. Zash

    And it respects the access modes on each of those, so if you configure the vcard with access=presence you get a vcard-temp with only the avatar.

  30. lovetox

    ok thats nice

  31. Zash

    It is a problem that you have no way of knowing this tho

  32. lovetox

    and is there a conversion happening from vcard4 -> pep avatar?

  33. Zash

    There are older vcard compat modules that only re-publish the avatar but it's still vcard-temp natively

  34. Zash


  35. lovetox

    ok thats good

  36. lovetox

    mental note, never implement something like that

  37. lovetox

    ok so that means

  38. lovetox

    i can use vcard4 and publish my vcard without avatar

  39. lovetox

    and the server will not delete my 0084 avatar

  40. lovetox

    thank god !

  41. Zash

    Hehe, part of the goal of this was to make vcard4 more attractive :)

  42. lovetox

    vcard4 is attractive enough only because of the fact that you can make the data private

  43. Zash

    Yeah, that is nice

  44. lovetox

    ok thanks, means more work needs to be done now, but at least there is a sane path

  45. Zash

    Maybe the lack of privacy controls in vcard-temp is why so many clients these days only use it for teh avatar

  46. Link Mauve

    My issue with vcard4 is that it still isn’t fine-grained enough.

  47. Link Mauve

    It’s either available to some entity or not.

  48. Zash

    I think that's an issue with PEP as a whole

  49. Link Mauve


  50. Zash

    And maybe PubSub

  51. Link Mauve

    goffi added an extension to fix that in his server, but he never wrote the spec.

  52. Zash

    oneSocialWeb had something like this as well

  53. lovetox

    Link Mauve, why there is whitelist or not?

  54. lovetox

    but to be honest, it seems a bit too complex for the normal user to manage who can see his vcard

  55. Link Mauve

    lovetox, for instance I might want my email address shared with all my contacts, but my home phone number only with the family group, and the work phone number only with the work group.

  56. lovetox


  57. lovetox

    ok thats insane

  58. Zash

    If the prosody vcard/avatar conversion mod finds that the requester does not have access to the vcard4 node, it checks if they can read the nickname node and if so, adds that to the vcard-temp

  59. Link Mauve

    lovetox, instead of insane, I’d say mandatory for most usecases.

  60. lovetox

    you want per field access

  61. Link Mauve

    Yes, pretty much.

  62. lovetox

    i just think about the UI, and i would not even want to start it :)

  63. Link Mauve

    Try https://linkmauve.fr/xmpp-account-manager/build/en/ for a UI example.

  64. lovetox

    it shows a loading icon

  65. lovetox

    then nothing happens

  66. lovetox

    ah wait

  67. lovetox

    jid was wrong

  68. lovetox

    but its probably not hard to do with vcard4

  69. lovetox

    you can add a custom attribute <roster-group> to the items

  70. lovetox

    and then the server has to do the rest

  71. Zash

    IFF the server advertises support

  72. Zash

    lovetox, seen this thread? https://mail.jabber.org/pipermail/standards/2020-February/037073.html

  73. lovetox

    hm xep 0292 does not use pep?

  74. lovetox

    i always thought the IQ is just a legacy access method

  75. lovetox

    but we use pubsub for vcard4

  76. lovetox

    i wondered about this a few times

  77. lovetox

    i just publish the vcard4 to pubsub

  78. lovetox

    i dont use the IQ

  79. Zash

    The iq was added for the MUC use case.

  80. Zash

    Except, it doesn't work.

  81. lovetox

    community consensus is that storage via IQ is more backward-compatible with XEP-0054, and that publish-subscribe is more appropriate only for event notifications.

  82. Zash

    vcard-temp only works in MUC because of an undocumented hack that all servers implement.

  83. lovetox

    i interpret this sentence as "You should not publish a vcard via pubsub, use IQ "

  84. Zash

    So you would need to do the same for vcard4 and/or PEP

  85. Zash

    The Prosody mod_vcard4 is just a very thin layer over the PEP get/set methods.

  86. lovetox

    ok so thats what i thought, i just use pubsub, and it should work as expected

  87. Zash

    It can act as a bandwidth optimization I suppose.

  88. Zash

    Or if you have a client that does not support PEP (are there even any?) then it's probably easier to use the vcard4 iq

  89. lovetox

    vcards are rarley changed, so there is no need to be efficient

  90. Zash

    https://xmpp.org/extensions/xep-0292.html#self-iq-retrieval vs https://xmpp.org/extensions/xep-0060.html#subscriber-retrieve-requestall

  91. Zash

    So, yeah, not much of a difference