• mward4 released this 2026-05-28 11:58:56 -04:00 | 33 commits to main since this release

    OpenPXE 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 samba package ships the server (smbd,
    nmbd) only. The smbclient CLI lives in a separate smbclient
    package — they're siblings, not parent/child. v0.4.65's Dockerfile
    only installed samba, so the new userspace SMB consumer had nothing
    to exec.

    Fix

    • Runtime image's apt-get install line now includes smbclient.
      The image grows by less than 1 MB (still ~98 MB total).
    • Removed nfs-common from the runtime image — v0.4.65 stopped
      using mount.nfs so 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), both list_isos and
    stream_iso now 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 Debian smbclient package 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.json are 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 warnings clean.

    Container image

    • gitea.milesward.dev/mward4/openpxe:0.4.66
    • gitea.milesward.dev/mward4/openpxe:latest

    linux/amd64; static-musl /openpxe binary 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