Subject: bug#44782: Python and Gajim-OMEMO

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

Hello again,

Maxim Cournoyer <[email-masked]> writes:

> 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:
>
> $ guix environment --pure --ad-hoc python -- python3 -c 'import enum;print(enum.IntFlag)'
> <enum 'IntFlag'>
>
> 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.

Actually, I can't seem to reproduce, using:

guix environment --pure --ad-hoc gajim gajim-omemo -- gajim -l
gajim.p.omemo=DEBUG

Then I tried signing up with some random account, enabled the plugin and
I could see:

12/28/20 23:28:16 (I) gajim.p.omemo              ($some-server) Generating OMEMO keys
12/28/20 23:28:21 (I) gajim.p.omemo              ($some-server) Our device id: 1816266738
12/28/20 23:28:21 (I) gajim.p.omemo              ($some-server) 100 PreKeys available

It seems like you may have 'pip3 install enum34' or have other things in
your environment that cause the issue?

If you can't reproduce in a clean environment, let's close it.

Thanks,

Maxim