mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 21:38:07 -05:00
gnu: dmd: Add 'pam-services' field to <service>.
* gnu/system/dmd.scm (<service>)[pam-services]: New field. (mingetty-service): Add #:motd and #:allow-empty-passwords? parameters. Add MOTD to 'inputs' field; add 'pam-services' field. * gnu/system/vm.scm (system-qemu-image): Aggregate PAM entries from SERVICES.
This commit is contained in:
parent
f0387dd167
commit
f7d6fafaa2
2 changed files with 26 additions and 10 deletions
|
@ -29,7 +29,8 @@ (define-module (gnu system dmd)
|
||||||
#:select (guix))
|
#:select (guix))
|
||||||
#:use-module ((gnu packages linux)
|
#:use-module ((gnu packages linux)
|
||||||
#:select (net-tools))
|
#:select (net-tools))
|
||||||
#:use-module (gnu system shadow)
|
#:use-module (gnu system shadow) ; for user accounts/groups
|
||||||
|
#:use-module (gnu system linux) ; for PAM services
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
#:use-module (ice-9 format)
|
#:use-module (ice-9 format)
|
||||||
#:use-module (srfi srfi-1)
|
#:use-module (srfi srfi-1)
|
||||||
|
@ -45,6 +46,7 @@ (define-module (gnu system dmd)
|
||||||
service-inputs
|
service-inputs
|
||||||
service-user-accounts
|
service-user-accounts
|
||||||
service-user-groups
|
service-user-groups
|
||||||
|
service-pam-services
|
||||||
|
|
||||||
host-name-service
|
host-name-service
|
||||||
syslog-service
|
syslog-service
|
||||||
|
@ -79,6 +81,8 @@ (define-record-type* <service>
|
||||||
(user-accounts service-user-accounts ; list of <user-account>
|
(user-accounts service-user-accounts ; list of <user-account>
|
||||||
(default '()))
|
(default '()))
|
||||||
(user-groups service-user-groups ; list of <user-groups>
|
(user-groups service-user-groups ; list of <user-groups>
|
||||||
|
(default '()))
|
||||||
|
(pam-services service-pam-services ; list of <pam-service>
|
||||||
(default '())))
|
(default '())))
|
||||||
|
|
||||||
(define (host-name-service name)
|
(define (host-name-service name)
|
||||||
|
@ -91,9 +95,13 @@ (define (host-name-service name)
|
||||||
(sethostname ,name)))
|
(sethostname ,name)))
|
||||||
(respawn? #f)))))
|
(respawn? #f)))))
|
||||||
|
|
||||||
(define (mingetty-service tty)
|
(define* (mingetty-service tty
|
||||||
|
#:key
|
||||||
|
(motd (text-file "motd" "Welcome.\n"))
|
||||||
|
(allow-empty-passwords? #t))
|
||||||
"Return a service to run mingetty on TTY."
|
"Return a service to run mingetty on TTY."
|
||||||
(mlet %store-monad ((mingetty-bin (package-file mingetty "sbin/mingetty")))
|
(mlet %store-monad ((mingetty-bin (package-file mingetty "sbin/mingetty"))
|
||||||
|
(motd motd))
|
||||||
(return
|
(return
|
||||||
(service
|
(service
|
||||||
(documentation (string-append "Run mingetty on " tty "."))
|
(documentation (string-append "Run mingetty on " tty "."))
|
||||||
|
@ -103,9 +111,18 @@ (define (mingetty-service tty)
|
||||||
;; service to be done.
|
;; service to be done.
|
||||||
(requirement '(host-name))
|
(requirement '(host-name))
|
||||||
|
|
||||||
(start `(make-forkexec-constructor ,mingetty-bin "--noclear" ,tty))
|
(start `(make-forkexec-constructor ,mingetty-bin "--noclear" ,tty))
|
||||||
(stop `(make-kill-destructor))
|
(stop `(make-kill-destructor))
|
||||||
(inputs `(("mingetty" ,mingetty)))))))
|
(inputs `(("mingetty" ,mingetty)
|
||||||
|
("motd" ,motd)))
|
||||||
|
|
||||||
|
(pam-services
|
||||||
|
;; Let 'login' be known to PAM. All the mingetty services will have
|
||||||
|
;; that PAM service, but that's fine because they're all identical and
|
||||||
|
;; duplicates are removed.
|
||||||
|
(list (unix-pam-service "login"
|
||||||
|
#:allow-empty-passwords? allow-empty-passwords?
|
||||||
|
#:motd motd)))))))
|
||||||
|
|
||||||
(define* (nscd-service #:key (glibc glibc-final))
|
(define* (nscd-service #:key (glibc glibc-final))
|
||||||
"Return a service that runs libc's name service cache daemon (nscd)."
|
"Return a service that runs libc's name service cache daemon (nscd)."
|
||||||
|
|
|
@ -571,10 +571,9 @@ (define (system-qemu-image)
|
||||||
"))
|
"))
|
||||||
(pam-services ->
|
(pam-services ->
|
||||||
;; Services known to PAM.
|
;; Services known to PAM.
|
||||||
(list %pam-other-services
|
(delete-duplicates
|
||||||
(unix-pam-service "login"
|
(cons %pam-other-services
|
||||||
#:allow-empty-passwords? #t
|
(append-map service-pam-services services))))
|
||||||
#:motd motd)))
|
|
||||||
|
|
||||||
(bash-file (package-file bash "bin/bash"))
|
(bash-file (package-file bash "bin/bash"))
|
||||||
(dmd-file (package-file dmd "bin/dmd"))
|
(dmd-file (package-file dmd "bin/dmd"))
|
||||||
|
|
Loading…
Reference in a new issue