;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2019 Danny Milosavljevic ;;; Copyright © 2020 Robin Green ;;; ;;; This file is part of GNU Guix. ;;; ;;; GNU Guix is free software; you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3 of the License, or (at ;;; your option) any later version. ;;; ;;; GNU Guix is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . (define-module (gnu services auditd) #:use-module (gnu services) #:use-module (gnu services configuration) #:use-module (gnu services base) #:use-module (gnu services shepherd) #:use-module (gnu packages admin) #:use-module (guix records) #:use-module (guix gexp) #:use-module (guix packages) #:export (auditd-configuration auditd-service-type %default-auditd-configuration-directory)) (define auditd.conf (plain-file "auditd.conf" "log_file = /var/log/audit.log\nlog_format = \ ENRICHED\nfreq = 1\nspace_left = 5%\nspace_left_action = \ syslog\nadmin_space_left_action = ignore\ndisk_full_action = \ ignore\ndisk_error_action = syslog\n")) (define %default-auditd-configuration-directory (computed-file "auditd" #~(begin (mkdir #$output) (copy-file #$auditd.conf (string-append #$output "/auditd.conf"))))) (define-record-type* auditd-configuration make-auditd-configuration auditd-configuration? (audit auditd-configuration-audit ; file-like (default audit)) (configuration-directory auditd-configuration-configuration-directory)) ; file-like (define (auditd-shepherd-service config) (let* ((audit (auditd-configuration-audit config)) (configuration-directory (auditd-configuration-configuration-directory config))) (list (shepherd-service (documentation "Auditd allows you to audit file system accesses and process execution.") (provision '(auditd)) (start #~(make-forkexec-constructor (list (string-append #$audit "/sbin/auditd") "-c" #$configuration-directory) #:pid-file "/var/run/auditd.pid")) (stop #~(make-kill-destructor)))))) (define auditd-service-type (service-type (name 'auditd) (description "Allows auditing file system accesses and process execution.") (extensions (list (service-extension shepherd-root-service-type auditd-shepherd-service))) (default-value (auditd-configuration (configuration-directory %default-auditd-configuration-directory))))) ic Courtès 2020-11-06services: mpd: Fix daemon startup....Until now it would wait for a PID file that'd never come. * gnu/services/audio.scm (mpd-shepherd-service): Add 'requirement'. Remove #:pid-file from 'start'. (mpd-service-activation): Create the ".mpd" directory since that's what the daemon expects. Ludovic Courtès 2020-11-06services: mpd: Always create the "mpd" user account....* gnu/services/audio.scm (%mpd-accounts): New variable. (mpd-service-type)[extensions]: Add ACCOUNT-SERVICE-TYPE extension. Ludovic Courtès 2020-11-06services: mpd: Do not eagerly look for a user....Running 'guix system search mpd' would throw a backtrace because the mpd-shepherd-service service start Gexp contained an unquoted call to 'getpwnam', which would look for a missing 'mpd' user and fail. * gnu/services/audio.scm (mpd-shepherd-service): gexp-unquote only the relevant variable rather than the whole expression. Maxim Cournoyer 2020-05-13services: Add missing import....* gnu/services/audio.scm: Import (ice-9 format). Ludovic Courtès 2019-11-08services: mpd: Connect to the user's PulseAudio socket....* gnu/services/audio.scm (mpd-shepherd-service): Set the XDG_RUNTIME_DIR environment variable. Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr> Robert Smith 2019-10-29gnu: mpd-service-type: Support configuration of outputs....* gnu/services/audio.scm (<mpd-output>): New record type. (<mpd-configuration>)[outputs]: New field. (mpd-output, mpd-output?, mpd-output->string): New procedures. (mpd-config->file): Use mpd-output->string. * doc/guix.texi (Audio Services): Document mpd-output fields. Ricardo Wurmus 2019-03-15services: mpd: add more configuration options...* gnu/services/audio.scm (<mpd-configuration>): Add 'db-file', 'state-file' and 'sticker-file' fields. * doc/guix.texi (Music Player Daemon): Document it. Signed-off-by: Ludovic Courtès <ludo@gnu.org> nixo