Subject: bug#44782: Python and Gajim-OMEMO

From: Maxim Cournoyer <[email-masked]>
Date: Mon, 28 Dec 2020 23:12:17 -0500

Hello Raghav,

Raghav Gururajan <[email-masked]> writes:

> Hello Guix!
>
> It appears that our python is incorrectly compiled or compiled with
> missing component. Due to this, OMEMO plugin in gajim does not work.
>
> Here is the output for `gajim -l gajim.p.omemo=DEBUG`:
>
> *** START ***
> Traceback (most recent call last):
>   File
>   "/gnu/store/5h0xfqysfddzc4283wcyr0j8jj2zaz9c-gajim-1.2.2/bin/..gajim-real-real", 
> line 4, in <module>
>     import re
>   File
>   "/gnu/store/09a5iq080g9b641jyl363dr5jkkvnhcn-python-3.8.2/lib/python3.8/re.py", 
> line 143, in <module>
>     class RegexFlag(enum.IntFlag):
> AttributeError: module 'enum' has no attribute 'IntFlag'
> *** END ***
>
> Also, I am flagging this issue as 'important' as it affects
> security/privacy of messaging in gajim application.
>
> Regards,
> RG.

It's not a problem with Python but with Gaijim or one of its dependency:

--8<---------------cut here---------------start------------->8---
$ guix environment --pure --ad-hoc python -- python3 -c 'import enum;print(enum.IntFlag)'
<enum 'IntFlag'>
--8<---------------cut here---------------end--------------->8---

Summarily searching on the interwebs it seems that python-enum34 may be
at cause.  You should look if it's being propagated by any of the
dependencies of gajim or gajim-omemo, and probably get rid of those as
this package exists for backward compatibility for Python versions older
than our 3.8.2 on master.

Maxim