* [bug#58855] [PATCH 0/5] Update mcron to latest commit @ 2022-10-29 3:47 Maxim Cournoyer 2022-10-29 4:16 ` [bug#58855] [PATCH 1/5] services: configuration: Re-order generated record fields Maxim Cournoyer 0 siblings, 1 reply; 6+ messages in thread From: Maxim Cournoyer @ 2022-10-29 3:47 UTC (permalink / raw) To: 58855; +Cc: Maxim Cournoyer Hi, This update mcrons to its latest commit, which includes these changes: --8<---------------cut here---------------start------------->8--- 5fd0ccd * origin/master tests: Check (mcron vixie-specification) d1a3e83 * vixie-time: Remove calls to 'pk' debugging facility 19ba0a8 * Lose hope of running against guile 2.2 or earlier. e2ecb80 * Give mcron --log option to turn logging on. a7a456c * base: Annotate output with job information. 9e99490 * Revert "Minor cosmetic simplification of case logic after previous patch." d5c021e * documentation: extensive editing of info manual after a note from Paul Vixie. 99a26e5 * Minor cosmetic simplification of case logic after previous patch. 8b27157 * base: Handle nonexistent user home directories. 271b1f2 * Clarify an error message 172f70e * documentation: Bug fix in a simple example. --8<---------------cut here---------------end--------------->8--- The one "base: Annotate output with job information." one gives us better logging capability, such as when a job is started and when it finishes, and its completion status: --8<---------------cut here---------------start------------->8--- 2022-10-28 22:55:00 5185 duckdns-update: completed in 0.349s 2022-10-28 23:00:00 6547 duckdns-update: running... 2022-10-28 23:00:00 6548 btrbk: running... 2022-10-28 23:00:00 6547 duckdns-update: completed in 0.350s 2022-10-28 23:05:01 7764 duckdns-update: running... 2022-10-28 23:05:01 7764 duckdns-update: completed in 0.417s 2022-10-28 23:10:00 8315 duckdns-update: running... 2022-10-28 23:10:00 8315 duckdns-update: completed in 0.454s --8<---------------cut here---------------end--------------->8--- We now see the pid, job name and some message about the current status (running/completed/failed). I hope you like it! Maxim Cournoyer (5): services: configuration: Re-order generated record fields. services: mcron: Add log? and log-format fields to mcron-configuration. gnu: mcron: Use gexps and strip trailing #t. gnu: Remove guile2.2-mcron. gnu: mcron: Update to 1.2.1-0.5fd0ccd. doc/guix.texi | 45 +++++++++++++---- gnu/home/services/mcron.scm | 47 +++++++++++++---- gnu/packages/guile-xyz.scm | 92 +++++++++++++++++----------------- gnu/services/configuration.scm | 10 ++-- gnu/services/mcron.scm | 47 +++++++++++++---- gnu/services/monitoring.scm | 4 +- 6 files changed, 162 insertions(+), 83 deletions(-) -- 2.37.3 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [bug#58855] [PATCH 1/5] services: configuration: Re-order generated record fields. 2022-10-29 3:47 [bug#58855] [PATCH 0/5] Update mcron to latest commit Maxim Cournoyer @ 2022-10-29 4:16 ` Maxim Cournoyer 2022-10-29 4:16 ` [bug#58855] [PATCH 2/5] services: mcron: Add log? and log-format fields to mcron-configuration Maxim Cournoyer ` (3 more replies) 0 siblings, 4 replies; 6+ messages in thread From: Maxim Cournoyer @ 2022-10-29 4:16 UTC (permalink / raw) To: 58855; +Cc: Maxim Cournoyer This is so that the first field of the generated record matches the first one declared, which makes 'define-configuration' record API compatible with define-record-type* ones. * gnu/services/configuration.scm (define-configuration-helper): Move the %location field below the ones declared by the user. * gnu/services/monitoring.scm (zabbix-front-end-config): Adjust match pattern accordingly. --- gnu/services/configuration.scm | 10 +++++----- gnu/services/monitoring.scm | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/gnu/services/configuration.scm b/gnu/services/configuration.scm index 636c49ccba..dacfc52ba9 100644 --- a/gnu/services/configuration.scm +++ b/gnu/services/configuration.scm @@ -242,17 +242,17 @@ (define-record-type* #,(id #'stem #'< #'stem #'>) stem #,(id #'stem #'make- #'stem) #,(id #'stem #'stem #'?) - (%location #,(id #'stem #'stem #'-location) - (default (and=> (current-source-location) - source-properties->location)) - (innate)) #,@(map (lambda (name getter def) #`(#,name #,getter (default #,def) (sanitize #,(id #'stem #'validate- #'stem #'- name)))) #'(field ...) #'(field-getter ...) - #'(field-default ...))) + #'(field-default ...)) + (%location #,(id #'stem #'stem #'-location) + (default (and=> (current-source-location) + source-properties->location)) + (innate))) (define #,(id #'stem #'stem #'-fields) (list (configuration-field diff --git a/gnu/services/monitoring.scm b/gnu/services/monitoring.scm index 9c8704092c..b19c6c9f18 100644 --- a/gnu/services/monitoring.scm +++ b/gnu/services/monitoring.scm @@ -622,8 +622,8 @@ (define-configuration zabbix-front-end-configuration (define (zabbix-front-end-config config) (match-record config <zabbix-front-end-configuration> - (%location db-host db-port db-name db-user db-password db-secret-file - zabbix-host zabbix-port) + (db-host db-port db-name db-user db-password db-secret-file + zabbix-host zabbix-port %location) (mixed-text-file "zabbix.conf.php" "\ <?php -- 2.37.3 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [bug#58855] [PATCH 2/5] services: mcron: Add log? and log-format fields to mcron-configuration. 2022-10-29 4:16 ` [bug#58855] [PATCH 1/5] services: configuration: Re-order generated record fields Maxim Cournoyer @ 2022-10-29 4:16 ` Maxim Cournoyer 2022-10-29 4:16 ` [bug#58855] [PATCH 3/5] gnu: mcron: Use gexps and strip trailing #t Maxim Cournoyer ` (2 subsequent siblings) 3 siblings, 0 replies; 6+ messages in thread From: Maxim Cournoyer @ 2022-10-29 4:16 UTC (permalink / raw) To: 58855; +Cc: Maxim Cournoyer * gnu/services/mcron.scm (list-of-gexps?): New predicate. (mcron-configuration): Rewrite using define-configuration. [log?, log-format]: New fields. (mcron-shepherd-services): Invoke mcron with the --log and --log-format arguments when log? is #t, (generate-doc): New procedure. * doc/guix.texi (Scheduled Job Execution): Update doc. (Mcron Home Service): Likewise. * gnu/home/services/mcron.scm: Keep in sync with the above changes to gnu/services/mcron.scm. --- doc/guix.texi | 45 ++++++++++++++++++++++++++++------- gnu/home/services/mcron.scm | 47 ++++++++++++++++++++++++++++--------- gnu/services/mcron.scm | 47 ++++++++++++++++++++++++++++--------- 3 files changed, 108 insertions(+), 31 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 80fb3bc47f..aadd16dd53 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -18994,20 +18994,33 @@ words, it is possible to define services that provide additional mcron jobs to run. @end defvr +@c Generated via (generate-documentation) at the bottom of (gnu services +@c mcron). +@c %start of fragment @deftp {Data Type} mcron-configuration -Data type representing the configuration of mcron. +Available @code{mcron-configuration} fields are: @table @asis -@item @code{mcron} (default: @var{mcron}) +@item @code{mcron} (default: @code{mcron}) (type: file-like) The mcron package to use. -@item @code{jobs} +@item @code{jobs} (default: @code{()}) (type: list-of-gexps) This is a list of gexps (@pxref{G-Expressions}), where each gexp corresponds to an mcron job specification (@pxref{Syntax, mcron job -specifications,, mcron, GNU@tie{}mcron}). +specifications,, mcron,GNU@tie{}mcron}). + +@item @code{log?} (default: @code{#t}) (type: boolean) +Log messages to standard output. + +@item @code{log-format} (default: @code{"~1@@*~a ~a: ~a~%"}) (type: string) +@code{(ice-9 format)} format string for log messages. The default value +produces messages like "@samp{@var{pid} @var{name}: @var{message}"} +(@pxref{Invoking mcron, Invoking,, mcron,GNU@tie{}mcron}). Each message +is also prefixed by a timestamp by GNU Shepherd. + @end table @end deftp - +@c %end of fragment @node Log Rotation @subsection Log Rotation @@ -41015,18 +41028,32 @@ jobs to run. @end defvr @deftp {Data Type} home-mcron-configuration -Data type representing the configuration of mcron. +Available @code{home-mcron-configuration} fields are: +@c Auto-generated with (gnu home services mcron)'s +@c generate-documentation procedure. +@c %start of fragment @table @asis -@item @code{mcron} (default: @var{mcron}) +@item @code{mcron} (default: @code{mcron}) (type: file-like) The mcron package to use. -@item @code{jobs} +@item @code{jobs} (default: @code{()}) (type: list-of-gexps) This is a list of gexps (@pxref{G-Expressions}), where each gexp corresponds to an mcron job specification (@pxref{Syntax, mcron job -specifications,, mcron, GNU@tie{}mcron}). +specifications,, mcron,GNU@tie{}mcron}). + +@item @code{log?} (default: @code{#t}) (type: boolean) +Log messages to standard output. + +@item @code{log-format} (default: @code{"~1@@*~a ~a: ~a~%"}) (type: string) +@code{(ice-9 format)} format string for log messages. The default value +produces messages like "@samp{@var{pid} @var{name}: @var{message}"} +(@pxref{Invoking mcron, Invoking,, mcron,GNU@tie{}mcron}). Each message +is also prefixed by a timestamp by GNU Shepherd. + @end table @end deftp +@c %end of fragment @node Power Management Home Services @subsection Power Management Home Services diff --git a/gnu/home/services/mcron.scm b/gnu/home/services/mcron.scm index 0b3dbb810b..1d294a997c 100644 --- a/gnu/home/services/mcron.scm +++ b/gnu/home/services/mcron.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2021 Andrew Tropin <andrew@trop.in> ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz> +;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -20,6 +21,7 @@ (define-module (gnu home services mcron) #:use-module (gnu packages guile-xyz) #:use-module (gnu home services) + #:use-module (gnu services configuration) #:use-module (gnu services shepherd) #:use-module (gnu home services shepherd) #:use-module (guix records) @@ -53,13 +55,23 @@ (define-module (gnu home services mcron) ;; ;;; Code: -(define-record-type* <home-mcron-configuration> home-mcron-configuration - make-home-mcron-configuration - home-mcron-configuration? - (package home-mcron-configuration-package ; package - (default mcron)) - (jobs home-mcron-configuration-jobs ; list of jobs - (default '()))) +(define list-of-gexps? + (list-of gexp?)) + +(define-configuration/no-serialization home-mcron-configuration + (mcron (file-like mcron) "The mcron package to use.") + (jobs + (list-of-gexps '()) + "This is a list of gexps (@pxref{G-Expressions}), where each gexp +corresponds to an mcron job specification (@pxref{Syntax, mcron job +specifications,, mcron, GNU@tie{}mcron}).") + (log? (boolean #t) "Log messages to standard output.") + (log-format + (string "~1@*~a ~a: ~a~%") + "@code{(ice-9 format)} format string for log messages. The default value +produces messages like \"@samp{@var{pid} @var{name}: +@var{message}\"} (@pxref{Invoking mcron, Invoking,, mcron, GNU@tie{}mcron}). +Each message is also prefixed by a timestamp by GNU Shepherd.")) (define job-files (@@ (gnu services mcron) job-files)) (define shepherd-schedule-action @@ -69,19 +81,23 @@ (define home-mcron-shepherd-services (match-lambda (($ <home-mcron-configuration> mcron '()) ; no jobs to run '()) - (($ <home-mcron-configuration> mcron jobs) + (($ <home-mcron-configuration> mcron jobs log? log-format) (let ((files (job-files mcron jobs))) (list (shepherd-service (documentation "User cron jobs.") (provision '(mcron)) (modules `((srfi srfi-1) (srfi srfi-26) - (ice-9 popen) ; for the 'schedule' action + (ice-9 popen) ; for the 'schedule' action (ice-9 rdelim) (ice-9 match) ,@%default-modules)) (start #~(make-forkexec-constructor - (list #$(file-append mcron "/bin/mcron") #$@files) + (list (string-append #$mcron "/bin/mcron") + #$@(if log? + #~("--log" "--log-format" #$log-format) + #~()) + #$@files) #:log-file (string-append (or (getenv "XDG_LOG_HOME") (format #f "~a/.local/var/log" @@ -91,7 +107,7 @@ (define home-mcron-shepherd-services (actions (list (shepherd-schedule-action mcron files))))))))) -(define home-mcron-profile (compose list home-mcron-configuration-package)) +(define home-mcron-profile (compose list home-mcron-configuration-mcron)) (define (home-mcron-extend config jobs) (home-mcron-configuration @@ -113,3 +129,12 @@ (define home-mcron-service-type (default-value (home-mcron-configuration)) (description "Install and configure the GNU mcron cron job manager."))) + +\f +;;; +;;; Generate documentation. +;;; +(define (generate-doc) + (configuration->documentation 'home-mcron-configuration)) + +;;; mcron.scm ends here diff --git a/gnu/services/mcron.scm b/gnu/services/mcron.scm index 23760ebda4..52332d6123 100644 --- a/gnu/services/mcron.scm +++ b/gnu/services/mcron.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -18,6 +19,7 @@ (define-module (gnu services mcron) #:use-module (gnu services) + #:use-module (gnu services configuration) #:use-module (gnu services shepherd) #:use-module (gnu packages guile-xyz) #:use-module (guix deprecation) @@ -30,6 +32,8 @@ (define-module (gnu services mcron) mcron-configuration? mcron-configuration-mcron mcron-configuration-jobs + mcron-configuration-log? + mcron-configuration-log-format mcron-service-type)) @@ -48,13 +52,23 @@ (define-module (gnu services mcron) ;;; ;;; Code: -(define-record-type* <mcron-configuration> mcron-configuration - make-mcron-configuration - mcron-configuration? - (mcron mcron-configuration-mcron ;file-like - (default mcron)) - (jobs mcron-configuration-jobs ;list of <mcron-job> - (default '()))) +(define list-of-gexps? + (list-of gexp?)) + +(define-configuration/no-serialization mcron-configuration + (mcron (file-like mcron) "The mcron package to use.") + (jobs + (list-of-gexps '()) + "This is a list of gexps (@pxref{G-Expressions}), where each gexp +corresponds to an mcron job specification (@pxref{Syntax, mcron job +specifications,, mcron, GNU@tie{}mcron}).") + (log? (boolean #t) "Log messages to standard output.") + (log-format + (string "~1@*~a ~a: ~a~%") + "@code{(ice-9 format)} format string for log messages. The default value +produces messages like \"@samp{@var{pid} @var{name}: +@var{message}\"} (@pxref{Invoking mcron, Invoking,, mcron, GNU@tie{}mcron}). +Each message is also prefixed by a timestamp by GNU Shepherd.")) (define (job-files mcron jobs) "Return a list of file-like object for JOBS, a list of gexps." @@ -124,21 +138,25 @@ (define (shepherd-schedule-action mcron files) (define mcron-shepherd-services (match-lambda - (($ <mcron-configuration> mcron ()) ;nothing to do! + (($ <mcron-configuration> mcron ()) ;nothing to do! '()) - (($ <mcron-configuration> mcron jobs) + (($ <mcron-configuration> mcron jobs log? log-format) (let ((files (job-files mcron jobs))) (list (shepherd-service (provision '(mcron)) (requirement '(user-processes)) (modules `((srfi srfi-1) (srfi srfi-26) - (ice-9 popen) ;for the 'schedule' action + (ice-9 popen) ;for the 'schedule' action (ice-9 rdelim) (ice-9 match) ,@%default-modules)) (start #~(make-forkexec-constructor - (list (string-append #$mcron "/bin/mcron") #$@files) + (list (string-append #$mcron "/bin/mcron") + #$@(if log? + #~("--log" "--log-format" #$log-format) + #~()) + #$@files) ;; Disable auto-compilation of the job files and set a ;; sane value for 'PATH'. @@ -172,4 +190,11 @@ (define mcron-service-type jobs))))) (default-value (mcron-configuration)))) ;empty job list +\f +;;; +;;; Generate documentation. +;;; +(define (generate-doc) + (configuration->documentation 'mcron-configuration)) + ;;; mcron.scm ends here -- 2.37.3 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [bug#58855] [PATCH 3/5] gnu: mcron: Use gexps and strip trailing #t. 2022-10-29 4:16 ` [bug#58855] [PATCH 1/5] services: configuration: Re-order generated record fields Maxim Cournoyer 2022-10-29 4:16 ` [bug#58855] [PATCH 2/5] services: mcron: Add log? and log-format fields to mcron-configuration Maxim Cournoyer @ 2022-10-29 4:16 ` Maxim Cournoyer 2022-10-29 4:16 ` [bug#58855] [PATCH 4/5] gnu: Remove guile2.2-mcron Maxim Cournoyer 2022-10-29 4:16 ` [bug#58855] [PATCH 5/5] gnu: mcron: Update to 1.2.1-0.5fd0ccd Maxim Cournoyer 3 siblings, 0 replies; 6+ messages in thread From: Maxim Cournoyer @ 2022-10-29 4:16 UTC (permalink / raw) To: 58855; +Cc: Maxim Cournoyer * gnu/packages/guile-xyz.scm (mcron) [phases]: Use gexps and strip trailing #t. --- gnu/packages/guile-xyz.scm | 41 +++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index 209ba694d7..1b41eb24af 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -2667,27 +2667,26 @@ (define-public mcron "0bkn235g2ia4f7ispr9d55c7bc18282r3qd8ldhh5q2kiin75zi0")))) (build-system gnu-build-system) (arguments - '(#:phases (modify-phases %standard-phases - (add-before 'check 'adjust-tests - (lambda _ - (substitute* "tests/job-specifier.scm" - ;; (getpw) fails with "entry not found" in the build - ;; environment, so pass an argument. - (("\\(getpw\\)") - "(getpwnam (getuid))") - ;; The build environment lacks an entry for root in - ;; /etc/passwd. - (("\\(getpw 0\\)") - "(getpwnam \"nobody\")") - - ;; FIXME: Skip the 4 faulty tests (see above). - (("\\(test-equal \"next-year\"" all) - (string-append "(test-skip 4)\n" all))) - #t))))) - (native-inputs `(("pkg-config" ,pkg-config) - ("tzdata" ,tzdata-for-tests) - ("guile-native" ;for 'guild compile' - ,@(assoc-ref (package-inputs this-package) "guile")))) + (list + #:phases #~(modify-phases %standard-phases + (add-before 'check 'adjust-tests + (lambda _ + (substitute* "tests/job-specifier.scm" + ;; (getpw) fails with "entry not found" in the build + ;; environment, so pass an argument. + (("\\(getpw\\)") + "(getpwnam (getuid))") + ;; The build environment lacks an entry for root in + ;; /etc/passwd. + (("\\(getpw 0\\)") + "(getpwnam \"nobody\")") + ;; FIXME: Skip the 4 faulty tests (see above). + (("\\(test-equal \"next-year\"" all) + (string-append "(test-skip 4)\n" all)))))))) + (native-inputs (list guile-3.0 ;for 'guild compile' + pkg-config + tzdata-for-tests)) + (inputs (list guile-3.0)) (home-page "https://www.gnu.org/software/mcron/") (synopsis "Run jobs at scheduled times") -- 2.37.3 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [bug#58855] [PATCH 4/5] gnu: Remove guile2.2-mcron. 2022-10-29 4:16 ` [bug#58855] [PATCH 1/5] services: configuration: Re-order generated record fields Maxim Cournoyer 2022-10-29 4:16 ` [bug#58855] [PATCH 2/5] services: mcron: Add log? and log-format fields to mcron-configuration Maxim Cournoyer 2022-10-29 4:16 ` [bug#58855] [PATCH 3/5] gnu: mcron: Use gexps and strip trailing #t Maxim Cournoyer @ 2022-10-29 4:16 ` Maxim Cournoyer 2022-10-29 4:16 ` [bug#58855] [PATCH 5/5] gnu: mcron: Update to 1.2.1-0.5fd0ccd Maxim Cournoyer 3 siblings, 0 replies; 6+ messages in thread From: Maxim Cournoyer @ 2022-10-29 4:16 UTC (permalink / raw) To: 58855; +Cc: Maxim Cournoyer * gnu/packages/guile-xyz.scm (guile2.2-mcron): Delete variable. --- gnu/packages/guile-xyz.scm | 6 ------ 1 file changed, 6 deletions(-) diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index 1b41eb24af..41f93df155 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -2697,12 +2697,6 @@ (define-public mcron format is also supported.") (license license:gpl3+))) -(define-public guile2.2-mcron - (package - (inherit mcron) - (name "guile2.2-mcron") - (inputs (list guile-2.2)))) - (define-public guile-picture-language (let ((commit "a1322bf11945465241ca5b742a70893f24156d12") (revision "5")) -- 2.37.3 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [bug#58855] [PATCH 5/5] gnu: mcron: Update to 1.2.1-0.5fd0ccd. 2022-10-29 4:16 ` [bug#58855] [PATCH 1/5] services: configuration: Re-order generated record fields Maxim Cournoyer ` (2 preceding siblings ...) 2022-10-29 4:16 ` [bug#58855] [PATCH 4/5] gnu: Remove guile2.2-mcron Maxim Cournoyer @ 2022-10-29 4:16 ` Maxim Cournoyer 3 siblings, 0 replies; 6+ messages in thread From: Maxim Cournoyer @ 2022-10-29 4:16 UTC (permalink / raw) To: 58855; +Cc: Maxim Cournoyer * gnu/packages/guile-xyz.scm (mcron): Update to 1.2.1-0.5fd0ccd. [native-inputs]: Add autoconf, automake, help2man, and texinfo. --- gnu/packages/guile-xyz.scm | 85 +++++++++++++++++++++----------------- 1 file changed, 47 insertions(+), 38 deletions(-) diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index 41f93df155..fd2a26d3a5 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -2655,47 +2655,56 @@ (define-public guile2.0-commonmark (inputs (list guile-2.0)))) (define-public mcron - (package - (name "mcron") - (version "1.2.1") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/mcron/mcron-" - version ".tar.gz")) - (sha256 - (base32 - "0bkn235g2ia4f7ispr9d55c7bc18282r3qd8ldhh5q2kiin75zi0")))) - (build-system gnu-build-system) - (arguments - (list - #:phases #~(modify-phases %standard-phases - (add-before 'check 'adjust-tests - (lambda _ - (substitute* "tests/job-specifier.scm" - ;; (getpw) fails with "entry not found" in the build - ;; environment, so pass an argument. - (("\\(getpw\\)") - "(getpwnam (getuid))") - ;; The build environment lacks an entry for root in - ;; /etc/passwd. - (("\\(getpw 0\\)") - "(getpwnam \"nobody\")") - ;; FIXME: Skip the 4 faulty tests (see above). - (("\\(test-equal \"next-year\"" all) - (string-append "(test-skip 4)\n" all)))))))) - (native-inputs (list guile-3.0 ;for 'guild compile' - pkg-config - tzdata-for-tests)) - - (inputs (list guile-3.0)) - (home-page "https://www.gnu.org/software/mcron/") - (synopsis "Run jobs at scheduled times") - (description - "GNU Mcron is a complete replacement for Vixie cron. It is used to run + ;; Use the latest commits, as interesting changes haven't been released yet, + ;; such as improved logging. + (let ((revision "0") + (commit "5fd0ccde5a4cff70299999f988e6b5166584814d")) + (package + (name "mcron") + (version (git-version "1.2.1" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.savannah.gnu.org/git/mcron.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0jl2w67a5hkphzssdzq3q4jcwv2b174b11d3w5i3khxq2vhzd6kk")))) + (build-system gnu-build-system) + (arguments + (list + #:phases #~(modify-phases %standard-phases + (add-before 'check 'adjust-tests + (lambda _ + (substitute* "tests/job-specifier.scm" + ;; (getpw) fails with "entry not found" in the build + ;; environment, so pass an argument. + (("\\(getpw\\)") + "(getpwnam (getuid))") + ;; The build environment lacks an entry for root in + ;; /etc/passwd. + (("\\(getpw 0\\)") + "(getpwnam \"nobody\")") + ;; FIXME: Skip the 4 faulty tests (see above). + (("\\(test-equal \"next-year\"" all) + (string-append "(test-skip 4)\n" all)))))))) + (native-inputs (list autoconf + automake + guile-3.0 ;for 'guild compile' + help2man + pkg-config + tzdata-for-tests + texinfo)) + (inputs (list guile-3.0)) + (home-page "https://www.gnu.org/software/mcron/") + (synopsis "Run jobs at scheduled times") + (description + "GNU Mcron is a complete replacement for Vixie cron. It is used to run tasks on a schedule, such as every hour or every Monday. Mcron is written in Guile, so its configuration can be written in Scheme; the original cron format is also supported.") - (license license:gpl3+))) + (license license:gpl3+)))) (define-public guile-picture-language (let ((commit "a1322bf11945465241ca5b742a70893f24156d12") -- 2.37.3 ^ permalink raw reply related [flat|nested] 6+ messages in thread
end of thread, other threads:[~2022-10-29 6:44 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2022-10-29 3:47 [bug#58855] [PATCH 0/5] Update mcron to latest commit Maxim Cournoyer 2022-10-29 4:16 ` [bug#58855] [PATCH 1/5] services: configuration: Re-order generated record fields Maxim Cournoyer 2022-10-29 4:16 ` [bug#58855] [PATCH 2/5] services: mcron: Add log? and log-format fields to mcron-configuration Maxim Cournoyer 2022-10-29 4:16 ` [bug#58855] [PATCH 3/5] gnu: mcron: Use gexps and strip trailing #t Maxim Cournoyer 2022-10-29 4:16 ` [bug#58855] [PATCH 4/5] gnu: Remove guile2.2-mcron Maxim Cournoyer 2022-10-29 4:16 ` [bug#58855] [PATCH 5/5] gnu: mcron: Update to 1.2.1-0.5fd0ccd Maxim Cournoyer
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/guix.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).