From 19280a7ce470e2cfd2418d90939c48d204425384 Mon Sep 17 00:00:00 2001 From: Lin Yinfeng Date: Sun, 11 Feb 2024 12:56:13 +0800 Subject: [PATCH] shim-unsigned: install all targets as data --- pkgs/tools/misc/shim/default.nix | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/pkgs/tools/misc/shim/default.nix b/pkgs/tools/misc/shim/default.nix index 0b8f6dbe5a9f..e4220cf5cc8e 100644 --- a/pkgs/tools/misc/shim/default.nix +++ b/pkgs/tools/misc/shim/default.nix @@ -6,9 +6,9 @@ let inherit (stdenv.hostPlatform) system; throwSystem = throw "Unsupported system: ${system}"; - target = { - x86_64-linux = "shimx64.efi"; - aarch64-linux = "shimaa64.efi"; + archSuffix = { + x86_64-linux = "x64"; + aarch64-linux = "aa64"; }.${system} or throwSystem; in stdenv.mkDerivation rec { pname = "shim"; @@ -28,19 +28,21 @@ in stdenv.mkDerivation rec { makeFlags = lib.optional (vendorCertFile != null) "VENDOR_CERT_FILE=${vendorCertFile}" - ++ lib.optional (defaultLoader != null) "DEFAULT_LOADER=${defaultLoader}" - ++ [ target ]; + ++ lib.optional (defaultLoader != null) "DEFAULT_LOADER=${defaultLoader}"; - installPhase = '' - mkdir -p $out/share/shim - install -m 644 ${target} $out/share/shim/ - ''; + installTargets = ["install-as-data"]; + installFlags = [ + "DATATARGETDIR=$(out)/share/shim" + ]; passthru = { - # Expose the target file name so that consumers + # Expose the arch suffix and target file names so that consumers # (e.g. infrastructure for signing this shim) don't need to # duplicate the logic from here - inherit target; + inherit archSuffix; + target = "shim${archSuffix}.efi"; + mokManagerTarget = "mm${archSuffix}.efi"; + fallbackTarget = "fb${archSuffix}.efi"; }; meta = with lib; {