PyAV: add riscv64 build support, use pyav-ffmpeg artifacts in smoke.yml - #2407
Merged
Merged
Conversation
Be explicit when running apt-get and provide the '-y' option so that the workflows install any packages they need, in case the runner environment doesn't already contain them. Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
Use a RISE RISC-V Runner (ubuntu-24.04-riscv) for riscv64 in the package-wheel job. We need to tell uv to use the RISE registry first and fallback to PyPI otherwise, so that it doesn't try to build packages like Pillow (which also doesn't have riscv64 PyPI wheels yet) from source. Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
Contributor
Author
|
@WyattBlue the checks report says you cancelled the riscv64 ones. Is that just because the runners aren't enabled? Any general comments about this PR? |
Member
|
RISC runners are now enabled however:
|
Contributor
Author
Alright. Thanks for enabling the runners. I'll experiment with some changes to the compile step so we don't re-use the pyav-ffmpeg archives. |
Use a RISE RISC-V Runner to test the latest FFmpeg combo in the smoke tests. We need to tell uv to use the RISE registry first and fallback to PyPI otherwise, so that it doesn't try to build packages like Pillow (which also doesn't have riscv64 wheels on PyPI yet) from source. Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
threexc
force-pushed
the
tgamblin/riscv64
branch
from
September 15, 2026 20:47
e69183a to
562d3b7
Compare
Contributor
Author
|
@WyattBlue what do you think? |
Member
|
Worthly enough to be worth using. A good follow up would be making the risv smoke tests faster, maybe by using pyav-ffmpeg binaries like Windows tests already does. |
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.
Make use of RISE's Native RISC-V Runners to build PyAV for riscv64. This requires enabling them for the repository as a GitHub Application. More info regarding enabling them is available here: https://riscv-runners.riseproject.dev/
To get the
smoke.ymlworkflow to succeed, I've reworked it to use pyav-ffmpeg artifacts like thetests.ymlworkflow does, except that thearmv7ljob still follows the existing approach. While working through this, I encountered a bug specific to the RISC-V Runners (riscv64gcprofile), where I hit an illegal instruction/core dump issue that seems to be related to: https://www.mail-archive.com/ffmpeg-trac@avcodec.org/msg69006.html . Using the pyav-ffmpeg artifacts circumvented this issue, which is why it was implemented that way. This is a temporary workaround - in the future, the RISC-V Runners will support a more expansive profile. If using pyav-ffmpeg artifacts in thesmoke.yamlworkflow is undesirable, I can revisit it and maybe adjust compiler flags instead.I tried a test run on my fork. You can review the results here: threexc#2
This is being done on behalf of RISE, using the RISC-V Wheels dashboard to track upstream support for the Python ecosystem.