diff options
author | Alyssa Ross <hi@alyssa.is> | 2023-11-21 16:12:21 +0100 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2023-11-21 16:12:48 +0100 |
commit | 048a4cd441a59cbf89defb18bb45c9f0b4429b35 (patch) | |
tree | f8f5850ff05521ab82d65745894714a8796cbfb6 /pkgs/development/compilers/edk2/default.nix | |
parent | 030c5028b07afcedce7c5956015c629486cc79d9 (diff) | |
parent | 4c2d05dd6435d449a3651a6dd314d9411b5f8146 (diff) | |
download | nixpkgs-rootfs.tar nixpkgs-rootfs.tar.gz nixpkgs-rootfs.tar.bz2 nixpkgs-rootfs.tar.lz nixpkgs-rootfs.tar.xz nixpkgs-rootfs.tar.zst nixpkgs-rootfs.zip |
Signed-off-by: Alyssa Ross <hi@alyssa.is>
Diffstat (limited to 'pkgs/development/compilers/edk2/default.nix')
-rw-r--r-- | pkgs/development/compilers/edk2/default.nix | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/pkgs/development/compilers/edk2/default.nix b/pkgs/development/compilers/edk2/default.nix index 3a039014db8..d34ae7b8143 100644 --- a/pkgs/development/compilers/edk2/default.nix +++ b/pkgs/development/compilers/edk2/default.nix @@ -2,6 +2,7 @@ , clangStdenv , fetchFromGitHub , fetchpatch +, runCommand , libuuid , python3 , bc @@ -28,9 +29,9 @@ buildType = if stdenv.isDarwin then else "GCC5"; -edk2 = stdenv.mkDerivation { +edk2 = stdenv.mkDerivation rec { pname = "edk2"; - version = "202305"; + version = "202308"; patches = [ # pass targetPrefix as an env var @@ -40,15 +41,24 @@ edk2 = stdenv.mkDerivation { }) ]; - # submodules - src = fetchFromGitHub { + srcWithVendoring = fetchFromGitHub { owner = "tianocore"; repo = "edk2"; rev = "edk2-stable${edk2.version}"; fetchSubmodules = true; - hash = "sha256-htOvV43Hw5K05g0SF3po69HncLyma3BtgpqYSdzRG4s="; + hash = "sha256-Eoi1xf/hw/Knr7n0f0rgVof7wTgrHkmvV4eJjJV1NhM="; }; + # We don't want EDK2 to keep track of OpenSSL, + # they're frankly bad at it. + src = runCommand "edk2-unvendored-src" { } '' + cp --no-preserve=mode -r ${srcWithVendoring} $out + rm -rf $out/CryptoPkg/Library/OpensslLib/openssl + mkdir -p $out/CryptoPkg/Library/OpensslLib/openssl + tar --strip-components=1 -xf ${buildPackages.openssl.src} -C $out/CryptoPkg/Library/OpensslLib/openssl + chmod -R +w $out/ + ''; + nativeBuildInputs = [ pythonEnv ]; depsBuildBuild = [ buildPackages.stdenv.cc buildPackages.util-linux buildPackages.bash ]; strictDeps = true; @@ -58,7 +68,9 @@ edk2 = stdenv.mkDerivation { makeFlags = [ "-C BaseTools" ]; - env.NIX_CFLAGS_COMPILE = "-Wno-return-type" + lib.optionalString (stdenv.cc.isGNU) " -Wno-error=stringop-truncation"; + env.NIX_CFLAGS_COMPILE = "-Wno-return-type" + + lib.optionalString (stdenv.cc.isGNU) " -Wno-error=stringop-truncation" + + lib.optionalString (stdenv.isDarwin) " -Wno-error=macro-redefined"; hardeningDisable = [ "format" "fortify" ]; @@ -69,6 +81,7 @@ edk2 = stdenv.mkDerivation { # patchShebangs fails to see these when cross compiling for i in $out/BaseTools/BinWrappers/PosixLike/*; do substituteInPlace $i --replace '/usr/bin/env bash' ${buildPackages.bash}/bin/bash + chmod +x "$i" done ''; |