jdev - 2019-09-01


  1. tom

    hello

  2. tom

    I am a bit confused on how OMEMO pubsub nodes should be setup

  3. tom

    should the subscriber model be presence or open?

  4. tom

    https://upload.nuegia.net/77815d03-9a9f-4e00-bf38-136c838fba39/screenshot.png

  5. pep.

    generally clients set the access_model to open for OMEMO stuff

  6. tom

    pep., would that be the subscriber or publisher model?

  7. pep.

    subscriber

  8. tom

    I see

  9. Zash

    Generally this gets handled by the client without the user needing to do anything tho

  10. pep.

    publisher is probably whitelist with your own jid

  11. tom

    the default it was subscriber model set to presence

  12. pep.

    Which client?

  13. tom

    but that was causing people to be unable to communicate with my over OMEMO unless we accepted roster requests both ways

  14. tom

    Gajim 0.6.X

  15. pep.

    0.16.x?

  16. tom

    yes I mean 0.16.X

  17. pep.

    I guess that's been fixed in 1.x

  18. tom

    I can't use gtk3 so I'm going to have to fork 0.16.9

  19. pep.

    Sure

  20. pep.

    Maybe you can backport the fixes, dunno

  21. tom

    I'm just trying to figure out how it should work so I can fix bugs in my fork

  22. tom

    so just to be clear, there are multiple axolotl pubsub nodes

  23. tom

    https://upload.nuegia.net/d6abd617-c7df-4d79-99e2-afef2937d29d/screenshot.png

  24. pep.

    I'd recommend trying to backport stuff from the stable/master branch, so you don't have to rewrite everything yourself, but just the graphics toolkit bits

  25. Zash

    Presumably the same settings would need to be applied to all different nodes to avoid weird interop problems

  26. tom

    so I've modified axolotl.device list to be open subscriber model, but what are the bundles:somelongnumber?

  27. pep.

    tom, same permissions

  28. tom

    are those private conversations? should those be presence only or open as well?

  29. Zash

    Each device picks a random integer and creates a node for it

  30. Zash

    IIRC it publishes pre-keys or something there

  31. Zash

    (I'm not a fan of this design)

  32. tom

    I'm sorry I'm confused, I thought the devicelist node stored the keys

  33. Zash

    No

  34. tom

    what exactly is the difference between devicelist and bundles?

  35. Zash

    The device list stores those numbers

  36. tom

    ok so when sending OMEMO messages the backlog (offline encrypted messaging) is still stored in MAM serverside not a special pubsub node

  37. Zash

    IIRC this is because you can't count on being able to store more than one item per node

  38. tom

    the device list contains a list of the bundles and the bundles contain the key right?

  39. Zash

    But OMEMO got publish options and subscriber models implemented and deployed, so it could just as well have used a single node with an item per device

  40. tom

    it SHOULD as in says the in the spec or are you saying the spec should have did that instead but it doesnt?

  41. Zash

    You SHOULD assume that I have no idea what I'm talking about.

  42. tom

    ok

  43. Zash

    Not a client developer.

  44. tom

    ok So I've modified all the axolotl device list and bundle nodes to be open. I'll experiment with this and go over the spec extra fine. If this ends up being correct I'll modify the source

  45. tom

    to be open by default

  46. Zash

    DO NOT do that for every PEP node

  47. pep.

    yeah, just OMEMO

  48. pep.

    devicelist and bundles

  49. pep.

    Also as I said above, maybe you should try backporting stuff from master rather than rewriting everything

  50. pep.

    I might every ask lovetox (current maintainer) and see if it's not worth starting from 1.x and porting it to gtk2 if that's really what you want

  51. tom

    only did that for the eu.siacs.conversations.axolotl.devicelist and eu.siacs.conversations.axolotl.bundles:$rand nodes

  52. pep.

    I might even ask lovetox (current maintainer) and see if it's not worth starting from 1.x and porting it to gtk2 if that's really what you want

  53. Zash

    Good

  54. pep.

    Also maybe the gajim discussions could go in gajim :)

  55. pep.

    Ah wait this is jdev@, I though we were in operators@, I have this mental picture of "tom" the ghost of operators@

  56. Zash

    How supported is GTK2 these days?

  57. tom

    >pep.‎: Also as I said above, maybe you should try backporting stuff from master rather than rewriting everything I'll take that into consideration but as I understand it the 1.X changes do more than just switch the toolkit but change around the user interface very extensively and include functions lke hamburger menus. These things don't exist in gtk2. Also, the really only things that I need to fix in the 0.16.X client I'm aware of is this OMEMO pubsub thing and changing the Jingle implementation to use a more modern version of libfarstream (or other protocol implementing Jingle) and work with either a modern version of gstreamer or better just use ffmpeg instead

  58. pep.

    I think there's a lot more things you don't see that have been fixed

  59. pep.

    Lots of code refactor as well

  60. tom

    I don't think the main gajim developers are very open to making the 1.X branch support gtk2 or any other toolkit like qt5 either

  61. tom

    they seem pretty set on gtk3

  62. Zash

    Switching toolkits is no small task

  63. tom

    >Lots of code refactor as well Yeah i can see. there's lots of single-character variables in the source code like somebody just copy-pasted from stack overflow

  64. Zash

    I would be happy if lower level libraries are reusable

  65. Zash

    Like, protocol stuff

  66. tom

    my experience with gstreamer has always been painful. Where it's always been better to use ffmpeg if possible and if not install gstreamer-libav plugin that just wraps ffmpeg anyways

  67. tom

    I've met some camera developers who say they like using gstreamer internally rather than learning ffmpeg because it's more abstracted but I already know ffmpeg and I've had nothing but problems with gstreamer dating back to KDE3 on slackware

  68. tom

    >How supported is GTK2 these days? It receives bugfixes on it's own branch and is generally considered 'mature' or 'finished'

  69. tom

    It's also first class on Devuan even all the way to sid

  70. pep.

    Devuan, heh

  71. pep. runs away now

  72. tom

    still use exclusivly by Gimp and claws-mail

  73. pep.

    iirc Gimp was going to jump to gtk4

  74. tom

    yeah, the problem with that is that gtk3-+ is considered the GNOME toolkit. The development direction is only geared to serve GNOME's needs. The GNOME3 development team have explicitly stated this. While at the same time the gtk2 toolkit is the Gimp toolkit. Was originally designed as a generic graphical toolkit to make gimp with. However it was not explicity for gimp

  75. tom

    so a lot of other *nix programs use gtk2.

  76. pep.

    Yeah I've read that whole discussion before and I'm not replaying it

  77. tom

    k

  78. tom

    but yeah, I'm not running GNOME so it gtk3 really does not meet my needs so I'm needing to fork

  79. tom

    I appreciate your pointers pep. and Zash . thank yo

  80. tom

    u

  81. Zash

    np

  82. pep.

    While Gajim devs might not be interested in supporting gtk2 anymore, being a friendly fork would be nice I think. If it's in your cords, talk to lovetox a bit, even if it's just asking advice on where to look at, what has been changed etc.

  83. pep.

    You might want to stick to gtk2 but getting bug fixes can be a good thing :)

  84. pep.

    (Also not annoying other users with bugs we've already seen here and there and that are fixed in master :))

  85. tom

    ok. I'm not sure what you mean by 'friendly fork'

  86. Zash

    MVC-ish separation of UI code and other application logic is good, so you might be able to ensure/push for that 🙂

  87. pep.

    Yeah, either try to make the new code easy to adapt to new toolkits, to make it easier for you to have your gtk2 patches on top

  88. pep.

    It's a bit more maintenance for the gajim devs, but if you're willing to help maybe they would be ok? And you benefit from new features/bugs (fixes) etc.

  89. tom

    maybe. I don't see me needing to change toolkits in the near future, if I was going to do that I'd probably be going from gtk2 to qt but going from gtk to qt is a much bigger change than going to one gtk version to another. I don't expect to have to save development model as Gajim. I'm more interested in conservative LTS releases and stabilizing those as much as possible than implementing many features very fast. However everything is still very much up in the air right now so I'll definitely think about it. And as I see it currently the Gajim devs have a very different grand vision in mind than I do right now.

  90. tom

    I also see myself using the XFCE 4.12 theme engine for at least another 6 years and gtk2 is very well supported there

  91. Zash

    I thought XFCE were going GTK3 too

  92. tom

    yes, but Debian isn't

  93. tom

    nor am i

  94. pep.

    Debian isn't?

  95. pep.

    So they'll maintain their fork downstream?

  96. tom

    Debian will maintain the 4.12 release for 6+ years

  97. tom

    with security patches and bugfixes only

  98. pep.

    What kind of Debian releases are you talking about?

  99. pep.

    LTS ?

  100. tom

    stable

  101. pep.

    stable only go 4 years no? + maybe another year for LTS?

  102. Zash

    Not 3 years? (new release about every 2,

  103. tom

    I don't know how well versed you are with Devuan/Debian release models but ounce a STABLE RELEASE becomes OLDSTABLE RELEASE it then goes into LTS support by a private company that employs a team of fulltime developers

  104. Zash

    +1 y support) (gah why is enter there?)

  105. pep.

    stable (2) -> oldstable (2) -> lts (1)

  106. tom

    as long as the funding goals are met it's 6 years

  107. pep.

    ah

  108. pep.

    I'm not well versed into LTS tbh

  109. pep.

    Also I'm surprised I haven't yet shouted HERESY all over this room

  110. Zash

    pep., I've been very tempted to ask whether this fork is Python2 😛

  111. pep.

    That makes me really sad

  112. tom

    https://www.freexian.com/services/debian-lts.html

  113. pep.

    tom, yeah I know about them, just never bothered to read

  114. pep.

    I shall return to my omemo stuff now.. (another fun thing to play with)

  115. tom

    Well, I would be tempted to convert Gajim 0.16.X to python3

  116. Zash

    Oh, so the py3 switch was in 1.x then?

  117. Zash

    (I've not been following Gajim that closely)

  118. tom

    let me check

  119. tom

    yes, It looks like Gajim.py specifies the python interpreter, and the default version in Devuan ASCII is Python 2.7.13 (default, Sep 26 2018, 18:42:22) [GCC 6.3.0 20170516] on linux2