Package: apbs
Version: 3.4.1-4
Severity: grave
Tags: patch
Justification: renders package unusable
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu lunar ubuntu-patch

apbs 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:

[...]
--------------------------------------------------------------------------------
Testing input file apbs-mol-parallel.in

Splitting the input file into 4 separate files using the inputgen utility

Test failed: invalid mode: 'rU'
Elapsed time: 0.000597 seconds
--------------------------------------------------------------------------------
[...]

  
(https://autopkgtest.ubuntu.com/results/autopkgtest-lunar/lunar/amd64/a/apbs/20221229_092334_1918a@/log.gz)

This is not an autopkgtest regression in Debian because the autopkgtest
itself is also buggy, using bash-specific shell syntax in a file with no
interpreter line that as a result fails under /bin/sh.  (I'm not sure why it
gets farther on Ubuntu's autopkgtest infrastructure.) However, despite not
being detected as an autopkgtest regression, it shows a significant code
defect when run under python3.11 and should be fixed.

Please see the attached patch.

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/
slanga...@ubuntu.com                                     vor...@debian.org
diff -Nru apbs-3.4.1/debian/patches/open-U-obsolete.patch 
apbs-3.4.1/debian/patches/open-U-obsolete.patch
--- apbs-3.4.1/debian/patches/open-U-obsolete.patch     1969-12-31 
16:00:00.000000000 -0800
+++ apbs-3.4.1/debian/patches/open-U-obsolete.patch     2023-01-09 
13:27:36.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.langa...@ubuntu.com>
+Last-Update: 2023-01-09
+Forwarded: no
+
+Index: apbs-3.4.1/tools/manip/inputgen.py
+===================================================================
+--- apbs-3.4.1.orig/tools/manip/inputgen.py
++++ apbs-3.4.1/tools/manip/inputgen.py
+@@ -311,7 +311,7 @@
+                        file (string)
+     """
+     nproc = 0
+-    file = open(filename, "rU")
++    file = open(filename, "r")
+     text = ""
+     while 1:
+         line = file.readline()
diff -Nru apbs-3.4.1/debian/patches/series apbs-3.4.1/debian/patches/series
--- apbs-3.4.1/debian/patches/series    2022-06-04 00:58:09.000000000 -0700
+++ apbs-3.4.1/debian/patches/series    2023-01-09 13:26:06.000000000 -0800
@@ -5,3 +5,4 @@
 python3.patch
 cmake.patch
 docs.patch
+open-U-obsolete.patch

Reply via email to