feat: add sidefx labs by default in the image
This commit is contained in:
@@ -38,6 +38,55 @@ to read this — it's implementation reasoning, not usage docs (those are in
|
||||
and symlinks it to `/opt/hfs` itself, so `houdini-run` and the
|
||||
`/etc/profile.d` snippet don't need to know the exact version.
|
||||
|
||||
## SideFX Labs — baked in, not installed at runtime
|
||||
|
||||
Simon hit `No such file or directory` using Houdini's own in-app package
|
||||
installer for Labs. Root cause (confirmed, not guessed): this image never
|
||||
installed `ca-certificates`, so any HTTPS download from inside the container
|
||||
fails TLS verification — reproduced directly with `wget` against
|
||||
`github.com` inside a test build (`wget` exit 5, "cannot verify github.com's
|
||||
certificate"). The in-app installer's `No such file or directory` is almost
|
||||
certainly it shelling out to `git` (also never installed) for the same
|
||||
underlying reason: no working way to fetch anything over HTTPS. `wget` was
|
||||
already installed and used fine elsewhere in this Dockerfile, so the gap was
|
||||
specifically the missing CA bundle, not a missing downloader. Fixed by
|
||||
adding `ca-certificates` to the apt-get install list (`base` stage).
|
||||
|
||||
Rather than also install `git` and instruct Simon to run the in-app
|
||||
installer, Labs is fetched and baked in at build time:
|
||||
|
||||
- Downloaded from a GitHub **release tag**
|
||||
(`https://github.com/sideeffects/SideFXLabs/archive/refs/tags/<tag>.tar.gz`),
|
||||
pinned via `ARG SIDEFXLABS_VERSION`, same pattern as `HOUDINI_EULA_DATE` —
|
||||
unpinned upstream, pick the newest tag whose `target_commitish` is
|
||||
`Development` and whose bundled `SideFXLabs.json` `enable` range covers
|
||||
this image's Houdini version. Checked via the GitHub releases API at
|
||||
writing time: tag `22.0.440` declares
|
||||
`"enable": "houdini_version >= '22.0' and houdini_version < '22.5'"`,
|
||||
which covers this image's `22.0.429`.
|
||||
- Extracted straight into **`$HFS/packages/SideFXLabs22.0/`**, with the
|
||||
vendored `SideFXLabs.json` copied up to `$HFS/packages/SideFXLabs22.0.json`
|
||||
unmodified. This location was not a guess: `$HFS/packages` is where
|
||||
Houdini's *own* shipped optional packages already live (confirmed by
|
||||
listing the real installed tree in a test build — `apex`, `kinefx`,
|
||||
`ocio`, `sculpt`, `shotbuilder`, `texturepaint` all follow the exact same
|
||||
`<name>.json` + `<name>/` pattern there). It's also documented as a
|
||||
package search path independent of `$HOME`
|
||||
(https://www.sidefx.com/docs/houdini/ref/plugins.html), which matters
|
||||
specifically because distrobox bind-mounts the host's `$HOME` over
|
||||
whatever the image ships under `$HOUDINI_USER_PREF_DIR` — anything baked
|
||||
in there would be invisible at runtime. No edits to the vendored JSON were
|
||||
needed: its default `"$HOUDINI_PACKAGE_PATH/SideFXLabs22.0"` already
|
||||
resolves correctly, since `HOUDINI_PACKAGE_PATH` just means "the directory
|
||||
this json file itself lives in".
|
||||
- Verified end-to-end in a real build: `ca-certificates` fix lets `wget`
|
||||
fetch the release tarball; extracted tree has 452 `.hda` files under
|
||||
`otls/`; `$HFS/packages/SideFXLabs22.0.json` present and well-formed.
|
||||
**Not** verified against a real license + GUI launch (Apprentice
|
||||
activation needs a real SideFX login, out of scope for this check) — the
|
||||
Labs menu actually appearing in a running Houdini session is unconfirmed,
|
||||
though the mechanism matches Houdini's own shipped packages exactly.
|
||||
|
||||
## Runtime library list
|
||||
|
||||
SideFX's own package list in `docker/Ubuntu/Dockerfile` is built for headless
|
||||
@@ -155,6 +204,7 @@ Everything below was confirmed with an actual build + an actual
|
||||
| GUI rendering via XWayland (Hyprland host) | High | Confirmed real AMD hardware acceleration (`glxinfo`: direct rendering, AMD Radeon Vega renderer, not llvmpipe). First launch was slow (container's first-run package install + cold start); later launches fluid. |
|
||||
| AMD OpenCL (sims) | Low | Not set up; needs ROCm/rusticl. GL/Vulkan viewport is unaffected. |
|
||||
| NVIDIA variant | Untested | Builds fine (same base, no extra packages), but never run against real NVIDIA hardware — only the `amd` target has been used end to end. |
|
||||
| SideFX Labs baked into `$HFS/packages` | Medium | Build-time fetch + extraction confirmed (452 `.hda`s, well-formed json), and the target path matches Houdini's own shipped packages exactly — but never confirmed against a real license + GUI launch that the Labs menu actually appears. |
|
||||
|
||||
## Repo-wide conventions
|
||||
|
||||
|
||||
Reference in New Issue
Block a user