Skip to content

rawpy: Add version 0.27.0 - #2193

Merged
luhenry merged 1 commit into
mainfrom
rawpy
Sep 22, 2026
Merged

luhenry merged 1 commit into
mainfrom
rawpy

Conversation

@luhenry

@luhenry luhenry commented Sep 21, 2026

Copy link
Copy Markdown
Member

Cython 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

  • lcms2/jasper come from Rocky 10's own packages - upstream's older manylinux_2_28 image lacks them
  • libjpeg-turbo still built from source with -DWITH_JPEG8=ON - Rocky's package lacks the JPEG8 ABI the DNG lossy codec needs

Testing

  • CI=true set so upstream's own CI-only feature-flag test runs
  • examples/ staged alongside test/ so test_examples.py runs too

License: 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

Built on cp312 (x86 rehearsal); 51 passed, 2 skipped.

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
@github-actions

github-actions Bot commented Sep 21, 2026

Copy link
Copy Markdown
Contributor
PR Preview Action v1.8.1
Preview removed because the pull request was closed.
2026-09-22 06:54 UTC

@luhenry
luhenry merged commit 3a85dcb into main Sep 22, 2026
15 of 16 checks passed
@luhenry
luhenry deleted the rawpy branch September 22, 2026 06:45
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