Repository navigation
Conversation
Panda3D's own makepanda.py build/wheel tooling probes each native dependency (OpenGL, X11, audio, physics, Cg shaders, ...) and silently drops the feature when it's missing rather than failing the build, the same way upstream's own Linux CI already drops features it has no dev package for (Bullet). That makes the port tractable: install the subset of upstream's apt-get list that Rocky 10 riscv64 actually has (bison/flex/freetype/mesa-libGL/libjpeg-turbo/libpng/libvorbis/libX11 family/openal-soft/zlib/openssl), drop ode-devel (not packaged for Rocky 10) and nvidia-cg-toolkit (x86-only, never had a riscv64 build), and let SmartPkgEnable skip ODE/Cg gracefully. The one real blocker is makepanda's own --wheel platform-tag detection: it recognizes manylinux1/2010/2014/2_24/2_28 by checking for a specific versioned glibc file, none of which exist in manylinux_2_39_riscv64, so it falls through to a plain (non-manylinux) linux_riscv64 tag - confirmed locally against an x86_64 Ubuntu host, which hits the exact same fallback. patches/panda3d/1.10.16 adds a branch keyed on the target arch instead. A single job builds cp312/cp313/cp314/cp314t in one container invocation, reusing makepanda's own outputdir-keyed dependency cache across interpreters (matching upstream's own CI, which loops the same --outputdir across every Python version it supports) rather than rebuilding the ~700k-line engine from scratch per interpreter.
luhenry
added a commit
that referenced
this pull request
Oct 15, 2026
luhenry
marked this pull request as draft
October 15, 2026 12:13
dnf fails with "Unable to find a match: openal-soft-devel": the package exists only in EPEL on RHEL derivatives, and manylinux installs no EPEL on riscv64 (and Rocky 10's own BaseOS/AppStream/CRB for riscv64 carry no openal package under any name either). Drop it from the install list, same treatment already given to ode-devel and nvidia-cg-toolkit -- makepanda's SmartPkgEnable will probe for OpenAL, find it missing, and silently skip audio support instead of failing the build.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
panda3d1.10.16Compiles the Panda3D 3D engine's C++ core and its generated Python bindings via
makepanda. Upstream publishes no riscv64 wheel.Mirrors upstream's
makepandajob ofci.yml.Differs from upstream
Testing
License: OK.
Patches
0001-makepanda-detect-manylinux_2_39_riscv64.patch- To upstream, not yet submitted. makepanda's own--wheelplatform-tag detection only recognizes specific glibc files none of manylinux_2_39_riscv64 has, so it falls back to a non-manylinux tag; reproduces on x86_64 too (confirmed locally).CI pending.