Andy Wingo <wi...@igalia.com> skribis: > For example this is my current services definition: > > (services > (let ((motd (text-file "motd" " > This is the GNU operating system, welcome!\n\n"))) > (list (console-font-service "tty1") > (console-font-service "tty2") > (console-font-service "tty3") > (console-font-service "tty4") > (console-font-service "tty5") > (console-font-service "tty6") > > (mingetty-service "tty1" #:motd motd) > (mingetty-service "tty2" #:motd motd) > (mingetty-service "tty3" #:motd motd) > (mingetty-service "tty4" #:motd motd) > (mingetty-service "tty5" #:motd motd) > (mingetty-service "tty6" #:motd motd) > (static-networking-service > "lo" "127.0.0.1" #:provision '(loopback)) > (syslog-service) > (guix-service) > (nscd-service #:name-services (list nss-mdns)) > > (slim-service) > (lsh-service) > (wicd-service) > (avahi-service) > (dbus-service > (list avahi wicd upower colord geoclue polkit)) > (upower-service) > ;; FIXME: Can be bus-activated; just need to make the config > ;; and the user. > (geoclue-service) > ;; FIXME: Doesn't need to be run at startup; can be activated > ;; via dbus. However we do it here in order to create > ;; /var/lib/colord. > (colord-service) > ;; FIXME: Can be bus-activated; just need to make the user. > (polkit-service) > ;; The LVM2 rules are needed as soon as LVM2 or the > ;; device-mapper is used, so enable them by default. The FUSE > ;; and ALSA rules are less critical, but handy. > (udev-service > #:rules (list lvm2 fuse alsa-utils upower colord))))) > > I can't switch to use %base-services or %desktop-services because of the > udev-service and dbus-service configurations. That's the bug I'm trying > to solve here.
You can but it’s inconvenient: You could use a trick similar to the ‘%my-base-services’ example given at https://www.gnu.org/software/guix/manual/html_node/Name-Service-Switch.html I think we should probably change service procedures to return first-class objects rather than monadic values (by defining a gexp expander). That would make such customization easier. Additionally, we should arrange so we don’t have to define dmd services do D-Bus services, because the system bus already takes care of them. Presumably that means that we need a <dbus-service> type, which would encompass a package (e.g., GeoClue) and its associated config (e.g., a record or a file-like object.) WDYT? Thanks, Ludo’.