gnu: mate-terminal: Update to 1.24.1.
[jackhill/guix/guix.git] / gnu / services / web.scm
index c73ff5e..3b9f9e4 100644 (file)
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
-;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2016 ng0 <ng0@n0.is>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016 Nikita <nikita@n0.is>
 ;;; Copyright © 2016, 2017, 2018 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
 ;;; Copyright © 2017 nee <nee-git@hidamari.blue>
@@ -9,7 +9,7 @@
 ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
 ;;; Copyright © 2017, 2018, 2019 Christopher Baines <mail@cbaines.net>
 ;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
-;;; Copyright © 2019 Florian Pelz <pelzflorian@pelzflorian.de>
+;;; Copyright © 2019, 2020 Florian Pelz <pelzflorian@pelzflorian.de>
 ;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
@@ -37,6 +37,7 @@
   #:use-module (gnu system pam)
   #:use-module (gnu system shadow)
   #:use-module (gnu packages admin)
+  #:use-module (gnu packages base)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages web)
   #:use-module (gnu packages patchutils)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-9)
   #:use-module (ice-9 match)
-  #:export (<httpd-configuration>
-            httpd-configuration
+  #:use-module (ice-9 format)
+  #:export (httpd-configuration
             httpd-configuration?
             httpd-configuration-package
             httpd-configuration-pid-file
             httpd-configuration-config
 
-            <httpd-virtualhost>
             httpd-virtualhost
             httpd-virtualhost?
             httpd-virtualhost-addresses-and-ports
             httpd-virtualhost-contents
 
-            <httpd-config-file>
             httpd-config-file
             httpd-config-file?
             httpd-config-file-modules
             httpd-config-file-user
             httpd-config-file-group
 
-            <httpd-module>
             httpd-module
             httpd-module?
             %default-httpd-modules
 
             httpd-service-type
 
-            <nginx-configuration>
             nginx-configuration
             nginx-configuration?
             nginx-configuartion-nginx
             nginx-configuration-extra-content
             nginx-configuration-file
 
-            <nginx-server-configuration>
             nginx-server-configuration
             nginx-server-configuration?
             nginx-server-configuration-listen
             nginx-server-configuration-server-tokens?
             nginx-server-configuration-raw-content
 
-            <nginx-upstream-configuration>
             nginx-upstream-configuration
             nginx-upstream-configuration?
             nginx-upstream-configuration-name
             nginx-upstream-configuration-servers
 
-            <nginx-location-configuration>
             nginx-location-configuration
             nginx-location-configuration?
             nginx-location-configuration-uri
             nginx-location-configuration-body
 
-            <nginx-named-location-configuration>
             nginx-named-location-configuration
             nginx-named-location-configuration?
             nginx-named-location-configuration-name
             fcgiwrap-configuration?
             fcgiwrap-service-type
 
-            <php-fpm-configuration>
             php-fpm-configuration
             make-php-fpm-configuration
             php-fpm-configuration?
             php-fpm-configuration-workers-log-file
             php-fpm-configuration-file
 
-            <php-fpm-dynamic-process-manager-configuration>
             php-fpm-dynamic-process-manager-configuration
             make-php-fpm-dynamic-process-manager-configuration
             php-fpm-dynamic-process-manager-configuration?
             php-fpm-dynamic-process-manager-configuration-min-spare-servers
             php-fpm-dynamic-process-manager-configuration-max-spare-servers
 
-            <php-fpm-static-process-manager-configuration>
             php-fpm-static-process-manager-configuration
             make-php-fpm-static-process-manager-configuration
             php-fpm-static-process-manager-configuration?
             php-fpm-static-process-manager-configuration-max-children
 
-            <php-fpm-on-demand-process-manager-configuration>
             php-fpm-on-demand-process-manager-configuration
             make-php-fpm-on-demand-process-manager-configuration
             php-fpm-on-demand-process-manager-configuration?
             hpcguix-web-configuration?
             hpcguix-web-service-type
 
-            <tailon-configuration-file>
             tailon-configuration-file
             tailon-configuration-file?
             tailon-configuration-file-files
             tailon-configuration-file-http-auth
             tailon-configuration-file-users
 
-            <tailon-configuration>
             tailon-configuration
             tailon-configuration?
             tailon-configuration-config-file
 
             tailon-service-type
 
-            <varnish-configuration>
             varnish-configuration
             varnish-configuration?
             varnish-configuration-package
 
             varnish-service-type
 
-            <patchwork-database-configuration>
             patchwork-database-configuration
             patchwork-database-configuration?
             patchwork-database-configuration-engine
             patchwork-database-configuration-host
             patchwork-database-configuration-port
 
-            <patchwork-settings-module>
             patchwork-settings-module
             patchwork-settings-module?
             patchwork-settings-module-database-configuration
             patchwork-settings-module-force-https-links?
             patchwork-settings-module-extra-settings
 
-            <patchwork-configuration>
             patchwork-configuration
             patchwork-configuration?
             patchwork-configuration-patchwork
             patchwork-virtualhost
             patchwork-service-type
 
-            <mumi-configuration>
             mumi-configuration
             mumi-configuration?
             mumi-configuration-mumi
@@ -652,8 +634,8 @@ of index files."
            "user nginx nginx;\n"
            "pid " run-directory "/pid;\n"
            "error_log " log-directory "/error.log info;\n"
-           (map emit-global-directive global-directives)
            (map emit-load-module modules)
+           (map emit-global-directive global-directives)
            "http {\n"
            "    client_body_temp_path " run-directory "/client_body_temp;\n"
            "    proxy_temp_path " run-directory "/proxy_temp;\n"
@@ -1691,8 +1673,8 @@ WSGIPassAuthorization On
   mumi-configuration?
   (mumi    mumi-configuration-mumi (default mumi))
   (mailer? mumi-configuration-mailer? (default #t))
-  (sender  mumi-configuration-sender)
-  (smtp    mumi-configuration-smtp))
+  (sender  mumi-configuration-sender (default #f))
+  (smtp    mumi-configuration-smtp (default #f)))
 
 (define %mumi-activation
   (with-imported-modules '((guix build utils))
@@ -1719,6 +1701,11 @@ WSGIPassAuthorization On
          (shell (file-append shadow "/sbin/nologin")))))
 
 (define (mumi-shepherd-services config)
+  (define environment
+    #~(list "LC_ALL=en_US.utf8"
+            (string-append "GUIX_LOCPATH=" #$glibc-utf8-locales
+                           "/lib/locale")))
+
   (match config
     (($ <mumi-configuration> mumi mailer? sender smtp)
      (list (shepherd-service
@@ -1727,7 +1714,8 @@ WSGIPassAuthorization On
             (requirement '(networking))
             (start #~(make-forkexec-constructor
                       `(#$(file-append mumi "/bin/mumi") "web"
-                        ,@(if mailer? '() '("--disable-mailer")))
+                        ,@(if #$mailer? '() '("--disable-mailer")))
+                      #:environment-variables #$environment
                       #:user "mumi" #:group "mumi"
                       #:log-file "/var/log/mumi.log"))
             (stop #~(make-kill-destructor)))
@@ -1737,6 +1725,7 @@ WSGIPassAuthorization On
             (requirement '(networking))
             (start #~(make-forkexec-constructor
                       '(#$(file-append mumi "/bin/mumi") "worker")
+                      #:environment-variables #$environment
                       #:user "mumi" #:group "mumi"
                       #:log-file "/var/log/mumi.worker.log"))
             (stop #~(make-kill-destructor)))
@@ -1746,12 +1735,13 @@ WSGIPassAuthorization On
             (requirement '(networking))
             (start #~(make-forkexec-constructor
                       `(#$(file-append mumi "/bin/mumi") "mailer"
-                        ,@(if sender
-                              (list (string-append "--sender=" sender))
+                        ,@(if #$sender
+                              (list (string-append "--sender=" #$sender))
                               '())
-                        ,@(if smtp
-                              (list (string-append "--smtp=" smtp))
+                        ,@(if #$smtp
+                              (list (string-append "--smtp=" #$smtp))
                               '()))
+                      #:environment-variables #$environment
                       #:user "mumi" #:group "mumi"
                       #:log-file "/var/log/mumi.mailer.log"))
             (stop #~(make-kill-destructor)))))))