FreeBSD implements Linux's evdev API, but doesn't come with headers
for it. Instead, the Linux headers are just modified to be suitable
for FreeBSD, via a port called evdev-proto. I don't want to copy the
complicated sed expressions from the port into Nixpkgs, so instead we
just build and install the port inside a Nix derivation.
libBPF does not compile for mips64 targets using clang (rathern than
gcc) because clang lacks the necessary _MIPS_SZPTR compiler builtin.
Let's allow the rest of systemd to compile.
- The glibc people noticed this problem [way back in
2011](https://sourceware.org/pipermail/libc-ports/2011-June/001959.html)
and consider it to be a clang/llvm bug. I am inclined to agree.
- [clang has the `_MIPS_SZPTR`
builtin](3af9cb5375/clang/lib/Basic/Targets/Mips.cpp (L185))
and seems to have had it since before they switched to git.
This may in fact be a nixpkgs bug -- that we're not invoking clang
in a way that tells the frontend to make the mips builtins
available, even if the backend is emitting mips binaries. Or at
least we aren't tricking systemd's build machinery into doing that.
This firmware is completely open source with no blobs, which is
quite rare in the wifi world. Wifi chips have their own dedicated
general-purpose CPUs. This source code allows you to see what those
CPUs are doing and modify their behavior.
When the upstream repository was created in 2013, "open source
firmware" meant "firmware which is open source". In 2023 that is no
longer the generally accepted [definition], so I have chosen an
unambiguous adjective (whose meaning has remained stable for
decades) to use in the pname.
[definition]: https://web.archive.org/web/20221209121315/https://www.opencompute.org/projects/open-system-firmware#:~:text=Another,allows%20it
Co-authored-by: Artturi <Artturin@artturin.com>