Very confusingly, the `isPowerPC` predicate in
`lib/systems/inspect.nix` does *not* match `powerpc64le`!
This is because `isPowerPC` is defined as
isPowerPC = { cpu = cpuTypes.powerpc; };
Where `cpuTypes.powerpc` is:
{ bits = 32; significantByte = bigEndian; family = "power"; };
This means that the `isPowerPC` predicate actually only matches the
subset of machines marketed under this name which happen to be 32-bit
and running in big-endian mode which is equivalent to:
with stdenv.hostPlatform; isPower && isBigEndian && is32bit
This seems like a sharp edge that people could easily cut themselves
on. In fact, that has already happened: in
`linux/kernel/common-config.nix` there is a test which will always
fail:
(stdenv.hostPlatform.isPowerPC && stdenv.hostPlatform.is64bit)
A more subtle case of the strict isPowerPC being used instead of the
moreg general isPower accidentally are the GHC expressions:
Update pkgs/development/compilers/ghc/8.10.7.nix
Update pkgs/development/compilers/ghc/8.8.4.nix
Update pkgs/development/compilers/ghc/9.2.2.nix
Update pkgs/development/compilers/ghc/9.0.2.nix
Update pkgs/development/compilers/ghc/head.nix
Since the remaining legitimate use sites of isPowerPC are so few, remove
the isPowerPC predicate completely. The alternative expression above is
noted in the release notes as an alternative.
Co-authored-by: sternenseemann <sternenseemann@systemli.org>
This version was last touched in February 2022, as opposed to the
version we were using before, which hasn't been touched since January
2019.
I've reviewed the diff, and it all seems reasonable. We need a newer
version of this package, because hannesha's version doesn't build with
Linux 5.18.
Switch from autoreconfHook to running autogen.sh ourselves so that
gtkdocize gets run. The GTK_DOC_CHECK autoconf macro isn't
cross-friendly, so we have to disable it when cross-compiling.
Introduce new boolean arguments "pamSupport" and "capabilitiesSupport" that
control whether "pam" and "libcap" are compiled in. These flags are true by
default, so this commit does not cause any rebuilds.
Workaround build failure on -fno-common toolchains like upstream
gcc-10. Otherwise build fails as:
ld: lockdep.o:/build/linux-5.0.21/tools/lib/lockdep/../../include/linux/rcu.h:5: multiple definition of
`rcu_scheduler_active'; common.o:/build/linux-5.0.21/tools/lib/lockdep/../../include/linux/rcu.h:5: first defined here
patchShebangs was writing a build platform bash shebang to
systemd-update-helper, which ends up in the output. To fix this, this patch
restricts patchShebangs to only run on certain directories.
Also, remove a comment stating that patchShebangs will no longer be necessary
after the next systemd release. This is not the case because /usr/bin/env
doesn't exist within the sandbox and will still need to be patched.
Without the change build on upstream gcc-10 fals as:
ld: ipxfrm.o:(.bss+0x0): multiple definition of `filter'; ipmroute.o:(.bss+0x0): first defined here
ld: xfrm_monitor.o:(.bss+0x0): multiple definition of `listen_all_nsid'; ipmonitor.o:(.bss+0x0): first defined here
Without the change ubuild fails on gcc-10 as:
ld: impl/light-razer.o:/build/source/src/helpers.h:24: multiple definition of
`light_loglevel'; light-main.o:/build/source/src/helpers.h:24: first defined here
Account for all `with*` options causing their respective unit files to
not be built, just like the current code `withCryptsetup` already does.
This fixes build errors like the following:
```
missing /nix/store/5fafsfms64fn3ywv274ky7arhm9yq2if-systemd-250.4/example/systemd/system/systemd-importd.service
error: builder for '/nix/store/67rdli5q5akzwmqgf8q0a1yp76jgr0px-system-units.drv' failed with exit code 1
```
Found by using a customised systemd package as follows:
```
systemd.package = pkgs.systemd-small;
nixpkgs.config.packageOverrides = pkgs: {
"systemd-small" = pkgs.systemd.override {
withImportd = false;
withMachined = false;
...
};
};
```
Without the change build against upstream gcc-10 fails as:
ld: kmscube-cube-tex.o:/build/kmscube-9dcce71/cube-tex.c:48: multiple definition of `gl';
kmscube-cube-smooth.o:/build/kmscube-9dcce71/cube-smooth.c:40: first defined here