guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Services and packages in GuixSD


From: Andy Wingo
Subject: Services and packages in GuixSD
Date: Sun, 09 Aug 2015 18:58:33 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

Hi,

There are a few services whose behavior depends on the set of installed
packages or services, or which should depend on those sets.  For example
with %desktop-services specified, udev should be adding rules for upower
and colord, AFAIU.  Likewise for dbus: it would be nice if the set of
selected packages and services were grovelled for dbus files.

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.

Would it be possible to allow services to grovel the set of installed
packages and services to "finalize" their configuration?  We might have
to take care to avoid service configuration depending on service
configuration, but I reckon that's possible to take into account.

Regards,

Andy



reply via email to

[Prev in Thread] Current Thread [Next in Thread]