-
v0.4.66 — Ship smbclient in the runtime image Pre-Release
released this
2026-05-28 11:58:56 -04:00 | 33 commits to main since this releaseOpenPXE v0.4.66
Hotfix for v0.4.65. The new SMB shares manager shelled out to
smbclient— which wasn't actually in the v0.4.65 image. Every
"Add share" surfaced:Mount failed: could not exec smbclient: No such file or directory (os error 2)
What happened
In Debian 12, the
sambapackage ships the server (smbd,
nmbd) only. ThesmbclientCLI lives in a separatesmbclient
package — they're siblings, not parent/child. v0.4.65's Dockerfile
only installedsamba, so the new userspace SMB consumer had nothing
to exec.Fix
- Runtime image's
apt-get installline now includessmbclient.
The image grows by less than 1 MB (still ~98 MB total). - Removed
nfs-commonfrom the runtime image — v0.4.65 stopped
usingmount.nfsso the helpers were dead weight.
Defensive improvements
So that this exact failure mode never bites again (e.g. if anyone
builds a stripped-down custom image), bothlist_isosand
stream_isonow detect ENOENT on spawn and surface:Mount failed: could not exec smbclient: No such file or directory (os error 2)
smbclient isn't installed in this container. Pull the official OpenPXE
image v0.4.66 or newer — the stock image ships smbclient. If you're
running a custom build, add the Debiansmbclientpackage to your
runtime stage.The hint translation table picks up the missing-binary pattern
verbatim, so the UI banner shows the remediation alongside the raw
error.How to upgrade
Pull
:0.4.66(or:latest). Existing SMB share configurations in
<work_dir>/smb_shares.jsonare loaded as-is and re-scanned on
startup — once the binary is present, the next scan succeeds and
your ISOs surface in Available images.Quality
- 150 tests passing (+1 from v0.4.65 — the new missing-binary
hint translation has its own test). cargo clippy --workspace --all-targets -- -D warningsclean.
Container image
gitea.milesward.dev/mward4/openpxe:0.4.66gitea.milesward.dev/mward4/openpxe:latest
linux/amd64; static-musl
/openpxebinary unchanged from v0.4.65.Compatibility
- No source-side changes that affect persisted state.
- API and UI surfaces unchanged.
- The fix is image-only — code-wise this release just hardens the
error path for an environment that v0.4.66's image makes
unreachable.
Downloads
- Runtime image's