From cbfabf3690c8a270b67ee1338539da3a2c500bdf Mon Sep 17 00:00:00 2001 From: Emily Date: Fri, 31 Jul 2026 06:03:29 +0100 Subject: [PATCH] testSignedPackages.systemd-boot-signed: init --- .../sy/systemd-boot-signed/package.nix | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 pkgs/misc/signed-packages/by-name/sy/systemd-boot-signed/package.nix diff --git a/pkgs/misc/signed-packages/by-name/sy/systemd-boot-signed/package.nix b/pkgs/misc/signed-packages/by-name/sy/systemd-boot-signed/package.nix new file mode 100644 index 000000000000..1e6b32036abe --- /dev/null +++ b/pkgs/misc/signed-packages/by-name/sy/systemd-boot-signed/package.nix @@ -0,0 +1,67 @@ +{ + lib, + stdenvNoCC, + autopen, + lndir, + authenticodeCheckHook, + systemd, + uefiSigningKey, + uefiCertificate, +}: + +stdenvNoCC.mkDerivation (finalAttrs: { + pname = "systemd-boot-signed"; + inherit (finalAttrs.unsigned) version; + + dontUnpack = true; + dontBuild = true; + + nativeBuildInputs = [ + lndir + authenticodeCheckHook + ]; + + authenticodeCertificate = uefiCertificate; + + authenticodeCheckExclude = [ + # UKIs and addons are signed as a whole, not per stub. + "lib/systemd/boot/efi/*.stub" + ]; + + unsigned = systemd; + + pePath = "lib/systemd/boot/efi/systemd-boot${stdenvNoCC.hostPlatform.efiArch}.efi"; + + signedPe = autopen.lib.authenticode.mkSignedPe { + inherit (finalAttrs.unsigned) pname version; + signingKey = uefiSigningKey; + certificate = uefiCertificate; + peFile = "${finalAttrs.unsigned}/${finalAttrs.pePath}"; + }; + + installPhase = '' + runHook preInstall + + mkdir -p $out/lib/systemd/boot/efi + lndir {"$unsigned","$out"}/lib/systemd/boot/efi + ln -sf "$signedPe" "$out/$pePath" + + runHook postInstall + ''; + + strictDeps = true; + + __structuredAttrs = true; + + meta = { + description = "A simple UEFI boot manager (signed)"; + inherit (systemd.meta) + homepage + license + platforms + badPlatforms + identifiers + ; + teams = systemd.meta.teams ++ [ lib.teams.boot-security ]; + }; +})