Unverified Commit 6dd2f029 authored by Ryan Lahfa's avatar Ryan Lahfa Committed by GitHub
Browse files

Merge pull request #269877 from RaitoBezarius/ovmf-darwin

parents 16500715 b0eed3a0
Loading
Loading
Loading
Loading
+18 −4
Original line number Diff line number Diff line
@@ -7,7 +7,9 @@
, tpmSupport ? false
, tlsSupport ? false
, debug ? false
, sourceDebug ? debug
# Usually, this option is broken, do not use it except if you know what you are
# doing.
, sourceDebug ? false
}:

assert csmSupport -> seabios != null;
@@ -20,6 +22,8 @@ let
    "OvmfPkg/OvmfPkgX64.dsc"
  else if stdenv.hostPlatform.isAarch then
    "ArmVirtPkg/ArmVirtQemu.dsc"
  else if stdenv.hostPlatform.isRiscV then
    "OvmfPkg/RiscVVirt/RiscVVirtQemu.dsc"
  else
    throw "Unsupported architecture";

@@ -67,7 +71,8 @@ edk2.mkDerivation projectDscPath (finalAttrs: {
    cp ${seabios}/Csm16.bin OvmfPkg/Csm/Csm16/Csm16.bin
  '';

  postFixup = if stdenv.hostPlatform.isAarch then ''
  postFixup = (
    if stdenv.hostPlatform.isAarch then ''
    mkdir -vp $fd/FV
    mkdir -vp $fd/AAVMF
    mv -v $out/FV/QEMU_{EFI,VARS}.fd $fd/FV
@@ -80,10 +85,18 @@ edk2.mkDerivation projectDscPath (finalAttrs: {
    # Also add symlinks for Fedora dir layout: https://src.fedoraproject.org/cgit/rpms/edk2.git/tree/edk2.spec
    ln -s $fd/FV/AAVMF_CODE.fd $fd/AAVMF/QEMU_EFI-pflash.raw
    ln -s $fd/FV/AAVMF_VARS.fd $fd/AAVMF/vars-template-pflash.raw
  '' else ''
  ''
  else if stdenv.hostPlatform.isRiscV then ''
    mkdir -vp $fd/FV

    mv -v $out/FV/RISCV_VIRT_{CODE,VARS}.fd $fd/FV/
    truncate -s 32M $fd/FV/RISCV_VIRT_CODE.fd
    truncate -s 32M $fd/FV/RISCV_VIRT_VARS.fd
  ''
  else ''
    mkdir -vp $fd/FV
    mv -v $out/FV/OVMF{,_CODE,_VARS}.fd $fd/FV
  '';
  '');

  dontPatchELF = true;

@@ -105,5 +118,6 @@ edk2.mkDerivation projectDscPath (finalAttrs: {
    license = lib.licenses.bsd2;
    inherit (edk2.meta) platforms;
    maintainers = with lib.maintainers; [ adamcstephens raitobezarius ];
    broken = stdenv.isDarwin;
  };
})
+8 −5
Original line number Diff line number Diff line
@@ -21,6 +21,8 @@ else if stdenv.isAarch32 then
  "ARM"
else if stdenv.isAarch64 then
  "AARCH64"
else if stdenv.hostPlatform.isRiscV64 then
  "RISCV64"
else
  throw "Unsupported architecture";

@@ -31,7 +33,7 @@ buildType = if stdenv.isDarwin then

edk2 = stdenv.mkDerivation rec {
  pname = "edk2";
  version = "202308";
  version = "202311";

  patches = [
    # pass targetPrefix as an env var
@@ -46,7 +48,7 @@ edk2 = stdenv.mkDerivation rec {
    repo = "edk2";
    rev = "edk2-stable${edk2.version}";
    fetchSubmodules = true;
    hash = "sha256-Eoi1xf/hw/Knr7n0f0rgVof7wTgrHkmvV4eJjJV1NhM=";
    hash = "sha256-gC/If8U9qo70rGvNl3ld/mmZszwY0w/5Ge/K21mhzYw=";
  };

  # We don't want EDK2 to keep track of OpenSSL,
@@ -60,7 +62,8 @@ edk2 = stdenv.mkDerivation rec {
  '';

  nativeBuildInputs = [ pythonEnv ];
  depsBuildBuild = [ buildPackages.stdenv.cc buildPackages.util-linux buildPackages.bash ];
  depsBuildBuild = [ buildPackages.stdenv.cc buildPackages.bash ];
  depsHostHost = [ libuuid ];
  strictDeps = true;

  # trick taken from https://src.fedoraproject.org/rpms/edk2/blob/08f2354cd280b4ce5a7888aa85cf520e042955c3/f/edk2.spec#_319
@@ -91,7 +94,7 @@ edk2 = stdenv.mkDerivation rec {
    description = "Intel EFI development kit";
    homepage = "https://github.com/tianocore/tianocore.github.io/wiki/EDK-II/";
    license = licenses.bsd2;
    platforms = with platforms; aarch64 ++ arm ++ i686 ++ x86_64;
    platforms = with platforms; aarch64 ++ arm ++ i686 ++ x86_64 ++ riscv64;
  };

  passthru = {