Skip to content

Build fails with GCC 14 due to pinned Conan version (~=2.0.16) #44

Description

@medley56

Summary

pillow-jpls==1.3.2 fails to build from source on systems with GCC 14, because the Conan version constraint in pyproject.toml (conan~=2.0.16) resolves to a version that predates GCC 14 support in Conan's settings.yml.

Error

ERROR: Invalid setting '14' is not a valid 'settings.compiler.version' value.
Possible values are ['4.1', '4.4', '4.5', '4.6', '4.7', '4.8', '4.9', '5', ... '13', '13.1', '13.2']

Full build command and output:

$ pip wheel --no-cache-dir --use-pep517 "pillow-jpls (==1.3.2)"
Collecting pillow-jpls==1.3.2
  Downloading pillow_jpls-1.3.2.tar.gz (817 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 818.0/818.0 kB 10.7 MB/s  0:00:00
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
  Preparing metadata (pyproject.toml) ... done
Collecting Pillow (from pillow-jpls==1.3.2)
  Downloading pillow-12.2.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.metadata (8.8 kB)
Downloading pillow-12.2.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (6.4 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.4/6.4 MB 10.1 MB/s  0:00:00
Saved ./pillow-12.2.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Building wheels for collected packages: pillow-jpls
  Building wheel for pillow-jpls (pyproject.toml) ... error
  error: subprocess-exited-with-error
  
  × Building wheel for pillow-jpls (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [65 lines of output]
      2026-04-09 10:39:18,346 - scikit_build_core - WARNING - ninja should not be in build-system.requires - scikit-build-core will inject it as needed
      *** scikit-build-core 0.12.2 using CMake 4.3.1 (wheel)
      *** Configuring CMake...
      loading initial cache file /tmp/tmpiw9f_y84/build/CMakeInit.txt
      -- The C compiler identification is GNU 14.2.0
      -- The CXX compiler identification is GNU 14.2.0
      -- Detecting C compiler ABI info
      -- Detecting C compiler ABI info - done
      -- Check for working C compiler: /usr/bin/gcc - skipped
      -- Detecting C compile features
      -- Detecting C compile features - done
      -- Detecting CXX compiler ABI info
      -- Detecting CXX compiler ABI info - done
      -- Check for working CXX compiler: /usr/bin/g++ - skipped
      -- Detecting CXX compile features
      -- Detecting CXX compile features - done
      /tmp/pip-build-env-gs_p4yhu/overlay/lib/python3.13/site-packages/patch_ng.py:427: SyntaxWarning: invalid escape sequence '\d'
        re_hunk_start = re.compile(b"^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@")
      /tmp/pip-build-env-gs_p4yhu/overlay/lib/python3.13/site-packages/patch_ng.py:578: SyntaxWarning: invalid escape sequence '\s'
        re_filename_date_time = b"^--- ([^\t]+)(?:\s([0-9-]+)\s([0-9:]+)|.*)"
      /tmp/pip-build-env-gs_p4yhu/overlay/lib/python3.13/site-packages/patch_ng.py:621: SyntaxWarning: invalid escape sequence '\+'
        re_filename_date_time = b"^\+\+\+ ([^\t]+)(?:\s([0-9-]+)\s([0-9:]+)|.*)"
      /tmp/pip-build-env-gs_p4yhu/overlay/lib/python3.13/site-packages/patch_ng.py:653: SyntaxWarning: invalid escape sequence '\d'
        match = re.match(b"^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@(.*)", line)
      -- CMake-Conan: first find_package() found. Installing dependencies with Conan
      -- CMake-Conan: Checking if a default profile exists
      /root/.conan2/profiles/default
      -- CMake-Conan: cmake_system_name=Linux
      -- CMake-Conan: cmake_system_processor=armv8
      -- CMake-Conan: CMake compiler=GNU
      -- CMake-Conan: CMake compiler version=14.2.0
      -- CMake-Conan: [settings] compiler=gcc
      -- CMake-Conan: [settings] compiler.version=14
      -- Performing Test _CONAN_IS_GNU_LIBSTDCXX
      -- Performing Test _CONAN_IS_GNU_LIBSTDCXX - Success
      -- Performing Test _CONAN_GNU_LIBSTDCXX_IS_CXX11_ABI
      -- Performing Test _CONAN_GNU_LIBSTDCXX_IS_CXX11_ABI - Success
      -- CMake-Conan: Creating profile /tmp/tmpiw9f_y84/build/conan_host_profile
      -- CMake-Conan: Profile:
      [settings]
      arch=armv8
      os=Linux
      compiler=gcc
      compiler.version=14
      compiler.libcxx=libstdc++11
      build_type=Release
      [conf]
      tools.cmake.cmaketoolchain:generator=Ninja
      tools.build:compiler_executables={"c":"/usr/bin/gcc","cpp":"/usr/bin/g++"}
      
      -- CMake-Conan: Installing single configuration Release
      -- CMake-Conan: conan install /tmp/pip-wheel-ig58x39r/pillow-jpls_793f35e05dcc480ab319ca061ee5add5 -of=/tmp/tmpiw9f_y84/build/conan --profile:host=default;--profile:host=/tmp/tmpiw9f_y84/build/conan_host_profile;--profile:build=default;--build=missing;-g;CMakeDeps
      ERROR: Invalid setting '14' is not a valid 'settings.compiler.version' value.
      Possible values are ['4.1', '4.4', '4.5', '4.6', '4.7', '4.8', '4.9', '5', '5.1', '5.2', '5.3', '5.4', '5.5', '6', '6.1', '6.2', '6.3', '6.4', '6.5', '7', '7.1', '7.2', '7.3', '7.4', '7.5', '8', '8.1', '8.2', '8.3', '8.4', '8.5', '9', '9.1', '9.2', '9.3', '9.4', '9.5', '10', '10.1', '10.2', '10.3', '10.4', '10.5', '11', '11.1', '11.2', '11.3', '11.4', '12', '12.1', '12.2', '12.3', '13', '13.1', '13.2']
      Read "http://docs.conan.io/2/knowledge/faq.html#error-invalid-setting"
      CMake Error at cmake/conan_provider.cmake:437 (message):
        Conan install failed='1'
      Call Stack (most recent call first):
        cmake/conan_provider.cmake:544 (conan_install)
        CMakeLists.txt:6 (find_package)
      
      
      -- Configuring incomplete, errors occurred!
      
      *** CMake configuration failed
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for pillow-jpls
Failed to build pillow-jpls
ERROR: Failed to build one or more wheels

Root Cause

pyproject.toml pins conan~=2.0.16, which resolves to at most Conan 2.0.17. GCC 14 was released in May 2024, and Conan added GCC 14 to its default settings.yml in v2.3.1 via conan-io/conan#15958. Since ~=2.0.16 excludes anything ≥2.1, the build environment always gets a Conan version that doesn't recognize GCC 14.

GCC 14 is now the default compiler on current versions of Ubuntu (24.04+), Fedora (40+), and Debian (trixie), so this affects a growing number of users building from source.

Suggested Fix

Bump the Conan version constraint in pyproject.toml to allow at least Conan 2.3.1, e.g.:

"conan>=2.3.1,<3"

Environment

  • Python 3.13
  • GCC 14.2.0 (Debian/Ubuntu)
  • pip 25.x (building from sdist)
  • aarch64 (also reproducible on x86_64)

In case it's not obvious, an LLM helped me generate this issue but I am a person

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions