Subject: [bug#31342] [PATCH 2/2] gnu: services: Add Enlightenment desktop service.

From: [email-masked] (Ludovic Courtès)
Date: Mon, 07 May 2018 18:49:43 +0200

Efraim Flashner <[email-masked]> skribis:

> * gnu/services/desktop.scm (<enlightenment-desktop-configuration>,
> enlightenment-desktop-service-type): New variables.
> (enlightenment-desktop-service): New public variable.
> * doc/guix.texi (Desktop Services): Document the service.

In guix.texi, could you document ‘enlightenment-desktop-service-type’
and ‘enlightenment-desktop-configuration’?

[...]

> +(define-record-type* <enlightenment-desktop-configuration>
> +  enlightenment-desktop-configuration
> +  make-enlightenment-desktop-configuration
> +  enlightenment-desktop-configuration
> +  (enlightenment enlightenment-package (default enlightenment)))

Actually, unless you expect more configuration elements to be added to
this record eventually, you might be better off without a record and
simply using the package as the value for that service.

WDYT?

> +(define (enlightenment-setuid-programs enlightenment-desktop-configuration)
> +  (match-record enlightenment-desktop-configuration
> +                <enlightenment-desktop-configuration>
> +                (enlightenment)
> +    (list (file-append enlightenment
> +                       "/lib/enlightenment/utils/enlightenment_sys")
> +          (file-append enlightenment
> +                       "/lib/enlightenment/utils/enlightenment_backlight")
> +          ;; TODO: Move this binary to a screen-locker service.
> +          (file-append enlightenment
> +                       "/lib/enlightenment/utils/enlightenment_ckpasswd")

Perhaps enlightenment_ckpasswd needs a PAM entry as well, like
‘screen-locker-service-type’ does?

> +          (file-append enlightenment
> +                       (string-append
> +                         "/lib/enlightenment/modules/cpufreq/linux-gnu-"
> +                         (string-drop-right (%current-system) 6) ; drop '-linux'

Rather:

  (match (string-tokenize (%current-system) (char-set-complement (char-set #\-)))
    ((arch "linux") (string-append "linux-gnu-" arch))
    ((arch "gnu")   (string-append "gnu-" arch)))

> +(define* (enlightenment-desktop-service
> +           #:key (config (enlightenment-desktop-configuration)))
> +  "Return a service that adds the @code{enlightenment} package to the system
> +profile, and extends dbus with the ability for @code{efl} to generate
> +thumbnails and makes setuid the programs which enlightenment expects to have
> +their setuid bit set."
> +  (service enlightenment-desktop-service-type config))

Not needed!  :-)

Thank you,
Ludo’.