idk man
This commit is contained in:
@@ -1,10 +1,14 @@
|
||||
{ stdenv
|
||||
, fetchFromGitHub
|
||||
, lib
|
||||
, MODEL ? "5"
|
||||
, MODEL ? "4"
|
||||
, RELEASE_TYPE ? "RELEASE"
|
||||
, EDK2_FLAGS ? ""
|
||||
, nasm
|
||||
, perl
|
||||
, python3
|
||||
, python3Packages
|
||||
, openssl
|
||||
, git
|
||||
, libuuid
|
||||
, pkgs
|
||||
@@ -28,7 +32,7 @@ let
|
||||
owner = "mjallen18";
|
||||
repo = "edk2-non-osi";
|
||||
name = repo;
|
||||
rev = "09ee44f07ded544d976be8a03dec3715719f638e";
|
||||
rev = "09ee44f07ded544d976be8a03dec3715719homeassistant-apif638e";
|
||||
hash = "sha256-k7nUb3WaRUIr9IlXdam2WGKPOzKjLNVFLfuD5h4veMc=";
|
||||
};
|
||||
|
||||
@@ -36,9 +40,17 @@ let
|
||||
owner = "mjallen18";
|
||||
repo = "edk2-platforms";
|
||||
name = repo;
|
||||
rev = "3000448f1f239d7220c5650dce150dfa6eac5c0a";
|
||||
hash = "sha256-keB7pxoOUfNghjmL3LUqGHpRGKp3zHwjTsvDO9Gur24=";
|
||||
rev = "933314d94a3d05f2f62b0f2148151d4a0f1e1183";
|
||||
hash = "sha256-Tnvrwk4g191LzfTkdoFw1BBN51EWhEQ7DRe9u5Mzc0w=";
|
||||
};
|
||||
|
||||
baseTools = pkgs.${namespace}.edk2-basetools;
|
||||
|
||||
pythonEnv = python3.withPackages (
|
||||
_ps: with python3Packages; [
|
||||
libfdt
|
||||
]
|
||||
);
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
inherit pname version;
|
||||
@@ -51,11 +63,26 @@ stdenv.mkDerivation rec {
|
||||
|
||||
# Add required host tools if needed:
|
||||
nativeBuildInputs = [
|
||||
python3
|
||||
git
|
||||
libuuid
|
||||
openssl
|
||||
nasm
|
||||
perl
|
||||
pythonEnv
|
||||
git
|
||||
libuuid
|
||||
baseTools
|
||||
];
|
||||
|
||||
env = {
|
||||
NIX_CFLAGS_COMPILE =
|
||||
"-Wno-return-type -Wno-error"
|
||||
+ lib.optionalString (stdenv.cc.isGNU) " -Wno-error=stringop-truncation"
|
||||
+ lib.optionalString (stdenv.hostPlatform.isDarwin) " -Wno-error=macro-redefined";
|
||||
PYTHON_COMMAND = lib.getExe pythonEnv;
|
||||
# trick taken from https://src.fedoraproject.org/rpms/edk2/blob/08f2354cd280b4ce5a7888aa85cf520e042955c3/f/edk2.spec#_319
|
||||
${"GCC5_AARCH64_PREFIX"} = stdenv.cc.targetPrefix;
|
||||
|
||||
};
|
||||
|
||||
# Don’t force a single root; we keep both dirs side by side
|
||||
sourceRoot = ".";
|
||||
|
||||
@@ -73,18 +100,38 @@ stdenv.mkDerivation rec {
|
||||
runHook postUnpack
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
export PYTHON_COMMAND=${python3}/bin/python
|
||||
prePatch = ''
|
||||
rm -rf ./edk2/BaseTools
|
||||
ln -sv ${baseTools}/BaseTools ./edk2/BaseTools
|
||||
'';
|
||||
|
||||
postPatch = ''
|
||||
f=edk2/CryptoPkg/Library/OpensslLib/OpensslLib.inf
|
||||
if grep -q '^\[BuildOptions\]' "$f"; then
|
||||
# Add flag inside existing BuildOptions
|
||||
sed -i '/^\[BuildOptions\]/a\ GCC:*_*_*_CC_FLAGS = -Wno-error' "$f"
|
||||
else
|
||||
# Append a new BuildOptions block
|
||||
cat >> "$f" <<'EOF'
|
||||
|
||||
[BuildOptions]
|
||||
GCC:*_*_*_CC_FLAGS = -Wno-error
|
||||
EOF
|
||||
fi
|
||||
'';
|
||||
|
||||
configurePhase = ''
|
||||
runHook preConfigure
|
||||
export WORKSPACE=$PWD
|
||||
export PACKAGES_PATH=$WORKSPACE/edk2:$WORKSPACE/edk2-non-osi:$WORKSPACE/edk2-platforms
|
||||
export EDK_TOOLS_PATH=$WORKSPACE/edk2/BaseTools
|
||||
|
||||
make -C ./edk2/BaseTools
|
||||
|
||||
export EDK_TOOLS_PATH=${baseTools}/BaseTools
|
||||
export ATF_BUILD_DIR="${pkgs.${namespace}.arm-trusted-firmware}/rpi${MODEL}/${RELEASE_TYPE}"
|
||||
|
||||
. ./edk2/edksetup.sh BaseTools
|
||||
. ${baseTools}/edksetup.sh BaseTools
|
||||
runHook postConfigure
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
build \
|
||||
-a AARCH64 \
|
||||
-t GCC \
|
||||
|
||||
Reference in New Issue
Block a user