From cd99e594bd8aa1fbdbac2267cce5812d5cac425f Mon Sep 17 00:00:00 2001 From: Ross Date: Thu, 23 Jul 2026 18:00:14 -0700 Subject: [PATCH 1/4] fix(jenkins_wrapper): pin CONDA_OVERRIDE_GLIBC=2.17 during ./bin/deploy Force the conda solver to target glibc 2.17 while ./bin/deploy creates the rebuild's conda env, so the env captured in stack/src/env/.env resolves glibc-2.17-compatible packages that run on RHEL7-era hosts such as USDF cvmfs. Scoped to linux/x86_64 and unset before the build runs, so it never affects runtime, aarch64, or macOS. Generated with AI Co-Authored-By: SLAC AI --- jenkins_wrapper.sh | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/jenkins_wrapper.sh b/jenkins_wrapper.sh index f2df7f2..c713631 100755 --- a/jenkins_wrapper.sh +++ b/jenkins_wrapper.sh @@ -92,6 +92,16 @@ if [[ $LSST_DEPLOY_MODE == bleed ]]; then OPTS+=('-b') fi +# Force the conda solver to target glibc 2.17 so the rebuild's conda env +# (captured in stack/src/env/.env via `conda list --explicit`) resolves +# packages that run on RHEL7-era hosts such as USDF cvmfs. Only affects the +# env create/install done by ./bin/deploy; unset before the build runs so it +# never influences runtime. Linux/x86_64 only -- irrelevant on macOS, and we +# don't override glibc on aarch64. +if [[ $(uname -s) == Linux && $(uname -m) == x86_64 ]]; then + export CONDA_OVERRIDE_GLIBC=2.17 +fi + if [[ -z "$RUBINENV_ORG_FORK" ]]; then # The LSST_SPLENV_REF can refer to a rubin-env version # or to an old scipipe_conda_env SHA1 @@ -116,6 +126,9 @@ else LSST_CONDA_ENV_NAME="$(cat rubinenv-feedstock/env.name)" fi +# glibc override applies only to the env-create step above, never at build/runtime +unset CONDA_OVERRIDE_GLIBC + export LSST_CONDA_ENV_NAME "${SCRIPT_DIR}/lsstswBuild.sh" "${ARGS[@]}" From 0a9d783d01f2b7b496aee2f8fb8a965e3f023dab Mon Sep 17 00:00:00 2001 From: Ross Date: Thu, 30 Jul 2026 11:52:46 -0400 Subject: [PATCH 2/4] Limit GLIBC setting only in rubinenv 13 and x86 --- jenkins_wrapper.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/jenkins_wrapper.sh b/jenkins_wrapper.sh index c713631..c58d77b 100755 --- a/jenkins_wrapper.sh +++ b/jenkins_wrapper.sh @@ -98,7 +98,8 @@ fi # env create/install done by ./bin/deploy; unset before the build runs so it # never influences runtime. Linux/x86_64 only -- irrelevant on macOS, and we # don't override glibc on aarch64. -if [[ $(uname -s) == Linux && $(uname -m) == x86_64 ]]; then +if [[ $(uname -s) == Linux && $(uname -m) == x86_64 ]] && \ + [[ $(printf '%s\n' "13.0.0" "$LSST_SPLENV_REF" | sort -V | tail -n1) == "$LSST_SPLENV_REF" ]]; then export CONDA_OVERRIDE_GLIBC=2.17 fi From 63972cbc3a8ddfdfdfd31126cad602380d66f89e Mon Sep 17 00:00:00 2001 From: Ross Date: Thu, 30 Jul 2026 20:39:13 -0400 Subject: [PATCH 3/4] Add LSST_GLIBC_FLAG --- jenkins_wrapper.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/jenkins_wrapper.sh b/jenkins_wrapper.sh index c58d77b..b2a89d2 100755 --- a/jenkins_wrapper.sh +++ b/jenkins_wrapper.sh @@ -43,6 +43,7 @@ LSST_DEPLOY_MODE=${LSST_DEPLOY_MODE:-} LSST_NO_FETCH=${LSST_NO_FETCH:-false} LSST_NO_BINARY_FETCH=${LSST_NO_BINARY_FETCH:-true} LSST_PREP_ONLY=${LSST_PREP_ONLY:-false} +LSST_GLIBC_FLAG=${LSST_GLIBC_FLAG:-false} LSST_REFS=${LSST_REFS:-} fatal_vars() { @@ -97,8 +98,9 @@ fi # packages that run on RHEL7-era hosts such as USDF cvmfs. Only affects the # env create/install done by ./bin/deploy; unset before the build runs so it # never influences runtime. Linux/x86_64 only -- irrelevant on macOS, and we -# don't override glibc on aarch64. -if [[ $(uname -s) == Linux && $(uname -m) == x86_64 ]] && \ +# don't override glibc on aarch64. We also need to pass a flag from Jenkins to +# avoid false possitives. +if [[ $LSST_GLIBC_FLAG = "true" && $(uname -s) == Linux && $(uname -m) == x86_64 ]] && \ [[ $(printf '%s\n' "13.0.0" "$LSST_SPLENV_REF" | sort -V | tail -n1) == "$LSST_SPLENV_REF" ]]; then export CONDA_OVERRIDE_GLIBC=2.17 fi From 5d7f089b6ffc5be7f9383c3944bcccf7f2877249 Mon Sep 17 00:00:00 2001 From: Ross Date: Fri, 31 Jul 2026 18:26:13 -0400 Subject: [PATCH 4/4] fix typo in jenkins_wrapper.sh Co-authored-by: Tim Jenness --- jenkins_wrapper.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jenkins_wrapper.sh b/jenkins_wrapper.sh index b2a89d2..2c69271 100755 --- a/jenkins_wrapper.sh +++ b/jenkins_wrapper.sh @@ -99,7 +99,7 @@ fi # env create/install done by ./bin/deploy; unset before the build runs so it # never influences runtime. Linux/x86_64 only -- irrelevant on macOS, and we # don't override glibc on aarch64. We also need to pass a flag from Jenkins to -# avoid false possitives. +# avoid false positives. if [[ $LSST_GLIBC_FLAG = "true" && $(uname -s) == Linux && $(uname -m) == x86_64 ]] && \ [[ $(printf '%s\n' "13.0.0" "$LSST_SPLENV_REF" | sort -V | tail -n1) == "$LSST_SPLENV_REF" ]]; then export CONDA_OVERRIDE_GLIBC=2.17