Skip to content

cmeel-qhull: Add version 8.0.2.1 - #2160

Merged
luhenry merged 1 commit into
mainfrom
port/cmeel-qhull
Sep 21, 2026
Merged

luhenry merged 1 commit into
mainfrom
port/cmeel-qhull

Conversation

@luhenry

@luhenry luhenry commented Sep 21, 2026

Copy link
Copy Markdown
Member

Builds qhull 8.0.2 - the libqhull_r shared library, the static libqhullcpp/libqhullstatic archives, headers, CMake/pkg-config files and the qconvex/qdelaunay/qvoronoi/qhalf/rbox tools - into a cmeel prefix through the cmeel CMake build backend, for the robotics stack that consumes convex hulls from it. Upstream publishes no riscv64 wheel.

Mirrors upstream's release.yml.

Differs from upstream

  • Single-arch, glibc-only matrix - macOS/x86_64/aarch64 legs dropped.
  • CMAKE_POLICY_VERSION_MINIMUM=3.5 - qhull still declares a CMake 3.0 minimum, which CMake 4 rejects.

Matrix: one job - [tool.cmeel] has-sitelib = false, so the single py3-none-manylinux_riscv64 wheel covers every interpreter.

Testing

  • same as upstream, which only installs the wheel.
  • also loads libqhull_r.so through ctypes and hulls/triangulates generated point sets with the wheel's own tools.

License: Wheel ships qhull under the Qhull licence, with upstream's COPYING.txt included as it is on every other arch.

Builds clean from the tag with no patches; a QEMU riscv64 rehearsal produced a wheel whose namelist matches upstream's x86_64 release wheel exactly.

qhull provides convex hull, Delaunay triangulation, Voronoi diagram and
halfspace intersection, and cmeel-qhull is the cmake-wheel distribution the
pinocchio/hpp-fcl robotics stack installs it from. No riscv64 wheel exists on
PyPI, so the cmeel dependents cannot resolve on riscv64.

[tool.cmeel] has-sitelib = false, so the wheel carries no Python extension and
a single py3-none-manylinux_riscv64 wheel covers every interpreter; build-number
= 1 makes v8.0.2.1.c1 the tag that reproduces the current release.

qhull's CMakeLists.txt declares cmake_minimum_required(VERSION 3.0) while
cmeel[build] resolves CMake >= 4, which refuses anything below 3.5;
CMAKE_POLICY_VERSION_MINIMUM=3.5 in CIBW_ENVIRONMENT fixes it without a patch.
@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-21 11:30 UTC

luhenry added a commit that referenced this pull request Sep 21, 2026
…7-508

Gotcha 507: a segfault out of a hand-written ctypes smoke test is usually the
test's own declaration - c_char_p.in_dll on a C char array dereferences the
string's first bytes as a pointer, and a call with no restype/argtypes returns
garbage. Reproduce the line against the local x86 build before blaming riscv64.

Gotcha 508: a job is not hung because the agent's own sense of elapsed time says
so - an agent session's sleep does not track the runners' clock. Compare the
job's started_at with date -u, let timeout-minutes do the killing, and re-run a
run rather than cancel it.
@luhenry
luhenry marked this pull request as ready for review September 21, 2026 11:25
@luhenry
luhenry merged commit 019ecaf into main Sep 21, 2026
11 of 12 checks passed
@luhenry
luhenry deleted the port/cmeel-qhull branch September 21, 2026 11:26
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