eccodeslib: add build-eccodeslib.yml for riscv64 wheels - #1694
Open
luhenry wants to merge 3 commits into
Open
Conversation
Compiled ecCodes C library (GRIB/BUFR), built via CMake/ecbuild from ecmwf/eccodes rather than upstream's private wheelmaker tool, with libaec/openjpeg built from source and libpng from the manylinux image's dnf repos. ENABLE_ECKIT_GEO stays at its CMake default (OFF) since eckit has no riscv64 build yet. Packaged as a single py3-none wheel since the compiled library is Python-ABI-independent (verified against upstream's published wheels).
luhenry
added a commit
that referenced
this pull request
Sep 10, 2026
find -iname only matches a basename, and the license file is /usr/share/licenses/libpng/LICENSE — inside a libpng/ directory, not a file whose own name contains "libpng" — so the find returned nothing and cp failed on an empty argument. Use the direct path, per the convention used by every other workflow in this repo (verified against the manylinux_2_39_aarch64 image, which the skill's own gotcha notes shares Rocky 10's exact package set and paths with manylinux_2_39_riscv64). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Az13NcXsVZzzxXmaxxUEy7
Ubuntu 24.04's stock apt python3-pip (24.0) lists zero manylinux_*_riscv64 tags, so it rejects the riscv64 wheel outright. Upgrade pip in the venv before installing findlibs/the wheel in the host-runner smoke test.
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.
eccodeslib2.48.0.26Compiles ecCodes, ECMWF's C library for decoding and encoding GRIB/BUFR meteorological data, with no Python bindings of its own. Upstream publishes no riscv64 wheel.
Mirrors the CMake flags of ecmwf/eccodes's own
python_wrapper/buildconfig, since upstream builds this wheel with a private tool (ecmwf-actions/reusable-workflows'python-wrapper-wheel.ymlplus its "wheelmaker" image), not a public CI workflow.Differs from upstream
ENABLE_ECKIT_GEO=0, not upstream's1- eckit has no riscv64 build yet; only drops the optional geo-iterator backend.Testing
findlibs.load("eccodes")to confirm the library and its vendored codecs resolve and dlopen correctly.License: Apache-2.0. The wheel also vendors libpng, OpenJPEG and libaec (all BSD-style licences); their licence texts are added under
dist-info/licensessince this port builds them separately from eccodes itself.