aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMilan Pässler <milan@petabyte.dev>2021-01-02 17:58:16 +0100
committerMilan Pässler <milan@petabyte.dev>2021-01-02 17:58:16 +0100
commit4dde3d592ca60d465896f63fec902ce748a4f5bf (patch)
tree56a35e98eccd96fe77a446d3ca2be1718dff4b6f
parentdfe321af9d16a201a706a8f963a8c3f5c823a084 (diff)
coreboot-payload-tianocore: use nixpkgs edk2
-rw-r--r--pkgs/coreboot-payload-tianocore/default.nix87
-rw-r--r--pkgs/coreboot-payload-tianocore/pr-1170-fix-build.diff12
2 files changed, 28 insertions, 71 deletions
diff --git a/pkgs/coreboot-payload-tianocore/default.nix b/pkgs/coreboot-payload-tianocore/default.nix
index 5c3e5362462f..7ce866e400c0 100644
--- a/pkgs/coreboot-payload-tianocore/default.nix
+++ b/pkgs/coreboot-payload-tianocore/default.nix
@@ -1,78 +1,23 @@
-{ fetchFromGitHub, python2, stdenv, libuuid, bc, utillinux, nasm, iasl, seabios
+{ fetchFromGitHub
+, fetchpatch
+, edk2
+, stdenv
+, libuuid
+, bc
+, utillinux
+, nasm
+, iasl
}:
-# we can not override the source in edk2, so we had to copy the entire thing
-
-let
- src = fetchFromGitHub {
- owner = "MrChromebox";
- repo = "edk2";
- rev = "860a8d95c2ee89c9916d6e11230f246afa1cd629";
- sha256 = "1bykw3lzfjl6idca37i736mwpqv60haczp7davhgqlmlb3nw6y3s";
- fetchSubmodules = true;
- };
-
- version = "unstable";
-
- pythonEnv = python2.withPackages (ps: [ ps.tkinter ]);
-
- toolchain = stdenv.mkDerivation {
- pname = "edk2-coreboot";
-
- inherit version src;
-
- buildInputs = [ libuuid pythonEnv ];
-
- makeFlags = [ "-C BaseTools" ];
-
- NIX_CFLAGS_COMPILE = "-Wno-return-type -Wno-error=stringop-truncation";
-
- hardeningDisable = [ "format" "fortify" ];
-
- installPhase = ''
- mkdir -vp $out
- mv -v BaseTools $out
- mv -v edksetup.sh $out
- '';
-
- enableParallelBuilding = true;
- };
-
-in stdenv.mkDerivation {
+edk2.mkDerivation "UefiPayloadPkg/UefiPayloadPkgIa32X64.dsc" {
pname = "coreboot-payload-tianocore";
- inherit version src;
-
- buildInputs = [ bc pythonEnv utillinux nasm iasl ];
-
- prePatch = ''
- rm -rf BaseTools
- ln -sv ${toolchain}/BaseTools BaseTools
- '';
-
- configurePhase = ''
- runHook preConfigure
- export WORKSPACE="$PWD"
- . ${toolchain}/edksetup.sh BaseTools
- runHook postConfigure
- '';
-
- buildPhase = ''
- runHook preBuild
- build -a X64 -a IA32 -b RELEASE -t GCC5 -p CorebootPayloadPkg/CorebootPayloadPkgIa32X64.dsc -n $NIX_BUILD_CORES -D CSM_ENABLE
- runHook postBuild
- '';
-
- installPhase = ''
- runHook preInstall
- mv -v Build/*/* $out
- runHook postInstall
- '';
-
- hardeningDisable = [ "format" "stackprotector" "pic" "fortify" ];
+ inherit (edk2) version;
- postPatch = ''
- cp ${seabios}/Csm16.bin OvmfPkg/Csm/Csm16/Csm16.bin
- '';
+ patches = [
+ ./pr-1170-fix-build.diff
+ ];
+ buildInputs = [ utillinux bc nasm iasl ];
+ buildFlags = [ "-a IA32" "-D BOOTLOADER=COREBOOT" ];
dontPatchELF = true;
}
diff --git a/pkgs/coreboot-payload-tianocore/pr-1170-fix-build.diff b/pkgs/coreboot-payload-tianocore/pr-1170-fix-build.diff
new file mode 100644
index 000000000000..c36df5e0725c
--- /dev/null
+++ b/pkgs/coreboot-payload-tianocore/pr-1170-fix-build.diff
@@ -0,0 +1,12 @@
+diff --git a/UefiPayloadPkg/UefiPayloadPkg.dsc b/UefiPayloadPkg/UefiPayloadPkg.dsc
+index 74ff58bc5af..ae62a9c4d66 100644
+--- a/UefiPayloadPkg/UefiPayloadPkgIa32X64.dsc
++++ b/UefiPayloadPkg/UefiPayloadPkgIa32X64.dsc
+@@ -142,6 +142,7 @@
+ PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf
+ PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
+ CacheMaintenanceLib|MdePkg/Library/BaseCacheMaintenanceLib/BaseCacheMaintenanceLib.inf
++ SafeIntLib|MdePkg/Library/BaseSafeIntLib/BaseSafeIntLib.inf
+
+ #
+ # UEFI & PI