Skip to content

pyopengl-accelerate: add build-pyopengl-accelerate.yml for riscv64 wheels - #1748

Open
luhenry wants to merge 2 commits into
mainfrom
pyopengl-accelerate
Open

pyopengl-accelerate: add build-pyopengl-accelerate.yml for riscv64 wheels#1748
luhenry wants to merge 2 commits into
mainfrom
pyopengl-accelerate

Conversation

@luhenry

@luhenry luhenry commented Sep 11, 2026

Copy link
Copy Markdown
Member

Compiles nine small Cython acceleration modules for the pure-Python PyOpenGL package (array marshalling, format handlers, VBOs); no OpenGL library linkage at build time, it's dlopen'd at runtime by pure-Python PyOpenGL. Upstream publishes no riscv64 wheel.

Mirrors upstream's accelerate-manylinux.yml.

Differs from upstream

  • Dropped musllinux - numpy, a build-time dependency, has no riscv64 musllinux wheel anywhere.
  • Runs the real upstream test suite - upstream's cibuildwheel step runs no tests at all.
  • CIBW_BEFORE_TEST_LINUX installs mesa-libGL - OpenGL.GL binds libGL at import time even though the tests never create a real context.

Testing

  • test_arraydatatypeaccel.py and test_numpyaccel.py against the built wheel, staged via CIBW_TEST_SOURCES.

License: OK

Patches

  • 0001-pyproject.toml-declare-license-files-so-the-wheel-s.patch - To upstream. The legacy [project.license] table form suppresses setuptools' PEP 639 default license-files glob, so the wheel ships no licence file (same gap in the real PyPI wheel). Reproduces off riscv64.

Built on cp312/cp313/cp314/cp314t manylinux_riscv64: 53 passed on each, publish dry-ran cleanly.

…eels

Cython/setuptools build of PyOpenGL's compiled acceleration package
(wrapper, formathandler, arraydatatype, errorchecker, vbo,
nones_formathandler, latebind, buffers_formathandler,
numpy_formathandler) - no OpenGL library linkage at build time, it's
dlopen'd at runtime by pure-Python PyOpenGL. manylinux only: numpy
has no riscv64 musllinux wheel anywhere, and it's a build-time
requirement for numpy_formathandler.

Runs the real upstream test suite (test_arraydatatypeaccel.py,
test_numpyaccel.py) against the built wheel; OpenGL.GL binds libGL at
import time on Linux even though the tests never create a real GL
context, so CIBW_BEFORE_TEST_LINUX installs mesa-libGL.

Includes a small pyproject.toml patch so the wheel ships license.txt
under dist-info/licenses/ - the upstream table-form
[project.license] suppresses setuptools' PEP 639 default glob (and
the file is lowercased anyway, which the glob wouldn't match), so the
real PyPI 3.1.10 wheel ships none either.
luhenry added a commit that referenced this pull request Sep 11, 2026
CIBW_TEST_REQUIRES was missing numpy, so most of the accelerate test
suite self-skipped (20 passed, 33 skipped: 'Numpy not available') even
though PyOpenGL and pytest installed fine. The license check also
false-failed: the wheel's dist-info/licenses/ directory entry itself
(name ending in '/') was included in the found set, rsplit-ing to an
empty string alongside 'license.txt'.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant