gcc 16 emits more warnings than previous versions for unused attributes
and variables, which are made into build failures by the use of -Werror
in ipxe. these warnings were fixed upstream (on may 1, the day after gcc
16's release!) so we fetch the relevant patches until they make it into
a release.
Updates the licensing information to match Fedora's SPDX
identifier. This is necessary because of IPXE's built-in EFI
headers and other third-party code embedded in IPXE. Please
note that Nixpkgs does not yet have a way to programatically
identify `GPL-2.0-or-later WITH UBDL-exception` or the `AND`
and `OR` logical identifiers in SPDX, so the best we can do
is express all of the licenses in a list and add a comment
for UBDL.
Reported-by: sanana <umutinanerdogan@pm.me>
Signed-off-by: Fernando Rodrigues <alpha@sigmasquadron.net>
Turns out, iPXE doesn't use GNU-EFI but has its own tools for building
EFI PE binaries with a GNU toolchain, and as for headers it has a
vendored-in copy of EFI headers from TianoCore.
`xl` needs a full path to the efirom executable.
This does not fix the qemu-dm issue. A stubdom is still required.
Reported-by: HeHongbo <hehongbo@mail.com>
Signed-off-by: Fernando Rodrigues <alpha@sigmasquadron.net>
In preparation for the deprecation of `stdenv.isX`.
These shorthands are not conducive to cross-compilation because they
hide the platforms.
Darwin might get cross-compilation for which the continued usage of `stdenv.isDarwin` will get in the way
One example of why this is bad and especially affects compiler packages
https://www.github.com/NixOS/nixpkgs/pull/343059
There are too many files to go through manually but a treewide should
get users thinking when they see a `hostPlatform.isX` in a place where it
doesn't make sense.
```
fd --type f "\.nix" | xargs sd --fixed-strings "stdenv.is" "stdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "stdenv'.is" "stdenv'.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "clangStdenv.is" "clangStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "gccStdenv.is" "gccStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "stdenvNoCC.is" "stdenvNoCC.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "inherit (stdenv) is" "inherit (stdenv.hostPlatform) is"
fd --type f "\.nix" | xargs sd --fixed-strings "buildStdenv.is" "buildStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "effectiveStdenv.is" "effectiveStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "originalStdenv.is" "originalStdenv.hostPlatform.is"
```