diff options
author | Milan Pässler <milan@petabyte.dev> | 2021-01-02 17:58:16 +0100 |
---|---|---|
committer | Milan Pässler <milan@petabyte.dev> | 2021-01-02 17:58:16 +0100 |
commit | 4dde3d592ca60d465896f63fec902ce748a4f5bf (patch) | |
tree | 56a35e98eccd96fe77a446d3ca2be1718dff4b6f | |
parent | dfe321af9d16a201a706a8f963a8c3f5c823a084 (diff) |
coreboot-payload-tianocore: use nixpkgs edk2
-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, 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
|