Skip to content

Commit 2449075

Browse files
Fix CVMFS LArCV runtime setup
1 parent a38c44b commit 2449075

4 files changed

Lines changed: 30 additions & 1 deletion

File tree

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# Changelog
22

3+
## [Unreleased]
4+
5+
### Fixed
6+
- **CVMFS container setup**: Restore LArCV feature flags in `/opt/spine/setup.sh` so unpacked-image runtimes expose PyUtil bindings such as `larcv.fill_3d_voxels`, and make `/opt/spine/check-env.sh` validate that binding explicitly.
7+
38
## [0.14.1] - 2026-06-27
49

510
### Fixed

docker/spine/Dockerfile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,9 @@ RUN pip install --no-cache-dir --no-build-isolation .[all]
189189
# recipe both provide the compiled dependency imports SPINE needs at runtime.
190190
RUN python -c "import ROOT, larcv, spine; print('container runtime imports ok')"
191191
RUN /opt/spine/check-env.sh
192-
RUN env -u ROOTSYS -u LARCV_BASEDIR -u LARCV_LIBDIR -u LARCV_PYTHONDIR \
192+
RUN env -u ROOTSYS -u LARCV_BASEDIR -u LARCV_BUILDDIR -u LARCV_LIBDIR \
193+
-u LARCV_PYTHONDIR -u LARCV_INCDIR -u LARCV_BINDIR -u LARCV_COREDIR \
194+
-u LARCV_APPDIR -u LARCV_NUMPY -u LARCV_OPENCV -u LARCV_ROOT6 \
193195
-u PYTHONPATH -u LD_LIBRARY_PATH bash -lc \
194196
"source /opt/spine/setup.sh && /opt/spine/check-env.sh"
195197

docker/spine/check-env.sh

100644100755
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,11 @@ print(f"sys.executable: {sys.executable}")
1313
for key in (
1414
"ROOTSYS",
1515
"LARCV_BASEDIR",
16+
"LARCV_BUILDDIR",
1617
"LARCV_LIBDIR",
1718
"LARCV_PYTHONDIR",
19+
"LARCV_NUMPY",
20+
"LARCV_OPENCV",
1821
"PYTHONPATH",
1922
"LD_LIBRARY_PATH",
2023
):
@@ -28,6 +31,16 @@ import larcv
2831
2932
print(f"larcv OK: {larcv}")
3033
34+
from larcv import larcv as larcv_cpp
35+
36+
if not hasattr(larcv_cpp, "fill_3d_voxels"):
37+
raise RuntimeError(
38+
"larcv imported, but larcv.fill_3d_voxels is missing. "
39+
"This usually means the LArCV PyUtil dictionary was not loaded."
40+
)
41+
42+
print("larcv PyUtil OK: fill_3d_voxels available")
43+
3144
import spine
3245
3346
print(f"spine OK: {spine}")

docker/spine/setup.sh

100644100755
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,16 @@ _spine_prepend_path() {
3333
export SPINE_RUNTIME_DIR="${SPINE_RUNTIME_DIR:-/opt/spine}"
3434
export ROOTSYS="${ROOTSYS:-/opt/root}"
3535
export LARCV_BASEDIR="${LARCV_BASEDIR:-/app/larcv2}"
36+
export LARCV_BUILDDIR="${LARCV_BUILDDIR:-${LARCV_BASEDIR}/build}"
3637
export LARCV_LIBDIR="${LARCV_LIBDIR:-${LARCV_BASEDIR}/build/lib}"
3738
export LARCV_PYTHONDIR="${LARCV_PYTHONDIR:-${LARCV_BASEDIR}/python}"
39+
export LARCV_INCDIR="${LARCV_INCDIR:-${LARCV_BASEDIR}/build/include}"
40+
export LARCV_BINDIR="${LARCV_BINDIR:-${LARCV_BASEDIR}/build/bin}"
41+
export LARCV_COREDIR="${LARCV_COREDIR:-${LARCV_BASEDIR}/larcv/core}"
42+
export LARCV_APPDIR="${LARCV_APPDIR:-${LARCV_BASEDIR}/larcv/app}"
43+
export LARCV_NUMPY="${LARCV_NUMPY:-1}"
44+
export LARCV_OPENCV="${LARCV_OPENCV:-1}"
45+
export LARCV_ROOT6="${LARCV_ROOT6:-1}"
3846
export FMATCH_BASEDIR="${FMATCH_BASEDIR:-/opt/OpT0Finder}"
3947
export FMATCH_BUILDDIR="${FMATCH_BUILDDIR:-${FMATCH_BASEDIR}/build}"
4048
export FMATCH_LIBDIR="${FMATCH_LIBDIR:-${FMATCH_BUILDDIR}/lib}"
@@ -43,6 +51,7 @@ export FMATCH_BINDIR="${FMATCH_BINDIR:-${FMATCH_BUILDDIR}/bin}"
4351
export FMATCH_DATADIR="${FMATCH_DATADIR:-${FMATCH_BASEDIR}/dat}"
4452

4553
_spine_prepend_path PATH "${ROOTSYS}/bin"
54+
_spine_prepend_path PATH "${LARCV_BINDIR}"
4655
_spine_prepend_path PATH "${FMATCH_BASEDIR}/bin"
4756
_spine_prepend_path PATH "${FMATCH_BINDIR}"
4857

0 commit comments

Comments
 (0)