Gajim - 2016-07-04

  1. 007 wc marza
  2. 007 Guys, What if I try to enter 26000 IDs in a MUC ? 1 ID with 6-7 different resource total 5000 IDs ? It will frezz MUC and stuck everyone ?
  3. noon hello
  4. noon i did some experimentation with events and the logging infrastructure
  5. noon so far, i think it is only needed to make a new logging_write event to get logging information into a plugin.
  6. noon what i didn't found: how can i get the local account to a logging message?
  7. lovetox noon, why dont you look at other plugins for logging examples
  8. lovetox there is a own class called logging in gajim that you can import, and log everything you want
  9. lovetox
  10. Asterix lovetox: I think that what he want is a plugin to store chat logs in text files instead of database. Not Gajim internal logs
  11. lovetox ah
  12. lovetox just catch message incoming and message outgoing event, and write to textfile
  13. lovetox or would i miss something with that :)
  14. Asterix no that's it. Also gc-messages too
  15. catern Asterix: Hello!! I hear you know a lot about Gajim! do you know, is it possible to run gajim headless?
  16. catern and also, do you think it might be possible to do dbus-activation for gajim?
  17. catern the reason I ask is I want to write a very simple CLI client for XMPP, and I want to use the Gajim XMPP implementation
  18. catern and that seems to be easiest to do over DBUS
  19. euan catern: you may want to look at python-nbxmpp, it's the underlying Python API for XMPP tht Gajim uses
  20. euan catern: it may be easier and neater to write you own python script or daemon than shoe-horn a GUI app into whatever you want
  21. catern euan: yeah, but is that compatible with gajim extansions?
  22. catern for example: I want to be able to use the Gajim OMEMO plugin
  23. euan catern: I'm not sure
  24. catern Gajim is really quick to get support for new XEPs so that's why I'm interested
  25. euan catern: and I also do not know if Gajim can be used headless, just giving a suggestion
  26. catern thanks :)
  27. catern i don't think it should be that hard to do this with gajim
  28. catern there are ways to hack Gajim into headlessness if necessary I think
  29. euan Yes, I've moved around quite a few XMPP clients, Gajim is the best all-round so far
  30. euan I moved to it for the latest XEPs
  31. catern (and the headlessness isn't really necessary anyway, it would just be nice for supporting shell machines etc.)
  32. euan I think there is good dbus options for Gajim, but will need some code written of course
  33. lovetox how do you want to run the omemo plugin without gui
  34. lovetox its like 60% of the code is gui code
  35. euan I previously asked if something was possible, can't remember now, I got an answer that I could use dbus
  36. lovetox you would have to rewrite all the gui output
  37. lovetox like fingerprint management, you would have to think up ways to do this in cli
  38. Asterix catern: headless means without GUI? Then no you can't use Gajim without the GUI. Code is scructured in a way that allows to write your own GUI in something else than GTK, but that has never been done. The code in the common folder don't use the GUI at all and can be used bu another GUI
  39. catern Asterix: by headless I just mean without connecting to an X server - controlled entirely over d-bus
  40. Link Mauve Technically GTK+ (3.x) does allow you to use any GTK+ program in a headless fashion, with the broadway GDK backend, but that’s probably not what you want either.
  41. catern Link Mauve: yeah I was thinking of using that as a hack around
  42. Link Mauve catern, you’d have to use the default branch of Gajim though.
  43. Link Mauve And it doesn’t help much with running on a server.
  44. catern the default branch? as opposed to..?
  45. Link Mauve The gajim_0.16 branch, which most people are using currently.
  46. Link Mauve Branch which is still based on GTK+ 2.x.
  47. catern oh, that's fine
  48. catern but .17 or some feature release will be GTK3 right?
  49. catern some future*
  50. Link Mauve Likely 1.0. :)
  51. catern so never :(
  52. catern if the master branch is GTK3, why are the release branches GTK2? just curious
  53. euan Asterix: interesting about the GUI code. I've had the idea to port Gajim to Qt, but I know I'll never get the time. I'm a big Qt / KDE guy, didn't realize there was work done to make that easier.
  54. Asterix because the GTK3 version is not ready to be released yet ...
  55. catern OK
  56. Asterix euan: re-writting all the GUI code isn't a simple thing! but that's supposed to be doable
  57. catern okay, so also, what is up with the DBUS signals Gajim sends?
  58. catern the type of all of them is Array<Variant>, the most vague possible type :)
  59. catern do I just need to look at what they contain in practice?
  60. catern their structure etc.
  61. euan Asterix: well the GTK2 version is running well in my KDE 4.10, don't really need Qt. If I were to do something like that, it would be to make a stream-lined GUI a bit different to Gajim
  62. euan just to be clear, I really liekt he Gajim 0.16.5 GUI, but I also have my own ideas...
  63. euan ^like the
  64. Asterix catern: look in src/
  65. catern OK so just read the code to figure out the structure?
  66. catern actually maybe I should add functionality to listen for signals to gajim-remote?
  67. catern and then since that's in the gajim repo it can be kept up to date if the de-facto format ever changes?
  68. catern (what would be best is if the signals actually had stricter types...)
  69. Asterix Currently it's easy to change things with this variant type ... That's why it's here
  70. catern yeah, but being easy to change means this API is less useful - if it changes every release, it's hard to make things that actually use the API
  71. noon hello
  72. noon I have a question to the roster_message function in the
  73. noon on line 356 is a function call to the event_t function
  74. Asterix catern: it has never changed!
  75. noon with the following parameters at the end: show_in_roster=obj.show_in_roster, show_in_systray=obj.show_in_systray)
  76. Asterix catern: it also makes the code more generic to manage all types
  77. catern oh.. well then maybe it shouldn't be a variant, if it is that stable?
  78. noon but the obj variable seems not to be defined in this context.
  79. noon is this correct?
  80. Asterix noon: indeed, it should be show_in_roster=show_in_roster
  81. noon ok. should i make a bugreport?
  82. Asterix noon: already pushed :)
  83. noon super.
  84. noon :-)
  85. noon can you also tell me if in common/ on line 303 the parameter should be values: def fset(self, value): should be: def fset(self, values):
  86. Link Mauve You should run pylint or cython or any other static analyser on the code, to find such issues.
  87. Asterix noon: I saw your ticket, will reply there when I'll have time to check
  88. Asterix Link Mauve: a long long time ago, when I did that, there was too much false positive
  89. noon sorry, forgot that I made a ticket... I don't want to annoy
  90. mathieui you need to configure pylint if you want it to be useful
  91. Link Mauve Yes.
  92. Elrond Should common/ be called for status changes?
  93. Link Mauve Asterix, ran Cython on nbxmpp, found a typo that make it a bug: nbxmpp/ undeclared name not builtin: atr
  94. noon is there a procedure to follow for patches?
  95. Asterix Elrond: IIRC, yes
  96. Asterix Link Mauve: s/a/s
  97. Asterix noon: trac
  98. Elrond Asterix: noon and I tested it and didn't look like it's happening…
  99. Asterix Link Mauve: pushed
  100. Asterix I see that in gajim.logger.write('status', obj.jid, obj.status,
  101. Asterix of course log_contact_status_changes option needs to be enabled
  102. Link Mauve Asterix, and on Gajim itself:
  103. Elrond Asterix: let us retest…
  104. Elrond
  105. Asterix Link Mauve: ca commence par un faux positif ...
  106. Link Mauve Euh, non ?
  107. Link Mauve xdg c’est une NameError à cet endroit là.
  108. lovetox catern: why dont you use for example poezio, its a console client like you want, and instead of adapting gajim to console
  109. lovetox just use the time to port the omemo plugin
  110. Link Mauve lovetox, poezio can’t support OMEMO because libotr is GPL.
  111. Link Mauve lovetox, poezio can’t support OMEMO because libaxolotl is GPL.
  112. Link Mauve It’s planned to fix that in the specs, but that’s not done yet.
  113. lovetox hm :/
  114. Elrond Asterix: okay, thanks, status-things happen in .write :)
  115. Link Mauve lovetox, there is OLM which is a reimplementation of Axolotl under a better license.
  116. Link Mauve Or Olm, or olm, I don’t know how it should be written.
  117. lovetox yeah, though now its no problem anymore to distribute axolotl via apple store, so i think olm would have to bringt more to the table then just beeing a reimplementation, but lets wait for it
  118. Link Mauve lovetox, being usable by non-GPL free software is definitely something important.
  119. Link Mauve And no, relicensing the project isn’t on the table.
  120. lovetox yeah i hope its important enough for imputmice to adapt it :)
  121. Link Mauve Other issue is that OMEMO doesn’t encrypt anything but the body of messages, which makes it quite useless for XMPP, which has a ton of different extensions.
  122. Link Mauve So you’d have to basically disable every single extension if you don’t want to leak various metadata.
  123. Link Mauve OX solves that issue.
  124. lovetox so is this ready to be implemented?
  125. lovetox is it that you are talking about ?
  126. Link Mauve Yes.
  127. Link Mauve I already have a semi-working implementation in slixmpp and poezio, so I’d say yes, it is ready to be implemented.
  128. lovetox hm maybe if i have time i try and write a plugin for gajim
  129. lovetox with more and more different encryptions starting to come up, its maybe better anyway to get pgp out of the gajim core code
  130. Elrond Hmm, CommonConnection() calls self.get_config_values_or_default(), but that method is only defined on other classes?
  131. lovetox hm yeah
  132. lovetox but other classes inherit
  133. lovetox common connection
  134. lovetox and implement this function
  135. lovetox look at class Connection(CommonConnection, ConnectionHandlers):
  136. lovetox though probably you could make a empty function there with a note that this is to be implemented by classes that inherit
  137. lovetox Link Mauve, do you have that in some public repo, the code for your OX implementation?
  138. catern lovetox: that's not the kind of CLI I am talking about :) i don't want a console app, rather just a simple thing to send messages from the command line
  139. Asterix nbxmpp library does that. and in the example folder you have a simple script that connects and sends a message
  140. Link Mauve lovetox, I already have branch ox.
  141. lovetox k thanks
  142. Link Mauve I also have which is the poezio plugin, but it’s far from usable yet.
  143. Link Mauve I should go back to it, but ENOTIME. :(
  144. lovetox this should be less code than OMEMO, if i understand pgp correctly there are no sessions, just one public and one secret key
  145. lovetox pep publishing keys is already in omemo, so that could also be adapted
  146. Link Mauve Yes.
  147. lovetox wow syncing the secret key with pep, that seems a bit insecure
  148. lovetox but you could make that optional
  149. lovetox hm
  150. Link Mauve Yeah, I’m still not sure whether I’ll implement that part.
  151. Link Mauve But an OpenPGP key is encrypted with a passphrase, so that might not be that bad.
  152. lovetox ah i forgot that
  153. lovetox yeah i would definitly dont make it automatic
  154. lovetox but why dont let people choose
  155. lovetox not everybody needs snowden level of encryption and security :)
  156. Link Mauve That’s a baseless assumption.
  157. SouL Yes, everybody needs it
  158. lovetox the goal of widespread encryption is not to give a false sense of security
  159. lovetox even if your encryption is 100% save
  160. lovetox there are countless other vectors where someone could attack
  161. lovetox it is so its hard to do mass surveiliance
  162. lovetox everybody who is kidding themself that he can deflect any single attack on himself from a multibillion dollar organisation, just because he uses a secure encryption, can not be helped
  163. lovetox mass surveillance is already much harder then some years ago, and it will get much harder with the countless diferent implementations of encryptions
  164. lovetox Asterix, i need an account on
  165. lovetox the acc from trac.gajim is not working
  166. Marzanna lovetox, AFAIK there is no need for account on trac-plugins for regular bug reporting.
  167. lovetox no i need it to edit a page
  168. lovetox wiki
  169. lovetox i dont find an edit button
  170. Marzanna lovetox, oh sorry then :)