diff options
-rw-r--r-- | doc/guix.texi | 5 | ||||
-rw-r--r-- | gnu/services/admin.scm | 9 | ||||
-rw-r--r-- | gnu/services/audio.scm | 26 | ||||
-rw-r--r-- | gnu/services/base.scm | 22 | ||||
-rw-r--r-- | gnu/services/cuirass.scm | 27 | ||||
-rw-r--r-- | gnu/services/file-sharing.scm | 6 | ||||
-rw-r--r-- | gnu/services/linux.scm | 8 | ||||
-rw-r--r-- | gnu/services/networking.scm | 61 | ||||
-rw-r--r-- | gnu/services/web.scm | 17 |
9 files changed, 28 insertions, 153 deletions
diff --git a/doc/guix.texi b/doc/guix.texi index 3a6944ccfe..16a9e5a333 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -20902,6 +20902,9 @@ You can also list files subject to rotation with @command{herd files log-rotation} and trigger rotation manually with @command{herd trigger log-rotation}. +This service is part of @code{%base-services}, and thus enabled by +default, with the default settings. + @defvar log-rotation-service-type This is the type of the log rotation service. Its associated value must be a @code{log-rotation-configuration} record, as discussed below. @@ -20950,8 +20953,6 @@ An alternative log rotation service relying on GNU@tie{}Rot[t]log, a log rotation tool (@pxref{Top,,, rottlog, GNU Rot[t]log Manual}), is also provided. -This service is part of @code{%base-services}, and thus enabled by -default, with the default settings, for commonly encountered log files. The example below shows how to extend it with an additional @dfn{rotation}, should you need to do that (usually, services that produce log files already take care of that): diff --git a/gnu/services/admin.scm b/gnu/services/admin.scm index 735ba3f7be..f3331ae835 100644 --- a/gnu/services/admin.scm +++ b/gnu/services/admin.scm @@ -670,19 +670,12 @@ which lets you search for packages that provide a given file.") (documentation "Trigger unattended system upgrade.") (procedure #~trigger-timer))))))) -(define (unattended-upgrade-log-rotations config) - (list (log-rotation - (files - (list (unattended-upgrade-configuration-log-file config)))))) - (define unattended-upgrade-service-type (service-type (name 'unattended-upgrade) (extensions (list (service-extension shepherd-root-service-type - unattended-upgrade-shepherd-services) - (service-extension rottlog-service-type - unattended-upgrade-log-rotations))) + unattended-upgrade-shepherd-services))) (description "Periodically upgrade the system from the current configuration.") (default-value (unattended-upgrade-configuration)))) diff --git a/gnu/services/audio.scm b/gnu/services/audio.scm index 5d2cd56a17..6515d53dbd 100644 --- a/gnu/services/audio.scm +++ b/gnu/services/audio.scm @@ -579,17 +579,6 @@ appended to the configuration.") "mpd.conf" (serialize-configuration configuration mpd-configuration-fields))) -(define (mpd-log-rotation config) - (match-record config <mpd-configuration> - (log-file) - (if (string=? "syslog" log-file) - '() ;nothing to do - (list (log-rotation - (files (list log-file)) - (post-rotate #~(begin - (use-modules (gnu services herd)) - (with-shepherd-action 'mpd ('reopen) #f)))))))) - (define (mpd-shepherd-service config) (match-record config <mpd-configuration> (user package shepherd-requirement @@ -675,8 +664,7 @@ appended to the configuration.") (extensions (list (service-extension shepherd-root-service-type (compose list mpd-shepherd-service)) - (service-extension account-service-type mpd-accounts) - (service-extension rottlog-service-type mpd-log-rotation))) + (service-extension account-service-type mpd-accounts))) (default-value (mpd-configuration)))) @@ -953,14 +941,6 @@ prompting a pin from the user.") user))) (list user group)))) -(define (mympd-log-rotation config) - (match-record config <mympd-configuration> - (log-to) - (if (maybe-value-set? log-to) - (list (log-rotation - (files (list log-to)))) - '()))) - (define mympd-service-type (service-type (name 'mympd) @@ -970,8 +950,6 @@ prompting a pin from the user.") (service-extension account-service-type mympd-accounts) (service-extension special-files-service-type - mympd-serialize-configuration) - (service-extension rottlog-service-type - mympd-log-rotation))) + mympd-serialize-configuration))) (description "Run myMPD, a frontend for MPD. (Music Player Daemon)") (default-value (mympd-configuration)))) diff --git a/gnu/services/base.scm b/gnu/services/base.scm index d67c16a720..5967457002 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013-2024 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013-2025 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015, 2016 Alex Kost <alezost@gmail.com> ;;; Copyright © 2015, 2016, 2020 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com> @@ -1685,12 +1685,20 @@ reload its settings file."))) #:pid-file "/var/run/syslog.pid")) (stop #~(make-kill-destructor)))) +(define %default-syslog-files + ;; List of files usually produced by syslogd that should be rotated. + '("/var/log/messages" "/var/log/secure" "/var/log/debug" + "/var/log/maillog")) + (define syslog-service-type (service-type (name 'syslog) (default-value (syslog-configuration)) (extensions (list (service-extension shepherd-root-service-type - (compose list syslog-shepherd-service)) + (compose list + syslog-shepherd-service)) + (service-extension log-rotation-service-type + (const %default-syslog-files)) (service-extension etc-service-type syslog-etc))) (description "Run the syslog daemon, @command{syslogd}, which is responsible for logging system messages."))) @@ -2354,12 +2362,6 @@ raise a deprecation warning if the 'compression-level' field was used." (home-directory "/var/empty") (shell (file-append shadow "/sbin/nologin"))))) -(define %guix-publish-log-rotations - (list (log-rotation - (files (list "/var/log/guix-publish.log")) - (options `("rotate 4" ;don't keep too many of them - ,@%default-log-rotation-options))))) - (define (guix-publish-activation config) (let ((cache (guix-publish-configuration-cache config))) (if cache @@ -2381,8 +2383,6 @@ raise a deprecation warning if the 'compression-level' field was used." guix-publish-shepherd-service) (service-extension account-service-type (const %guix-publish-accounts)) - (service-extension rottlog-service-type - (const %guix-publish-log-rotations)) (service-extension activation-service-type guix-publish-activation))) (default-value (guix-publish-configuration)) @@ -3748,7 +3748,7 @@ login manager daemon.") (service guix-service-type) (service nscd-service-type) - (service rottlog-service-type) + (service log-rotation-service-type) ;; Periodically delete old build logs. (service log-cleanup-service-type diff --git a/gnu/services/cuirass.scm b/gnu/services/cuirass.scm index 2165059fd2..08a146f980 100644 --- a/gnu/services/cuirass.scm +++ b/gnu/services/cuirass.scm @@ -340,20 +340,6 @@ (when #$remote-cache (chown #$remote-cache uid gid))))))) -(define (cuirass-log-rotations config) - "Return the list of log rotations that corresponds to CONFIG." - (list (log-rotation - (files (append (list (cuirass-configuration-log-file config) - (cuirass-configuration-web-log-file config)) - (let ((server - (cuirass-configuration-remote-server config))) - (if server - (list (cuirass-remote-server-log-file server)) - '())))) - (frequency 'weekly) - (options `("rotate 40" ;worth keeping - ,@%default-log-rotation-options))))) - (define cuirass-service-type (service-type (name 'cuirass) @@ -361,7 +347,6 @@ (list (service-extension profile-service-type ;for 'info cuirass' (compose list cuirass-configuration-cuirass)) - (service-extension rottlog-service-type cuirass-log-rotations) (service-extension activation-service-type cuirass-activation) (service-extension shepherd-root-service-type cuirass-shepherd-service) (service-extension account-service-type cuirass-account) @@ -454,14 +439,6 @@ CONFIG." #:log-file #$log-file)) (stop #~(make-kill-destructor)))))) -(define (cuirass-remote-worker-log-rotations config) - "Return the list of log rotations that corresponds to CONFIG." - (list (log-rotation - (files (list (cuirass-remote-worker-log-file config))) - (frequency 'weekly) - (options `("rotate 4" ;don't keep too many of them - ,@%default-log-rotation-options))))) - (define cuirass-remote-worker-service-type (service-type (name 'cuirass-remote-worker) @@ -469,8 +446,6 @@ CONFIG." (list (service-extension shepherd-root-service-type cuirass-remote-worker-shepherd-service) (service-extension account-service-type - (const %cuirass-remote-worker-accounts)) - (service-extension rottlog-service-type - cuirass-remote-worker-log-rotations))) + (const %cuirass-remote-worker-accounts)))) (description "Run the Cuirass remote build worker service."))) diff --git a/gnu/services/file-sharing.scm b/gnu/services/file-sharing.scm index 75e99f20b7..6b25cd420f 100644 --- a/gnu/services/file-sharing.scm +++ b/gnu/services/file-sharing.scm @@ -701,10 +701,6 @@ running.")))))))))))) (shell (file-append shadow "/sbin/nologin")) (system? #t)))) -(define %transmission-daemon-log-rotations - (list (log-rotation - (files (list %transmission-daemon-log-file))))) - (define (transmission-daemon-computed-settings-file config) "Return a @code{computed-file} object that, when unquoted in a G-expression, produces a Transmission settings file (@file{settings.json}) matching CONFIG." @@ -785,8 +781,6 @@ produces a Transmission settings file (@file{settings.json}) matching CONFIG." transmission-daemon-shepherd-service) (service-extension account-service-type (const %transmission-daemon-accounts)) - (service-extension rottlog-service-type - (const %transmission-daemon-log-rotations)) (service-extension activation-service-type transmission-daemon-activation))) (default-value (transmission-daemon-configuration)) diff --git a/gnu/services/linux.scm b/gnu/services/linux.scm index 9955a11e64..e683da6bac 100644 --- a/gnu/services/linux.scm +++ b/gnu/services/linux.scm @@ -181,19 +181,13 @@ representation." #:log-file "/var/log/earlyoom.log")) (stop #~(make-kill-destructor)))) -(define %earlyoom-log-rotation - (list (log-rotation - (files '("/var/log/earlyoom.log"))))) - (define earlyoom-service-type (service-type (name 'earlyoom) (default-value (earlyoom-configuration)) (extensions (list (service-extension shepherd-root-service-type - (compose list earlyoom-shepherd-service)) - (service-extension rottlog-service-type - (const %earlyoom-log-rotation)))) + (compose list earlyoom-shepherd-service)))) (description "Run @command{earlyoom}, a daemon that quickly responds to @acronym{OOM, out-of-memory} conditions by terminating relevant processes."))) diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm index 48a86b3694..af28bd0626 100644 --- a/gnu/services/networking.scm +++ b/gnu/services/networking.scm @@ -496,11 +496,6 @@ daemon is responsible for allocating IP addresses to its client."))) ;;; NTP. ;;; - -(define %ntp-log-rotation - (list (log-rotation - (files '("/var/log/ntpd.log"))))) - (define ntp-server-types (make-enumeration '(pool server @@ -634,9 +629,7 @@ restrict source notrap nomodify noquery\n")) (service-extension account-service-type (const %ntp-accounts)) (service-extension activation-service-type - ntp-service-activation) - (service-extension rottlog-service-type - (const %ntp-log-rotation)))) + ntp-service-activation))) (description "Run the @command{ntpd}, the Network Time Protocol (NTP) daemon of the @uref{http://www.ntp.org, Network Time Foundation}. The daemon @@ -745,9 +738,7 @@ will keep the system clock synchronized with that of the given servers.") (service-extension profile-service-type (compose list openntpd-configuration-openntpd)) (service-extension activation-service-type - openntpd-service-activation) - (service-extension rottlog-service-type - (const %ntp-log-rotation)))) + openntpd-service-activation))) (default-value (openntpd-configuration)) (description "Run the @command{ntpd}, the Network Time Protocol (NTP) @@ -1699,10 +1690,6 @@ set @file{/dev/null}.") #:log-file "/var/log/connman.log")) (stop #~(make-kill-destructor))))))) -(define %connman-log-rotation - (list (log-rotation - (files '("/var/log/connman.log"))))) - (define connman-service-type (let ((connman-package (compose list connman-configuration-connman))) (service-type (name 'connman) @@ -1717,9 +1704,7 @@ set @file{/dev/null}.") connman-activation) ;; Add connman to the system profile. (service-extension profile-service-type - connman-package) - (service-extension rottlog-service-type - (const %connman-log-rotation)))) + connman-package))) (default-value (connman-configuration)) (description "Run @url{https://01.org/connman,Connman}, @@ -1960,18 +1945,12 @@ extra-settings "\n")))) #:log-file "/var/log/hostapd.log")) (stop #~(make-kill-destructor))))) -(define %hostapd-log-rotation - (list (log-rotation - (files '("/var/log/hostapd.log"))))) - (define hostapd-service-type (service-type (name 'hostapd) (extensions (list (service-extension shepherd-root-service-type - hostapd-shepherd-services) - (service-extension rottlog-service-type - (const %hostapd-log-rotation)))) + hostapd-shepherd-services))) (description "Run the @uref{https://w1.fi/hostapd/, hostapd} daemon for Wi-Fi access points and authentication servers."))) @@ -2272,10 +2251,6 @@ table inet filter { ;; SIGTERM doesn't always work for some reason. (stop #~(make-kill-destructor SIGINT)))))) -(define %pagekite-log-rotation - (list (log-rotation - (files '("/var/log/pagekite.log"))))) - (define %pagekite-accounts (list (user-group (name "pagekite") (system? #t)) (user-account @@ -2294,9 +2269,7 @@ table inet filter { (list (service-extension shepherd-root-service-type (compose list pagekite-shepherd-service)) (service-extension account-service-type - (const %pagekite-accounts)) - (service-extension rottlog-service-type - (const %pagekite-log-rotation)))) + (const %pagekite-accounts)))) (description "Run @url{https://pagekite.net/,PageKite}, a tunneling solution to make local servers publicly accessible on the web, even behind NATs and firewalls."))) @@ -2387,10 +2360,6 @@ local servers publicly accessible on the web, even behind NATs and firewalls.")) #:group "yggdrasil")) (stop #~(make-kill-destructor))))) -(define %yggdrasil-log-rotation - (list (log-rotation - (files '("/var/log/yggdrasil.log"))))) - (define %yggdrasil-accounts (list (user-group (name "yggdrasil") (system? #t)))) @@ -2406,9 +2375,7 @@ See @command{yggdrasil -genconf} for config options.") (service-extension account-service-type (const %yggdrasil-accounts)) (service-extension profile-service-type - (compose list yggdrasil-configuration-package)) - (service-extension rottlog-service-type - (const %yggdrasil-log-rotation)))))) + (compose list yggdrasil-configuration-package)))))) ;;; @@ -2478,10 +2445,6 @@ See @command{yggdrasil -genconf} for config options.") #:environment-variables #$%ipfs-environment)) (stop #~(make-kill-destructor))))) -(define %ipfs-log-rotation - (list (log-rotation - (files '("/var/log/ipfs.log"))))) - (define (%ipfs-activation config) "Return an activation gexp for IPFS with CONFIG" (define (exec-command . args) @@ -2537,9 +2500,7 @@ See @command{yggdrasil -genconf} for config options.") (service-extension activation-service-type %ipfs-activation) (service-extension shepherd-root-service-type - ipfs-shepherd-service) - (service-extension rottlog-service-type - (const %ipfs-log-rotation)))) + ipfs-shepherd-service))) (default-value (ipfs-configuration)) (description "Run @command{ipfs daemon}, the reference implementation @@ -2575,16 +2536,10 @@ of the IPFS peer-to-peer storage network."))) (respawn? #f) (stop #~(make-kill-destructor)))))) -(define %keepalived-log-rotation - (list (log-rotation - (files '("/var/log/keepalived.log"))))) - (define keepalived-service-type (service-type (name 'keepalived) (extensions (list (service-extension shepherd-root-service-type - keepalived-shepherd-service) - (service-extension rottlog-service-type - (const %keepalived-log-rotation)))) + keepalived-shepherd-service))) (description "Run @uref{https://www.keepalived.org/, Keepalived} routing software."))) diff --git a/gnu/services/web.scm b/gnu/services/web.scm index 2d0aba94a1..f5de5997ac 100644 --- a/gnu/services/web.scm +++ b/gnu/services/web.scm @@ -1282,11 +1282,6 @@ a webserver.") (define %hpcguix-web-log-file "/var/log/hpcguix-web.log") -(define %hpcguix-web-log-rotations - (list (log-rotation - (files (list %hpcguix-web-log-file)) - (frequency 'weekly)))) - (define (hpcguix-web-shepherd-service config) (let* ((specs (hpcguix-web-configuration-specs config)) (config-file (and specs (scheme-file "hpcguix-web.scm" specs))) @@ -1324,8 +1319,6 @@ a webserver.") (const %hpcguix-web-accounts)) (service-extension activation-service-type (const %hpcguix-web-activation)) - (service-extension rottlog-service-type - (const %hpcguix-web-log-rotations)) (service-extension shepherd-root-service-type (compose list hpcguix-web-shepherd-service)))) (default-value (hpcguix-web-configuration)))) @@ -2121,12 +2114,6 @@ WSGIPassAuthorization On #:log-file #$%mumi-mailer-log)) (stop #~(make-kill-destructor))))))) -(define %mumi-log-rotations - (list (log-rotation - (files (list %mumi-log - %mumi-mailer-log - %mumi-worker-log))))) - (define mumi-service-type (service-type (name 'mumi) @@ -2136,9 +2123,7 @@ WSGIPassAuthorization On (service-extension account-service-type (const %mumi-accounts)) (service-extension shepherd-root-service-type - mumi-shepherd-services) - (service-extension rottlog-service-type - (const %mumi-log-rotations)))) + mumi-shepherd-services))) (description "Run Mumi, a Web interface to the Debbugs bug-tracking server.") (default-value |