[Debian-med-packaging] Bug#1028449: changeo fails with python3.11: "invalid mode rU"

Steve Langasek steve.langasek at canonical.com
Wed Jan 11 06:00:14 GMT 2023


Package: changeo
Version: 1.2.0-1
Severity: grave
Tags: patch
Justification: renders package unusable
User: ubuntu-devel at lists.ubuntu.com
Usertags: origin-ubuntu lunar ubuntu-patch

Dear maintainers,

changeo fails its autopkgtests with python3.11, revealing a bug in the
software, because it uses a mode flag to open() which has been deprecated
since python 3 and is now obsolete in python 3.11:

[...]
Traceback (most recent call last):
  File "/usr/bin/CreateGermlines.py", line 354, in <module>
    createGermlines(**args_dict)
  File "/usr/bin/CreateGermlines.py", line 94, in createGermlines
    reference_dict = readGermlines(references)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/changeo/IO.py", line 2201, in readGermlines
    with open(file_name, 'rU') as file_handle:
         ^^^^^^^^^^^^^^^^^^^^^
ValueError: invalid mode: 'rU'
[...]

  (https://ci.debian.net/data/autopkgtest/testing/amd64/c/changeo/30225356/log.gz)

I'm assuming this is fairly core functionality in the package so have marked
the bug grave.  If it's not, then the autopkgtest regression is still
serious.

I've applied the attached trivial patch in Ubuntu to fix the regression
there.

Thanks for considering,
-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                   https://www.debian.org/
slangasek at ubuntu.com                                     vorlon at debian.org
-------------- next part --------------
diff -Nru changeo-1.2.0/debian/patches/open-U-obsolete.patch changeo-1.2.0/debian/patches/open-U-obsolete.patch
--- changeo-1.2.0/debian/patches/open-U-obsolete.patch	1969-12-31 16:00:00.000000000 -0800
+++ changeo-1.2.0/debian/patches/open-U-obsolete.patch	2023-01-10 21:53:30.000000000 -0800
@@ -0,0 +1,21 @@
+Description: Drop obsolete "U" mode passed to open()
+ The "U" mode has been deprecated in python since python3 and has had no
+ effect.  In python 3.11, it is now disallowed.  Drop this mode flag that
+ causes runtime failures.
+Author: Steve Langasek <steve.langasek at ubuntu.com>
+Last-Update: 2023-01-10
+Forwarded: no
+
+Index: changeo-1.2.0/changeo/IO.py
+===================================================================
+--- changeo-1.2.0.orig/changeo/IO.py
++++ changeo-1.2.0/changeo/IO.py
+@@ -2198,7 +2198,7 @@
+     repo_dict = {}
+     duplicates = []
+     for file_name in repo_files:
+-        with open(file_name, 'rU') as file_handle:
++        with open(file_name, 'r') as file_handle:
+             germlines = SeqIO.parse(file_handle, 'fasta')
+             for g in germlines:
+                 germ_key = getAllele(g.description, 'first') if not asis else g.id
diff -Nru changeo-1.2.0/debian/patches/series changeo-1.2.0/debian/patches/series
--- changeo-1.2.0/debian/patches/series	1969-12-31 16:00:00.000000000 -0800
+++ changeo-1.2.0/debian/patches/series	2023-01-10 21:52:41.000000000 -0800
@@ -0,0 +1 @@
+open-U-obsolete.patch


More information about the Debian-med-packaging mailing list