Files
Daniel Johnson 7550fe8731 appimage: install a modern setuptools + packaging in the build image
Noble's apt-shipped setuptools (68.1.2) predates PEP 639 SPDX string
license support, added in setuptools 77.0.0. Since pyproject.toml
declares `license = "GPL-3.0-or-later"` in that form, `setup.py
install` now aborts with

    configuration error: `project.license` must be valid exactly by
    one definition (2 matches found)

on every AppImage build.

Add three things to the existing pycairo pip install:

* `setuptools>=77` — the actual PEP 639 fix.
* `packaging>=24.2` — setuptools 77+ delegates SPDX normalization to
  `packaging.licenses`, which landed in packaging 24.2; Noble ships
  24.0, so the setuptools upgrade alone raises
  `ImportError: Cannot import packaging.licenses`.
* `--ignore-installed packaging` — Noble's `python3-packaging` is
  apt-managed with no RECORD file, so pip refuses to upgrade it in
  place ("Cannot uninstall packaging 24.0"). Ignoring the installed
  copy lets the newer packaging land alongside and shadow it on
  sys.path, without disturbing dpkg's view of the system.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-07-03 09:44:34 -04:00
..