build-cran-binaries/local/patches/registry.json
pat-s 798b9c551a
fix(patches): widen RcppParallel system-tbb scope to the whole redhat family
el8/el9 were left out of #137 because they ship only classic Intel TBB. The
build-env images now build oneTBB 2021 from source into /usr/local on el8/el9
(build-env-images: vendor oneTBB), so every platform has oneTBB 2021+ and can
use the system-tbb patch. Widen the scope from redhat-10 to the redhat family
(covers el8/el9/el10) and update the reason accordingly.

Requires the el8/el9 images to be rebuilt with the vendored oneTBB.
2026-07-21 13:43:55 +00:00

42 lines
2.1 KiB
JSON

[
{
"package": "RcppParallel",
"versions": "*",
"platforms": [
"alpine",
"ubuntu",
"redhat"
],
"env": {},
"configure_args": [],
"makevars": {},
"patch": "RcppParallel/system-tbb.patch",
"reason": "RcppParallel bundles an old Intel TBB whose build fails on musl and modern toolchains (g++ 8-15 + modern make); link the system oneTBB (2021+) instead, keeping the TBB backend so dependents (rstan, ...) link TBB. All build-env platforms now provide oneTBB 2021+: native on alpine/ubuntu/el10, built from source into /usr/local on el8/el9 (their stock TBB is classic 2018/2020, too old)."
},
{
"package": "fs",
"versions": "*",
"platforms": [
"*"
],
"env": {},
"configure_args": [],
"makevars": {},
"patch": "fs/force-vendored-libuv.patch",
"reason": "fs 2.x configure links system libuv whenever pkg-config finds libuv-devel (installed as a build-time sysreq), producing an fs.so with NEEDED libuv.so.1. That binary fails to dyn.load on consumer machines lacking runtime libuv, because install.packages/renv do not install SystemRequirements (only pak does, and only in the build container). The patch short-circuits configure to copy src/Makevars.vendor and build the bundled static libuv (needs cmake) so the binary is self-contained on every platform. An env/pkg-config override was tried first but the rebuilt binary still linked libuv.so.1, so a source patch is used instead."
},
{
"package": "rstan",
"versions": "*",
"platforms": [
"*"
],
"env": {},
"configure_args": [],
"makevars": {
"CPPFLAGS": "-DTBB_INTERFACE_NEW -I/usr/local/include"
},
"patch": null,
"reason": "StanHeaders' init_threadpool_tbb.hpp unconditionally includes the legacy <tbb/tbb_stddef.h> (removed in oneTBB 2021+) for version detection, breaking compilation of Module.cpp against the bundled oneTBB. Pre-defining TBB_INTERFACE_NEW skips that include and selects the modern tbb/global_control.h + tbb/task_arena.h path that the bundled TBB provides (-I/usr/local/include preserves the default CPPFLAGS the override replaces)"
}
]