ipxe: modernise

Signed-off-by: Fernando Rodrigues <alpha@sigmasquadron.net>
This commit is contained in:
Fernando Rodrigues 2024-09-13 20:04:19 +00:00
parent 0ed7e74523
commit 01770b4374
No known key found for this signature in database
GPG Key ID: CC3AE2EA00000000

View File

@ -10,7 +10,7 @@
perl,
xorriso,
xz,
syslinux ? null,
syslinux,
embedScript ? null,
additionalTargets ? { },
additionalOptions ? [ ],
@ -46,7 +46,7 @@ let
};
in
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "ipxe";
version = "1.21.1-unstable-2024-08-15";
@ -58,6 +58,7 @@ stdenv.mkDerivation rec {
xorriso
xz
] ++ lib.optional stdenv.hostPlatform.isx86 syslinux;
depsBuildBuild = [ buildPackages.stdenv.cc ];
strictDeps = true;
@ -69,18 +70,17 @@ stdenv.mkDerivation rec {
hash = "sha256-Zf2ZblKUyKPo0YdzQFeCEAnYkvWDsmuTS9htvSybpXo=";
};
# Calling syslinux on a FAT image isn't going to work on Aarch64.
postPatch = lib.optionalString stdenv.hostPlatform.isAarch64 ''
substituteInPlace src/util/genfsimg --replace " syslinux " " true "
''; # calling syslinux on a FAT image isn't going to work
'';
# not possible due to assembler code
# Hardening is not possible due to assembler code.
hardeningDisable = [
"pic"
"stackprotector"
];
env.NIX_CFLAGS_COMPILE = "-Wno-error";
makeFlags = [
"ECHO_E_BIN_ECHO=echo"
"ECHO_E_BIN_ECHO_E=echo" # No /bin/echo here.
@ -97,7 +97,7 @@ stdenv.mkDerivation rec {
configurePhase =
''
runHook preConfigure
for opt in ${lib.escapeShellArgs enabledOptions}; do echo "#define $opt" >> src/config/general.h; done
for opt in ${lib.escapeShellArgs finalAttrs.enabledOptions}; do echo "#define $opt" >> src/config/general.h; done
substituteInPlace src/Makefile.housekeeping --replace '/bin/echo' echo
''
+ lib.optionalString stdenv.hostPlatform.isx86 ''
@ -134,10 +134,11 @@ stdenv.mkDerivation rec {
tagPrefix = "v";
};
meta = with lib; {
meta = {
description = "Network boot firmware";
homepage = "https://ipxe.org/";
license = licenses.gpl2Only;
platforms = platforms.linux;
license = lib.licenses.gpl2Only;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ sigmasquadron ];
};
}
})