Gajim - 2017-07-10


  1. bot Philipp Hörist pushed 1 commit to branch _refs/heads/master_ of _gajim_ <https://dev.gajim.org/gajim/gajim>: *0eca29d4* <https://dev.gajim.org/gajim/gajim/commit/0eca29d4848a230a2a85bfd3f37dd1ef983fefd8> Fix memory leak in plugins window - remove gui extension point on close, to remove the reference the plugin manager holds to the Class. - reduce scope of var that holds reference to Gtk.Builder(). We have to be careful with Gtk.Builder, because it can hold a reference to our Class (methods bound to signals) which creates a reference cycle which python is not able to detect. Hence neither Gtk.Builder nor our Class are garbage collected. Why this is not detected as a reference cylce is unclear at the moment. There are two approaches to circumvent the problem: 1. we lose our reference to Gtk.Builder when closing the window, which lets python garbage collect the builder, afterwards it can garbage collect our class. 2. we reduce the scope of the var that holds a reference to Gtk.Builder, so that the builder can be garbage collected at the end of __init__. I chose to reduce the scope because the builder is not needed class wide.
  2. SaltyBones Could gajim give a warning when a message is received but could not be decrypted?
  3. SaltyBones I am losing a lot of messages in omemo encrypted chats lately.
  4. lovetox no thats problematic, as we get on every rejoin into the chat the whole history of messages in that chat
  5. lovetox if its encrypted we cant decrypt them again, which results in you getting messages about messages you could not decrypt, then you think someone written you when in fact it was just history
  6. lovetox if you think you are missing messages you could look into the log if there were problems
  7. lovetox also remember that we dont have MAM for muc, so you will definitly miss messages if you are not in the muc for some time
  8. lovetox but i could look into why gajim cant deduple messages correctly from muc history
  9. lovetox then we wouldnt need that work around anymore for encrypted messages
  10. SaltyBones actually I have this problem in one on one chats
  11. Link Mauve lovetox, first, stop getting history messages you already have?
  12. lovetox i think gajim does that, but it does not seem to work really good
  13. Link Mauve Well, just request after the last stanza-id you received, and that’s it.
  14. lovetox then you have to write that into the xep
  15. lovetox because that you can request stanza-ids is not in there
  16. lovetox i was talking about muc history
  17. lovetox ah yeah, if we get only messages that cant be decrypted, we dont write them into the db
  18. lovetox hence the db query yields a wrong timestamp for last message
  19. lovetox we have to store this in another way
  20. miloss I just tried debugging the SMTP-transport issue with XML console
  21. miloss but I do not see even the incomming message that is blocked in there
  22. miloss I hoped to check if the automatic reply is sent, but there is nothing
  23. miloss is it supposed to work like that?
  24. lovetox if nothing is in the console, we did not receive anything
  25. miloss but how?
  26. miloss plugin enabled -> nothing in console plugin disabled -> message appears in console
  27. miloss how can the sender know I have the plugin and not send anything?
  28. miloss I can send more spam to myself, each time flip a coin if the plugin will be on or off, is that a good test that will convince you?
  29. miloss lovetox, I see a lot of "log" commands in the antispam plugin source. What can I do to see what is logged?
  30. lovetox miloss, i tested this and every message is in xml console
  31. miloss with antispam?
  32. lovetox yes
  33. miloss oh
  34. lovetox i would change your testing
  35. lovetox i dont know how you write yourself messages
  36. lovetox but to test this you should use two separate accounts
  37. miloss I use the smtp transport
  38. lovetox you can also run gajim with
  39. lovetox -v
  40. lovetox then you see everything that goes on
  41. lovetox but its very verbose
  42. miloss thanks. I'll try
  43. lovetox but i dont get what you want to find out
  44. miloss I just don't believe the server will guess what my antispam status is and not send me the message at all
  45. lovetox if you say the transport adds something to the stanza, then the antispam plugin can not work
  46. miloss now I don't even see the incomming message in the console
  47. miloss the one that is blocked
  48. lovetox i dont think the anti spam plugin causes this
  49. lovetox there might be some other reason why you dont receive the message
  50. lovetox run gajim with -v you will see very low level, when we receive data, even before gajim is in anyway involved
  51. miloss thanks. I'll go testing now
  52. miloss I sincerely apologize to lovetox, thanks for insisting it cannot be gajim's fault
  53. lovetox what was the problem?
  54. miloss first few smtp messages were lost
  55. miloss I assume I was bad at google captchas
  56. miloss the sending service requires for each message
  57. miloss now I have two examples, where the antispam question is correctly delivered even to SMTP-transported contact
  58. miloss if you see Asterix, forward my thanks for the plugin. It turned out it works fine after all.
  59. miloss hmm.. I still need a way to review list of blocked JIDs
  60. miloss can I enable logging only for the antispam plugin?
  61. miloss I do not mind GREP'ing the log for the list of JIDs, but the whole verbose log looks too big to keep
  62. lovetox hm
  63. miloss anything that will make it include the line "07/10/2017 11:50:36 (I) gajim.plugin_system: Anti_spam enabled for 8951ti+f8klo8oacoxak%guerrillamail.com@smtp-t.netlab.cz, question: <my_question>" and as little others as possible will work
  64. lovetox start gajim with "-l gajim.gajim.plugin_system=INFO"
  65. lovetox but i dont know how much other stuff you will get with this, probably some from every plugin, try it, and if it is not manageable for you, i can add a own log domain for the plugin
  66. miloss from the logs I collected it looks perfect
  67. miloss grep '(I) gajim.plugin_system' log-plugin-o*
  68. miloss correction grep '([^D]) gajim.plugin_system' log-plugin-o*
  69. lovetox hm sorry my line was wrong
  70. lovetox "-l gajim.plugin_system=INFO"
  71. miloss I was wondering about that :)
  72. miloss Assuming my grep was correct -- include 'gajim.plugin_system' and exclude '(D)' -- then this looks like exactly what I need. Thanks a lot.
  73. miloss it works. A nice clean log with exactly what I need
  74. miloss now just redirect stderr to a file and I am set :)
  75. miloss so, the issue looks to be, that first few SMTP messages get lost and never reach jabber
  76. miloss or are not sent at all, because google thinks I am a robot
  77. miloss thanks once more. I did not expect this nice solution to exist :)
  78. lovetox nice to hear :)
  79. lovetox .
  80. lovetox .
  81. lovetox im looking 5 minutes into the history muc business, i find multiple bugs 😢
  82. SaltyBones lovetox, hm...I would like to help deving would you be willing to do some on-boarding? :)
  83. lovetox im hear an can answer questions you have, i would recommend to pick a small problem you have and trying to fix it
  84. SaltyBones are you around this evening?
  85. lovetox yes but only until 9
  86. bot Philipp Hörist pushed 2 commits to branch _refs/heads/master_ of _gajim_ <https://dev.gajim.org/gajim/gajim>: *5a896579* <https://dev.gajim.org/gajim/gajim/commit/5a8965791c96c89282be35f2c277233b607194f3> Commit to DB before shutdown Because some operations use the _timeout_commit() it happens that a timeout is active while we shutdown. This makes sure everything is commited before shutdown. *aeb64a51* <https://dev.gajim.org/gajim/gajim/commit/aeb64a516c65c8073874df381820457236cd2f35> Use correct history date on muc join Example: If we receive a message the last message date is now. If we restart Gajim and join the MUC again, `time.time() - timeout` will be most likly smaller then when we received the last message If the timeout is an hour, this would mean that many messages are requested from the archive which we already received. So we always want the most current timestamp (MAX).
  87. SaltyBones lovetox, are there any issues that you would consider simple and a good starting point? :)
  88. lovetox hm no idea, how much programming experience do you have?
  89. SaltyBones lovetox, do you want feedback on the process of getting started? :)
  90. lovetox yeah why not
  91. lovetox on what platform do you develope?
  92. SaltyBones linux
  93. SaltyBones (1) I cannot find instructions on how to build. There is README in the repo with html (!) in it that tells me to run ./configure but what I need to run is (presumably) ./autogen.sh first
  94. lovetox its in the readme
  95. lovetox <p>steps to compile gajim:</p> <pre> $ ./autogen.sh $ ./configure $ make
  96. lovetox though why do you compile gajim, if you didnt work on something that changes compiling you just dont need this
  97. lovetox just clone the git repo
  98. SaltyBones oh yeah, I had accidentally read the snapshot stuff because I got lost in the html tags ;)
  99. lovetox and start ./launch.sh
  100. SaltyBones Well, okay...was I supposed to know this for some reason? :)
  101. lovetox i guess so, its like starting to develop on a application with creating a windows installer for the application ^^
  102. lovetox if you run your stable gajim with the same user, you should edit launch.sh
  103. SaltyBones I don't intend to.
  104. lovetox and set a different config dir with -c PATH and a profile with -p devprofile
  105. SaltyBones But wait...about this launch.sh
  106. SaltyBones usually when I dev something I check out the repo and the first thing I do is make sure it builds
  107. SaltyBones so if that is not useful for gajim it should be mentioned
  108. lovetox i guess after you developed something in the end you should see if it builds
  109. SaltyBones And to make sure I broke it I should build before I start.
  110. lovetox you see if you broke it if you start launch.sh and it doesnt launch
  111. lovetox and gives you an exception
  112. lovetox building it is definitly overkill, as it does a million things more where you didnt change anything
  113. SaltyBones This is confusing. So what does the build process actually do?
  114. lovetox i have no idea.
  115. SaltyBones :d
  116. lovetox doing something so it can be installed correctly on a linux system
  117. SaltyBones Okay, I'm convinced it's not that important. ;)
  118. lovetox i tend to see it like making an installer
  119. SaltyBones lovetox, how do these config objects work? there are groups of configs and one can just set any string to any value?
  120. SouL (w 37
  121. lovetox what do you mean by groups
  122. SaltyBones set_per takes optname, key, subname, value
  123. SaltyBones so optname I interpreted as a group of sorts
  124. lovetox yeah look at the advanced config
  125. lovetox then you see the groups
  126. lovetox one group for example is "accounts"
  127. SaltyBones ah, yeah
  128. SaltyBones are the values fixed or can I just make up new ones?
  129. lovetox the values are defined in the same file
  130. lovetox config.py
  131. lovetox you can add new config values there
  132. lovetox what you see there is the default config, that is used when you first start gajim
  133. lovetox once the default config is set up, gajim will query the actual config on your harddrive, and not the one in config.py anymore
  134. lovetox but if you add a new value to config.py, its also added to the config on the harddrive
  135. SaltyBones lovetox, what is the options_per_key list and how is it different from the other list of options?
  136. lovetox the normal option list is of the kind
  137. lovetox option = value
  138. lovetox the optionperkey is
  139. lovetox account (key) -> option = value
  140. SaltyBones so a key is an account?
  141. lovetox yes, look at the advanced options
  142. lovetox then you see
  143. lovetox just open them and click on accounts :)
  144. bot Philipp Hörist pushed 3 commits to branch _refs/heads/master_ of _gajim_ <https://dev.gajim.org/gajim/gajim>: *b625199c* <https://dev.gajim.org/gajim/gajim/commit/b625199c47eded8bed29ec97b2d07dfa77021b81> Allow for a no limit option on restore_timeout *a818b60b* <https://dev.gajim.org/gajim/gajim/commit/a818b60ba7894aef1ffb94f4d2987a299ccb1a03> Fix unlimited muc_restore_timeout muc_restore_timeout set to -1 means we want no particular time set, up to which we request messages. But we should not deliberate request messages we already have. Hence even if muc_restore_timeout is set to -1, we should only request up to the last message we received. *cc682d24* <https://dev.gajim.org/gajim/gajim/commit/cc682d243f0be13e07a9a29dc91a177940f9ac7f> Change defaults on history restore options Set restore timeout inactiv, this should be really an advanced option, probably only set for specific MUCs not as default for every MUC. Set restore_lines to 10, so the User has an indication that Gajim can display history, and that there is probably a setting to adjust. Set muc_restore_lines to 100, this is a try to get a reasonable amount of history, especially in small Groupchats. Most server will limit this to 20-50 anyway. The limit 100 is more of a precaution if we run into a misconfigured server. This is intended as a workaround until we can implement MAM for Groupchats.
  145. SaltyBones lovetox, how do I commit something. I tried to fork but...Fork Error! You tried to fork gajim / gajim but it failed for the following reason: Limit reached Personal project creation is not allowed. Please contact your administrator with questions
  146. lovetox whats your name on git
  147. SaltyBones saltybones
  148. lovetox should work now
  149. lovetox fork
  150. lovetox then commit to your fork
  151. lovetox then from the webinterface start a merge request
  152. lovetox but before you do let me take a look at it :)
  153. lovetox i have to go see you tomorrow