Bug 274490 - net-im/gajim: update to 1.8.4 reason: OMEMO is broken
Summary: net-im/gajim: update to 1.8.4 reason: OMEMO is broken
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Many People
Assignee: Ruslan Makhmatkhanov
URL: https://dev.gajim.org/gajim/gajim/-/b...
Keywords:
Depends on: 271876
Blocks:
  Show dependency treegraph
 
Reported: 2023-10-15 11:18 UTC by p5B2EA84B3
Modified: 2024-06-11 12:19 UTC (History)
4 users (show)

See Also:
bugzilla: maintainer-feedback? (rm)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description p5B2EA84B3 2023-10-15 11:18:38 UTC
OMEMO stopped working in Gajim 1.3.3 making it no use for many people.

From https://gajim.org

Gajim 1.8.0 comes with integrated OMEMO encryption! Integrating the OMEMO plugin brings tighter integration and better user experience. 

Gajim 1.8.1 brings improvements for file previews, a default encryption setting, and many small improvements and fixes.
Comment 1 p5B2EA84B3 2023-10-16 08:20:15 UTC
Can someone with the necessary permissions please change the status of this PR to open?

FreeBSD users having used Gajim with OMEMO cannot access their communication. 
This is a very serious problem, which may have the effect working around with packages from other operation systems and not coming back to FreeBSD.
Comment 2 Ruslan Makhmatkhanov freebsd_committer freebsd_triage 2023-10-16 08:35:07 UTC
Hello, working on update
Comment 3 Ruslan Makhmatkhanov freebsd_committer freebsd_triage 2023-11-07 19:20:57 UTC
For the record: gajim 1.8.x requires python >= 3.10, so we have to wait until default python version changes in ports. The update also require ports that are not present in the tree at the moment, like omemo-dr (gajim's python-axolotl fork) for integrated omemo encryption.
Comment 4 Alastair Hogge 2023-11-07 21:35:09 UTC
There is also bug #271876.
Comment 5 pyrus 2023-11-11 00:43:33 UTC
There's a report that the following worked:
pip3.11 install -v --user gajim-1.8.3.tar.gz

Perhaps python 3.11 or 3.10 rather than 3.9 would allow it to build?
Comment 6 Alastair Hogge 2023-11-11 01:00:19 UTC
Updated net-im/py-nbxmpp is also required, that itself also requiredsan updated Python platform.
Comment 7 pyrus 2023-11-15 03:20:44 UTC
I've recently noticed, that from the website of Pkgsrc for NetBSD, that they use Gajim1.3 with an OMEMO plugin that uses Python 3.11. This can be seen on https://cdn.netbsd.org/pub/pkgsrc/current/pkgsrc/chat/gajim-plugin-omemo/index.html. Not sure if this setup works on there, but that's how it's set. A purpose was to use a working OMEMO version.

What if a version of Gajim, the current one or perhaps a later one, which relies on the default version of Python on FreeBSD is used, and a newer OMEMO plugin be the only related port that requires Python 3.11? If this works, having only one port which relies on a newer Python version, may not cause the rest of ports to break.
Comment 8 pyrus 2023-11-15 03:24:50 UTC
Then, again, that may not work, as their Gajim 1.3 also relies on Python3.11, and not an older version.
Comment 9 Ruslan Makhmatkhanov freebsd_committer freebsd_triage 2023-11-16 10:16:28 UTC
So, I updated nbxmpp locally and installed omemo-dr, and updated gajim port to 1.8.3. it doesn't run with 3.9 for sure:
```
% gajim
Traceback (most recent call last):
  File "/usr/local/bin/gajim", line 8, in <module>
    sys.exit(run())
  File "/usr/local/lib/python3.9/site-packages/gajim/main.py", line 171, in run
    _init_gui('GTK')
  File "/usr/local/lib/python3.9/site-packages/gajim/main.py", line 105, in _init_gui
    _init_gtk()
  File "/usr/local/lib/python3.9/site-packages/gajim/main.py", line 123, in _init_gtk
    from gajim.gtk import exception
  File "/usr/local/lib/python3.9/site-packages/gajim/gtk/exception.py", line 40, in <module>
    from gajim.common import app
  File "/usr/local/lib/python3.9/site-packages/gajim/common/app.py", line 48, in <module>
    from gajim.common import configpaths
  File "/usr/local/lib/python3.9/site-packages/gajim/common/configpaths.py", line 40, in <module>
    PathTupleT = tuple[PathLocation | None, Path, PathType | None]
TypeError: unsupported operand type(s) for |: 'EnumMeta' and 'NoneType'
```

But rising python version just for gajim port to require 3.10+ fails in dependencies part just as I expected earlier:
```
~/ports/net-im/gajim% make
===>   gajim-1.8.3 depends on package: py310-build>0 - found
===>   gajim-1.8.3 depends on package: py310-setuptools>0 - found
===>   gajim-1.8.3 depends on package: py310-wheel>0 - found
===>   gajim-1.8.3 depends on package: gettext-runtime>=0.22_1 - found
===>   gajim-1.8.3 depends on executable: msgfmt - found
===>   gajim-1.8.3 depends on package: py310-gobject3>=0 - not found
===>  py310-gobject3-3.42.2 Unknown flavor 'py310', possible flavors: py39.
*** Error code 1
```

I'll try to see if we can have flavors for gobject, but it seems it's better to wait default python version switch in ports
Comment 10 p5B2EA84B3 2023-11-16 15:11:52 UTC
> but it seems it's better to wait default python version switch in ports

Given all the difficult and pending problems (You may dig down the tree on open depending PRs) this may take a very, very long time. You may also look up the EOL date for Python3.9 if you don't know it.

So please, do not wait for a change in the default Python version. Please don't.

The efforts taken on flavours (3.10|3.11) now won't overwhelm you when the version changes later. The difference is that users can use a working Gajim version on FreeBSD NOW.
Comment 11 Alastair Hogge 2024-01-23 04:13:59 UTC
Picking up where I left on py-nbxmpp, I know notice that adding the runtime dependencies (https://dev.gajim.org/gajim/python-nbxmpp#runtime-requirements) now throws out:

pkg-static: Missing dependency 'gnutls'

> adding 'nbxmpp/modules/register/__init__.py'
> adding 'nbxmpp/modules/register/register.py'
> adding 'nbxmpp/modules/register/util.py'
> adding 'nbxmpp/third_party/__init__.py'
> adding 'nbxmpp/third_party/hsluv.py'
> adding 'nbxmpp-4.5.3.dist-info/COPYING'
> adding 'nbxmpp-4.5.3.dist-info/METADATA'
> adding 'nbxmpp-4.5.3.dist-info/WHEEL'
> adding 'nbxmpp-4.5.3.dist-info/top_level.txt'
> adding 'nbxmpp-4.5.3.dist-info/RECORD'
> removing build/bdist.freebsd-15.0-CURRENT-amd64/wheel
> Successfully built nbxmpp-4.5.3-py3-none-any.whl
> ===>  Staging for py311-nbxmpp-4.5.3
> ===>   py311-nbxmpp-4.5.3 depends on package: py311-gobject3>0 - found
> ===>   py311-nbxmpp-4.5.3 depends on package: py311-idna>=0 - found
> ===>   py311-nbxmpp-4.5.3 depends on package: py311-packaging>0 - found
> ===>   py311-nbxmpp-4.5.3 depends on package: py311-precis_i18n>=1.0.0 - found
> ===>   py311-nbxmpp-4.5.3 depends on package: py311-wheel>0 - found
> ===>   py311-nbxmpp-4.5.3 depends on package: libsoup3>0 - not found
> ===>  License LGPL20 accepted by the user
> ===>   libsoup3-3.2.2 depends on file: /usr/local/sbin/pkg - found
> ===> Fetching all distfiles required by libsoup3-3.2.2 for building
> ===>  Extracting for libsoup3-3.2.2
> => SHA256 Checksum OK for gnome/libsoup-3.2.2.tar.xz.
> ===>  Patching for libsoup3-3.2.2
> ===>   libsoup3-3.2.2 depends on package: glib-networking>0 - not found
> ===>   Installing existing package /packages/All/glib-networking-2.78.0.pkg
> [builder-direwolf.home.arpa.] Installing glib-networking-2.78.0...
> pkg-static: Missing dependency 'gnutls'
> 
> Failed to install the following 1 package(s): /packages/All/glib-networking-2.78.0.pkg
> *** Error code 1
> 
> Stop.
> make[1]: stopped in /usr/ports/devel/libsoup3
> *** Error code 1
> 
> Stop.
> make: stopped in /usr/ports/net-im/py-nbxmpp

No matter what runtime depend I add, I get that error now. The build fails whether GNUTLS is selected in OPTIONS or not.
Comment 12 Ruslan Makhmatkhanov freebsd_committer freebsd_triage 2024-01-25 14:21:41 UTC
(In reply to Alastair Hogge from comment #11)

I'll check it out, thanks. But it looks like it isn't related to nbxmpp itself, but to glib-networking.
Comment 13 commit-hook freebsd_committer freebsd_triage 2024-06-06 12:08:48 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=02324e73dd50ce4bc1b5df0b7badc685edf80c19

commit 02324e73dd50ce4bc1b5df0b7badc685edf80c19
Author:     Ruslan Makhmatkhanov <rm@FreeBSD.org>
AuthorDate: 2024-06-06 12:07:18 +0000
Commit:     Ruslan Makhmatkhanov <rm@FreeBSD.org>
CommitDate: 2024-06-06 12:07:18 +0000

    net-im/gajim: update to 1.8.4

    Release notes for 1.8 brach:
    https://gajim.org/post/2023-05-27-gajim-1.8.0-released/

    Full changelog:
    https://dev.gajim.org/gajim/gajim/-/blob/master/ChangeLog
    PR:             274490
    Reported by:    p5B2EA84B3@t-online.de

 net-im/gajim/Makefile                         | 29 +++++++++++----------------
 net-im/gajim/distinfo                         |  6 +++---
 net-im/gajim/files/patch-pyproject.toml (new) | 10 +++++++++
 3 files changed, 25 insertions(+), 20 deletions(-)
Comment 14 Ruslan Makhmatkhanov freebsd_committer freebsd_triage 2024-06-06 12:10:05 UTC
Update to 1.8.4 landed.
Comment 15 Goran Mekić 2024-06-06 13:06:37 UTC
On my desktop starting gajim says it needs py311-qrcode.
Comment 16 commit-hook freebsd_committer freebsd_triage 2024-06-06 13:16:58 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=5209b627a0b7af34933ad61e06b85d55610083c3

commit 5209b627a0b7af34933ad61e06b85d55610083c3
Author:     Ruslan Makhmatkhanov <rm@FreeBSD.org>
AuthorDate: 2024-06-06 13:16:03 +0000
Commit:     Ruslan Makhmatkhanov <rm@FreeBSD.org>
CommitDate: 2024-06-06 13:16:03 +0000

    net-im/gajim: add missing dependency upon py-qrcode

    PR:             274490
    Reported by:    Goran Mekić <meka@tilda.center>

 net-im/gajim/Makefile | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
Comment 17 Ruslan Makhmatkhanov freebsd_committer freebsd_triage 2024-06-06 14:47:14 UTC
(In reply to Goran Mekić from comment #15)
It does, fixed, thank you!
Comment 18 polarian 2024-06-10 19:28:33 UTC
Thanks for the port update.

Not to be the bringer of bad news, but 1.9.0 has been dropped 4 days later after porting the last version :P

See: https://gajim.org/post/2024-06-10-gajim-1.9.0-released/

No security fixes, only new features and bug fixes, so not a big deal.

Thanks again,
Polarian
Comment 19 Ruslan Makhmatkhanov freebsd_committer freebsd_triage 2024-06-10 23:07:46 UTC
(In reply to polarian from comment #18)

I prepared and tested an update to 1.9.0. Will commit after py-emodji update. gajim 1.9.0 requires emoji > 2.7.0 to work. Thanks for heads up!

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=279660
Comment 20 Ruslan Makhmatkhanov freebsd_committer freebsd_triage 2024-06-11 05:09:37 UTC
(In reply to polarian from comment #18)

gajim 1.9.0 just landed in https://cgit.freebsd.org/ports/commit/?id=0379d5d012a5753416c6102949006866435dd2ae
Comment 21 polarian 2024-06-11 12:19:39 UTC
(In reply to Ruslan Makhmatkhanov from comment #20)
Thanks for the quick port \o/