Thanks Graham, done accordingly. ** Description changed:
The llvm-21-tools package ships a test file that contains non-UTF-8 characters without an encoding declaration, causing package installation to fail with Python 3.14. ** Affected Package ** llvm-21-tools 1:21.1.8-1ubuntu1 ** Problematic File ** /usr/lib/llvm-21/build/utils/lit/tests/shtest-encoding.py ** Error ** When Python 3.14 is the default interpreter, installing llvm-21-tools triggers: SyntaxError: Non-UTF-8 code starting with '\xc2' on line 3, but no encoding declared This occurs during package post-installation when Python attempts to byte-compile the file. The error causes llvm-21-tools configuration to fail, which blocks installation of: - clang-tidy-21 - python3-pygments (via rtupdate hooks) - Any package build-depending on LLVM 21 toolchain ** Impact ** This is a Python 3.14 transition blocker affecting the entire Ubuntu archive. Any package that build-depends on clang-21, clang-tidy-21, clang-tools-21, llvm-21-dev, or llvm-21-tools will fail to build when Python 3.14 is default. ** Technical Details ** Line 3 of shtest-encoding.py contains byte 0xc2 (non-UTF-8 character) but lacks a PEP 263 encoding declaration (e.g., # -*- coding: utf-8 -*-). Python 3.14 enforces PEP 263 strictly and fails to compile such files, while Python 3.13 is more lenient. Verification: $ python3.14 -m py_compile /usr/lib/llvm-21/build/utils/lit/tests/shtest-encoding.py File "/usr/lib/llvm-21/build/utils/lit/tests/shtest-encoding.py", line 3 SyntaxError: Non-UTF-8 code starting with '\xc2' $ sed -n '3p' /usr/lib/llvm-21/build/utils/lit/tests/shtest-encoding.py | xxd (shows 0xc2 byte) ** Proposed Solutions ** Option 1 (minimal fix): Add encoding declaration to shtest-encoding.py: # -*- coding: utf-8 -*- Option 2: Don't ship test files in binary packages. Modify debian/llvm-21-tools.install to exclude: - /usr/lib/llvm-21/build/utils/lit/tests/ + /usr/lib/llvm-21/build/utils/lit/tests/ + + Option 3 (new): + Add a bcep (Byte-compilation exception patterns) in debian/ directory. + d/llvm-X.Y-tools.bcep.in ** Reproduction ** 1. Install Python 3.14 as default interpreter 2. Attempt to install llvm-21-tools 3. Observe package configuration failure during Python byte-compilation ** Build Log Evidence ** Failed build (Python 3.14): https://launchpadlibrarian.net/844369461/buildlog_ubuntu-resolute-amd64.hipify_7.1.0+dfsg-0ubuntu3_BUILDING.txt.gz Successful build (Python 3.13): https://launchpadlibrarian.net/844233787/buildlog_ubuntu-resolute-amd64.hipify_7.1.0+dfsg-0ubuntu3_BUILDING.txt.gz ** References ** PEP 263: Defining Python Source Code Encodings https://www.python.org/dev/peps/pep-0263/ -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2138890 Title: llvm-21-tools: shtest-encoding.py missing encoding declaration breaks Python 3.14 installation To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/llvm-toolchain-21/+bug/2138890/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
