[SRU] displaycal 3.9.11-2 needs patch to work with Python 3.12
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
displaycal-py3 (Ubuntu) |
Fix Released
|
High
|
Erich Eickmeyer | ||
Noble |
Fix Released
|
High
|
Erich Eickmeyer | ||
Oracular |
Fix Released
|
High
|
Erich Eickmeyer |
Bug Description
[Impact]
DisplayCAL, when released, was only compatible with Python 3.8-3.11. However, all it needed was WxWidgets 4.1.1 and a few patches to make it work with Python 3.12. Without, it would simply fail. Namely, it needed to be patched to remove the Python version check upon launch.
[Test Case]
* Install displaycal
* Run displaycal
Expected: Run normally
Result:
Traceback (most recent call last):
File "/usr/bin/
from DisplayCAL.main import main
File "/usr/lib/
raise RuntimeError(
RuntimeError: Need Python version >= 3.8 <= 3.11, got 3.12.2
[What could go wrong]
The DisplayCAL developers do not yet support Python 3.12 until the release of WxWidgets 4.2.0 since it could crash upon closure. I (Erich Eickmeyer) have not experienced this in my testing, however, it is plausible. Additionally, the patches that were used to make this work were developed after the release of DisplayCAL 3.9.12, but still applied cleanly to 3.9.11 and made it function correctly.
To be clear, the issue with WxWidgets is a separate bug and outside the scope of this bug.
[Other Information]
Currently the tests have to be skipped otherwise they segfault with Python 3.12 and the entire application fails to run, hence the inclusion of the patch `05_skip-
Original bug report:
I have upgraded to the noble beta today, and displaycal fails to start.
The package dependencies request python 3.12, but the actual software needs 3.11 (or older).
```
$ apt show displaycal | grep Depends
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
Depends: libc6 (>= 2.34), libx11-6, libxinerama1 (>= 2:1.1.4), libxrandr2 (>= 2:1.2.0), libxxf86vm1, python3 (<< 3.13), python3 (>= 3.12~), python3-build, python3-certifi, python3-dbus, python3-distro, python3-numpy, python3-pil, python3-
$ displaycal --help
Traceback (most recent call last):
File "/usr/bin/
from DisplayCAL.main import main
File "/usr/lib/
raise RuntimeError(
RuntimeError: Need Python version >= 3.8 <= 3.11, got 3.12.2
```
ProblemType: Bug
DistroRelease: Ubuntu 24.04
Package: displaycal 3.9.11-2
ProcVersionSign
Uname: Linux 6.8.0-22-generic x86_64
NonfreeKernelMo
ApportVersion: 2.28.0-0ubuntu1
Architecture: amd64
CasperMD5CheckR
CurrentDesktop: ubuntu:GNOME
Date: Sun Apr 14 15:16:10 2024
ProcEnviron:
LANG=en_US.UTF-8
PATH=(custom, no user)
SHELL=/bin/zsh
TERM=xterm-
XDG_RUNTIME_
SourcePackage: displaycal-py3
UpgradeStatus: Upgraded to noble on 2024-04-14 (0 days ago)
mtime.conffile.
Changed in displaycal-py3 (Ubuntu): | |
status: | Triaged → In Progress |
assignee: | nobody → Erich Eickmeyer (eeickmeyer) |
description: | updated |
Changed in displaycal-py3 (Ubuntu Noble): | |
status: | New → In Progress |
importance: | Undecided → High |
assignee: | nobody → Erich Eickmeyer (eeickmeyer) |
summary: |
- displaycal 3.9.11-2 fails to start in noble, needs python 3.11 + [SRU] displaycal 3.9.11-2 fails to start in noble, needs python 3.11 |
summary: |
- [SRU] displaycal 3.9.11-2 fails to start in noble, needs python 3.11 + [SRU] displaycal 3.9.11-2 needs patch to work with Python 3.12 |
Changed in displaycal-py3 (Ubuntu Noble): | |
status: | In Progress → Incomplete |
description: | updated |
description: | updated |
description: | updated |
Changed in displaycal-py3 (Ubuntu Oracular): | |
status: | Fix Released → In Progress |
Changed in displaycal-py3 (Ubuntu Noble): | |
status: | Incomplete → In Progress |
Changed in displaycal-py3 (Ubuntu Oracular): | |
status: | In Progress → Fix Committed |
It's also worth noting that displaycal-py3 does not support python 3.12 yet. See for example https:/ /github. com/eoyilmaz/ displaycal- py3/issues/ 335#issuecommen t-2016761349