build(deps): update hts-sys to 2.2.1 for bindgen 0.72 compatibility - #130
build(deps): update hts-sys to 2.2.1 for bindgen 0.72 compatibility#130BenjaminDEMAILLE wants to merge 2 commits into
Conversation
Cargo.lock pinned hts-sys 2.2.0, which requires bindgen ^0.69.4. That bindgen release mis-parses htslib headers with current libclang (LLVM 20+), emitting `sam_hdr_t` and `BGZF` as opaque `_address`-only types. rust-htslib then fails to compile against its own generated bindings with 11 E0609 "no field" errors. hts-sys 2.2.1 moved to bindgen ^0.72.1, which handles current clang. rust-htslib 1.x already declares hts-sys ^2.2.0, so refreshing the lockfile is enough — no manifest change needed. Distro packaging (Homebrew) builds from the tagged tarball with --locked, so the pinned version is what gets compiled. Closes seqeralabs#129 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The Security audit job fails on this PR, and on every other open PR, with:
Crate: crossbeam-epoch
Version: 0.9.18
Title: Invalid pointer dereference in `fmt::Pointer` impl for `Atomic`
and `Shared` when the underlying pointer is invalid
ID: RUSTSEC-2026-0204
Solution: Upgrade to >=0.9.20
crossbeam-epoch is a transitive dependency via rayon -> crossbeam-deque.
The advisory was published on 2026-07-06, after this branch was cut, so the
failure is unrelated to the hts-sys change — it reproduces on main.
`cargo update --package crossbeam-epoch` moves 0.9.18 -> 0.9.20 and touches
nothing else in the lockfile. `cargo test --release` passes (200 + 12 + 18 + 2).
The three remaining cargo-audit findings (number_prefix and ttf-parser
unmaintained, anyhow `Error::downcast_mut()` unsoundness) are reported as
allowed warnings and do not fail the job.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
The Security audit failure here is not caused by this PR — it reproduces on
Pushed Verified locally with
The three remaining findings are reported as allowed warnings and do not fail the job: 🤖 Generated with Claude Code |
Fixes #129.
Problem
Cargo.lockpinnedhts-sys 2.2.0, which requiresbindgen ^0.69.4. That bindgen release mis-parses the htslib headers with current libclang (LLVM 20+), emittingsam_hdr_tandBGZFas opaque_address-only types.rust-htslibthen fails to compile against its own generated bindings:This only shows up on toolchains with a recent libclang, so macOS (Command Line Tools libclang) builds fine while Linux CI with current LLVM fails. Distro packaging (Homebrew) builds the tagged tarball with
--locked, so the pinned 2.2.0 is what gets compiled.Fix
hts-sys 2.2.1moved tobindgen ^0.72.1, which parses the headers correctly.rust-htslib1.x already declareshts-sys ^2.2.0, so a lockfile refresh is sufficient — no manifest change:Lockfile delta:
hts-sys 2.2.0 -> 2.2.1,bindgen 0.69.5 -> 0.72.1,rustc-hash 1.1.0 -> 2.1.3,lazycelldropped.Verification
cargo buildOKcargo testOK (all tests pass)🤖 Generated with Claude Code