Skip to content

tblite: Add version 0.7.0 - #3215

Merged
riseproject-dev[bot] merged 3 commits into
mainfrom
tblite
Oct 26, 2026
Merged

riseproject-dev[bot] merged 3 commits into
mainfrom
tblite

Conversation

@luhenry

@luhenry luhenry commented Oct 14, 2026 •

Copy link
Copy Markdown
Member

Compiles the tblite Fortran library and its meson subprojects (dftd4, s-dftd3, mctc-lib, ...) into a CFFI extension linked against LAPACK. Upstream publishes no riscv64 wheel.

Mirrors upstream's wheel.yml sdist and wheels jobs.

Differs from upstream

  • sdist job installs its build tools from PyPI with uv instead of a micromamba environment.
  • PyPy wheels not built.

Testing

  • Adds pytest --pyargs tblite (upstream's build.yml Python test) with ase; qcelemental dropped, its QCSchema tests skip.

License: Wheel bundles reference LAPACK/BLAS (BSD-3-Clause) and libgfortran (GPL-3.0-or-later WITH GCC-exception-3.1); the patch adds the LAPACK licence, and the gcc sources are published.

Patches

  • 0001-Ship-tblite-s-and-its-bundled-dependencies-licences-.patch - To upstream. Upstream wheels ship no licence files (legacy license.text under meson-python); lists tblite's, its subprojects' and LAPACK's. Reproduces on x86.

Patched sdist builds under QEMU riscv64; wheel results from CI.

luhenry added a commit that referenced this pull request Oct 14, 2026
@luhenry
luhenry marked this pull request as draft October 14, 2026 11:30
Every riscv64 wheel test segfaulted in the first singlepoint, inside
libgomp's gomp_iter_dynamic_next() called from
tblite_scf_iterator::get_qat_from_qsh's parallel region. That is the
riscv64 runners' libgomp fault on dynamic schedules (#617); tblite's
schedule(runtime) loops default to dynamic.

-Dtblite:openmp=false never reached those loops: dftd4, multicharge,
s-dftd3 and ddX declare their openmp options with yield: true, which
yields to the top-level python/ project, and it has none. They stay on
and their dependencies propagate -fopenmp into tblite's own sources.
Turn each one off so nothing is compiled with -fopenmp, as in a
top-level tblite build with openmp=false. ddX calls omp_get_wtime and
friends regardless of its option, so link with -fopenmp to keep
libgomp for those runtime calls; the wheel then imports no GOMP_*
work-sharing entry points at all.
ase's matplotlib dependency (and matplotlib's own pillow dependency) have
newer releases on PyPI than our registry has riscv64 wheels for, so pip
picked PyPI's sdist-only releases over ours. pillow's sdist build then
failed with RequiredDependencyException: jpeg, since the manylinux_riscv64
image carries no libjpeg headers. All four build legs (cp312/cp313/cp314/
cp314t) failed identically at the CIBW_TEST_REQUIRES install step.

Add pillow and matplotlib to PIP_ONLY_BINARY so pip prefers our riscv64
wheels for them instead.
@luhenry
luhenry marked this pull request as ready for review October 26, 2026 08:33
@riseproject-dev
riseproject-dev Bot merged commit 7d0e3a7 into main Oct 26, 2026
11 checks passed
@riseproject-dev
riseproject-dev Bot deleted the tblite branch October 26, 2026 08:36
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