vuls: init at 0.27.0 (#348530)
[NixPkgs.git] / pkgs / applications / virtualization / crun / default.nix
blob5dca484e5e9ea891eb504d951ca900df1ade2367
1 { stdenv
2 , lib
3 , fetchFromGitHub
4 , autoreconfHook
5 , go-md2man
6 , pkg-config
7 , libcap
8 , libseccomp
9 , python3
10 , systemd
11 , yajl
12 , nixosTests
13 , criu
16 let
17   # these tests require additional permissions
18   disabledTests = [
19     "test_capabilities.py"
20     "test_cwd.py"
21     "test_delete.py"
22     "test_detach.py"
23     "test_exec.py"
24     "test_hooks.py"
25     "test_hostname.py"
26     "test_oci_features"
27     "test_paths.py"
28     "test_pid.py"
29     "test_pid_file.py"
30     "test_preserve_fds.py"
31     "test_resources"
32     "test_seccomp"
33     "test_start.py"
34     "test_uid_gid.py"
35     "test_update.py"
36     "tests_libcrun_utils"
37   ];
40 stdenv.mkDerivation rec {
41   pname = "crun";
42   version = "1.17";
44   src = fetchFromGitHub {
45     owner = "containers";
46     repo = pname;
47     rev = version;
48     hash = "sha256-d2YBpW8KivWYPRPpvXlT5tWPX8hvTCaSkMxdSuswYRA=";
49     fetchSubmodules = true;
50   };
52   nativeBuildInputs = [ autoreconfHook go-md2man pkg-config python3 ];
54   buildInputs = [ criu libcap libseccomp systemd yajl ];
56   enableParallelBuilding = true;
57   strictDeps = true;
59   NIX_LDFLAGS = "-lcriu";
61   # we need this before autoreconfHook does its thing in order to initialize
62   # config.h with the correct values
63   postPatch = ''
64     echo ${version} > .tarball-version
65     echo '#define GIT_VERSION "${src.rev}"' > git-version.h
67     ${lib.concatMapStringsSep "\n" (e:
68       "substituteInPlace Makefile.am --replace 'tests/${e}' ''"
69     ) disabledTests}
70   '';
72   doCheck = true;
74   passthru.tests = { inherit (nixosTests) podman; };
76   meta = with lib; {
77     changelog = "https://github.com/containers/crun/releases/tag/${version}";
78     description = "Fast and lightweight fully featured OCI runtime and C library for running containers";
79     homepage = "https://github.com/containers/crun";
80     license = licenses.gpl2Plus;
81     platforms = platforms.linux;
82     maintainers = with maintainers; [ ] ++ teams.podman.members;
83     mainProgram = "crun";
84   };