diff options
author | Majiir Paktu <majiir@nabaal.net> | 2023-01-29 15:48:47 -0500 |
---|---|---|
committer | Majiir Paktu <majiir@nabaal.net> | 2023-01-29 15:49:16 -0500 |
commit | 7f35c8b2ac51c9c93abaa4eaa23f4ac39e5db5a5 (patch) | |
tree | c10d88ef0d5d90428062d77a46845ab202815536 | |
parent | 8a828fcb3800c9169913b0e03daa2c0812c4e88f (diff) |
nixos/systemd/coredump: fix kernel.core_pattern truncation
Fixes #213408
-rw-r--r-- | nixos/modules/system/boot/systemd/coredump.nix | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/nixos/modules/system/boot/systemd/coredump.nix b/nixos/modules/system/boot/systemd/coredump.nix index c2ca973d3807..03ef00e5683c 100644 --- a/nixos/modules/system/boot/systemd/coredump.nix +++ b/nixos/modules/system/boot/systemd/coredump.nix @@ -44,7 +44,21 @@ in { ''; # install provided sysctl snippets - "sysctl.d/50-coredump.conf".source = "${systemd}/example/sysctl.d/50-coredump.conf"; + "sysctl.d/50-coredump.conf".source = + # Fix systemd-coredump error caused by truncation of `kernel.core_pattern` + # when the `systemd` derivation name is too long. This works by substituting + # the path to `systemd` with a symlink that has a constant-length path. + # + # See: https://github.com/NixOS/nixpkgs/issues/213408 + pkgs.substitute { + src = "${systemd}/example/sysctl.d/50-coredump.conf"; + replacements = [ + "--replace" + "${systemd}" + "${pkgs.symlinkJoin { name = "systemd"; paths = [ systemd ]; }}" + ]; + }; + "sysctl.d/50-default.conf".source = "${systemd}/example/sysctl.d/50-default.conf"; }; |