summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/tools/system/cron/default.nix16
1 files changed, 13 insertions, 3 deletions
diff --git a/pkgs/tools/system/cron/default.nix b/pkgs/tools/system/cron/default.nix
index 998be45d9c6..2ddea737c8b 100644
--- a/pkgs/tools/system/cron/default.nix
+++ b/pkgs/tools/system/cron/default.nix
@@ -14,9 +14,19 @@ stdenv.mkDerivation {
     makeFlags="DESTROOT=$out"
 
     # We want to ignore the $glibc/include/paths.h definition of
-    # sendmail path
-    echo "#undef _PATH_SENDMAIL" >> pathnames.h
-    echo '#define _PATH_SENDMAIL "${sendmailPath}"' >> pathnames.h
+    # sendmail path.
+    # Also set a usable default PATH (#16518).
+    cat >> pathnames.h <<__EOT__
+    #undef _PATH_SENDMAIL
+    #define _PATH_SENDMAIL "${sendmailPath}"
+
+    #undef _PATH_DEFPATH
+    #define _PATH_DEFPATH "/var/setuid-wrappers:/nix/var/nix/profiles/default/bin:/nix/var/nix/profiles/default/sbin:/run/current-system/sw/bin:/run/current-system/sw/sbin:/usr/bin:/bin"
+    __EOT__
+
+    # Implicit saved uids do not work here due to way NixOS uses setuid wrappers
+    # (#16518).
+    echo "#undef HAVE_SAVED_UIDS" >> externs.h
   '';
 
   preInstall = "mkdir -p $out/bin $out/sbin $out/share/man/man1 $out/share/man/man5 $out/share/man/man8";