crun: enable libkrun support when applicable

This patch makes `crun` build with `libkrun` support when applicable,
so that `podman` can be used with `--runtime krun` to run containers
as `libkrun`-managed microvms out of the box.
This commit is contained in:
Cheng Shao
2026-03-30 13:16:21 +02:00
parent 0e488a029f
commit e4937ed7c2
+22
View File
@@ -6,6 +6,8 @@
go-md2man,
pkg-config,
libcap,
libkrun,
libkrun-sev,
libseccomp,
python3,
systemdMinimal,
@@ -13,6 +15,8 @@
nixosTests,
criu,
versionCheckHook,
withLibkrun ? lib.meta.availableOn stdenv.hostPlatform libkrun,
withLibkrunSEV ? false,
}:
let
@@ -70,6 +74,16 @@ stdenv.mkDerivation (finalAttrs: {
libseccomp
systemdMinimal
yajl
]
++ lib.optionals withLibkrun [
libkrun
]
++ lib.optionals withLibkrunSEV [
libkrun-sev
];
configureFlags = lib.optionals withLibkrun [
"--with-libkrun"
];
enableParallelBuilding = true;
@@ -88,6 +102,14 @@ stdenv.mkDerivation (finalAttrs: {
${lib.concatMapStringsSep "\n" (
e: "substituteInPlace Makefile.am --replace-fail 'tests/${e}' ''"
) disabledTests}
''
+ lib.optionalString withLibkrun ''
substituteInPlace src/libcrun/handlers/krun.c \
--replace-fail '"libkrun.so.1"' '"${libkrun}/lib/libkrun.so.1"'
''
+ lib.optionalString withLibkrunSEV ''
substituteInPlace src/libcrun/handlers/krun.c \
--replace-fail '"libkrun-sev.so.1"' '"${libkrun-sev}/lib/libkrun-sev.so.1"'
'';
doCheck = true;