;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Danny Milosavljevic <dannym@scratchpost.org>
;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (guix gexp)
#:use-module (guix records)
#:use-module (guix packages)
+ #:use-module (guix modules)
#:use-module (ice-9 match)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
nslcd-configuration?
nslcd-service-type))
-(define-record-type* <fprintd-configuration>
- fprintd-configuration make-fprintd-configuration
- fprintd-configuration?
- (ntp fprintd-configuration-fprintd
- (default fprintd)))
+(define-configuration fprintd-configuration
+ (fprintd (package fprintd)
+ "The fprintd package"))
+
+(define (fprintd-dbus-service config)
+ (list (fprintd-configuration-fprintd config)))
(define fprintd-service-type
(service-type (name 'fprintd)
(extensions
(list (service-extension dbus-root-service-type
- list)))
+ fprintd-dbus-service)
+ (service-extension polkit-service-type
+ fprintd-dbus-service)))
+ (default-value (fprintd-configuration))
(description
"Run fprintd, a fingerprint management daemon.")))
(define (pam-ldap-pam-services config)
(list (pam-ldap-pam-service config)))
+(define %nslcd-activation
+ (with-imported-modules (source-module-closure '((gnu build activation)))
+ #~(begin
+ (use-modules (gnu build activation))
+ (let ((rundir "/var/run/nslcd")
+ (user (getpwnam "nslcd")))
+ (mkdir-p/perms rundir user #o755)
+ (when (file-exists? "/etc/nslcd.conf")
+ (chmod "/etc/nslcd.conf" #o400))))))
+
(define nslcd-service-type
(service-type
(name 'nslcd)
(service-extension etc-service-type
nslcd-etc-service)
(service-extension activation-service-type
- (const #~(begin
- (use-modules (guix build utils))
- (let ((rundir "/var/run/nslcd")
- (user (getpwnam "nslcd")))
- (mkdir-p rundir)
- (chown rundir (passwd:uid user) (passwd:gid user))
- (chmod rundir #o755)
- (when (file-exists? "/etc/nslcd.conf")
- (chmod "/etc/nslcd.conf" #o400))))))
+ (const %nslcd-activation))
(service-extension pam-root-service-type
pam-ldap-pam-services)
(service-extension nscd-service-type