From 6ee87461e0466f8756ac01257abcae80f7fe17ca Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 21 Dec 2019 23:43:41 +0100 Subject: services: Add Mumi service. * gnu/services/web.scm (%mumi-activation, %mumi-accounts): New variables. (mumi-shepherd-services): New procedure. (mumi-service-type): New variable. * doc/guix.texi (Web Services): Document it. --- gnu/services/web.scm | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 56 insertions(+), 1 deletion(-) (limited to 'gnu/services') diff --git a/gnu/services/web.scm b/gnu/services/web.scm index 372f4dc6fc..3ac7b7f52c 100644 --- a/gnu/services/web.scm +++ b/gnu/services/web.scm @@ -43,6 +43,7 @@ (define-module (gnu services web) #:use-module (gnu packages gnupg) #:use-module (gnu packages guile) #:use-module (gnu packages logging) + #:use-module (gnu packages mail) #:use-module (guix packages) #:use-module (guix records) #:use-module (guix modules) @@ -256,7 +257,9 @@ (define-module (gnu services web) patchwork-configuration-domain patchwork-virtualhost - patchwork-service-type)) + patchwork-service-type + + mumi-service-type)) ;;; Commentary: ;;; @@ -1652,3 +1655,55 @@ (define patchwork-service-type patchwork-getmail-configs))) (description "Patchwork patch tracking system."))) + + +;;; +;;; Mumi. +;;; + +(define %mumi-activation + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils)) + + (mkdir-p "/var/mumi/mails") + (let* ((pw (getpwnam "mumi")) + (uid (passwd:uid pw)) + (gid (passwd:gid pw))) + (chown "/var/mumi" uid gid) + (chown "/var/mumi/mails" uid gid))))) + +(define %mumi-accounts + (list (user-group (name "mumi") (system? #t)) + (user-account + (name "mumi") + (group "mumi") + (system? #t) + (comment "Mumi web server") + (home-directory "/var/empty") + (shell (file-append shadow "/sbin/nologin"))))) + +(define (mumi-shepherd-services mumi) + (list (shepherd-service + (provision '(mumi)) + (documentation "Mumi bug-tracking web interface.") + (requirement '(networking)) + (start #~(make-forkexec-constructor + '(#$(file-append mumi "/bin/mumi")) + #:user "mumi" #:group "mumi" + #:log-file "/var/log/mumi.log")) + (stop #~(make-kill-destructor))))) + +(define mumi-service-type + (service-type + (name 'mumi) + (extensions + (list (service-extension activation-service-type + (const %mumi-activation)) + (service-extension account-service-type + (const %mumi-accounts)) + (service-extension shepherd-root-service-type + mumi-shepherd-services))) + (description + "Run Mumi, a Web interface to the Debbugs bug-tracking server.") + (default-value mumi))) -- cgit v1.2.3 From 747b7246a6d81ec2aafc9a1c737f85da3092c5dc Mon Sep 17 00:00:00 2001 From: Brice Waegeneire Date: Sat, 14 Dec 2019 08:23:26 +0100 Subject: services: dhcp-client: Ignore interfaces that cannot be activated. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes . * gnu/services/networking.scm (dhcp-client-service-type): Filter interfaces that cannot be activated. Signed-off-by: Ludovic Courtès --- gnu/services/networking.scm | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'gnu/services') diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm index 6485c08ff7..59b895d60b 100644 --- a/gnu/services/networking.scm +++ b/gnu/services/networking.scm @@ -234,14 +234,15 @@ (define pid-file (define valid? (lambda (interface) (and (arp-network-interface? interface) - (not (loopback-network-interface? interface))))) + (not (loopback-network-interface? interface)) + ;; XXX: Make sure the interfaces are up so that + ;; 'dhclient' can actually send/receive over them. + ;; Ignore those that cannot be activated. + (false-if-exception + (set-network-interface-up interface))))) (define ifaces (filter valid? (all-network-interface-names))) - ;; XXX: Make sure the interfaces are up so that 'dhclient' can - ;; actually send/receive over them. - (for-each set-network-interface-up ifaces) - (false-if-exception (delete-file #$pid-file)) (let ((pid (fork+exec-command (cons* #$dhclient "-nw" -- cgit v1.2.3