Conversation
Builds LibRaw from the vendored git submodule via cibuildwheel, the same CMake-driven recipe rawpy's own setup.py uses on every platform. Rocky 10 riscv64 ships lcms2/jasper directly; libjpeg-turbo is built from source with -DWITH_JPEG8=ON to get the DNG lossy codec's ABI the same way upstream's own build-linux.sh does, since riscv64 has no libjpeg-turbo SIMD kernels either way (-DWITH_SIMD=0). No architectural blocker: this LibRaw release carries no x86 SIMD intrinsics at all, and every optional codec dependency (LCMS2, JPEG, Jasper) degrades gracefully through CMake's own find_package when absent. One patch moves 16 OpenMP loops in the vendored LibRaw copy (raw2image.cpp, ahd_demosaic.cpp, dht_demosaic.cpp) from schedule(dynamic)/schedule(guided) to schedule(static), working around the riscv64 runners' libgomp defect (gotcha 166) that segfaults on those schedules; raw2image.cpp's loops run on every single postprocess() call.
luhenry
added a commit
that referenced
this pull request
Sep 21, 2026
Contributor
|
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.
rawpy0.27.0Cython wrapper around LibRaw (vendored as a git submodule) for decoding camera RAW files. Upstream publishes no riscv64 wheel.
Mirrors upstream's own manylinux build (
build-linux.sh).Differs from upstream
-DWITH_JPEG8=ON- Rocky's package lacks the JPEG8 ABI the DNG lossy codec needsTesting
CI=trueset so upstream's own CI-only feature-flag test runsexamples/staged alongsidetest/sotest_examples.pyruns tooLicense: Wheel bundles libgomp (GPL-3.0-or-later with the GCC Runtime Library Exception; sources published via
gpl_sources) and lcms2/libjpeg-turbo/jasper, none of which upstream's sdist ships license text for, so the build adds all four.Patches
0001-use-schedule-static-for-the-dynamic-and-guided-OpenMP-loops.patch- Inappropriate [libgomp dynamic and guided OpenMP schedules segfault on the riscv64 runners #617]. Works around the riscv64 runners' libgomp defect on dynamic/guided OpenMP schedules, reachable on every decode; riscv64-only, does not reproduce off riscv64.Built on cp312 (x86 rehearsal); 51 passed, 2 skipped.