services: Switch from mcron + Rottlog to Shepherd’s log rotation.

* gnu/services/admin.scm (unattended-upgrade-log-rotations): Remove.
(unattended-upgrade-service-type): Remove ‘rottlog-service-type’
extension.
* gnu/services/audio.scm (mpd-log-rotation): Remove.
(mpd-service-type): Remove ‘rottlog-service-type’ extension.
(mympd-log-rotation): Remove.
(mympd-service-type): Remove rottlog-service-type’ extension.
* gnu/services/base.scm (%guix-publish-log-rotations): Remove.
(guix-publish-service-type): Remove ‘rottlog-service-type’ extension.
(%base-services): Instantiate ‘log-rotation-service-type’ instead of
‘rottlog-service-type’.
(%default-syslog-files): New variable.
(syslog-service-type): Extend ‘log-rotation-service-type’.
* gnu/services/cuirass.scm (cuirass-log-rotations): Remove.
(cuirass-service-type): Remove ‘rottlog-service-type’ extension.
(cuirass-remote-worker-log-rotations): Remove.
(cuirass-remote-worker-service-type): Remove ‘rottlog-service-type’
extension.
* gnu/services/file-sharing.scm (%transmission-daemon-log-rotations):
Remove.
(transmission-daemon-service-type): Remove ‘rottlog-service-type’
extension.
* gnu/services/linux.scm (%earlyoom-log-rotation): Remove.
(earlyoom-service-type): Remove ‘rottlog-service-type’ extension.
* gnu/services/networking.scm (%ntp-log-rotation): Remove.
(ntp-service-type): Remove ‘rottlog-service-type’ extension.
(openntpd-service-type): Likewise.
(%connman-log-rotation): Remove.
(connman-service-type): Remove ‘rottlog-service-type’ extension.
(%hostapd-log-rotation): Remove.
(hostapd-service-type): Remove ‘rottlog-service-type’ extension.
(%pagekite-log-rotation): Remove.
(pagekite-service-type): Remove ‘rottlog-service-type’ extension.
(%yggdrasil-log-rotation): Remove.
(yggdrasil-service-type): Remove ‘rottlog-service-type’ extension.
(%ipfs-log-rotation): Remove.
(ipfs-service-type): Remove ‘rottlog-service-type’ extension.
(%keepalived-log-rotation): Remove.
(keepalived-service-type): Remove ‘rottlog-service-type’ extension.
* gnu/services/web.scm (%hpcguix-web-log-rotations): Remove.
(hpcguix-web-service-type): Remove ‘rottlog-service-type’ extension.
(%mumi-log-rotations): Remove.
(mumi-service-type): Remove ‘rottlog-service-type’ extension.
* doc/guix.texi (Log Rotation): Adjust text regarding which one is in
‘%base-services’.

Change-Id: I8802d4c2337a1e08e3c084d6217f76527d7ee1fb
This commit is contained in:
Ludovic Courtès 2024-12-11 23:32:45 +01:00
parent 48083c8c95
commit 6942161b44
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
9 changed files with 28 additions and 153 deletions

View file

@ -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):

View file

@ -670,19 +670,12 @@ (define upgrade
(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))))

View file

@ -579,17 +579,6 @@ (define (mpd-serialize-configuration 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 @@ (define mpd-service-type
(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 @@ (define (mympd-accounts config)
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 @@ (define mympd-service-type
(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))))

View file

@ -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 @@ (define config-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 @@ (define %guix-publish-accounts
(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 @@ (define guix-publish-service-type
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 @@ (define %base-services
(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

View file

@ -340,20 +340,6 @@ (define (cuirass-activation config)
(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 @@ (define cuirass-service-type
(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 @@ (define (cuirass-remote-worker-shepherd-service 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 @@ (define cuirass-remote-worker-service-type
(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.")))

View file

@ -701,10 +701,6 @@ (define %transmission-daemon-accounts
(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 @@ (define transmission-daemon-service-type
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))

View file

@ -181,19 +181,13 @@ (define (earlyoom-shepherd-service config)
#: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.")))

View file

@ -496,11 +496,6 @@ (define dhcpd-service-type
;;; 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 @@ (define ntp-service-type
(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 @@ (define openntpd-service-type
(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 @@ (define (connman-shepherd-service config)
#: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 @@ (define connman-service-type
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 @@ (define* (hostapd-shepherd-services config #:key (requirement '()))
#: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 @@ (define (pagekite-shepherd-service config)
;; 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 @@ (define pagekite-service-type
(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 @@ (define yggdrasil-command
#: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 @@ (define yggdrasil-service-type
(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 @@ (define ipfs-daemon-command
#: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 @@ (define ipfs-service-type
(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 @@ (define (keepalived-shepherd-service config)
(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.")))

View file

@ -1282,11 +1282,6 @@ (define %hpcguix-web-activation
(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 @@ (define hpcguix-web-service-type
(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 @@ (define environment
#: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 @@ (define mumi-service-type
(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