Package: python3-amqplib
Version: 1.0.2-4
Severity: serious
Justification: 5p
X-Debbugs-Cc: florent.jacq...@canonical.com

The `python3-amqplib/1.0.2-4` package build is broken: it's missing a magical 
2to3 step.

Using it leads to that kind of traceback:
```
  File "/usr/lib/python3/dist-packages/amqplib/client_0_8/connection.py", line 
96, in __init__
    login_response.write_table({'LOGIN': userid, 'PASSWORD': password})
  File "/usr/lib/python3/dist-packages/amqplib/client_0_8/serialization.py", 
line 370, in write_table
    table_data.write_shortstr(k)
  File "/usr/lib/python3/dist-packages/amqplib/client_0_8/serialization.py", 
line 338, in write_shortstr
    if isinstance(s, unicode):
                     ^^^^^^^
NameError: name 'unicode' is not defined
```

A very quick test to check the Python 3 compatibility is the following:

$ grep 'isinstance.*unicode' 
/usr/lib/python3/dist-packages/amqplib/client_0_8/serialization.py
        if isinstance(s, unicode):
        if isinstance(s, unicode):
                if isinstance(v, unicode):

Those `unicode` invokations should have been converted to `str` during the 
build process, which worked beforehand, but has been broken. I've detected this 
bug on Ubuntu, and it worked correctly at the time of Noble, and has only been 
broken in Oracular.

I did not investigate much further, but a local manual build also produces a 
broken binary package. From what I've seen in the launchpad build logs, 
previous version were installing python3-lib2to3 during the build, and this is 
not the case anymore. I guess it would be similar in Debian's infrastructure.


A quick workaround for anyone affected is to run the following:
sudo 2to3 -w /usr/lib/python3/dist-packages/amqplib/client_0_8/*


-- System Information:
Debian Release: trixie/sid
  APT prefers oracular
  APT policy: (500, 'oracular'), (400, 'oracular-proposed'), (200, 
'noble-updates'), (200, 'noble'), (200, 'jammy-updates'), (200, 'jammy')
Architecture: amd64 (x86_64)

Kernel: Linux 6.8.0-11-generic (SMP w/12 CPU threads; PREEMPT)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_WARN, TAINT_OOT_MODULE
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages python3-amqplib depends on:
ii  python3  3.12.3-0ubuntu1

python3-amqplib recommends no packages.

Versions of packages python3-amqplib suggests:
pn  python-amqplib-doc  <none>

-- no debconf information

Reply via email to