diff options
author | Milan Pässler <milan@petabyte.dev> | 2021-01-02 18:29:20 +0100 |
---|---|---|
committer | Milan Pässler <milan@petabyte.dev> | 2021-01-02 18:29:20 +0100 |
commit | 471014819efb15efa5fb506c4c621024096951a4 (patch) | |
tree | 6256ef5ac037113ec4609bca134cc3a2ad6b2393 | |
parent | e3ac34626eb30a8373aee0d2ba3fc1973940eb95 (diff) |
Revert "coreboot-payload-tianocore: use nixpkgs edk2"
This reverts commit 4dde3d592ca60d465896f63fec902ce748a4f5bf.
-rw-r--r-- | pkgs/coreboot-payload-tianocore/default.nix | 87 | ||||
-rw-r--r-- | pkgs/coreboot-payload-tianocore/pr-1170-fix-build.diff | 12 |
2 files changed, 71 insertions, 28 deletions
diff --git a/pkgs/coreboot-payload-tianocore/default.nix b/pkgs/coreboot-payload-tianocore/default.nix index 7ce866e400c0..5c3e5362462f 100644 --- a/pkgs/coreboot-payload-tianocore/default.nix +++ b/pkgs/coreboot-payload-tianocore/default.nix @@ -1,23 +1,78 @@ -{ fetchFromGitHub -, fetchpatch -, edk2 -, stdenv -, libuuid -, bc -, utillinux -, nasm -, iasl +{ fetchFromGitHub, python2, stdenv, libuuid, bc, utillinux, nasm, iasl, seabios }: -edk2.mkDerivation "UefiPayloadPkg/UefiPayloadPkgIa32X64.dsc" { +# 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 { pname = "coreboot-payload-tianocore"; - inherit (edk2) version; + 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" ]; - patches = [ - ./pr-1170-fix-build.diff - ]; + postPatch = '' + cp ${seabios}/Csm16.bin OvmfPkg/Csm/Csm16/Csm16.bin + ''; - 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 deleted file mode 100644 index c36df5e0725c..000000000000 --- a/pkgs/coreboot-payload-tianocore/pr-1170-fix-build.diff +++ /dev/null @@ -1,12 +0,0 @@ -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
|