nixpkgs/pkgs/by-name/ed/edk2-uefi-shell/package.nix
György Kurucz 7251eb7213 edk2-uefi-shell: fix cross compilation
This PYTHON_COMMAND workaround was introduced in #201095, but it does
not seem to have caused issues so far, until the version update in
bef3f40f05. Not sure why this was not an
issue before this update and why it is now, but I think this fix makes
sense regardless of the exact root cause, and I don't think it's worth
the effort to dig further.
2024-12-11 16:07:17 +01:00

62 lines
1.5 KiB
Nix

{
lib,
stdenv,
edk2,
llvmPackages,
util-linux,
nasm,
python3,
pkgsBuildHost,
}:
edk2.mkDerivation "ShellPkg/ShellPkg.dsc" (finalAttrs: {
pname = "edk2-uefi-shell";
inherit (edk2) version;
nativeBuildInputs =
[
util-linux
nasm
python3
]
++ lib.optionals stdenv.cc.isClang [
llvmPackages.bintools
llvmPackages.llvm
];
strictDeps = true;
env.NIX_CFLAGS_COMPILE = toString (
lib.optionals stdenv.cc.isClang [
"-fno-pic"
"-Qunused-arguments"
]
);
# Set explicitly to use Python 3 from nixpkgs. Otherwise, the build system will detect and try to
# use `/usr/bin/python3` on Darwin when sandboxing is disabled.
PYTHON_COMMAND = "${lib.getBin pkgsBuildHost.python3}/bin/python3";
# We only have a .efi file in $out which shouldn't be patched or stripped
dontPatchELF = true;
dontStrip = true;
# GUID hardcoded to match ShellPkg.dsc
installPhase = ''
runHook preInstall
install -D -m0644 Build/Shell/RELEASE*/*/Shell_EA4BB293-2D7F-4456-A681-1F22F42CD0BC.efi $out/shell.efi
runHook postInstall
'';
passthru.efi = "${finalAttrs.finalPackage}/shell.efi";
meta = {
inherit (edk2.meta) license platforms;
description = "UEFI Shell from Tianocore EFI development kit";
homepage = "https://github.com/tianocore/tianocore.github.io/wiki/ShellPkg";
maintainers = with lib.maintainers; [
LunNova
mjoerg
];
broken = stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64;
};
})