summaryrefslogtreecommitdiff
path: root/gnu/services
diff options
context:
space:
mode:
authorMarius Bakke <mbakke@fastmail.com>2020-03-27 00:12:15 +0100
committerMarius Bakke <mbakke@fastmail.com>2020-03-27 00:12:15 +0100
commit18af6870370226b4d502d7372844e7f2aded5887 (patch)
tree749d93209bd0cb9710ccaae2207df670f37eaa36 /gnu/services
parent0ab8ad46322bea331ed5f5592843ba35e7f38b37 (diff)
parent3089b70d766bd9ec70e1464867130b7b864fbe17 (diff)
Merge branch 'master' into core-updates
Conflicts: gnu/packages/icu4c.scm gnu/packages/man.scm gnu/packages/python-xyz.scm guix/scripts/environment.scm guix/scripts/pack.scm guix/scripts/package.scm guix/scripts/pull.scm guix/store.scm
Diffstat (limited to 'gnu/services')
-rw-r--r--gnu/services/base.scm14
-rw-r--r--gnu/services/desktop.scm33
-rw-r--r--gnu/services/nfs.scm18
3 files changed, 52 insertions, 13 deletions
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index b39d0f6610..194dd3b344 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -817,13 +817,13 @@ tty/font pairs. The font can be the name of a font provided by the @code{kbd}
package or any valid argument to @command{setfont}, as in this example:
@example
-'((\"tty1\" . \"LatGrkCyr-8x16\")
- (\"tty2\" . (file-append
- font-tamzen
- \"/share/kbd/consolefonts/TamzenForPowerline10x20.psf\"))
- (\"tty3\" . (file-append
- font-terminus
- \"/share/consolefonts/ter-132n\"))) ; for HDPI
+`((\"tty1\" . \"LatGrkCyr-8x16\")
+ (\"tty2\" . ,(file-append
+ font-tamzen
+ \"/share/kbd/consolefonts/TamzenForPowerline10x20.psf\"))
+ (\"tty3\" . ,(file-append
+ font-terminus
+ \"/share/consolefonts/ter-132n\"))) ; for HDPI
@end example\n")))
(define* (console-font-service tty #:optional (font "LatGrkCyr-8x16"))
diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index 1294d748ac..16ee4d3537 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -5,7 +5,7 @@
;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2017 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2017 ng0 <ng0@n0.is>
-;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017, 2019 Christopher Baines <mail@cbaines.net>
;;; Copyright © 2019 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
@@ -36,7 +36,7 @@
#:use-module (gnu services networking)
#:use-module (gnu services sound)
#:use-module ((gnu system file-systems)
- #:select (%elogind-file-systems))
+ #:select (%elogind-file-systems file-system))
#:use-module (gnu system)
#:use-module (gnu system shadow)
#:use-module (gnu system pam)
@@ -106,6 +106,9 @@
elogind-service
elogind-service-type
+ %fontconfig-file-system
+ fontconfig-file-system-service
+
accountsservice-service-type
accountsservice-service
@@ -797,6 +800,27 @@ when they log out."
;;;
+;;; Fontconfig and other desktop file-systems.
+;;;
+
+(define %fontconfig-file-system
+ (file-system
+ (device "none")
+ (mount-point "/var/cache/fontconfig")
+ (type "tmpfs")
+ (flags '(read-only))
+ (check? #f)))
+
+;; The global fontconfig cache directory can sometimes contain stale entries,
+;; possibly referencing fonts that have been GC'd, so mount it read-only.
+;; As mentioned https://debbugs.gnu.org/cgi/bugreport.cgi?bug=36924#8 and
+;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=38046#10 and elsewhere.
+(define fontconfig-file-system-service
+ (simple-service 'fontconfig-file-system
+ file-system-service-type
+ (list %fontconfig-file-system)))
+
+;;;
;;; AccountsService service.
;;;
@@ -1185,6 +1209,11 @@ or setting its password with passwd.")))
;; perform administrative tasks (similar to "sudo").
polkit-wheel-service
+ ;; The global fontconfig cache directory can sometimes contain
+ ;; stale entries, possibly referencing fonts that have been GC'd,
+ ;; so mount it read-only.
+ fontconfig-file-system-service
+
;; NetworkManager and its applet.
(service network-manager-service-type)
(service wpa-supplicant-service-type) ;needed by NetworkManager
diff --git a/gnu/services/nfs.scm b/gnu/services/nfs.scm
index c90984387e..cbaa97b2fd 100644
--- a/gnu/services/nfs.scm
+++ b/gnu/services/nfs.scm
@@ -274,9 +274,19 @@
rpcmountd-port rpcstatd-port nfsd-port nfsd-threads
pipefs-directory debug)
(list (shepherd-service
+ (documentation "Mount the nfsd pseudo file system.")
+ (provision '(/proc/fs/nfsd))
+ (start #~(lambda ()
+ (mount "nfsd" "/proc/fs/nfsd" "nfsd")
+ (member "/proc/fs/nfsd" (mount-points))))
+
+ (stop #~(lambda (pid . args)
+ (umount "/proc/fs/nfsd" MNT_DETACH)
+ (not (member "/proc/fs/nfsd" (mount-points))))))
+ (shepherd-service
(documentation "Run the NFS statd daemon.")
(provision '(rpc.statd))
- (requirement '(rpcbind-daemon))
+ (requirement '(/proc/fs/nfsd rpcbind-daemon))
(start
#~(make-forkexec-constructor
(list #$(file-append nfs-utils "/sbin/rpc.statd")
@@ -295,7 +305,7 @@
(shepherd-service
(documentation "Run the NFS mountd daemon.")
(provision '(rpc.mountd))
- (requirement '(rpc.statd))
+ (requirement '(/proc/fs/nfsd rpc.statd))
(start
#~(make-forkexec-constructor
(list #$(file-append nfs-utils "/sbin/rpc.mountd")
@@ -310,7 +320,7 @@
(shepherd-service
(documentation "Run the NFS daemon.")
(provision '(rpc.nfsd))
- (requirement '(rpc.statd networking))
+ (requirement '(/proc/fs/nfsd rpc.statd networking))
(start
#~(lambda _
(zero? (system* #$(file-append nfs-utils "/sbin/rpc.nfsd")
@@ -329,7 +339,7 @@
(shepherd-service
(documentation "Run the NFS mountd daemon and refresh exports.")
(provision '(nfs))
- (requirement '(rpc.nfsd rpc.mountd rpc.statd rpcbind-daemon))
+ (requirement '(/proc/fs/nfsd rpc.nfsd rpc.mountd rpc.statd rpcbind-daemon))
(start
#~(lambda _
(let ((rpcdebug #$(file-append nfs-utils "/sbin/rpcdebug")))