aboutsummaryrefslogtreecommitdiff
path: root/gnu/services
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2020-08-26 15:30:04 +0200
committerLudovic Courtès <ludo@gnu.org>2020-08-26 15:30:04 +0200
commitef5ddb0e1715328713c2c9edad897f9a27de692f (patch)
treeb7de15179733f5c34f4b4024957a4b1768601e42 /gnu/services
parentce022b2e142c75b9e4d05fc1aec91e345dc374a7 (diff)
downloadguix-ef5ddb0e1715328713c2c9edad897f9a27de692f.tar.gz
guix-ef5ddb0e1715328713c2c9edad897f9a27de692f.zip
services: mcron: Validate jobs even in the presence of #:user.
Fixes a bug in 949672c923b6a3953471c446e0b19f30be335572 whereby jobs specifying a #:user not available in the build environment would fail validation. Reported by Maxim Cournoyer. * gnu/services/mcron.scm (job-files)[validated-file]: Add "prologue" file and pass it to 'mcron --schedule'.
Diffstat (limited to 'gnu/services')
-rw-r--r--gnu/services/mcron.scm11
1 files changed, 10 insertions, 1 deletions
diff --git a/gnu/services/mcron.scm b/gnu/services/mcron.scm
index 045d6e2fe8..bd4e6e7410 100644
--- a/gnu/services/mcron.scm
+++ b/gnu/services/mcron.scm
@@ -67,12 +67,21 @@
#~(begin
(use-modules (guix build utils))
+ (call-with-output-file "prologue"
+ (lambda (port)
+ ;; This prologue allows 'mcron --schedule' to
+ ;; proceed no matter what #:user option is passed
+ ;; to 'job'.
+ (write '(set! getpw
+ (const (getpwuid (getuid))))
+ port)))
+
(call-with-output-file "job"
(lambda (port)
(write '#$job port)))
(invoke #+(file-append mcron "/bin/mcron")
- "--schedule=20" "job")
+ "--schedule=20" "prologue" "job")
(copy-file "job" #$output)))
#:options '(#:env-vars (("COLUMNS" . "150")))))