build-cran-binaries/local
Repository files (latest commit first)
Filename Latest commit message Latest commit date
pat-s 7aa6db3135
fix(patches): force RcppParallel to use its bundled oneTBB
The link-order fix alone does not survive a build image that exports
TBB_INC/TBB_LIB. RcppParallel's configure.R then never reaches the
bundled branch at all: it links the image's TBB, install.libs.R fills
RcppParallel/lib with absolute symlinks into the image's library dir,
and the published binary records NEEDED libtbb.so.12 (libtbb.so.2 for
the classic Intel TBB on el8/el9), so it cannot dyn.load on a consumer
machine without that exact library. build-env-images dropped those
variables, but its images are rebuilt only by cron or a manual run, and
R reads ~/.Renviron after the process environment, so nothing on the
pipeline side can override them in the meantime.

Patch the package to ignore an ambient TBB_ROOT/TBB_LIB/TBB_INC instead
of relying on the image being clean, in all four places that read them:
configure.R (branch selection), install.libs.R (which R CMD INSTALL runs
outside the src/Makevars rule that passes the configured values), and
R/tbb.R at run time -- .onLoad() would otherwise dyn.load a second,
unrelated TBB next to the bundled one, which segfaults R on load, and
RcppParallelLibs()/CxxFlags() would hand the system TBB to dependents
such as rstan. BINCRAFT_ALLOW_SYSTEM_TBB=TRUE restores the upstream
behaviour. Keep the link-order hunk: the bundled branch passes its build
dir as '-Wl,-L', which gcc still places after its own search dirs.

Verified on the current (pre-fix) build-env images, which still export
TBB_INC/TBB_LIB -- ubuntu jammy, redhat 9 and alpine 3.24: NEEDED
libtbb.so, rpath $ORIGIN/../lib, real libtbb.so.2 in RcppParallel/lib,
and the package loads with every system libtbb moved away. Without the
patch on jammy the same build yields NEEDED libtbb.so.12 and fails to
load; with the configure-only patch it builds the bundled TBB but
segfaults on the post-install load test.
2026-07-31 09:03:56 +00:00
..
patches fix(patches): force RcppParallel to use its bundled oneTBB 2026-07-31 09:03:56 +00:00
tests feat(local): aggregate blocked-on-dependency reporting by dependency (#131) 2026-07-16 21:24:03 +00:00
archive-missed-pkgs.R feat: R-minor-sensitive binary builds (full + iterative) (#84) 2026-06-14 08:04:40 +00:00
build-all.R fix(ci): bound pkgcache _metadata growth to stop macmini disk-fill (#110) 2026-07-13 09:31:29 +00:00
build-one.R feat: patch registry + wiring for per-package patching (#103) 2026-06-30 08:50:19 +00:00
check-cdn-cache.sh add alpine321 to scripts 2024-12-29 10:18:55 +01:00
check-NA.R feat: R-minor-sensitive binary builds (full + iterative) (#84) 2026-06-14 08:04:40 +00:00
debug-packages-writing.R feat: R-minor-sensitive binary builds (full + iterative) (#84) 2026-06-14 08:04:40 +00:00
dedupe-audit-issue.R fix(audit): replace arch subsection in place instead of appending duplicates (#138) 2026-07-21 08:51:23 +00:00
detect-duplicates.R feat: R-minor-sensitive binary builds (full + iterative) (#84) 2026-06-14 08:04:40 +00:00
excluded-packages.json feat: R-minor-sensitive binary builds (full + iterative) (#84) 2026-06-14 08:04:40 +00:00
failing-builds-classify.R feat(local): aggregate blocked-on-dependency reporting by dependency (#131) 2026-07-16 21:24:03 +00:00
failing-builds-report.R feat(local): detect dependency-cascade failures generally, not just RcppParallel (#128) 2026-07-16 08:23:54 +00:00
fetch-rebuild-packages-from-issue.R fix(audit): replace arch subsection in place instead of appending duplicates (#138) 2026-07-21 08:51:23 +00:00
find-R-api-packages.sh chore(local): add S3 migration and CRAN-source helper scripts 2026-06-14 13:02:48 +02:00
install-bincraft.R chore: resolve latest bincraft release dynamically (no hardcoded pins) (#107) 2026-07-01 08:10:02 +00:00
label-removed-cran-packages.R feat: R-minor-sensitive binary builds (full + iterative) (#84) 2026-06-14 08:04:40 +00:00
last-processed-by-platform.R feat: R-minor-sensitive binary builds (full + iterative) (#84) 2026-06-14 08:04:40 +00:00
migrate-s3-hetzner-to-backblaze.sh chore(local): add S3 migration and CRAN-source helper scripts 2026-06-14 13:02:48 +02:00
missing-cran-packages-db.R feat: R-minor-sensitive binary builds (full + iterative) (#84) 2026-06-14 08:04:40 +00:00
missing-cran-packages.R feat: R-minor-sensitive binary builds (full + iterative) (#84) 2026-06-14 08:04:40 +00:00
missing-packages-in-index.R feat: R-minor-sensitive binary builds (full + iterative) (#84) 2026-06-14 08:04:40 +00:00
packages-to-build.R feat: R-minor-sensitive binary builds (full + iterative) (#84) 2026-06-14 08:04:40 +00:00
packages-without-any-binary.R feat: R-minor-sensitive binary builds (full + iterative) (#84) 2026-06-14 08:04:40 +00:00
proposal-tracking-lib.R feat(local): aggregate blocked-on-dependency reporting by dependency (#131) 2026-07-16 21:24:03 +00:00
proposal-tracking.R feat(local): aggregate blocked-on-dependency reporting by dependency (#131) 2026-07-16 21:24:03 +00:00
propose-patches.R feat(local): aggregate blocked-on-dependency reporting by dependency (#131) 2026-07-16 21:24:03 +00:00
query-pkgs-without-old-versions.R chore(local): add S3 migration and CRAN-source helper scripts 2026-06-14 13:02:48 +02:00
r-minor-helpers.R fix(ci): bound pkgcache _metadata growth to stop macmini disk-fill (#110) 2026-07-13 09:31:29 +00:00
test-package-loading.R chore(local): add S3 migration and CRAN-source helper scripts 2026-06-14 13:02:48 +02:00
trial-build-patch.R fix(local): make trial-build-patch.R detect non-throwing build failures (#134) 2026-07-18 08:37:04 +00:00
trial-build-registry.R fix(local): make the trial-build gate detect non-throwing build failures (#130) 2026-07-16 08:24:03 +00:00
validate-patches.R feat(local): auto-propose registry patches and track the feedback loop (#117) 2026-07-14 15:03:24 +00:00
weekly-missing-binaries-audit.R fix(audit): replace arch subsection in place instead of appending duplicates (#138) 2026-07-21 08:51:23 +00:00