feat: add sidefx labs by default in the image

This commit is contained in:
Simon Lambin
2026-09-12 13:19:16 +02:00
parent 829f0a503c
commit 7075959827
3 changed files with 87 additions and 1 deletions

View File

@@ -12,9 +12,13 @@ ARG HOUDINI_TARBALL=houdini-linux.tar.gz
# unrelated houdini_installer launcher tool). Current EULA date: 2021-10-13,
# see https://www.sidefx.com/legal/license-agreement/
ARG HOUDINI_EULA_DATE=2021-10-13
# Github release tag at https://github.com/sideeffects/SideFXLabs/releases —
# pick the newest tag whose target branch is "Development" and whose bundled
# SideFXLabs.json "enable" range covers this image's Houdini version.
ARG SIDEFXLABS_VERSION=22.0.440
RUN apt-get update && apt-get install -y --no-install-recommends \
sudo procps \
sudo procps ca-certificates \
bc fontconfig wget libasound2 libgl1 libglu1 libglu1-mesa libglx0 \
libegl1 libatomic1 libxkbfile1 libxcb-cursor0 \
libice6 libnss3 libopengl0 libpci3 libsm6 libx11-6 libx11-xcb1 \
@@ -43,6 +47,27 @@ RUN chmod +x /usr/local/bin/houdini-run && \
printf 'if [ -d /opt/hfs ]; then _p="$PWD"; cd /opt/hfs && . ./houdini_setup >/dev/null 2>&1; cd "$_p"; fi\n' \
> /etc/profile.d/houdini.sh
# SideFX Labs, baked in rather than installed through Houdini's own in-app
# package installer. That installer writes into $HOUDINI_USER_PREF_DIR
# (under $HOME), which distrobox bind-mounts from the host over whatever the
# image ships there — so anything baked in under $HOME would just be
# shadowed at runtime, and doing it live means every container needs its own
# git-clone/download at first launch (this is also almost certainly the
# actual source of the "no such file or directory": the installer shells out
# to `git`, which this image never installed).
# $HFS/packages is a package-search path Houdini scans unconditionally,
# independent of $HOME (see `houdini/ref/plugins.html` in SideFX's docs), so
# drop the official package descriptor + the Labs tree there untouched: the
# descriptor's default `$HOUDINI_PACKAGE_PATH/SideFXLabs22.0` already
# resolves correctly since HOUDINI_PACKAGE_PATH is just "wherever this json
# file lives".
RUN mkdir -p /opt/hfs/packages/SideFXLabs22.0 && \
wget -qO /tmp/sidefxlabs.tar.gz \
"https://github.com/sideeffects/SideFXLabs/archive/refs/tags/${SIDEFXLABS_VERSION}.tar.gz" && \
tar xzf /tmp/sidefxlabs.tar.gz --strip-components=1 -C /opt/hfs/packages/SideFXLabs22.0 && \
cp /opt/hfs/packages/SideFXLabs22.0/SideFXLabs.json /opt/hfs/packages/SideFXLabs22.0.json && \
rm /tmp/sidefxlabs.tar.gz
FROM base AS amd
RUN apt-get update && apt-get install -y --no-install-recommends \
libgl1-mesa-dri libglx-mesa0 mesa-vulkan-drivers && \