Bug 2397248

Summary: displaycal doesn't work with Python 3.14: RuntimeError: Need Python version >= 3.8 <= 3.13, got 3.14.0rc3
Product: [Fedora] Fedora Reporter: Karolina Surma <ksurma>
Component: DisplayCALAssignee: Neal Gompa <ngompa13>
Status: NEW --- QA Contact:
Severity: high Docs Contact:
Priority: unspecified    
Version: 43CC: djschaap, felix, jistone, mhroncok, mike, ngompa13, serge, vk2bea
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: ---
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 2322407    

Description Karolina Surma 2025-09-22 09:00:08 UTC
Description of problem:

From: https://bodhi.fedoraproject.org/updates/FEDORA-2025-40fbce042c

❯ displaycal
Traceback (most recent call last):
  File "/usr/bin/displaycal", line 4, in <module>
    from DisplayCAL.main import main
  File "/usr/lib/python3.14/site-packages/DisplayCAL/main.py", line 21, in <module>
    raise RuntimeError(
    ...<6 lines>...
    )
RuntimeError: Need Python version >= 3.8 <= 3.13, got 3.14.0rc3


Unfortunately package doesn't run any tests, so we didn't catch it during the year of integration. Please add at least an import check or some other smoke test to the specfile.

Comment 1 Miro Hrončok 2025-09-22 10:07:51 UTC
The version is read from https://github.com/eoyilmaz/displaycal-py3/blob/3.9.16/DisplayCAL/meta.py#L57 and the RuntimError is raised in https://github.com/eoyilmaz/displaycal-py3/blob/3.9.16/DisplayCAL/main.py#L20

For the purpose of distro packaging, I think the entire check should be packaged out.

I am setting the severity to high, as this package is completely non-functional.

Comment 2 Neal Gompa 2025-09-22 13:39:37 UTC
Yes, I agree it should be patched out. Would you be willing to send a PR for it? I can take it and build it.

Comment 3 Miro Hrončok 2025-09-22 15:44:10 UTC
The patch is simple, but even then, I have trouble running a basic smoke test in %check.

  xwfb-run -c mutter -- displaycal --version / --help

Both hang, as if the options do nothing.

Comment 4 Michael Cronenworth 2026-01-03 00:19:28 UTC
Patching out the version check won't help much. It does let the app start, but a calibration does not complete. There is at least two issues presented in calibration.

1) DisplayCAL usage of json.dumps() and an encoding parameter (gone in Python 3.14)
2) Calibration does not complete after #1 is patched. DisplayCAL complains "DisplayCAL is already running" and does not finish a calibration.

I had to install into a Python 3.13 virtual environment and a calibration completed successfully inside of it.

Comment 5 Felix Triebel 2026-06-05 06:20:28 UTC
Wouldn't it be possible to "dnf install python3.13", then use that for DisplayCAL? But no, I see it installs files into /usr/lib/python3.14/site-packages/DisplayCAL . How hard would it be to make DisplayCAL depend on an older Python package?

Comment 6 Michael Cronenworth 2026-06-29 19:20:30 UTC
Upstream has announced they support Python 3.14 on their develop branch.

https://github.com/eoyilmaz/displaycal-py3/issues/621#issuecomment-4835800778

Comment 7 Michael Katzmann 2026-10-17 15:31:37 UTC
Fedora 45 is shipping with Python 3.15 ... 

😼 displaycal-3dlut-maker --version
Traceback (most recent call last):
  File "/usr/bin/displaycal-3dlut-maker", line 4, in <module>
    from DisplayCAL.main import main
  File "/usr/lib/python3.15/site-packages/DisplayCAL/main.py", line 21, in <module>
    raise RuntimeError(
    ...<6 lines>...
    )
RuntimeError: Need Python version >= 3.8 <= 3.13, got 3.15.0