Repository navigation
Conversation
luhenry
marked this pull request as draft
October 13, 2026 09:25
Upstream tags releases without a "v" prefix, so check out
${XTGEO_VERSION} rather than v${XTGEO_VERSION}; every build job failed
at checkout with "A branch or tag with the name 'v4.25.1' could not be
found".
Override the inherited [tool.cibuildwheel.linux] before-all: fmt-devel
is EPEL-only and the riscv64 manylinux image has no EPEL, so
"yum install -y eigen3-devel fmt-devel" exits non-zero there. Install
eigen3-devel (CRB) only; CMake already falls back to FetchContent for
fmt.
Pin SETUPTOOLS_SCM_PRETEND_VERSION_FOR_XTGEO: applying the patches
leaves the tree dirty and setuptools_scm otherwise versions the wheel
4.25.2.dev0. The full-history fetch is no longer needed.
Patch 0002 now calls SWIG_AppendOutput() so void functions keep
SWIG's $isvoid behaviour; the hardcoded is_void=0 made them return
[None, ...]. New patch 0003 replaces the PyString_Check, PyInt_Check
and PyInt_AsLong macros that SWIG 4.5 removed, which left
_cxtgeo with an undefined PyInt_AsLong symbol.
matplotlib (a direct xtgeo runtime dependency) pulls in pillow, whose newest PyPI release has no riscv64 wheel. pip fell back to building pillow's sdist, which fails with "RequiredDependencyException: jpeg" since the manylinux_2_39_riscv64 image carries no libjpeg headers (gotcha 291). Our own registry already hosts riscv64 pillow wheels for cp312/cp313/cp314 (verified via ci_scripts/check_riscv64_deps.py), so listing pillow in PIP_ONLY_BINARY makes pip prefer those instead.
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.
xtgeo4.25.1Compiles xtgeo's pybind11 and SWIG C/C++ extensions (3D grid, surface, cube and well geometry routines; fmt and Eigen fetched at build time). Upstream publishes no riscv64 wheel.
Mirrors upstream's
publish.yml.Differs from upstream
swig<4.3.0unpinned toswig- that range has no riscv64 PyPI wheelnumpy.ipatched for SWIG's 4.3+ 3-argSWIG_Python_AppendOutput- project's vendored copy predates itMatrix: cp312/cp313/cp314, no cp314t (matches upstream); cp311 dropped since numpy>=2.5 floors at 3.12 and our registry only hosts that line.
Testing
License: fmt (MIT) and Eigen (MPL-2.0) are fetched via CMake FetchContent and statically linked; neither is GPL, so no extra action needed.
Patches
0001-unpin-swig-for-riscv64.patch- Inappropriate. Drops the<4.3.0pin; its own Python 3.8 rationale no longer applies here. Reproduces on x86_64.0002-fix-numpy-i-for-swig-4.3-appendoutput-signature.patch- Inappropriate. Fixes a real build break with any riscv64-wheel-having SWIG. Reproduces on x86_64.Built on cp311 locally (floor interpreter available here); wheel imports and a RegularSurface smoke-checks clean.