Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / tools / buildah / wrapper.nix
blob7b9a672d69938b42b984b6108c67d2503e331de6
1 { buildah-unwrapped
2 , runCommand
3 , makeWrapper
4 , symlinkJoin
5 , lib
6 , stdenv
7 , extraPackages ? []
8 , runc # Default container runtime
9 , crun # Container runtime (default with cgroups v2 for podman/buildah)
10 , conmon # Container runtime monitor
11 , slirp4netns # User-mode networking for unprivileged namespaces
12 , fuse-overlayfs # CoW for images, much faster than default vfs
13 , util-linux # nsenter
14 , iptables
15 , aardvark-dns
16 , netavark
19 let
20   binPath = lib.makeBinPath ([
21   ] ++ lib.optionals stdenv.isLinux [
22     runc
23     crun
24     conmon
25     slirp4netns
26     fuse-overlayfs
27     util-linux
28     iptables
29   ] ++ extraPackages);
31   helpersBin = symlinkJoin {
32     name = "${buildah-unwrapped.pname}-helper-binary-wrapper-${buildah-unwrapped.version}";
34     # this only works for some binaries, others may need to be be added to `binPath` or in the modules
35     paths = [
36     ] ++ lib.optionals stdenv.isLinux [
37       aardvark-dns
38       netavark
39     ];
40   };
42 in runCommand buildah-unwrapped.name {
43   name = "${buildah-unwrapped.pname}-wrapper-${buildah-unwrapped.version}";
44   inherit (buildah-unwrapped) pname version passthru;
46   preferLocalBuild = true;
48   meta = builtins.removeAttrs buildah-unwrapped.meta [ "outputsToInstall" ];
50   outputs = [
51     "out"
52     "man"
53   ];
55   nativeBuildInputs = [
56     makeWrapper
57   ];
59 } ''
60   ln -s ${buildah-unwrapped.man} $man
62   mkdir -p $out/bin
63   ln -s ${buildah-unwrapped}/share $out/share
64   makeWrapper ${buildah-unwrapped}/bin/buildah $out/bin/buildah \
65     --set CONTAINERS_HELPER_BINARY_DIR ${helpersBin}/bin \
66     --prefix PATH : ${binPath}