Commit Graph

455 Commits

Author SHA1 Message Date
Nick Cao
767c3e5fa9
systemd: fix cross compilation with libbpf enabled 2022-08-25 22:18:06 +08:00
Florian Klink
4a641f7ac3
Merge pull request #187714 from veehaitch/systemd-bpf-framework
systemd: enable `BPF_FRAMEWORK` by default (`withLibBPF=true`)
2022-08-21 16:59:14 +02:00
Vincent Haupert
ca0120a4bc systemd: enable BPF_FRAMEWORK by default (withLibBPF=true)
So far, we have been building Systemd without `BPF_FRAMEWORK`. As a
result, some Systemd features like `RestrictNetworkInterfaces=` cannot
work. To make things worse, Systemd doesn't even complain when using a
feature which requires `+BPF_FRAMEWORK`; yet, the option has no effect:

    # systemctl --version | grep -o "\-BPF_FRAMEWORK"
    -BPF_FRAMEWORK
    # systemd-run -t -p RestrictNetworkInterfaces="lo" ping -c 1 8.8.8.8

This commit enables `BPF_FRAMEWORK` by default. This is in line with
other distros (e.g., Fedora). Also note that BPF does not support stack
protector: https://lkml.org/lkml/2020/2/21/1000. To that end, I added a
small `CFLAGS` patch to the BPF building to keep using stack protector
as a default.

I also added an appropriate NixOS test.
2022-08-21 12:22:16 +02:00
Janne Heß
a8c50530fc
systemd: Enable oomd by default
This is only in the big systemd, not the minimal one
2022-08-15 10:13:04 +02:00
Sergei Trofimovich
7659f31d69 systemd: 251.3 -> 251.4
Notable change is binutils-2.39 support.

Changes: https://github.com/systemd/systemd-stable/compare/v251.3...v251.4
2022-08-11 09:33:22 +01:00
github-actions[bot]
50de8aa60e
Merge master into staging-next 2022-07-29 18:01:27 +00:00
Alyssa Ross
4a487f4c33
pkgsMusl.systemd: fix build with latest oe patches 2022-07-29 16:06:16 +00:00
Florian Klink
ad29dc19c1
Merge pull request #182436 from K900/systemd-initrd-fixes
nixos/systemd: make sure all the device nodes are created in stage1
2022-07-22 15:06:59 +07:00
K900
c9183d3738 nixos/systemd: make sure all the device nodes are created in stage1
The ConditionFileNotEmpty override patch wasn't correct for stage1, which
does have the modules in /lib. So, remove the patch and set
the right path with overrides in the final system.

Also, make sure systemd-tmpfiles-setup-dev is pulled in to create
all the necessary symlinks.
2022-07-22 10:01:21 +03:00
Artturin
229ecd4bbc systemd: update substituteInPlace to restore cross
systemd-aarch64-unknown-linux-gnu> src/boot/efi/meson.build:433:8: ERROR: Program 'objcopy' not found or not executable
2022-07-21 05:00:18 +03:00
Jörg Thalheim
a14d1a2e7e systemd: 250.4 -> 251.3 2022-07-18 14:17:05 +02:00
Martin Weinelt
1923b68bda Merge remote-tracking branch 'origin/staging-next' into staging 2022-05-23 17:35:37 +02:00
Florian Klink
2403723108
Merge pull request #172652 from klemensn/systemd-optional-system-units
nixos/systemd: Package only built component units
2022-05-23 11:35:01 +02:00
Ben Wolsieffer
5e2009d894 systemd: fix build platform shebang reference
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.
2022-05-21 16:13:48 -04:00
Klemens Nanni
cbcc746f8f nixos/systemd: Package only built component units
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;
    ...
  };

};
```
2022-05-16 16:52:25 +02:00
06kellyjac
eeff6c4933 systemd: fix reproducibility of dbus interface xml
systemd's `--bus-introspect` was generating nondeterministic xml which
is saved into our build outputs
2022-05-12 10:11:22 +01:00
Janne Heß
509e2b499e
systemd: Remove accidential sysinit re-add
0423158e10 re-introduced a previously
removed mv call.
2022-05-05 14:55:40 -07:00
github-actions[bot]
da11317d1c
Merge staging-next into staging 2022-04-27 06:01:39 +00:00
Guillaume Girol
71ca66602b systemd: mark as broken for static builds 2022-04-24 23:20:48 +02:00
Sergei Trofimovich
77a189e066 systemd: disable EFI stripping
In Issue #169693 we found out that systemd-bootaa64.efi does not have
required `#### LoaderInfo: systemd-boot 250.4 ####` marking.

It is destroyed by `nixpkgs`'s `_doStrip` hook (part of `fixupOutputHooks`).
It makes sense as PE32+ is a bit different from ELF where `.sdmagic` section
is inserted.

The change avoids stripping EFI files altogether by moving them out
of default strip directories of _doStrip for the time while `fixupPhase`
is running.

Closes: https://github.com/NixOS/nixpkgs/issues/169693
2022-04-23 18:54:48 +01:00
Janne Heß
adab6ce552
nixos/systemd-stage-1: Minor fixups
- Fix the name of the env
- Add the correct kmod to the initrd
- Add `less` to make journalctl usable
- Fix SYSTEMD_SULOGIN_FORCe for rescue.target
- Add some missing binaries
2022-04-11 11:13:01 +01:00
github-actions[bot]
c46200d454
Merge master into staging-next 2022-04-03 18:01:07 +00:00
Alyssa Ross
39eee39fd9
pkgsMusl.systemd: fix build for 250.4 2022-03-27 14:13:18 +00:00
Sergei Trofimovich
35e2c61dfd systemd: 250.3 -> 250.4
Among other things fixes build failure on linux-headers-5.17:

    ../src/basic/meson.build:389:8: ERROR: Problem encountered: found unknown filesystem(s) defined in kernel headers:

    Filesystem found in kernel header but not in filesystems-gperf.gperf: CIFS_SUPER_MAGIC
    Filesystem found in kernel header but not in filesystems-gperf.gperf: SMB2_SUPER_MAGIC
2022-03-23 08:44:15 +00:00
Will Fancher
2d4ebf1259 initrd: Optional systemd-based initrd 2022-03-22 21:28:43 -04:00
Alyssa Ross
b8734c50e2 pkgsMusl.systemdMinimal: fix build
Use latest patches from OpenEmbedded.  pkgsMusl.systemd doesn't build
yet because pkgsMusl.libnetfilter_conntrack is currently broken.
2022-03-14 12:21:51 +00:00
Florian Klink
57230883fb
Merge pull request #162949 from alyssais/systemd-typos
systemd: fix a whole bunch of typos
2022-03-06 19:59:42 +01:00
Alyssa Ross
a0bfc8e7c1 systemd: update patchShebangs comment
We can't remove this yet even though we're on 250.3, because some more
crept in and weren't fixed in time for the release.
2022-03-06 10:12:19 -08:00
Alyssa Ross
479b1cb510
systemd: fix a whole bunch of typos 2022-03-06 00:58:59 +00:00
Florian Klink
f5c243d6c2 systemd: drop -Defi-ld=gold
As reported in
https://github.com/NixOS/nixpkgs/pull/156096#pullrequestreview-900986176,
this fails to build on EFI enabled RISC-V because the requested EFI
linker (efi-ld=gold) is unsupported. According to Wikipedia gold only
supports x86, x86-64, ARM, PowerPC, TileGX.

Removing this option alltogether will cause meson to figure out the
default linker by itself.
2022-03-05 21:28:08 +01:00
Jörg Thalheim
f592c5a7c4 systemd: do not patch test files
We do not run them, so it is unnecessary work.
2022-03-05 21:27:45 +01:00
Andreas Rammhold
49267a99d2 systemd: add the release timestamp into the build
This helps systemd during runtime to make decisions about the sanity of
the system clock. See the references news article for more details on
the matter.
2022-03-05 21:27:45 +01:00
Andreas Rammhold
e6280a6397 systemd: introduce withTests flag
This allows us to make test-only dependencies optional in builds that
aren't running tests (sadly all of our builds).
2022-03-05 21:27:45 +01:00
Andreas Rammhold
0c852e1fa6 systemd: remove unused lvm2 input 2022-03-05 21:27:45 +01:00
Andreas Rammhold
3ceeae830d systemdMinimal: don't set {libfido2,p11-kit,libgcrypt} to null
We don't have to do that as we already set all the feature flags to
null. Setting individual libraries to null instead of disabling their
feature flag will lead with bad example that will cause each of the
features to be disabled with multiple flags in the systemdMinimal
variant.

If a dependency is pulled in via another feature we should disable that
rather than setting it to null. Overriding a given package should be the
last resort.
2022-03-05 21:27:45 +01:00
Andreas Rammhold
3869ce784e systemd: 249.7 -> 250.3 2022-03-05 21:27:44 +01:00
Andreas Rammhold
0423158e10 systemd: reformat code with nixpkgs-fmt 2022-03-05 21:26:05 +01:00
Jörg Thalheim
b63e6649a6
systemd: add myself as maintainer, drop eelco 2022-02-09 18:50:27 +01:00
Guillaume Girol
0d5c5e46da
Merge pull request #157053 from lheckemann/systemd-optional-cryptsetup
nixos/systemd: only use cryptsetup units if systemd was built with it
2022-01-30 16:04:17 +00:00
Linus Heckemann
4b27d4f9f8 nixos/systemd: only use cryptsetup units if systemd was built with it 2022-01-30 12:00:37 +01:00
github-actions[bot]
b74b591fbe
Merge master into staging-next 2022-01-20 00:01:46 +00:00
Andreas Rammhold
31e5b8dc21
Remove myself from maintainers
I don't have time and energy to deal with all of this anymore.
2022-01-20 00:24:52 +01:00
Josh Hoffer
e7da4b5f40 systemd: removed unknown meson options 2022-01-11 12:51:09 +00:00
github-actions[bot]
75e029e297
Merge staging-next into staging 2021-12-14 00:02:27 +00:00
github-actions[bot]
420df1e082
Merge master into staging-next 2021-12-14 00:01:45 +00:00
Janne Heß
dac4f986ad
systemd: Add switchTest to passthru 2021-12-09 12:39:30 +01:00
ajs124
e2f009e5a2 systemd: reference upstream discussion for 0019-core-handle-lookup-paths-being-symlinks.patch 2021-12-07 09:10:09 +00:00
Arian van Putten
d4e4d27dff systemd: move systemd-tmpfiles-setup-dev.service back to early boot
It was originally moved because of nixops autoLuks feature which
has been unsupported for a while.

See:
* https://github.com/NixOS/nixpkgs/issues/62211
* https://github.com/NixOS/nixops/pull/1156#issuecomment-605339705

systemd-tmpfiles-setup-dev.service needs to run very  early (even before
udev runs) because udev rules assume static device nodes already exist
even before udev is started. If these static device nodes do not exist;
systemd might have trouble mounting filesystems that require static
device nodes (like loopfs and btrfs).
2021-12-06 14:40:07 +00:00
ajs124
32e30e84f6 systemd: align kmod-static-nodes.service with kmod paths 2021-12-06 14:39:41 +00:00
ajs124
84a769c071 systemd: 249.5 -> 249.7 2021-12-06 14:39:16 +00:00