@@ -90,26 +90,35 @@ runs:
9090 HOMEBREW_NO_AUTO_UPDATE=1 brew install podman
9191 sudo ln -sf "$(command -v podman)" /usr/local/bin/podman
9292 echo "podman version now: $(podman --version)"
93- # The poured podman brings a matching crun, but linking podman
94- # alone left the repair running the apt crun: rootful podman
95- # resolves its runtime from a fixed path list that reads
96- # /usr/bin/crun before anywhere brew pours, and sudo's PATH never
97- # reaches the brew prefix either. The apt crun 0.17 rejects the
98- # OCI spec the new podman writes ("crun: unknown version
99- # specified", measured 2026-09-04), and the install would hit the
100- # same wall at its first rootful run. So the repair replaces the
101- # old crun where the list looks first, like the podman above.
102- [ -x "$(command -v crun)" ] \
103- || { echo "brew poured podman but no crun came with it" >&2; exit 1; }
104- sudo ln -sf "$(command -v crun)" /usr/bin/crun
105- echo "crun now at: $(readlink /usr/bin/crun)"
93+ # The poured podman brings matching helpers, but linking podman
94+ # alone left the repair running the apt ones: podman resolves
95+ # crun and pasta from fixed path lists that read /usr/bin before
96+ # anywhere brew pours, and sudo's PATH never reaches the brew
97+ # prefix either. The apt crun 0.17 rejected the OCI spec the new
98+ # podman writes ("crun: unknown version specified") and the apt
99+ # pasta rejected its --map-guest-addr ("pasta failed with exit
100+ # code 1"), both measured 2026-09-04, each wall costing a run.
101+ # So the repair replaces the old helpers where the lists look
102+ # first, like the podman above. conmon is shadowed the same way
103+ # but the apt one starts containers fine, so it is left alone.
104+ for helper in crun pasta; do
105+ [ -x "$(command -v "$helper")" ] \
106+ || { echo "brew poured podman but no $helper came with it" >&2; exit 1; }
107+ sudo ln -sf "$(command -v "$helper")" "/usr/bin/$helper"
108+ echo "$helper now at: $(readlink "/usr/bin/$helper")"
109+ done
106110 # A new podman that cannot run as root would fail the install
107111 # twenty minutes in at the same COPY. Running a container as root
108112 # here costs seconds, exercises the store, the runtime and the
109113 # mount the build needs, and would name the real problem. Network
110114 # is left out on purpose: the install's build has no RUN step,
111115 # and the runner's own network stack is already known noise.
112116 sudo "$(command -v podman)" run --rm --network none quay.io/podman/hello >/dev/null
117+ # The image build this prelude feeds runs podman as the runner
118+ # user, where the default network is pasta and a shadowed pasta
119+ # dies at the first run whatever the crun does. A rootless run
120+ # here exercises that half for the same seconds.
121+ "$(command -v podman)" run --rm --network pasta quay.io/podman/hello >/dev/null
113122
114123 - uses : ./.github/actions/kvm
115124 with :
0 commit comments