Skip to content

Conversation

@pmenzel
Copy link
Contributor

$ . /pkg/podman-6.1.4-0/profile
$ podman --version
podman version 6.1.4

Copy podman-5.6.2-0.build.sh and update podman and its helpers to the
latest upstream releases:

  podman          5.6.2            -> 6.1.4
  conmon          2.1.13           -> 2.2.1
  runc            1.3.2            -> 1.5.2 (commit 29dd3dc)
  crun            1.24             -> 1.30.1
  passt           2025_09_19       -> 2026_10_02.cba3570
  netavark        1.16.1           -> 2.1.0
  aardvark-dns    1.16.0           -> 2.1.0
  python-dotenv   1.1.1            -> 1.2.4
  podman-compose  1.5.0            -> 1.6.0

go-md2man 2.0.7 and catatonit 0.2.1 are still current.

netavark 2.1.0 and aardvark-dns 2.1.0 set rust-version = "1.88", so
rustc 1.86.0 is too old. Use /pkg/rustc-1.97.0-0, the newest installed
rustc.

podman 6 vendors containers/common as go.podman.io/common, so the two
sed patches for the netavark plugin and helper binary directories now
point to vendor/go.podman.io/common/pkg/config/. The patched lines are
unchanged.

podman 6.1.4 requires Go 1.26 (go.mod), runc 1.5.2 Go 1.25. The system
Go is 1.27.0. podman-compose 1.6.0 requires Python >= 3.10, which
python-3.12.8-0 from the profile satisfies.

    $ sha256sum *
    daf871488603e659b0501224cf0731ac317809b1d1701fc061cb4f6ae39a894f  aardvark-dns-2.1.0.tar.gz
    814fb5979a3a4b8576b1f901e606b482bebb41cb7e57926e6d5765ee786b96d3  conmon-2.2.1.tar.gz
    99d036d95113552b6df66c7c879432835504bf0e525fc0372745071df129527b  crun-1.30.1.tar.gz
    96677048168ddd1abe313e4c2e17f1cace72b60ee1bac8ca12a4bd7dfcadfbbb  netavark-2.1.0.tar.gz
    abc3bd6ef9fd9e624071ce9a232fc3aebd78492aa8d18911f39e1a2fc6621dae  passt-2026_10_02.cba3570.tar
    200fd9b4b6d820cae24fc99d8e290ec945512365cf3cda8283b3905c0c284ea8  podman-6.1.4.tar.gz
    c83fd9bcbaa635100d581ce52a7a4b712ee0d457481232aff392efe3ebc5a217  podman_compose-1.6.0.tar.gz
    f0d53e69935a851c0dcc78f3ab7aaccd8cabef0b92382b576b824212902873c0  python_dotenv-1.2.4.tar.gz
    b5af44864a830c7032cf4a72efa0c6d44f701873d9507b127be31ad4d1d42ff3  runc-1.5.2.tar.gz

Assisted-by: claude-opus-5.5 (Claude Code)
runc 1.5.2 adds libpathrs to the default build tags, so building it
fails, as there is no libpathrs package:

    + go-md2man -in runc.8.md -out ./man8/runc.8
    # cyphar.com/go-pathrs/internal/libpathrs
    # [pkg-config --cflags  -- pathrs]
    Package pathrs was not found in the pkg-config search path.
    Perhaps you should add the directory containing `pathrs.pc'
    to the PKG_CONFIG_PATH environment variable
    No package 'pathrs' found
    make: *** [Makefile:85: runc-bin] Error 1

Remove the tag with RUNC_BUILDTAGS=-libpathrs. runc then uses the
pure-Go pathrs-lite vendored from filepath-securejoin, the successor of
the filepath-securejoin 0.4.1 code that runc 1.3.2 in podman-5.6.2-0
used. Building libpathrs (Rust, clang, lld) as another component is
not worth it, as podman prefers crun over runc.

Assisted-by: claude-opus-5.5 (Claude Code)
The script appends $PREFIX/libexec/podman/netavark to
DefaultNetavarkPluginDirs to avoid

    Error: could not find "netavark" ...

That list is for directories holding netavark plugins, and the entry is
the netavark binary itself, which `make install` in netavark puts into
$(LIBEXECDIR)/podman. podman never looks for the binary there. It uses

    conf.FindHelperBinary(netavarkBinary, false)

in vendor/go.podman.io/common/libnetwork/network/interface.go, which
searches helper_binaries_dir. The second patch already adds
$PREFIX/libexec/podman to defaultHelperBinariesDir, so that patch alone
lets podman find netavark (and aardvark-dns).

For the plugin list, getAllPlugins() in libnetwork/netavark/config.go
calls os.ReadDir() on every entry and ignores errors, so a file there is
silently skipped. The only other user passes it as --plugin-directory
to netavark, which is pointless for a file.

Remove the patch and move its comment to the helper directory patch.

Assisted-by: claude-opus-5.5 (Claude Code)
The check

    if [ -n "$TESTING" ]; then PREFIX=/scratch/local2/... ; fi

works only because it runs before `set -eu`. If it ever moves below,
for example when the preamble is reordered, every build without
TESTING aborts:

    TESTING: unbound variable

Use ${TESTING:-}, so the check does not depend on where it sits.

Assisted-by: claude-opus-5.5 (Claude Code)
@pmenzel Paul Menzel (pmenzel) merged commit d23492b into master Oct 18, 2026
@pmenzel Paul Menzel (pmenzel) deleted the add-podman-6.1.4 branch October 20, 2026 08:09
Sign in to join this conversation on GitHub.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant