Previously we were unable to override individual attributes within the
coreboot-toolchain packageset. By using callPackage on each of the
attributes individually we retain the ability to call the override
function to inject custom dependencies into the build.
pmdk is only available on x86_64-linux, yet included in other platforms.
Things tested:
- build on x86_64-linux is the same (substituted from binary cache)
- build on aarch64-linux doesn't crash now with an "unsupported system"
Previously, `pkgs.libreoffice` had a total closure-size of 2.4GB where
`pkgs.openjdk` was a significant part:
$ nix path-info ./result -Sh
/nix/store/7xyfklmiz2azcnrfa8n9cz12dyyqc85r-libreoffice-7.1.7.2 2.4G
$ nix path-info ./result -shr | grep openjdk
/nix/store/qcn7ihaak9g8ayyj4995ila2z0pkm37i-openjdk-17.0.1+12 643.6M
However we need exactly two components:
* a `javac` from `pkgs.openjdk`
* a minimal runtime (i.e. a JRE) for `libofficebean.so` where
`libjawt.so` is also available.
I moved `jdk` to the `nativeBuildInputs` to ensure that `javac` is still
available in the build-environment and created a minimal JRE that seems
sufficient.
Now, the total closure-size is reduced by ~29.1% (basically the 600M
from `pkgs.openjdk`):
$ nix path-info ./result -Sh
/nix/store/zv34xijv64k7sz7rv50g3v6y59qg7p8k-libreoffice-7.1.7.2 1.7G
This requires us to enable LWS_WITH_EXTERNAL_POLL.
Since only mosquitto needs that and upstream discourages enabling it,
we'll just do it in an override in mosquitto.
- Clone the sources and leave the .git directory, and add Git to
checkInputs to fix several failing tests (they use Git commands and
expect to be inside a Git repository).
- Exclude a test failing on darwin.
The "0.5.0-1" rockspec on luarocks has a bug, resulting in it pulling
the current git master version, which is what we have effectively been
using.
Given that 0.5.0-1 is the latest release, is 6 years old, and that there
have been some bug fixes since then, we do actually want to be using the
git master version, but we also want to be using the correct rockspec
(particularly as alt-getopt has been replaced by argparse in the `moon`
binary).