From 766cbeb04a9c397fead5f4e764d5a19bf3e2a116 Mon Sep 17 00:00:00 2001 From: Nick Cao Date: Mon, 1 Sep 2025 14:55:16 -0400 Subject: [PATCH 1/3] libkrunfw: 4.9.0 -> 4.10.0 Diff: https://github.com/containers/libkrunfw/compare/v4.9.0...v4.10.0 --- pkgs/by-name/li/libkrun/package.nix | 2 +- pkgs/by-name/li/libkrunfw/package.nix | 31 +++++++++++++++++---------- 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/pkgs/by-name/li/libkrun/package.nix b/pkgs/by-name/li/libkrun/package.nix index 4659c00b715a..33a820dbc286 100644 --- a/pkgs/by-name/li/libkrun/package.nix +++ b/pkgs/by-name/li/libkrun/package.nix @@ -60,7 +60,7 @@ stdenv.mkDerivation (finalAttrs: { ++ lib.optional (sevVariant || withGpu) pkg-config; buildInputs = [ - (libkrunfw.override { inherit sevVariant; }) + (libkrunfw.override { variant = if sevVariant then "sev" else null; }) glibc glibc.static ] diff --git a/pkgs/by-name/li/libkrunfw/package.nix b/pkgs/by-name/li/libkrunfw/package.nix index 395d892c971e..2977487ee116 100644 --- a/pkgs/by-name/li/libkrunfw/package.nix +++ b/pkgs/by-name/li/libkrunfw/package.nix @@ -10,23 +10,29 @@ perl, elfutils, python3, - sevVariant ? false, + variant ? null, }: +assert lib.elem variant [ + null + "sev" + "tdx" +]; + stdenv.mkDerivation (finalAttrs: { - pname = "libkrunfw"; - version = "4.9.0"; + pname = "libkrunfw" + lib.optionalString (variant != null) "-${variant}"; + version = "4.10.0"; src = fetchFromGitHub { owner = "containers"; repo = "libkrunfw"; tag = "v${finalAttrs.version}"; - hash = "sha256-wmvjex68Mh7qehA33WNBYHhV9Q/XWLixokuGWnqJ3n0="; + hash = "sha256-mq2gw0+xL6qUZE/fk0vLT3PEpzPV8p+iwRFJHXVOMnk="; }; kernelSrc = fetchurl { - url = "mirror://kernel/linux/kernel/v6.x/linux-6.12.20.tar.xz"; - hash = "sha256-Iw6JsHsKuC508H7MG+4xBdyoHQ70qX+QCSnEBySbasc="; + url = "mirror://kernel/linux/kernel/v6.x/linux-6.12.34.tar.xz"; + hash = "sha256-p/P+OB9n7KQXLptj77YaFL1/nhJ44DYD0P9ak/Jwwk0="; }; postPatch = '' @@ -51,8 +57,11 @@ stdenv.mkDerivation (finalAttrs: { makeFlags = [ "PREFIX=${placeholder "out"}" ] - ++ lib.optionals sevVariant [ + ++ lib.optionals (variant == "sev") [ "SEV=1" + ] + ++ lib.optionals (variant == "tdx") [ + "TDX=1" ]; # Fixes https://github.com/containers/libkrunfw/issues/55 @@ -60,18 +69,18 @@ stdenv.mkDerivation (finalAttrs: { enableParallelBuilding = true; - meta = with lib; { + meta = { description = "Dynamic library bundling the guest payload consumed by libkrun"; homepage = "https://github.com/containers/libkrunfw"; - license = with licenses; [ + license = with lib.licenses; [ lgpl2Only lgpl21Only ]; - maintainers = with maintainers; [ + maintainers = with lib.maintainers; [ nickcao RossComputerGuy nrabulinski ]; - platforms = [ "x86_64-linux" ] ++ lib.optionals (!sevVariant) [ "aarch64-linux" ]; + platforms = [ "x86_64-linux" ] ++ lib.optionals (variant == null) [ "aarch64-linux" ]; }; }) From d442cbb80bf23e0897502662e4da73857ca00ebe Mon Sep 17 00:00:00 2001 From: Nick Cao Date: Mon, 1 Sep 2025 15:03:57 -0400 Subject: [PATCH 2/3] libkrun: 1.11.2 -> 1.15.1 Diff: https://github.com/containers/libkrun/compare/v1.11.2...v1.15.1 --- pkgs/by-name/li/libkrun/package.nix | 47 ++++++++++++++++++----------- pkgs/top-level/all-packages.nix | 3 +- 2 files changed, 32 insertions(+), 18 deletions(-) diff --git a/pkgs/by-name/li/libkrun/package.nix b/pkgs/by-name/li/libkrun/package.nix index 33a820dbc286..11c96a659b8d 100644 --- a/pkgs/by-name/li/libkrun/package.nix +++ b/pkgs/by-name/li/libkrun/package.nix @@ -14,21 +14,31 @@ libkrunfw, rustc, withBlk ? false, + withNet ? false, withGpu ? false, withSound ? false, - withNet ? false, - sevVariant ? false, + withTimesync ? false, + variant ? null, }: +assert lib.elem variant [ + null + "sev" + "tdx" +]; + +let + libkrunfw' = (libkrunfw.override { inherit variant; }); +in stdenv.mkDerivation (finalAttrs: { - pname = "libkrun"; - version = "1.11.2"; + pname = "libkrun" + lib.optionalString (variant != null) "-${variant}"; + version = "1.15.1"; src = fetchFromGitHub { owner = "containers"; repo = "libkrun"; tag = "v${finalAttrs.version}"; - hash = "sha256-B11f7uG/oODwkME2rauCFbVysxUtUrUmd6RKeuBdnUU="; + hash = "sha256-VhlFyYJ/TH12I3dUq0JTus60rQEJq5H4Pm1puCnJV5A="; }; outputs = [ @@ -38,15 +48,14 @@ stdenv.mkDerivation (finalAttrs: { cargoDeps = rustPlatform.fetchCargoVendor { inherit (finalAttrs) src; - hash = "sha256-bcHy8AfO9nzSZKoFlEpPKvwupt3eMb+A2rHDaUzO3/U="; + hash = "sha256-dK3V7HCCvTqmQhB5Op2zmBPa9FO3h9gednU9tpQk+1U="; }; # Make sure libkrunfw can be found by dlopen() - # FIXME: This wasn't needed previously. What changed? env.RUSTFLAGS = toString ( map (flag: "-C link-arg=" + flag) [ "-Wl,--push-state,--no-as-needed" - (if sevVariant then "-lkrunfw-sev" else "-lkrunfw") + ("-lkrunfw" + lib.optionalString (variant != null) "-${variant}") "-Wl,--pop-state" ] ); @@ -57,10 +66,10 @@ stdenv.mkDerivation (finalAttrs: { cargo rustc ] - ++ lib.optional (sevVariant || withGpu) pkg-config; + ++ lib.optional (variant == "sev" || variant == "tdx" || withGpu) pkg-config; buildInputs = [ - (libkrunfw.override { variant = if sevVariant then "sev" else null; }) + libkrunfw' glibc glibc.static ] @@ -70,16 +79,18 @@ stdenv.mkDerivation (finalAttrs: { virglrenderer ] ++ lib.optional withSound pipewire - ++ lib.optional sevVariant openssl; + ++ lib.optional (variant == "sev" || variant == "tdx") openssl; makeFlags = [ "PREFIX=${placeholder "out"}" ] ++ lib.optional withBlk "BLK=1" + ++ lib.optional withNet "NET=1" ++ lib.optional withGpu "GPU=1" ++ lib.optional withSound "SND=1" - ++ lib.optional withNet "NET=1" - ++ lib.optional sevVariant "SEV=1"; + ++ lib.optional withTimesync "TIMESYNC=1" + ++ lib.optional (variant == "sev") "SEV=1" + ++ lib.optional (variant == "tdx") "TDX=1"; postInstall = '' mkdir -p $dev/lib/pkgconfig @@ -87,15 +98,17 @@ stdenv.mkDerivation (finalAttrs: { mv $out/include $dev/ ''; - meta = with lib; { + env.OPENSSL_NO_VENDOR = true; + + meta = { description = "Dynamic library providing Virtualization-based process isolation capabilities"; homepage = "https://github.com/containers/libkrun"; - license = licenses.asl20; - maintainers = with maintainers; [ + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ nickcao RossComputerGuy nrabulinski ]; - platforms = libkrunfw.meta.platforms; + platforms = libkrunfw'.meta.platforms; }; }) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 71847f21ff66..3566e57564cf 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -10515,7 +10515,8 @@ with pkgs; jool-cli = callPackage ../os-specific/linux/jool/cli.nix { }; - libkrun-sev = libkrun.override { sevVariant = true; }; + libkrun-sev = libkrun.override { variant = "sev"; }; + libkrun-tdx = libkrun.override { variant = "tdx"; }; linthesia = callPackage ../games/linthesia/default.nix { }; From 7893350c50a9aa77b213f095eeb50be94e42a3ea Mon Sep 17 00:00:00 2001 From: Nick Cao Date: Mon, 1 Sep 2025 15:24:29 -0400 Subject: [PATCH 3/3] krunvm: 0.2.3 -> 0.2.4 Diff: https://github.com/containers/krunvm/compare/v0.2.3...v0.2.4 --- pkgs/applications/virtualization/krunvm/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/virtualization/krunvm/default.nix b/pkgs/applications/virtualization/krunvm/default.nix index d67c4e64b78c..55fd7718aafb 100644 --- a/pkgs/applications/virtualization/krunvm/default.nix +++ b/pkgs/applications/virtualization/krunvm/default.nix @@ -16,18 +16,18 @@ stdenv.mkDerivation rec { pname = "krunvm"; - version = "0.2.3"; + version = "0.2.4"; src = fetchFromGitHub { owner = "containers"; repo = pname; rev = "v${version}"; - hash = "sha256-IXofYsOmbrjq8Zq9+a6pvBYsvZFcKzN5IvCuHaxwazI="; + hash = "sha256-YbK4DKw0nh9IO1F7QsJcbOMlHekEdeUBbDHwuQ2x1Ww="; }; cargoDeps = rustPlatform.fetchCargoVendor { inherit src; - hash = "sha256-Vmb5IgGyKGekuL018/Xiz9QroWIwTIUxVB57fb0X7Kw="; + hash = "sha256-TMV9xCcqBQgPsUSzsTJAi4qsplTOSm3ilaUmtmdaGnE="; }; nativeBuildInputs = [