1{ buildah-unwrapped
2, runCommand
3, makeWrapper
4, lib
5, extraPackages ? []
6, buildah
7, runc # Default container runtime
8, crun # Container runtime (default with cgroups v2 for podman/buildah)
9, conmon # Container runtime monitor
10, slirp4netns # User-mode networking for unprivileged namespaces
11, fuse-overlayfs # CoW for images, much faster than default vfs
12, util-linux # nsenter
13, cni-plugins # not added to path
14, iptables
15}:
16
17let
18 buildah = buildah-unwrapped;
19
20 preferLocalBuild = true;
21
22 binPath = lib.makeBinPath ([
23 runc
24 crun
25 conmon
26 slirp4netns
27 fuse-overlayfs
28 util-linux
29 iptables
30 ] ++ extraPackages);
31
32in runCommand buildah.name {
33 name = "${buildah.pname}-wrapper-${buildah.version}";
34 inherit (buildah) pname version;
35
36 meta = builtins.removeAttrs buildah.meta [ "outputsToInstall" ];
37
38 outputs = [
39 "out"
40 "man"
41 ];
42
43 nativeBuildInputs = [
44 makeWrapper
45 ];
46
47} ''
48 ln -s ${buildah.man} $man
49
50 mkdir -p $out/bin
51 ln -s ${buildah-unwrapped}/share $out/share
52 makeWrapper ${buildah-unwrapped}/bin/buildah $out/bin/buildah \
53 --prefix PATH : ${binPath}
54''