gajim issueshttps://dev.gajim.org/gajim/gajim/-/issues2019-05-18T09:41:27Zhttps://dev.gajim.org/gajim/gajim/-/issues/9701Jingle S5B proxy candidates sent with transport-info are handled wrong2019-05-18T09:41:27ZСергей ИльиныхJingle S5B proxy candidates sent with transport-info are handled wrong## Versions
- OS: Linux
- GTK+ Version: 3.22.30
- PyGObject Version: 3.26.1
- python-nbxmpp Version: 0.6.10
- Gajim Version: 1.1.3+b63dd2ed8
## Traceback
```
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/nbxm...## Versions
- OS: Linux
- GTK+ Version: 3.22.30
- PyGObject Version: 3.26.1
- python-nbxmpp Version: 0.6.10
- Gajim Version: 1.1.3+b63dd2ed8
## Traceback
```
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/nbxmpp/dispatcher_nb.py", line 502, in dispatch
handler['func'](session, stanza)
File "/usr/lib/python3/dist-packages/gajim/common/jingle.py", line 111, in _JingleCB
self._sessions[sid].on_stanza(stanza)
File "/usr/lib/python3/dist-packages/gajim/common/jingle_session.py", line 354, in on_stanza
call(stanza=stanza, jingle=jingle, error=error, action=action)
File "/usr/lib/python3/dist-packages/gajim/common/jingle_session.py", line 598, in __broadcast
cn.on_stanza(stanza, content, error, action)
File "/usr/lib/python3/dist-packages/gajim/common/jingle_content.py", line 128, in on_stanza
callback(stanza, content, error, action)
File "/usr/lib/python3/dist-packages/gajim/common/jingle_ft.py", line 308, in __on_transport_info
self.__state_changed(State.CAND_SENT_AND_RECEIVED, args)
File "/usr/lib/python3/dist-packages/gajim/common/jingle_ft.py", line 130, in __state_changed
st.action(args)
File "/usr/lib/python3/dist-packages/gajim/common/jingle_ftstates.py", line 126, in action
self._recv_candidate(args)
File "/usr/lib/python3/dist-packages/gajim/common/jingle_ftstates.py", line 98, in _recv_candidate
streamhost_cid = content.getTag('transport').getTag('candidate-used').\
AttributeError: 'NoneType' object has no attribute 'getAttr'
```
## Steps to reproduce the problem
1. Send a file via Jingle to the recent nightly Psi which is connected to a jabber host with available proxy streamer
1. Accept the file on Psi side. It will send session-accept with just host candidate
1. When finished discovering proxy streamer it will send it via transport-info request
1. Gajim will send candidate-error immediatelly
## Expected behavior
No backtraces
## Actual behaviorhttps://dev.gajim.org/gajim/gajim/-/issues/11505If Axolotl fails to decrypt a message, raising a DuplicateMessageException, a...2023-05-02T07:58:58ZMarcin MielniczukIf Axolotl fails to decrypt a message, raising a DuplicateMessageException, a dummy message should be createdConsider the following scenario (it's something I actually experienced):
1. A message is received, either directly or from MAM. It's decrypted but for some reason not stored or displayed to the user
2. A MAM query occurs, the client rece...Consider the following scenario (it's something I actually experienced):
1. A message is received, either directly or from MAM. It's decrypted but for some reason not stored or displayed to the user
2. A MAM query occurs, the client receives a stanza corresponding to the missing message. Axolotl won't be able to decrypt it because it already has been.
Expected behavior: a placeholder is created in place of the missing message, indicating that it's there but cannot be decrypted
Actual behavior: the message is silently dropped (or only mentioned in the logs)https://dev.gajim.org/gajim/gajim/-/issues/9713Create a standalone macOS .app using PyInstaller2022-12-06T17:21:29ZSebastiaan LokhorstCreate a standalone macOS .app using PyInstallerIt looks like Brew does not accept GUI apps, so #9246 is no longer a viable option.
The Brew folks however did point me to [PyInstaller](https://pyinstaller.readthedocs.io/), which seems to be a better option. It allow us to create a st...It looks like Brew does not accept GUI apps, so #9246 is no longer a viable option.
The Brew folks however did point me to [PyInstaller](https://pyinstaller.readthedocs.io/), which seems to be a better option. It allow us to create a standalone .app which we can distribute ourselves and optionally submit to Brew Cask (their repository for binary/GUI apps).
I managed to get a working .app with PyInstaller, but I haven't extensively tested it yet (portability etc). You can try it out by installing PyInstaller (`pip3 install pyinstaller`), `cd` to the gajim repository root, download [gajim.spec](https://dev.gajim.org/snippets/660) and run:
```sh
pyinstaller gajim.spec
# and to package it in a dmg (optional):
rm -rf dist/launch && hdiutil create -volname Gajim -srcfolder dist -ov -format UDZO gajim-1.1.3.dmg
```
~~I did run into [PyInstaller#4064](https://github.com/pyinstaller/pyinstaller/issues/4064). I'm not sure what exactly I did to work around it.. I believe I installed a few different versions of `virtualenv` and `distutils` and then it suddenly worked.~~ Issue was [fixed](https://github.com/pyinstaller/pyinstaller/commit/46286a1f455d8e0837f7c2b9e1bbdff1ef858f0f) but unreleased as of v3.5)Sebastiaan LokhorstSebastiaan Lokhorsthttps://dev.gajim.org/gajim/gajim/-/issues/9774Windows: Close session on system shutdown2023-11-04T18:33:45ZGe0rGWindows: Close session on system shutdownWhen running Gajim on Windows, and shutting down the PC, Gajim will not properly close the server connection, so the server will remain under the impression that there is a 0198 hibernated session, caching MUC presence, pending messages ...When running Gajim on Windows, and shutting down the PC, Gajim will not properly close the server connection, so the server will remain under the impression that there is a 0198 hibernated session, caching MUC presence, pending messages etc, and causing issues for the user's contacts.
It would be great if Gajim could cleanly terminate the session (not just close the connection) on the server on system shutdown. On Windows, the [WM_ENDSESSION](https://docs.microsoft.com/de-de/windows/win32/shutdown/wm-endsession) event is fired and can be used - or maybe GTK has some portable way to detect it?
Similar work:
* https://dev.deluge-torrent.org/ticket/3011
* https://www.mail-archive.com/gtk-app-devel-list@gnome.org/msg12534.html
* https://github.com/syncthing/syncthing-gtk/issues/83https://dev.gajim.org/gajim/gajim/-/issues/11472[omemo] Add own device id after login (not just after restarting)2023-04-14T16:18:52ZCitrodata[omemo] Add own device id after login (not just after restarting)Hello, i am running Gajim with omemo plugin version 2.6.29 (on Windows) with a openfire 4.4.0 Server. When i first started Gajim, it created a lokal omemo database and stores the keys and ids...
Then when i use Conversations and reset th...Hello, i am running Gajim with omemo plugin version 2.6.29 (on Windows) with a openfire 4.4.0 Server. When i first started Gajim, it created a lokal omemo database and stores the keys and ids...
Then when i use Conversations and reset the omemo keys / devicelist in PEP Storage on the server. After next login Gajim pushes the bundles to the server again, but does NOT append his own deviceID to the devicelist in PEP again. So Conversations will not be able to get the Keybundle, 'cause it does find Gajim's deviceid which is needed for querying the bundle.https://dev.gajim.org/gajim/gajim/-/issues/11503[omemo] Add button to reset own keys2023-12-11T08:10:41ZDaniel[omemo] Add button to reset own keysI want to regenerate my omemo keys.
I'm using Gajim version 1.1.3 with the omemo plugin (https://dev.gajim.org/gajim/gajim-plugins/wikis/OmemoGajimPlugin) version 2.6.29 .
I'm pretty shocked that this feature is not implemented. (in an ...I want to regenerate my omemo keys.
I'm using Gajim version 1.1.3 with the omemo plugin (https://dev.gajim.org/gajim/gajim-plugins/wikis/OmemoGajimPlugin) version 2.6.29 .
I'm pretty shocked that this feature is not implemented. (in an easy-to-access way)
I like to hear this plugin's authors or maintainers explanation on this issuehttps://dev.gajim.org/gajim/gajim/-/issues/11468Support XEP-0396: Jingle Encrypted Transports - OMEMO (JET-OMEMO)2023-04-14T16:10:53ZkSupport XEP-0396: Jingle Encrypted Transports - OMEMO (JET-OMEMO)I apologize if I'm getting the cart before the horse by suggesting this specific enhancement but it would be fabulous to be able to encrypt file transfers in Gajim using OMEMO.
https://xmpp.org/extensions/xep-0396.html states that explo...I apologize if I'm getting the cart before the horse by suggesting this specific enhancement but it would be fabulous to be able to encrypt file transfers in Gajim using OMEMO.
https://xmpp.org/extensions/xep-0396.html states that exploratory implementations are encouraged, but I understand if Gajim wants to wait until XEP-0396 is official. I'm curious though, are there alternative ways to encrypt file transfers until the time in which Gajim users can encrypt them using OMEMO?
Additionally, there are no warnings that files will be sent unencrypted when users have an OMEMO session going with another user and they use the "Send File Directly" to send a file. I tried this method and the file was sent, but luckily this was only a test and it didn't matter if the file was encrypted or not. For people that are using OMEMO to communicate securely, it could cause them a lot of problems if they send a file using Gajim+OMEMO thinking that it will be encrypted and then it gets sent unencrypted.https://dev.gajim.org/gajim/gajim/-/issues/9944Better support for XEP-0158: CAPTCHA Forms (use case: ejabberd mod_block_stra...2020-01-08T11:04:30ZMartinBetter support for XEP-0158: CAPTCHA Forms (use case: ejabberd mod_block_strangers)When writing to a non-contact with ejabberd mod_block_stranger activated, the messages are blocked entirely. When adding the contact, this is blocked by a captcha (`<captcha xmlns="urn:xmpp:captcha">`), which includes an image (XEP-0231:...When writing to a non-contact with ejabberd mod_block_stranger activated, the messages are blocked entirely. When adding the contact, this is blocked by a captcha (`<captcha xmlns="urn:xmpp:captcha">`), which includes an image (XEP-0231: Bits of Binary). The message with the CAPTCHA is, AFAIK, of type normal, not chat. Currently, only the fallback body is shown, which contains a web page with the CAPTCHA. Native support by Gajim would be nice, however.https://dev.gajim.org/gajim/gajim/-/issues/9948Proxies: Show error if socks5 authentication fails2023-06-06T18:42:13Zsome oneProxies: Show error if socks5 authentication fails## Versions
OS: Windows
Gajim Version: 1.1.3 (installed via Chocolatey package manager)
## Steps to reproduce
* Edit JID
* connection
* configure proxy
* socks5 with authentication
* enter password incorrectly
* back
* reconnect
## P...## Versions
OS: Windows
Gajim Version: 1.1.3 (installed via Chocolatey package manager)
## Steps to reproduce
* Edit JID
* connection
* configure proxy
* socks5 with authentication
* enter password incorrectly
* back
* reconnect
## Problem
Does not connect. No error presented.
## Expected behaviour
Error message specific to sockshttps://dev.gajim.org/gajim/gajim/-/issues/9971XMPP Compliance Suites 20232023-05-04T14:12:55ZDaniel BrötzmannXMPP Compliance Suites 2023[XEP-0479](https://xmpp.org/extensions/xep-0479.html) describes XMPP Compliance Suites 2022. Here, I try to evaluate Gajim's state of compliance.
Gajim already meets the requirements to be an **Advanced Client** in the 'Core Compliance ...[XEP-0479](https://xmpp.org/extensions/xep-0479.html) describes XMPP Compliance Suites 2022. Here, I try to evaluate Gajim's state of compliance.
Gajim already meets the requirements to be an **Advanced Client** in the 'Core Compliance Suite'.
In order to meet the requirements of '**Advanced Client**' in the [IM Compliance Suite](https://xmpp.org/extensions/xep-0459.html#im), the follwing XEPs are missing:
* [x] Advanced Group Chat: [XEP-0402: PEP Native Bookmarks](https://xmpp.org/extensions/xep-0402.html), see #9894
* [ ] Advanced Group Chat: [XEP-0410: MUC Self-Ping (Schrödinger's Chat)](https://xmpp.org/extensions/xep-0410.html), see gajim/python-nbxmpp#133https://dev.gajim.org/gajim/gajim/-/issues/10032Discovery: _update_info fails with TypeError: 'NoneType' object is not iterable2023-03-15T11:26:56ZGhost UserDiscovery: _update_info fails with TypeError: 'NoneType' object is not iterable## Versions
- OS: Debian GNU/Linux 10 (buster)
- GTK+ Version: 3.24.5
- PyGObject Version: 3.30.4
- python-nbxmpp Version: 0.6.10
- Gajim Version: 1.1.2
## Traceback
```
Traceback (most recent call last):
File "/usr/lib/python3/dist-p...## Versions
- OS: Debian GNU/Linux 10 (buster)
- GTK+ Version: 3.24.5
- PyGObject Version: 3.30.4
- python-nbxmpp Version: 0.6.10
- Gajim Version: 1.1.2
## Traceback
```
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/gi/overrides/GLib.py", line 662, in <lambda>
func_fdtransform = lambda _, cond, *data: callback(channel, cond, *data)
File "/usr/lib/python3/dist-packages/nbxmpp/idlequeue.py", line 563, in _process_events
return IdleQueue._process_events(self, fd, flags)
File "/usr/lib/python3/dist-packages/nbxmpp/idlequeue.py", line 411, in _process_events
obj.pollin()
File "/usr/lib/python3/dist-packages/nbxmpp/transports_nb.py", line 451, in pollin
self._do_receive()
File "/usr/lib/python3/dist-packages/nbxmpp/transports_nb.py", line 676, in _do_receive
self._on_receive(received)
File "/usr/lib/python3/dist-packages/nbxmpp/transports_nb.py", line 690, in _on_receive
self.on_receive(data)
File "/usr/lib/python3/dist-packages/nbxmpp/dispatcher_nb.py", line 535, in _WaitForData
resp(self._owner, _iq, **args)
File "/usr/lib/python3/dist-packages/gajim/common/modules/discovery.py", line 87, in _disco_response
success_cb()(from_, identities, features, data, node)
File "/usr/lib/python3/dist-packages/gajim/disco.py", line 412, in _disco_info_received
self._on_agent_info(str(from_), node, identities, features, data)
File "/usr/lib/python3/dist-packages/gajim/disco.py", line 440, in _on_agent_info
cb(fjid, node, identities, features, data)
File "/usr/lib/python3/dist-packages/gajim/disco.py", line 243, in __call__
return cb(*args, **kwargs)
File "/usr/lib/python3/dist-packages/gajim/disco.py", line 1077, in _agent_info
self._update_info(iter_, jid, node, identities, features, data)
File "/usr/lib/python3/dist-packages/gajim/disco.py", line 1869, in _update_info
self._query_visible()
File "/usr/lib/python3/dist-packages/gajim/disco.py", line 1801, in _query_visible
self.cache.get_info(jid, node, self._agent_info)
File "/usr/lib/python3/dist-packages/gajim/disco.py", line 359, in get_info
cb(jid, node, *args)
File "/usr/lib/python3/dist-packages/gajim/disco.py", line 1077, in _agent_info
self._update_info(iter_, jid, node, identities, features, data)
File "/usr/lib/python3/dist-packages/gajim/disco.py", line 1845, in _update_info
for form in data:
TypeError: 'NoneType' object is not iterable
```
## Steps to reproduce the problem
...https://dev.gajim.org/gajim/gajim/-/issues/10036Authentication failed: no-password2020-04-30T17:44:04ZAndrey GurskyAuthentication failed: no-password## Versions
- OS: GNU/Linux Debian Bullseye testing
- Gajim version: b5924afddfe8cb
- GTK version: 3.24.13-1
- Python-nbxmpp version: python-nbxmpp@93e0a046cbc5e14e08b5ebe6a670fcbd5cddbbb3
## Steps to reproduce the problem
1. ...## Versions
- OS: GNU/Linux Debian Bullseye testing
- Gajim version: b5924afddfe8cb
- GTK version: 3.24.13-1
- Python-nbxmpp version: python-nbxmpp@93e0a046cbc5e14e08b5ebe6a670fcbd5cddbbb3
## Steps to reproduce the problem
1. Ensure Gajim setup: no auto-connect, no password saved.
1. Start Gajim.
1. In roster right-click on an account and choose "Status" --> "Available".
1. Window pops up with password prompt.
1. But simultaneously also a notification pops up: "Authentication failed: no-password".
## Expected behavior
No notification with failure, since user hadn't yet an opportunity to enter a password.
## Actual behavior
The notification pops up.https://dev.gajim.org/gajim/gajim/-/issues/10038Reimplement POSH2022-05-20T20:55:11ZPhilipp Höristphilipp@hoerist.comReimplement POSH## Description of the new feature
https://datatracker.ietf.org/doc/rfc7711/## Description of the new feature
https://datatracker.ietf.org/doc/rfc7711/https://dev.gajim.org/gajim/gajim/-/issues/11467XEP-0384: OMEMO Encryption 0.82023-04-14T16:10:16ZNeustradamusXEP-0384: OMEMO Encryption 0.8Can you update the XEP-0384: OMEMO Encryption support to 0.8.0?Can you update the XEP-0384: OMEMO Encryption support to 0.8.0?https://dev.gajim.org/gajim/gajim/-/issues/10045SSL server validation ignores system-wide installed CAs2021-03-25T09:26:42ZEugene CrosserSSL server validation ignores system-wide installed CAsSince a while ago, server certificate validation started to fail in the nightly build. I use private CA, and CA certificate is installed system-wide (placed in /etc/ssl/certs and c_rehash'ed). `openssl s_client -verify 1 -host ... -port ...Since a while ago, server certificate validation started to fail in the nightly build. I use private CA, and CA certificate is installed system-wide (placed in /etc/ssl/certs and c_rehash'ed). `openssl s_client -verify 1 -host ... -port ...` succeeds with "Verification: OK". However gajim insists that certificate is signed by an unknown CA.
* While opening XMPP connection, it offers to accept "untrusted" server certificate and then works
* httpupload over aesgcm/https does not work at all:
```
02/04/20 10:45:33 (I) gajim.p.omemo.filedecryption| Start downloading: https://average.org:9443/0aaa8f2ecdc342cdea76820e6eba57e0884fd630/5Q7yPp7QsTc0blwTog5RuJwkABmYOOPX0VYmxrLq/FrdvSlyBQX-EjGTtfnUErQ.jpg
02/04/20 10:45:33 (W) gajim.p.omemo.filedecryption| Download failed: https://average.org:9443/0aaa8f2ecdc342cdea76820e6eba57e0884fd630/5Q7yPp7QsTc0blwTog5RuJwkABmYOOPX0VYmxrLq/FrdvSlyBQX-EjGTtfnUErQ.jpg
02/04/20 10:45:33 (W) gajim.p.omemo.filedecryption| SSL handshake failed
```
I believe that gajim should either honour system-wide set of trusted CAs, or, if it insists on using using a private set of CAs, allow adding new CAs to that set. The first option is preferable, in my opinion.https://dev.gajim.org/gajim/gajim/-/issues/10060GroupchatInvite: Implement lazy loading of contacts2022-10-31T11:10:40ZPhilipp Höristphilipp@hoerist.comGroupchatInvite: Implement lazy loading of contacts## Description of the new feature
On big rosters opening the invite page freezes Gajim. Implement lazy loading of contacts## Description of the new feature
On big rosters opening the invite page freezes Gajim. Implement lazy loading of contactshttps://dev.gajim.org/gajim/gajim/-/issues/10078Provide a ignore autojoin setting for Bookmarks2022-10-31T11:10:40ZPhilipp Höristphilipp@hoerist.comProvide a ignore autojoin setting for Bookmarks## Description of the new feature
Add a `ignore autojoin flag` setting on a account
This is useful if you dont want changes on the autojoin flag in bookmarks, synced to Gajim.
For example if you leave a group chat on your smartphone b...## Description of the new feature
Add a `ignore autojoin flag` setting on a account
This is useful if you dont want changes on the autojoin flag in bookmarks, synced to Gajim.
For example if you leave a group chat on your smartphone because it is very noisy, also Gajim would leave this group chat.
The setting allows to have a local autojoin listhttps://dev.gajim.org/gajim/gajim/-/issues/10109Support DTLS-SRTP (XEP-0320) for audio/video with Conversations2023-11-26T22:05:13ZGhost UserSupport DTLS-SRTP (XEP-0320) for audio/video with Conversations## Description of the new feature
https://gist.github.com/iNPUTmice/a28c438d9bbf3f4a3d4c663ffaa224d9#notes-for-developers## Description of the new feature
https://gist.github.com/iNPUTmice/a28c438d9bbf3f4a3d4c663ffaa224d9#notes-for-developershttps://dev.gajim.org/gajim/gajim/-/issues/10139Reimplement Client Cert support2022-05-20T21:05:20ZPhilipp Höristphilipp@hoerist.comReimplement Client Cert supportNeeds support in nbxmppNeeds support in nbxmpphttps://dev.gajim.org/gajim/gajim/-/issues/10140Rewrite Jingle Code2022-10-05T21:42:45ZPhilipp Höristphilipp@hoerist.comRewrite Jingle CodeJingle Code right now too complex for what we use it for, it could be much simpler
- Add support to nbxmpp for parsing jingle stanzas
- Socket code should use GLib and can be made much smallerJingle Code right now too complex for what we use it for, it could be much simpler
- Add support to nbxmpp for parsing jingle stanzas
- Socket code should use GLib and can be made much smaller