summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorian Klink <flokli@flokli.de>2020-08-16 12:27:19 +0200
committerGitHub <noreply@github.com>2020-08-16 12:27:19 +0200
commitb3909d1cb1d6d881372c0a4622dcaada21b8b1c8 (patch)
tree89153d6fbf44b1665633e271dad103b43e470619
parent609eb86db707c836564d42c88f531bb774db64a9 (diff)
parent3937923f81b08de1e7f8593ca62d05b8337daaaf (diff)
Merge pull request #95565 from vcunat/p/symlinkJoin
nixos/systemd.tmpfiles.packages: fix an edge case
-rw-r--r--nixos/modules/system/boot/systemd.nix10
-rw-r--r--pkgs/build-support/trivial-builders.nix2
2 files changed, 7 insertions, 5 deletions
diff --git a/nixos/modules/system/boot/systemd.nix b/nixos/modules/system/boot/systemd.nix
index d95f001a225a..77a54de4aded 100644
--- a/nixos/modules/system/boot/systemd.nix
+++ b/nixos/modules/system/boot/systemd.nix
@@ -1012,18 +1012,18 @@ in
"sysctl.d/50-coredump.conf".source = "${systemd}/example/sysctl.d/50-coredump.conf";
"sysctl.d/50-default.conf".source = "${systemd}/example/sysctl.d/50-default.conf";
- "tmpfiles.d".source = (pkgs.symlinkJoin {
+ "tmpfiles.d".source = pkgs.symlinkJoin {
name = "tmpfiles.d";
- paths = cfg.tmpfiles.packages;
+ paths = map (p: p + "/lib/tmpfiles.d") cfg.tmpfiles.packages;
postBuild = ''
for i in $(cat $pathsPath); do
- (test -d $i/lib/tmpfiles.d && test $(ls $i/lib/tmpfiles.d/*.conf | wc -l) -ge 1) || (
- echo "ERROR: The path $i was passed to systemd.tmpfiles.packages but either does not contain the folder lib/tmpfiles.d or if it contains that folder, there are no files ending in .conf in it."
+ (test -d "$i" && test $(ls "$i"/*.conf | wc -l) -ge 1) || (
+ echo "ERROR: The path '$i' from systemd.tmpfiles.packages contains no *.conf files."
exit 1
)
done
'';
- }) + "/lib/tmpfiles.d";
+ };
"systemd/system-generators" = { source = hooks "generators" cfg.generators; };
"systemd/system-shutdown" = { source = hooks "shutdown" cfg.shutdown; };
diff --git a/pkgs/build-support/trivial-builders.nix b/pkgs/build-support/trivial-builders.nix
index 3c81a4ece657..eab5366e1839 100644
--- a/pkgs/build-support/trivial-builders.nix
+++ b/pkgs/build-support/trivial-builders.nix
@@ -240,6 +240,8 @@ rec {
* This creates a single derivation that replicates the directory structure
* of all the input paths.
*
+ * BEWARE: it may not "work right" when the passed paths contain symlinks to directories.
+ *
* Examples:
* # adds symlinks of hello to current build.
* symlinkJoin { name = "myhello"; paths = [ pkgs.hello ]; }