pycountry was updated from 24.6.1 to 26.2.16 (#491301), but radios
pins pycountry to ^24.0.0 (i.e. <25). The only pycountry API radios
uses is countries.get(alpha_2=...), which is unchanged in v26.
Upstream has an open PR to bump the constraint (frenck/python-radios#1483)
but no release yet.
Use pythonRelaxDepsHook to drop the upper bound until upstream releases.
lib.sh previously hardcoded `--cap-lints allow` in both build_lib and
build_bin. Since rustc only honours the first `--cap-lints` it sees,
appending a different level via `extraRustcOpts` had no effect, making
it impossible to run clippy (or any lint-based tooling) through
buildRustCrate without wrapper scripts that strip the argument.
This adds a `capLints` parameter (default `"allow"`, preserving current
behaviour) that can be set per-crate or via `.override`:
(myCrate { }).override { capLints = "warn"; }
When the rust-src component is installed (common with rust-overlay
toolchains via rust-toolchain.toml), rustc unvirtualises libstd source
paths. Panic locations from monomorphised generic std code
(BTreeMap, VecDeque, sync primitives, etc.) then embed the toolchain
store path in .rodata, pulling the entire multi-GB toolchain into the
runtime closure.
This is not an RPATH issue — stdenv's patchelf --shrink-rpath already
cleans that. The reference is a core::panic::Location string.
Remap the rustc store path to /rustc so panic messages stay readable
but no longer create a store-path dependency. This is a no-op for
toolchains without rust-src (the prefix simply never matches).
`ldacBT_init_handle_decode` passes `hLdacBT->cci`, `hLdacBT->frmlen`,
and `hLdacBT->frm_status` to `ldaclib_set_config_info()` before they
are assigned, causing `LDACBT_ERR_FATAL` on every decode init.
This breaks PipeWire 1.6+'s LDAC codec entirely, since the SPA plugin
treats decoder init failure as fatal and refuses to initialize the
encoder too.
Move the struct member assignments before the function call that uses
them.