mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2026-05-22 09:05:54 +02:00
services: rottlog: Remove.
* gnu/services/admin.scm (rottlog-service{,-type},
rottlog-configuration{,?,-rottlog,-rc-file,-rotations,-jobs}
log-rotation{,?,-frequency,-files,-options,-post-rotate},
%default-rotations, %rotated-files, %default-log-rotation-options):
Remove variables.
* doc/guix.texi (Rottlog): Remove subheading.
* .dir-locals.el: De-register rottlog-configuration.
References: a9f21036e4 ("services: rottlog: Deprecate.")
Change-Id: I9d62deb4dba31a07c3ef82cde0fca3a05ece064d
Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
This commit is contained in:
committed by
Maxim Cournoyer
parent
0a904250b9
commit
af16ef27af
@@ -57,26 +57,6 @@
|
||||
log-rotation-configuration-size-threshold
|
||||
log-rotation-service-type
|
||||
|
||||
%default-rotations
|
||||
%rotated-files
|
||||
|
||||
log-rotation
|
||||
log-rotation?
|
||||
log-rotation-frequency
|
||||
log-rotation-files
|
||||
log-rotation-options
|
||||
log-rotation-post-rotate
|
||||
%default-log-rotation-options
|
||||
|
||||
rottlog-configuration
|
||||
rottlog-configuration?
|
||||
rottlog-configuration-rottlog
|
||||
rottlog-configuration-rc-file
|
||||
rottlog-configuration-rotations
|
||||
rottlog-configuration-jobs
|
||||
rottlog-service
|
||||
rottlog-service-type
|
||||
|
||||
log-cleanup-service-type
|
||||
log-cleanup-configuration
|
||||
log-cleanup-configuration?
|
||||
@@ -218,149 +198,6 @@ log-rotation} to list files subject to log rotation.")
|
||||
log-files)))))
|
||||
(default-value (log-rotation-configuration))))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Rottlog + mcron.
|
||||
;;;
|
||||
|
||||
(define-record-type* <log-rotation> log-rotation make-log-rotation
|
||||
log-rotation?
|
||||
(files log-rotation-files) ;list of strings
|
||||
(frequency log-rotation-frequency ;symbol
|
||||
(default 'weekly))
|
||||
(post-rotate log-rotation-post-rotate ;#f | gexp
|
||||
(default #f))
|
||||
(options log-rotation-options ;list of strings
|
||||
(default %default-log-rotation-options)))
|
||||
|
||||
(define %default-log-rotation-options
|
||||
;; Default log rotation options: append ".gz" to file names.
|
||||
'("storefile @FILENAME.@COMP_EXT"
|
||||
"notifempty"))
|
||||
|
||||
(define %rotated-files
|
||||
;; Syslog files subject to rotation.
|
||||
'("/var/log/messages" "/var/log/secure" "/var/log/debug"
|
||||
"/var/log/maillog" "/var/log/mcron.log"))
|
||||
|
||||
(define %default-rotations
|
||||
(list (log-rotation ;syslog files
|
||||
(files %rotated-files)
|
||||
|
||||
(frequency 'weekly)
|
||||
(options `(;; These files are worth keeping for a few weeks.
|
||||
"rotate 16"
|
||||
;; Run post-rotate once per rotation
|
||||
"sharedscripts"
|
||||
|
||||
,@%default-log-rotation-options))
|
||||
;; Restart syslogd after rotation.
|
||||
(post-rotate #~(let ((pid (call-with-input-file "/var/run/syslog.pid"
|
||||
read)))
|
||||
(kill pid SIGHUP))))
|
||||
(log-rotation
|
||||
(files '("/var/log/guix-daemon.log"))
|
||||
(options `("rotate 4" ;don't keep too many of them
|
||||
,@%default-log-rotation-options)))))
|
||||
|
||||
(define (log-rotation->config rotation)
|
||||
"Return a string-valued gexp representing the rottlog configuration snippet
|
||||
for ROTATION."
|
||||
(define post-rotate
|
||||
(let ((post (log-rotation-post-rotate rotation)))
|
||||
(and post
|
||||
(program-file "rottlog-post-rotate.scm" post))))
|
||||
|
||||
#~(let ((post #$post-rotate))
|
||||
(string-append (string-join '#$(log-rotation-files rotation) ",")
|
||||
" {"
|
||||
#$(string-join (log-rotation-options rotation)
|
||||
"\n " 'prefix)
|
||||
(if post
|
||||
(string-append "\n postrotate\n " post
|
||||
"\n endscript\n")
|
||||
"")
|
||||
"\n}\n")))
|
||||
|
||||
(define (log-rotations->/etc-entries rotations)
|
||||
"Return the list of /etc entries for ROTATIONS, a list of <log-rotation>."
|
||||
(define (frequency-file frequency rotations)
|
||||
(computed-file (string-append "rottlog." (symbol->string frequency))
|
||||
#~(call-with-output-file #$output
|
||||
(lambda (port)
|
||||
(for-each (lambda (str)
|
||||
(display str port))
|
||||
(list #$@(map log-rotation->config
|
||||
rotations)))))))
|
||||
|
||||
(let* ((frequencies (delete-duplicates
|
||||
(map log-rotation-frequency rotations)))
|
||||
(table (fold (lambda (rotation table)
|
||||
(vhash-consq (log-rotation-frequency rotation)
|
||||
rotation table))
|
||||
vlist-null
|
||||
rotations)))
|
||||
(map (lambda (frequency)
|
||||
`(,(symbol->string frequency)
|
||||
,(frequency-file frequency
|
||||
(vhash-foldq* cons '() frequency table))))
|
||||
frequencies)))
|
||||
|
||||
(define (default-jobs rottlog)
|
||||
(list #~(job '(next-hour '(0)) ;midnight
|
||||
#$(file-append rottlog "/sbin/rottlog"))
|
||||
#~(job '(next-hour '(12)) ;noon
|
||||
#$(file-append rottlog "/sbin/rottlog"))))
|
||||
|
||||
(define-record-type* <rottlog-configuration>
|
||||
rottlog-configuration make-rottlog-configuration
|
||||
rottlog-configuration?
|
||||
(rottlog rottlog-configuration-rottlog ;file-like
|
||||
(default rottlog))
|
||||
(rc-file rottlog-configuration-rc-file ;file-like
|
||||
(default (file-append rottlog "/etc/rc")))
|
||||
(rotations rottlog-configuration-rotations ;list of <log-rotation>
|
||||
(default %default-rotations))
|
||||
(jobs rottlog-configuration-jobs ;list of <mcron-job>
|
||||
(default #f)))
|
||||
|
||||
(define (rottlog-etc config)
|
||||
`(("rottlog"
|
||||
,(file-union "rottlog"
|
||||
(cons `("rc" ,(rottlog-configuration-rc-file config))
|
||||
(log-rotations->/etc-entries
|
||||
(rottlog-configuration-rotations config)))))))
|
||||
|
||||
(define (rottlog-jobs-or-default config)
|
||||
(or (rottlog-configuration-jobs config)
|
||||
(default-jobs (rottlog-configuration-rottlog config))))
|
||||
|
||||
;; TODO: Deprecated; remove sometime after 2025-06-15.
|
||||
(define-deprecated rottlog-service-type
|
||||
log-rotation-service-type
|
||||
(service-type
|
||||
(name 'rottlog)
|
||||
(description
|
||||
"Periodically rotate log files using GNU@tie{}Rottlog and GNU@tie{}mcron.
|
||||
Old log files are removed or compressed according to the configuration.
|
||||
|
||||
This service is deprecated and slated for removal after 2025-06-15.")
|
||||
(extensions (list (service-extension etc-service-type rottlog-etc)
|
||||
(service-extension mcron-service-type
|
||||
rottlog-jobs-or-default)
|
||||
|
||||
;; Add Rottlog to the global profile so users can access
|
||||
;; the documentation.
|
||||
(service-extension profile-service-type
|
||||
(compose list rottlog-configuration-rottlog))))
|
||||
(compose concatenate)
|
||||
(extend (lambda (config rotations)
|
||||
(rottlog-configuration
|
||||
(inherit config)
|
||||
(rotations (append (rottlog-configuration-rotations config)
|
||||
rotations)))))
|
||||
(default-value (rottlog-configuration))))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Build log removal.
|
||||
|
||||
Reference in New Issue
Block a user