From af16ef27afa0b08b5960c48aba145128d8c13462 Mon Sep 17 00:00:00 2001 From: Nguyễn Gia Phong Date: Tue, 30 Sep 2025 17:55:58 +0900 Subject: 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: a9f21036e43f ("services: rottlog: Deprecate.") Change-Id: I9d62deb4dba31a07c3ef82cde0fca3a05ece064d Signed-off-by: Maxim Cournoyer --- gnu/services/admin.scm | 163 ------------------------------------------------- 1 file changed, 163 deletions(-) (limited to 'gnu/services/admin.scm') diff --git a/gnu/services/admin.scm b/gnu/services/admin.scm index 8f24950752f..20e4517c667 100644 --- a/gnu/services/admin.scm +++ b/gnu/services/admin.scm @@ -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 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 ." - (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 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 - (default %default-rotations)) - (jobs rottlog-configuration-jobs ;list of - (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. -- cgit v1.3