From cf848cc0a17a3a58d600116896f6e7abfb0440d4 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 22 Mar 2019 14:06:54 +0100 Subject: accounts: Add default value for the 'home-directory' field of . * gnu/system/accounts.scm ()[home-directory]: Mark as thunked and add a default value. (default-home-directory): New procedure. * doc/guix.texi (User Accounts): Remove 'home-directory' from example. * gnu/system/examples/bare-bones.tmpl: Likewise. * gnu/system/examples/beaglebone-black.tmpl: Likewise. * gnu/system/examples/desktop.tmpl: Likewise. * gnu/system/examples/docker-image.tmpl: Likewise. * gnu/system/examples/lightweight-desktop.tmpl: Likewise. * gnu/system/install.scm (installation-os): Likewise. * gnu/tests.scm (%simple-os): Likewise. * gnu/tests/install.scm (%minimal-os, %minimal-os-on-vda): (%separate-home-os, %encrypted-root-os, %btrfs-root-os): Likewise. * tests/accounts.scm ("allocate-passwd") ("allocate-passwd with previous state"): Likewise. --- gnu/system/examples/bare-bones.tmpl | 3 +-- gnu/system/examples/beaglebone-black.tmpl | 3 +-- gnu/system/examples/desktop.tmpl | 3 +-- gnu/system/examples/docker-image.tmpl | 3 +-- gnu/system/examples/lightweight-desktop.tmpl | 3 +-- 5 files changed, 5 insertions(+), 10 deletions(-) (limited to 'gnu/system/examples') diff --git a/gnu/system/examples/bare-bones.tmpl b/gnu/system/examples/bare-bones.tmpl index a88bab034..4f30a5b75 100644 --- a/gnu/system/examples/bare-bones.tmpl +++ b/gnu/system/examples/bare-bones.tmpl @@ -35,8 +35,7 @@ ;; and "video" allows the user to play sound ;; and access the webcam. (supplementary-groups '("wheel" - "audio" "video")) - (home-directory "/home/alice")) + "audio" "video"))) %base-user-accounts)) ;; Globally-installed packages. diff --git a/gnu/system/examples/beaglebone-black.tmpl b/gnu/system/examples/beaglebone-black.tmpl index 11678063b..def05e807 100644 --- a/gnu/system/examples/beaglebone-black.tmpl +++ b/gnu/system/examples/beaglebone-black.tmpl @@ -38,8 +38,7 @@ ;; and "video" allows the user to play sound ;; and access the webcam. (supplementary-groups '("wheel" - "audio" "video")) - (home-directory "/home/alice")) + "audio" "video"))) %base-user-accounts)) ;; Globally-installed packages. diff --git a/gnu/system/examples/desktop.tmpl b/gnu/system/examples/desktop.tmpl index c59bf9268..bc5cbd6e6 100644 --- a/gnu/system/examples/desktop.tmpl +++ b/gnu/system/examples/desktop.tmpl @@ -42,8 +42,7 @@ (comment "Alice's brother") (group "users") (supplementary-groups '("wheel" "netdev" - "audio" "video")) - (home-directory "/home/bob")) + "audio" "video"))) %base-user-accounts)) ;; This is where we specify system-wide packages. diff --git a/gnu/system/examples/docker-image.tmpl b/gnu/system/examples/docker-image.tmpl index 9690d651c..ca633cc83 100644 --- a/gnu/system/examples/docker-image.tmpl +++ b/gnu/system/examples/docker-image.tmpl @@ -15,8 +15,7 @@ (comment "Bob's sister") (group "users") (supplementary-groups '("wheel" - "audio" "video")) - (home-directory "/home/alice")) + "audio" "video"))) %base-user-accounts)) ;; Globally-installed packages. diff --git a/gnu/system/examples/lightweight-desktop.tmpl b/gnu/system/examples/lightweight-desktop.tmpl index a234badd2..45d9bf447 100644 --- a/gnu/system/examples/lightweight-desktop.tmpl +++ b/gnu/system/examples/lightweight-desktop.tmpl @@ -35,8 +35,7 @@ (comment "Bob's sister") (group "users") (supplementary-groups '("wheel" "netdev" - "audio" "video")) - (home-directory "/home/alice")) + "audio" "video"))) %base-user-accounts)) ;; Add a bunch of window managers; we can choose one at -- cgit v1.3 From ee05cc7fe353c1c9b45062343746ac215a29fed5 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 27 Mar 2019 10:14:11 +0100 Subject: services: Deprecate 'gnome-desktop-service'. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/services/desktop.scm (gnome-desktop-service-type)[default-value]: New field. (gnome-desktop-service): Deprecate. * gnu/installer/services.scm (%desktop-environments): Use the (service …) form for GNOME. * gnu/system/examples/desktop.tmpl: Likewise. * doc/guix.texi (Desktop Services): Adjust accordingly. --- doc/guix.texi | 28 ++++++++++++++++++++-------- gnu/installer/services.scm | 2 +- gnu/services/desktop.scm | 5 ++++- gnu/system/examples/desktop.tmpl | 2 +- 4 files changed, 26 insertions(+), 11 deletions(-) (limited to 'gnu/system/examples') diff --git a/doc/guix.texi b/doc/guix.texi index 7d80c0053..d99b7fd93 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -14420,7 +14420,7 @@ The @var{%desktop-services} variable can be used as the @code{services} field of an @code{operating-system} declaration (@pxref{operating-system Reference, @code{services}}). -Additionally, the @code{gnome-desktop-service}, +Additionally, the @code{gnome-desktop-service-type}, @code{xfce-desktop-service}, @code{mate-desktop-service-type} and @code{enlightenment-desktop-service-type} procedures can add GNOME, XFCE, MATE and/or Enlightenment to a system. To ``add GNOME'' means that system-level @@ -14428,7 +14428,7 @@ services like the backlight adjustment helpers and the power management utilities are added to the system, extending @code{polkit} and @code{dbus} appropriately, allowing GNOME to operate with elevated privileges on a limited number of special-purpose system interfaces. Additionally, -adding a service made by @code{gnome-desktop-service} adds the GNOME +adding a service made by @code{gnome-desktop-service-type} adds the GNOME metapackage to the system profile. Likewise, adding the XFCE service not only adds the @code{xfce} metapackage to the system profile, but it also gives the Thunar file manager the ability to open a ``root-mode'' @@ -14452,11 +14452,23 @@ also try starting GNOME on Wayland manually from a TTY with the command ``XDG_SESSION_TYPE=wayland exec dbus-run-session gnome-session``. Currently only GNOME has support for Wayland. -@deffn {Scheme Procedure} gnome-desktop-service -Return a service that adds the @code{gnome} package to the system -profile, and extends polkit with the actions from -@code{gnome-settings-daemon}. -@end deffn +@defvr {Scheme Variable} gnome-desktop-service-type +This is the type of the service that adds the @uref{https://www.gnome.org, +GNOME} desktop environment. Its value is a @code{gnome-desktop-configuration} +object (see below.) + +This service adds the @code{gnome} package to the system profile, and extends +polkit with the actions from @code{gnome-settings-daemon}. +@end defvr + +@deftp {Data Type} gnome-desktop-configuration +Configuration record for the GNOME desktop environment. + +@table @asis +@item @code{gnome} (default @code{gnome}) +The GNOME package to use. +@end table +@end deftp @deffn {Scheme Procedure} xfce-desktop-service Return a service that adds the @code{xfce} package to the system profile, @@ -14508,7 +14520,7 @@ them by default. To add GNOME, XFCE or MATE, just @code{cons} them onto (operating-system ... ;; cons* adds items to the list given as its last argument. - (services (cons* (gnome-desktop-service) + (services (cons* (service gnome-desktop-service-type) (xfce-desktop-service) %desktop-services)) ...) diff --git a/gnu/installer/services.scm b/gnu/installer/services.scm index f263ecc84..e719da083 100644 --- a/gnu/installer/services.scm +++ b/gnu/installer/services.scm @@ -38,7 +38,7 @@ (list (desktop-environment (name "GNOME") - (snippet '(gnome-desktop-service))) + (snippet '(service gnome-desktop-service-type))) (desktop-environment (name "Xfce") (snippet '(xfce-desktop-service))) diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index b912c208c..9c9472e1a 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -884,9 +884,12 @@ rules." (service-extension profile-service-type (compose list gnome-package)))) + (default-value (gnome-desktop-configuration)) (description "Run the GNOME desktop environment."))) -(define* (gnome-desktop-service #:key (config (gnome-desktop-configuration))) +(define-deprecated (gnome-desktop-service #:key (config + (gnome-desktop-configuration))) + gnome-desktop-service-type "Return a service that adds the @code{gnome} package to the system profile, and extends polkit with the actions from @code{gnome-settings-daemon}." (service gnome-desktop-service-type config)) diff --git a/gnu/system/examples/desktop.tmpl b/gnu/system/examples/desktop.tmpl index bc5cbd6e6..fe32bc58b 100644 --- a/gnu/system/examples/desktop.tmpl +++ b/gnu/system/examples/desktop.tmpl @@ -57,7 +57,7 @@ ;; screen with F1. Use the "desktop" services, which ;; include the X11 log-in service, networking with ;; NetworkManager, and more. - (services (append (list (gnome-desktop-service) + (services (append (list (service gnome-desktop-service-type) (xfce-desktop-service)) %desktop-services)) -- cgit v1.3 From 391e0d65d7129d53c025963d2758724e75626eb4 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 27 Mar 2019 10:41:14 +0100 Subject: services: Deprecate 'xfce-desktop-service'. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/services/desktop.scm (xfce-desktop-service-type)[default-value] [description]: New fields. (xfce-desktop-service): Deprecate. * gnu/system/examples/desktop.tmpl: Use the (service …) form. * gnu/installer/services.scm (%desktop-environments): Add TODO comment. * doc/guix.texi (Desktop Services): Adjust accordingly, and fix spelling of "Xfce" throughout. --- doc/guix.texi | 37 +++++++++++++++++++++++++------------ gnu/installer/services.scm | 2 ++ gnu/services/desktop.scm | 9 ++++++--- gnu/system/examples/desktop.tmpl | 2 +- 4 files changed, 34 insertions(+), 16 deletions(-) (limited to 'gnu/system/examples') diff --git a/doc/guix.texi b/doc/guix.texi index d99b7fd93..1bbed7a72 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -14395,7 +14395,7 @@ The @code{(gnu services desktop)} module provides services that are usually useful in the context of a ``desktop'' setup---that is, on a machine running a graphical display server, possibly with graphical user interfaces, etc. It also defines services that provide specific desktop -environments like GNOME, XFCE or MATE. +environments like GNOME, Xfce or MATE. To simplify things, the module defines a variable containing the set of services that users typically expect on a machine with a graphical @@ -14422,14 +14422,14 @@ Reference, @code{services}}). Additionally, the @code{gnome-desktop-service-type}, @code{xfce-desktop-service}, @code{mate-desktop-service-type} and -@code{enlightenment-desktop-service-type} procedures can add GNOME, XFCE, MATE +@code{enlightenment-desktop-service-type} procedures can add GNOME, Xfce, MATE and/or Enlightenment to a system. To ``add GNOME'' means that system-level services like the backlight adjustment helpers and the power management utilities are added to the system, extending @code{polkit} and @code{dbus} appropriately, allowing GNOME to operate with elevated privileges on a limited number of special-purpose system interfaces. Additionally, adding a service made by @code{gnome-desktop-service-type} adds the GNOME -metapackage to the system profile. Likewise, adding the XFCE service +metapackage to the system profile. Likewise, adding the Xfce service not only adds the @code{xfce} metapackage to the system profile, but it also gives the Thunar file manager the ability to open a ``root-mode'' file management window, if the user authenticates using the @@ -14470,12 +14470,25 @@ The GNOME package to use. @end table @end deftp -@deffn {Scheme Procedure} xfce-desktop-service -Return a service that adds the @code{xfce} package to the system profile, -and extends polkit with the ability for @code{thunar} to manipulate the -file system as root from within a user session, after the user has -authenticated with the administrator's password. -@end deffn +@defvr {Scheme Variable} xfce-desktop-service-type +This is the type of a service to run the @uref{Xfce, https://xfce.org/} +desktop environment. Its value is an @code{xfce-desktop-configuration} object +(see below.) + +This service that adds the @code{xfce} package to the system profile, and +extends polkit with the ability for @code{thunar} to manipulate the file +system as root from within a user session, after the user has authenticated +with the administrator's password. +@end defvr + +@deftp {Data Type} xfce-desktop-configuration +Configuration record for the Xfce desktop environment. + +@table @asis +@item @code{xfce} (default @code{xfce}) +The Xfce package to use. +@end table +@end deftp @deffn {Scheme Variable} mate-desktop-service-type This is the type of the service that runs the @uref{https://mate-desktop.org/, @@ -14508,9 +14521,9 @@ The enlightenment package to use. @end table @end deftp -Because the GNOME, XFCE and MATE desktop services pull in so many packages, +Because the GNOME, Xfce and MATE desktop services pull in so many packages, the default @code{%desktop-services} variable doesn't include any of -them by default. To add GNOME, XFCE or MATE, just @code{cons} them onto +them by default. To add GNOME, Xfce or MATE, just @code{cons} them onto @code{%desktop-services} in the @code{services} field of your @code{operating-system}: @@ -14521,7 +14534,7 @@ them by default. To add GNOME, XFCE or MATE, just @code{cons} them onto ... ;; cons* adds items to the list given as its last argument. (services (cons* (service gnome-desktop-service-type) - (xfce-desktop-service) + (service xfce-desktop-service) %desktop-services)) ...) @end example diff --git a/gnu/installer/services.scm b/gnu/installer/services.scm index e719da083..2b6625f6a 100644 --- a/gnu/installer/services.scm +++ b/gnu/installer/services.scm @@ -41,6 +41,8 @@ (snippet '(service gnome-desktop-service-type))) (desktop-environment (name "Xfce") + ;; TODO: Use 'xfce-desktop-service-type' when the 'guix' package provides + ;; it with a default value. (snippet '(xfce-desktop-service))) (desktop-environment (name "MATE") diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index 9c9472e1a..da6291036 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -945,10 +945,13 @@ and extends polkit with the actions from @code{mate-settings-daemon}." "thunar") xfce-package)) (service-extension profile-service-type - (compose list - xfce-package)))))) + (compose list xfce-package)))) + (default-value (xfce-desktop-configuration)) + (description "Run the Xfce desktop environment."))) -(define* (xfce-desktop-service #:key (config (xfce-desktop-configuration))) +(define-deprecated (xfce-desktop-service #:key (config + (xfce-desktop-configuration))) + xfce-desktop-service-type "Return a service that adds the @code{xfce} package to the system profile, and extends polkit with the ability for @code{thunar} to manipulate the file system as root from within a user session, after the user has authenticated diff --git a/gnu/system/examples/desktop.tmpl b/gnu/system/examples/desktop.tmpl index fe32bc58b..d0e3ff56e 100644 --- a/gnu/system/examples/desktop.tmpl +++ b/gnu/system/examples/desktop.tmpl @@ -58,7 +58,7 @@ ;; include the X11 log-in service, networking with ;; NetworkManager, and more. (services (append (list (service gnome-desktop-service-type) - (xfce-desktop-service)) + (service xfce-desktop-service)) %desktop-services)) ;; Allow resolution of '.local' host names with mDNS. -- cgit v1.3 From 971e6560eb7b852ccc30d0891c2b7d26e5d0971a Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 28 Mar 2019 22:46:58 +0100 Subject: system: Fix typo in desktop example. The typo was introduced in 391e0d65d7129d53c025963d2758724e75626eb4. * gnu/system/examples/desktop.tmpl: Use XFCE-DESKTOP-SERVICE-TYPE, not XFCE-DESKTOP-SERVICE. --- gnu/system/examples/desktop.tmpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gnu/system/examples') diff --git a/gnu/system/examples/desktop.tmpl b/gnu/system/examples/desktop.tmpl index d0e3ff56e..ff4c12b24 100644 --- a/gnu/system/examples/desktop.tmpl +++ b/gnu/system/examples/desktop.tmpl @@ -58,7 +58,7 @@ ;; include the X11 log-in service, networking with ;; NetworkManager, and more. (services (append (list (service gnome-desktop-service-type) - (service xfce-desktop-service)) + (service xfce-desktop-service-type)) %desktop-services)) ;; Allow resolution of '.local' host names with mDNS. -- cgit v1.3