services: syslog: Use syslog-configuration.

* gnu/services/base.scm (<syslog-configuration>): New variable.
  (syslog-service-type): Use <syslog-configuration>.
  (syslog-service): Use <syslog-configuration>.
* gnu/tests/base.scm (%avahi-os): Use <syslog-configuration>.
* doc/guix.texi (syslog-configuration-type): Add @deftp.
  (syslog-service): Update @deffn.
This commit is contained in:
David Craven 2016-08-27 15:38:55 +02:00
parent f2901d824a
commit ec2e2f6ce2
No known key found for this signature in database
GPG key ID: C5E051C79C0BECDB
3 changed files with 43 additions and 16 deletions

View file

@ -7719,12 +7719,23 @@ privacy---often the result of host name lookups is in local cache, so
external name servers do not even need to be queried.
@end defvr
@anchor{syslog-configuration-type}
@deftp {Data Type} syslog-configuration
This data type represents the configuration of the syslog daemon.
@deffn {Scheme Procedure} syslog-service @
[#:config-file @var{%default-syslog.conf}]
Return a service that runs @command{syslogd}. If the configuration file
name @var{config-file} is not specified, use some reasonable default
settings.
@table @asis
@item @code{syslogd} (default: @code{#~(string-append #$inetutils "/libexec/syslogd")})
The syslog daemon to use.
@item @code{config-file} (default: @code{%default-syslog.conf})
The syslog configuration file to use.
@end table
@end deftp
@anchor{syslog-service}
@deffn {Scheme Procedure} syslog-service @var{config}
Return a service that runs a syslog daemon according to @var{config}.
@xref{syslogd invocation,,, inetutils, GNU Inetutils}, for more
information on the configuration file syntax.

View file

@ -82,6 +82,9 @@ (define-module (gnu services base)
nscd-service-type
nscd-service
syslog-configuration
syslog-configuration?
syslog-service
syslog-service-type
%default-syslog.conf
@ -885,17 +888,27 @@ (define* (nscd-service #:optional (config %nscd-default-configuration))
Service Switch}, for an example."
(service nscd-service-type config))
(define-record-type* <syslog-configuration>
syslog-configuration make-syslog-configuration
syslog-configuration?
(syslogd syslog-configuration-syslogd
(default #~(string-append #$inetutils "/libexec/syslogd")))
(config-file syslog-configuration-config-file
(default %default-syslog.conf)))
(define syslog-service-type
(shepherd-service-type
'syslog
(lambda (config-file)
(lambda (config)
(shepherd-service
(documentation "Run the syslog daemon (syslogd).")
(provision '(syslogd))
(requirement '(user-processes))
(start #~(make-forkexec-constructor
(list (string-append #$inetutils "/libexec/syslogd")
"--no-detach" "--rcfile" #$config-file)))
(list #$(syslog-configuration-syslogd config)
"--no-detach"
"--rcfile" #$(syslog-configuration-config-file config))))
(stop #~(make-kill-destructor))))))
;; Snippet adapted from the GNU inetutils manual.
@ -921,14 +934,14 @@ (define %default-syslog.conf
mail.* /var/log/maillog
"))
(define* (syslog-service #:key (config-file %default-syslog.conf))
"Return a service that runs @command{syslogd}. If configuration file
name @var{config-file} is not specified, use some reasonable default
settings.
(define* (syslog-service #:optional (config (syslog-configuration)))
"Return a service that runs @command{syslogd} and takes
@var{<syslog-configuration>} as a parameter.
@xref{syslogd invocation,,, inetutils, GNU Inetutils}, for more
information on the configuration file syntax."
(service syslog-service-type config-file))
(service syslog-service-type config))
(define pam-limits-service-type
(let ((security-limits

View file

@ -384,9 +384,12 @@ (define %avahi-os
(log-file "/dev/console")))
(syslog-service-type config
=>
(syslog-configuration
(inherit config)
(config-file
(plain-file
"syslog.conf"
"*.* /dev/console\n")))))))
"*.* /dev/console\n")))))))))
(define (run-nss-mdns-test)
;; Test resolution of '.local' names via libc. Start the marionette service