Repository navigation
Conversation
The py3-none-<platform> wheel ships four C++ libraries loaded via ctypes (not CPython extensions), so one wheel serves every interpreter. Builds the libraries in the manylinux_riscv64 image with BUILD_STANDALONE's vendored cairo/freetype/pixman/zlib/etc (no SIMD gates in any of them), then patches setup.py's hardcoded --plat-name list to add riscv64. Stages licence texts for every statically linked third-party library, none of which ship in upstream's own wheel.
third_party/cairo/CMakeLists.txt links the system freetype and fontconfig (and hardcodes -I/usr/include/freetype2) on any non-Emscripten Unix build. The riscv64 job only installed cmake, so the cairo build failed with 'fatal error: ft2build.h: No such file or directory'. Both packages ship in Rocky's own repos on riscv64, no EPEL/CRB needed.
|
Root cause: the
Fix: install Pushed to |
…ned Pillow
api/python/setup.py reads the platform with opt.split("=")[1], so
"--plat-name manylinux_2_39_riscv64" (space-separated) raised IndexError.
Use the --plat-name=<name> --python-tag=py3 form of upstream's own
api/python/CMakeLists.txt.
The smoke test pinned Pillow==10.3.0 from requirements_dev.txt, which
has no riscv64 wheel; its sdist build needs libjpeg headers the
manylinux image lacks. Install Pillow unpinned, as upstream's
test_indigo_python_* jobs do, with PIP_ONLY_BINARY=Pillow.
epam-indigo1.46.0Compiles four C++ libraries (indigo, indigo-inchi, indigo-renderer, bingo-nosql) loaded via
ctypes, not CPython extensions, so onepy3-nonewheel serves every interpreter - matching upstream's own wheel shape. Upstream publishes no riscv64 wheel.Mirrors upstream's
indigo-ci.yamlbuild steps, driven directly in themanylinux_riscv64image instead of upstream's per-OS matrix.Differs from upstream
setup.py's hardcoded--plat-namelist, which has no riscv64 case.BUILD_STANDALONE(default on) builds cairo/freetype/libpng/pixman/zlib/rapidjson/lunasvg/tinyxml2 from the vendored sources rather than linking the image's own - same as upstream's own build, just narrowed to this one platform.Matrix: single py3-none wheel, no per-interpreter matrix - matches upstream's own ctypes-loaded shape.
Testing: upstream's own
api/python/testsunit suite, run against the installed wheel.License: Apache-2.0. The wheel statically links cairo (LGPL-2.1-or-MPL-1.1), pixman (MIT), zlib (zlib), rapidjson (MIT), lunasvg (MIT), freetype (FTL/GPL-2.0), libpng, tinyxml2, InChI and object_threadsafe (all permissive); upstream's own wheel ships none of their licence text, so this build adds it.
No local rehearsal: disk was at single-digit GB free with other agents active; left the real build to CI's riscv64 runner.