From 96c30d2bf650ca62beec280d541a0b52f2b6fc7d Mon Sep 17 00:00:00 2001 From: Ian Eure Date: Sun, 14 Sep 2025 11:07:25 -0700 Subject: [PATCH] gnu: Remove Tailon services and documentation. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The tailon package was removed in 63023deaf96bd0d90aba262b194bf1445ec5a0b6, but the associated service and documentation weren’t, leading to `guix pull` breaking. Fixes guix/guix#2689. * doc/guix.texi: Remove Tailon documentation. * gnu/services/web.scm (tailon-service-type): Delete variable. (tailon-configuration-file): Delete variable. (tailon-configuration-file?): Delete variable. (tailon-configuration-file-files): Delete variable. (tailon-configuration-file-bind): Delete variable. (tailon-configuration-file-relative-root): Delete variable. (tailon-configuration-file-allow-transfers?): Delete variable. (tailon-configuration-file-follow-names?): Delete variable. (tailon-configuration-file-tail-lines): Delete variable. (tailon-configuration-file-allowed-commands): Delete variable. (tailon-configuration-file-debug?): Delete variable. (tailon-configuration-file-http-auth): Delete variable. (tailon-configuration-file-users): Delete variable (tailon-configuration): Delete variable. (tailon-configuration?): Delete variable. (tailon-configuration-config-file): Delete variable. (tailon-configuration-package): Delete variable. * gnu/tests/web.scm (%test-tailon): Delete variable. Change-Id: I3b507df8233b0440baa6a2bce4604b5813cb3bb0 --- doc/guix.texi | 108 ---------------------------- gnu/services/web.scm | 167 ------------------------------------------- gnu/tests/web.scm | 71 ------------------ 3 files changed, 346 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 13665b568d7..0924aebf4ad 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -32940,114 +32940,6 @@ Defaults to @samp{#t}. @node Monitoring Services @subsection Monitoring Services -@subsubheading Tailon Service - -@uref{https://tailon.readthedocs.io/, Tailon} is a web application for -viewing and searching log files. - -The following example will configure the service with default values. -By default, Tailon can be accessed on port 8080 (@code{http://localhost:8080}). - -@lisp -(service tailon-service-type) -@end lisp - -The following example customises more of the Tailon configuration, -adding @command{sed} to the list of allowed commands. - -@lisp -(service tailon-service-type - (tailon-configuration - (config-file - (tailon-configuration-file - (allowed-commands '("tail" "grep" "awk" "sed")))))) -@end lisp - - -@deftp {Data Type} tailon-configuration -Data type representing the configuration of Tailon. -This type has the following parameters: - -@table @asis -@item @code{config-file} (default: @code{(tailon-configuration-file)}) -The configuration file to use for Tailon. This can be set to a -@dfn{tailon-configuration-file} record value, or any gexp -(@pxref{G-Expressions}). - -For example, to instead use a local file, the @code{local-file} function -can be used: - -@lisp -(service tailon-service-type - (tailon-configuration - (config-file (local-file "./my-tailon.conf")))) -@end lisp - -@item @code{package} (default: @code{tailon}) -The tailon package to use. - -@end table -@end deftp - -@deftp {Data Type} tailon-configuration-file -Data type representing the configuration options for Tailon. -This type has the following parameters: - -@table @asis -@item @code{files} (default: @code{(list "/var/log")}) -List of files to display. The list can include strings for a single file -or directory, or a list, where the first item is the name of a -subsection, and the remaining items are the files or directories in that -subsection. - -@item @code{bind} (default: @code{"localhost:8080"}) -Address and port to which Tailon should bind on. - -@item @code{relative-root} (default: @code{#f}) -URL path to use for Tailon, set to @code{#f} to not use a path. - -@item @code{allow-transfers?} (default: @code{#t}) -Allow downloading the log files in the web interface. - -@item @code{follow-names?} (default: @code{#t}) -Allow tailing of not-yet existent files. - -@item @code{tail-lines} (default: @code{200}) -Number of lines to read initially from each file. - -@item @code{allowed-commands} (default: @code{(list "tail" "grep" "awk")}) -Commands to allow running. By default, @code{sed} is disabled. - -@item @code{debug?} (default: @code{#f}) -Set @code{debug?} to @code{#t} to show debug messages. - -@item @code{wrap-lines} (default: @code{#t}) -Initial line wrapping state in the web interface. Set to @code{#t} to -initially wrap lines (the default), or to @code{#f} to initially not -wrap lines. - -@item @code{http-auth} (default: @code{#f}) -HTTP authentication type to use. Set to @code{#f} to disable -authentication (the default). Supported values are @code{"digest"} or -@code{"basic"}. - -@item @code{users} (default: @code{#f}) -If HTTP authentication is enabled (see @code{http-auth}), access will be -restricted to the credentials provided here. To configure users, use a -list of pairs, where the first element of the pair is the username, and -the 2nd element of the pair is the password. - -@lisp -(tailon-configuration-file - (http-auth "basic") - (users '(("user1" . "password1") - ("user2" . "password2")))) -@end lisp - -@end table -@end deftp - - @subsubheading Darkstat Service @cindex darkstat Darkstat is a packet sniffer that captures network traffic, calculates diff --git a/gnu/services/web.scm b/gnu/services/web.scm index f811497ae1c..d12257690ce 100644 --- a/gnu/services/web.scm +++ b/gnu/services/web.scm @@ -204,26 +204,6 @@ hpcguix-web-configuration? hpcguix-web-service-type - tailon-configuration-file - tailon-configuration-file? - tailon-configuration-file-files - tailon-configuration-file-bind - tailon-configuration-file-relative-root - tailon-configuration-file-allow-transfers? - tailon-configuration-file-follow-names? - tailon-configuration-file-tail-lines - tailon-configuration-file-allowed-commands - tailon-configuration-file-debug? - tailon-configuration-file-http-auth - tailon-configuration-file-users - - tailon-configuration - tailon-configuration? - tailon-configuration-config-file - tailon-configuration-package - - tailon-service-type - anonip-configuration anonip-configuration? anonip-configuration-anonip @@ -1353,153 +1333,6 @@ a webserver.") (compose list hpcguix-web-shepherd-service)))) (default-value (hpcguix-web-configuration)))) - -;;; -;;; Tailon -;;; - -(define-record-type* - tailon-configuration-file make-tailon-configuration-file - tailon-configuration-file? - (files tailon-configuration-file-files - (default '("/var/log"))) - (bind tailon-configuration-file-bind - (default "localhost:8080")) - (relative-root tailon-configuration-file-relative-root - (default #f)) - (allow-transfers? tailon-configuration-file-allow-transfers? - (default #t)) - (follow-names? tailon-configuration-file-follow-names? - (default #t)) - (tail-lines tailon-configuration-file-tail-lines - (default 200)) - (allowed-commands tailon-configuration-file-allowed-commands - (default '("tail" "grep" "awk"))) - (debug? tailon-configuration-file-debug? - (default #f)) - (wrap-lines tailon-configuration-file-wrap-lines - (default #t)) - (http-auth tailon-configuration-file-http-auth - (default #f)) - (users tailon-configuration-file-users - (default #f))) - -(define (tailon-configuration-files-string files) - (string-append - "\n" - (string-join - (map - (lambda (x) - (string-append - " - " - (cond - ((string? x) - (simple-format #f "'~A'" x)) - ((list? x) - (string-join - (cons (simple-format #f "'~A':" (car x)) - (map - (lambda (x) (simple-format #f " - '~A'" x)) - (cdr x))) - "\n")) - (else (error x))))) - files) - "\n"))) - -(define-gexp-compiler (tailon-configuration-file-compiler - (file ) system target) - (match file - (($ files bind relative-root - allow-transfers? follow-names? - tail-lines allowed-commands debug? - wrap-lines http-auth users) - (text-file - "tailon-config.yaml" - (string-concatenate - (filter-map - (match-lambda - ((key . #f) #f) - ((key . value) (string-append key ": " value "\n"))) - - `(("files" . ,(tailon-configuration-files-string files)) - ("bind" . ,bind) - ("relative-root" . ,relative-root) - ("allow-transfers" . ,(if allow-transfers? "true" "false")) - ("follow-names" . ,(if follow-names? "true" "false")) - ("tail-lines" . ,(number->string tail-lines)) - ("commands" . ,(string-append "[" - (string-join allowed-commands ", ") - "]")) - ("debug" . ,(if debug? "true" #f)) - ("wrap-lines" . ,(if wrap-lines "true" "false")) - ("http-auth" . ,http-auth) - ("users" . ,(if users - (string-concatenate - (cons "\n" - (map (match-lambda - ((user . pass) - (string-append - " " user ":" pass))) - users))) - #f))))))))) - -(define-record-type* - tailon-configuration make-tailon-configuration - tailon-configuration? - (config-file tailon-configuration-config-file - (default (tailon-configuration-file))) - (package tailon-configuration-package - (default tailon))) - -(define tailon-shepherd-service - (match-lambda - (($ config-file package) - (list (shepherd-service - (provision '(tailon)) - (requirement '(user-processes)) - (documentation "Run the tailon daemon.") - (start #~(make-forkexec-constructor - `(,(string-append #$package "/bin/tailon") - "-c" ,#$config-file) - #:user "tailon" - #:group "tailon")) - (stop #~(make-kill-destructor))))))) - -(define %tailon-accounts - (list (user-group (name "tailon") (system? #t)) - (user-account - (name "tailon") - (group "tailon") - (system? #t) - (comment "tailon") - (home-directory "/var/empty") - (shell (file-append shadow "/sbin/nologin"))))) - -(define tailon-service-type - (service-type - (name 'tailon) - (description - "Run Tailon, a Web application for monitoring, viewing, and searching log -files.") - (extensions - (list (service-extension shepherd-root-service-type - tailon-shepherd-service) - (service-extension account-service-type - (const %tailon-accounts)))) - (compose concatenate) - (extend (lambda (parameter files) - (tailon-configuration - (inherit parameter) - (config-file - (let ((old-config-file - (tailon-configuration-config-file parameter))) - (tailon-configuration-file - (inherit old-config-file) - (files (append (tailon-configuration-file-files old-config-file) - files)))))))) - (default-value (tailon-configuration)))) - - ;;; ;;; Log anonymization diff --git a/gnu/tests/web.scm b/gnu/tests/web.scm index 08151951fac..4d7a8c59d66 100644 --- a/gnu/tests/web.scm +++ b/gnu/tests/web.scm @@ -54,7 +54,6 @@ %test-varnish %test-php-fpm %test-hpcguix-web - %test-tailon %test-anonip %test-patchwork %test-agate)) @@ -479,76 +478,6 @@ HTTP-PORT, along with php-fpm." (description "Connect to a running hpcguix-web server.") (value (run-hpcguix-web-server-test name %hpcguix-web-os)))) - -(define %tailon-os - ;; Operating system under test. - (simple-operating-system - (service dhcpcd-service-type) - (service tailon-service-type - (tailon-configuration - (config-file - (tailon-configuration-file - (bind "0.0.0.0:8080"))))))) - -(define* (run-tailon-test #:optional (http-port 8081)) - "Run tests in %TAILON-OS, which has tailon running and listening on -HTTP-PORT." - (define os - (marionette-operating-system - %tailon-os - #:imported-modules '((gnu services herd) - (guix combinators)))) - - (define vm - (virtual-machine - (operating-system os) - (port-forwardings `((,http-port . 8080))))) - - (define test - (with-imported-modules '((gnu build marionette)) - #~(begin - (use-modules (srfi srfi-11) (srfi srfi-64) - (ice-9 match) - (gnu build marionette) - (web uri) - (web client) - (web response)) - - (define marionette - ;; Forward the guest's HTTP-PORT, where tailon is listening, to - ;; port 8080 in the host. - (make-marionette (list #$vm))) - - (test-runner-current (system-test-runner #$output)) - (test-begin "tailon") - - (test-assert "service running" - (wait-for-tcp-port 8080 marionette)) - - (test-equal "http-get" - 200 - (#$retry-on-error - (lambda () - (let-values (((response text) - (http-get #$(format - #f - "http://localhost:~A/" - http-port) - #:decode-body? #t))) - (response-code response))) - #:times 10 - #:delay 5)) - - (test-end)))) - - (gexp->derivation "tailon-test" test)) - -(define %test-tailon - (system-test - (name "tailon") - (description "Connect to a running Tailon server.") - (value (run-tailon-test)))) - ;;; ;;; Anonip