GNU bug report logs - #31342
[PATCH 0/2] Enlightenment Desktop Service

Previous Next

Package: guix-patches;

Reported by: Efraim Flashner <efraim <at> flashner.co.il>

Date: Wed, 2 May 2018 16:46:01 UTC

Severity: normal

Tags: patch

Done: Efraim Flashner <efraim <at> flashner.co.il>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 31342 in the body.
You can then email your comments to 31342 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#31342; Package guix-patches. (Wed, 02 May 2018 16:46:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Efraim Flashner <efraim <at> flashner.co.il>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Wed, 02 May 2018 16:46:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Efraim Flashner <efraim <at> flashner.co.il>
To: guix-patches <at> gnu.org
Cc: Efraim Flashner <efraim <at> flashner.co.il>
Subject: [PATCH 0/2] Enlightenment Desktop Service
Date: Wed,  2 May 2018 19:44:50 +0300
These two patches create a usable desktop service for Enlightenment.
I've been running it for a few weeks while working out the kinks, and
almost everything works as expected. The default screen locker now
works, so as far as I'm concerned it seems ready for upstreaming.

Currently the remaining issue that I have is the language switcher
doesn't work. I can change the language flag at the bottom but it
currently doesn't affect the language typed in or the Caps->Meta
conversion.

Efraim Flashner (2):
  gnu: enlightenment: Fix setuid program locations.
  gnu: services: Add Enlightenment desktop service.

 doc/guix.texi                                 |  10 +-
 gnu/local.mk                                  |   1 +
 gnu/packages/enlightenment.scm                |   3 +-
 .../enlightenment-fix-setuid-path.patch       | 168 ++++++++++++++++++
 gnu/services/desktop.scm                      |  61 +++++++
 5 files changed, 237 insertions(+), 6 deletions(-)
 create mode 100644 gnu/packages/patches/enlightenment-fix-setuid-path.patch

-- 
2.17.0





Information forwarded to guix-patches <at> gnu.org:
bug#31342; Package guix-patches. (Wed, 02 May 2018 16:48:02 GMT) Full text and rfc822 format available.

Message #8 received at 31342 <at> debbugs.gnu.org (full text, mbox):

From: Efraim Flashner <efraim <at> flashner.co.il>
To: 31342 <at> debbugs.gnu.org
Cc: Efraim Flashner <efraim <at> flashner.co.il>
Subject: [PATCH 1/2] gnu: enlightenment: Fix setuid program locations.
Date: Wed,  2 May 2018 19:47:22 +0300
* gnu/packages/enlightenment.scm (enlightenment)[source]: Add patch.
* gnu/packages/patches/enlightenment-fix-setuid-path.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
---
 gnu/local.mk                                  |   1 +
 gnu/packages/enlightenment.scm                |   3 +-
 .../enlightenment-fix-setuid-path.patch       | 168 ++++++++++++++++++
 3 files changed, 171 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/enlightenment-fix-setuid-path.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index cfe698d3f..df8d22d09 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -644,6 +644,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/emacs-highlight-stages-add-gexp.patch	\
   %D%/packages/patches/emacs-scheme-complete-scheme-r5rs-info.patch	\
   %D%/packages/patches/emacs-source-date-epoch.patch		\
+  %D%/packages/patches/enlightenment-fix-setuid-path.patch	\
   %D%/packages/patches/erlang-man-path.patch			\
   %D%/packages/patches/eudev-rules-directory.patch		\
   %D%/packages/patches/evilwm-lost-focus-bug.patch		\
diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm
index d6c11e4fe..54205978a 100644
--- a/gnu/packages/enlightenment.scm
+++ b/gnu/packages/enlightenment.scm
@@ -262,7 +262,8 @@ Libraries with some extra bells and whistles.")
                               name "/" name "-" version ".tar.xz"))
               (sha256
                (base32
-                "16zydv7z94aw3rywmb9gr8ya85k7b75h22wng95lfx1x0y1yb0ad"))))
+                "16zydv7z94aw3rywmb9gr8ya85k7b75h22wng95lfx1x0y1yb0ad"))
+              (patches (search-patches "enlightenment-fix-setuid-path.patch"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
diff --git a/gnu/packages/patches/enlightenment-fix-setuid-path.patch b/gnu/packages/patches/enlightenment-fix-setuid-path.patch
new file mode 100644
index 000000000..90e16d3e6
--- /dev/null
+++ b/gnu/packages/patches/enlightenment-fix-setuid-path.patch
@@ -0,0 +1,168 @@
+diff --git a/src/bin/e_auth.c b/src/bin/e_auth.c
+index 00b0e5d84..98ab4518f 100644
+--- a/src/bin/e_auth.c
++++ b/src/bin/e_auth.c
+@@ -9,8 +9,7 @@ e_auth_begin(char *passwd)
+ 
+    if (strlen(passwd) == 0) goto out;
+ 
+-   snprintf(buf, sizeof(buf), "%s/enlightenment/utils/enlightenment_ckpasswd",
+-            e_prefix_lib_get());
++   snprintf(buf, sizeof(buf), "/run/setuid-programs/enlightenment_ckpasswd");
+ 
+    exe = ecore_exe_pipe_run(buf, ECORE_EXE_PIPE_WRITE, NULL);
+    if (ecore_exe_send(exe, passwd, strlen(passwd)) != EINA_TRUE) goto out;
+diff --git a/src/bin/e_backlight.c b/src/bin/e_backlight.c
+index 2bced6766..208e583ba 100644
+--- a/src/bin/e_backlight.c
++++ b/src/bin/e_backlight.c
+@@ -521,8 +521,8 @@ _bl_sys_level_set(double val)
+      }
+ //   fprintf(stderr, "SET: %1.3f\n", val);
+    snprintf(buf, sizeof(buf),
+-            "%s/enlightenment/utils/enlightenment_backlight %i %s",
+-            e_prefix_lib_get(), (int)(val * 1000.0), bl_sysval);
++            "/run/setuid-programs/enlightenment_backlight %i %s",
++            (int)(val * 1000.0), bl_sysval);
+    bl_sys_set_exe = ecore_exe_run(buf, NULL);
+ }
+ #endif  // HAVE_EEZE || __FreeBSD_kernel__
+diff --git a/src/bin/e_fm/e_fm_main_eeze.c b/src/bin/e_fm/e_fm_main_eeze.c
+index b7d9e3eba..d8a9eb82c 100644
+--- a/src/bin/e_fm/e_fm_main_eeze.c
++++ b/src/bin/e_fm/e_fm_main_eeze.c
+@@ -318,7 +318,7 @@ _e_fm_main_eeze_volume_eject(E_Volume *v)
+      {
+         char buf[PATH_MAX];
+ 
+-        snprintf(buf, sizeof(buf), "%s/enlightenment/utils/enlightenment_sys", eina_prefix_lib_get(pfx));
++        snprintf(buf, sizeof(buf), "/run/setuid-programs/enlightenment_sys");
+         eeze_disk_mount_wrapper_set(v->disk, buf);
+      }
+    v->guard = ecore_timer_loop_add(E_FM_EJECT_TIMEOUT, (Ecore_Task_Cb)_e_fm_main_eeze_vol_eject_timeout, v);
+@@ -512,7 +512,7 @@ _e_fm_main_eeze_volume_unmount(E_Volume *v)
+      {
+         char buf[PATH_MAX];
+ 
+-        snprintf(buf, sizeof(buf), "%s/enlightenment/utils/enlightenment_sys", eina_prefix_lib_get(pfx));
++        snprintf(buf, sizeof(buf), "/run/setuid-programs/enlightenment_sys");
+         eeze_disk_mount_wrapper_set(v->disk, buf);
+      }
+    v->guard = ecore_timer_loop_add(E_FM_UNMOUNT_TIMEOUT, (Ecore_Task_Cb)_e_fm_main_eeze_vol_unmount_timeout, v);
+@@ -548,7 +548,7 @@ _e_fm_main_eeze_volume_mount(E_Volume *v)
+      {
+         char buf2[PATH_MAX];
+ 
+-        snprintf(buf2, sizeof(buf2), "%s/enlightenment/utils/enlightenment_sys", eina_prefix_lib_get(pfx));
++        snprintf(buf2, sizeof(buf2), "/run/setuid-programs/enlightenment_sys");
+         eeze_disk_mount_wrapper_set(v->disk, buf2);
+      }
+    v->guard = ecore_timer_loop_add(E_FM_MOUNT_TIMEOUT, (Ecore_Task_Cb)_e_fm_main_eeze_vol_mount_timeout, v);
+diff --git a/src/bin/e_sys.c b/src/bin/e_sys.c
+index 6781a9b5a..8cd140f1b 100644
+--- a/src/bin/e_sys.c
++++ b/src/bin/e_sys.c
+@@ -653,20 +653,16 @@ _e_sys_cb_timer(void *data EINA_UNUSED)
+ 
+    e_init_status_set(_("Checking System Permissions"));
+    snprintf(buf, sizeof(buf),
+-            "%s/enlightenment/utils/enlightenment_sys -t halt",
+-            e_prefix_lib_get());
++            "/run/setuid-programs/enlightenment_sys -t halt");
+    _e_sys_halt_check_exe = ecore_exe_run(buf, NULL);
+    snprintf(buf, sizeof(buf),
+-            "%s/enlightenment/utils/enlightenment_sys -t reboot",
+-            e_prefix_lib_get());
++            "/run/setuid-programs/enlightenment_sys -t reboot");
+    _e_sys_reboot_check_exe = ecore_exe_run(buf, NULL);
+    snprintf(buf, sizeof(buf),
+-            "%s/enlightenment/utils/enlightenment_sys -t suspend",
+-            e_prefix_lib_get());
++            "/run/setuid-programs/enlightenment_sys -t suspend");
+    _e_sys_suspend_check_exe = ecore_exe_run(buf, NULL);
+    snprintf(buf, sizeof(buf),
+-            "%s/enlightenment/utils/enlightenment_sys -t hibernate",
+-            e_prefix_lib_get());
++            "/run/setuid-programs/enlightenment_sys -t hibernate");
+    _e_sys_hibernate_check_exe = ecore_exe_run(buf, NULL);
+    return ECORE_CALLBACK_CANCEL;
+ }
+@@ -1079,8 +1075,7 @@ _e_sys_action_do(E_Sys_Action a, char *param EINA_UNUSED, Eina_Bool raw)
+         /* shutdown -h now */
+         if (e_util_immortal_check()) return 0;
+         snprintf(buf, sizeof(buf),
+-                 "%s/enlightenment/utils/enlightenment_sys halt",
+-                 e_prefix_lib_get());
++                 "/run/setuid-programs/enlightenment_sys halt");
+         if (_e_sys_exe)
+           {
+              if ((ecore_time_get() - _e_sys_begin_time) > 2.0)
+@@ -1114,8 +1109,7 @@ _e_sys_action_do(E_Sys_Action a, char *param EINA_UNUSED, Eina_Bool raw)
+         /* shutdown -r now */
+         if (e_util_immortal_check()) return 0;
+         snprintf(buf, sizeof(buf),
+-                 "%s/enlightenment/utils/enlightenment_sys reboot",
+-                 e_prefix_lib_get());
++                 "/run/setuid-programs/enlightenment_sys reboot");
+         if (_e_sys_exe)
+           {
+              if ((ecore_time_get() - _e_sys_begin_time) > 2.0)
+@@ -1148,8 +1142,7 @@ _e_sys_action_do(E_Sys_Action a, char *param EINA_UNUSED, Eina_Bool raw)
+       case E_SYS_SUSPEND:
+         /* /etc/acpi/sleep.sh force */
+         snprintf(buf, sizeof(buf),
+-                 "%s/enlightenment/utils/enlightenment_sys suspend",
+-                 e_prefix_lib_get());
++                 "/run/setuid-programs/enlightenment_sys suspend");
+         if (_e_sys_exe)
+           {
+              if ((ecore_time_get() - _e_sys_begin_time) > 2.0)
+@@ -1208,8 +1201,7 @@ _e_sys_action_do(E_Sys_Action a, char *param EINA_UNUSED, Eina_Bool raw)
+       case E_SYS_HIBERNATE:
+         /* /etc/acpi/hibernate.sh force */
+         snprintf(buf, sizeof(buf),
+-                 "%s/enlightenment/utils/enlightenment_sys hibernate",
+-                 e_prefix_lib_get());
++                 "/run/setuid-programs/enlightenment_sys hibernate");
+         if (_e_sys_exe)
+           {
+              if ((ecore_time_get() - _e_sys_begin_time) > 2.0)
+diff --git a/src/modules/bluez4/e_mod_main.c b/src/modules/bluez4/e_mod_main.c
+index 4b5148634..47d34b07f 100644
+--- a/src/modules/bluez4/e_mod_main.c
++++ b/src/modules/bluez4/e_mod_main.c
+@@ -49,8 +49,8 @@ _ebluez_l2ping_poller(void *data EINA_UNUSED)
+ 
+    if (tmp)
+      {
+-        eina_strbuf_append_printf(buf, "%s/enlightenment/utils/enlightenment_sys l2ping %s",
+-				  e_prefix_lib_get(), tmp);
++        eina_strbuf_append_printf(buf, "/run/setuid-programs/enlightenment_sys l2ping %s",
++				  tmp);
+ 	autolock_exe = ecore_exe_run(eina_strbuf_string_get(buf), NULL);
+      }
+ 
+@@ -692,8 +692,7 @@ e_modapi_init(E_Module *m)
+    autolock_desklock = ecore_event_handler_add(E_EVENT_DESKLOCK, _ebluez_desklock, NULL);
+ 
+    buf = eina_strbuf_new();
+-   eina_strbuf_append_printf(buf, "%s/enlightenment/utils/enlightenment_sys -t l2ping",
+-			     e_prefix_lib_get());
++   eina_strbuf_append_printf(buf, "/run/setuid-programs/enlightenment_sys -t l2ping");
+    autolock_exe = ecore_exe_run(eina_strbuf_string_get(buf), NULL);
+    eina_strbuf_free(buf);
+ 
+diff --git a/src/modules/cpufreq/e_mod_main.c b/src/modules/cpufreq/e_mod_main.c
+index f4ba259b6..ae228bae3 100644
+--- a/src/modules/cpufreq/e_mod_main.c
++++ b/src/modules/cpufreq/e_mod_main.c
+@@ -1450,8 +1450,7 @@ e_modapi_init(E_Module *m)
+      }
+    E_CONFIG_LIMIT(cpufreq_config->poll_interval, 1, 1024);
+ 
+-   snprintf(buf, sizeof(buf), "%s/%s/freqset",
+-            e_module_dir_get(m), MODULE_ARCH);
++   snprintf(buf, sizeof(buf), "/run/setuid-programs/freqset");
+    cpufreq_config->set_exe_path = strdup(buf);
+    
+    if (stat(buf, &st) < 0)
-- 
2.17.0





Information forwarded to guix-patches <at> gnu.org:
bug#31342; Package guix-patches. (Wed, 02 May 2018 16:48:02 GMT) Full text and rfc822 format available.

Message #11 received at 31342 <at> debbugs.gnu.org (full text, mbox):

From: Efraim Flashner <efraim <at> flashner.co.il>
To: 31342 <at> debbugs.gnu.org
Cc: Efraim Flashner <efraim <at> flashner.co.il>
Subject: [PATCH 2/2] gnu: services: Add Enlightenment desktop service.
Date: Wed,  2 May 2018 19:47:23 +0300
* 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.
---
 doc/guix.texi            | 10 +++----
 gnu/services/desktop.scm | 61 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 66 insertions(+), 5 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index dc9894173..4fd3464ad 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -12584,11 +12584,11 @@ field of an @code{operating-system} declaration (@pxref{operating-system
 Reference, @code{services}}).
 
 Additionally, the @code{gnome-desktop-service},
-@code{xfce-desktop-service} and @code{mate-desktop-service}
-procedures can add GNOME, XFCE and/or MATE 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}
+@code{xfce-desktop-service}, @code{mate-desktop-service} and
+@code{enlightenment-desktop-service} 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} adds the GNOME
diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index 517d5d3ef..605d06c23 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2016 Sou Bunnbu <iyzsong <at> gmail.com>
 ;;; Copyright © 2017 Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
 ;;; Copyright © 2017 Nils Gillmann <ng0 <at> n0.is>
+;;; Copyright © 2018 Efraim Flashner <efraim <at> flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -31,6 +32,7 @@
   #:use-module (gnu services networking)
   #:use-module ((gnu system file-systems)
                 #:select (%elogind-file-systems))
+  #:use-module (gnu system)
   #:use-module (gnu system shadow)
   #:use-module (gnu system pam)
   #:use-module (gnu packages glib)
@@ -44,9 +46,11 @@
   #:use-module (gnu packages linux)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages mate)
+  #:use-module (gnu packages enlightenment)
   #:use-module (guix records)
   #:use-module (guix packages)
   #:use-module (guix store)
+  #:use-module (guix utils)
   #:use-module (guix gexp)
   #:use-module (srfi srfi-1)
   #:use-module (ice-9 match)
@@ -96,6 +100,11 @@
 
             x11-socket-directory-service
 
+            enlightenment-desktop-configuration
+            enlightenment-desktop-configuration?
+            enlightenment-desktop-service
+            enlightenment-desktop-service-type
+
             %desktop-services))
 
 ;;; Commentary:
@@ -899,6 +908,58 @@ with the administrator's password."
                         (let ((directory "/tmp/.X11-unix"))
                           (mkdir-p directory)
                           (chmod directory #o777))))))
+
+;;;
+;;; Enlightenment desktop service.
+;;;
+
+(define-record-type* <enlightenment-desktop-configuration>
+  enlightenment-desktop-configuration
+  make-enlightenment-desktop-configuration
+  enlightenment-desktop-configuration
+  (enlightenment enlightenment-package (default enlightenment)))
+
+(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")
+          (file-append enlightenment
+                       (string-append
+                         "/lib/enlightenment/modules/cpufreq/linux-gnu-"
+                         (string-drop-right (%current-system) 6) ; drop '-linux'
+                         "-"
+                         (version-major+minor (package-version enlightenment))
+                         "/freqset")))))
+
+(define enlightenment-desktop-service-type
+  (service-type
+   (name 'enlightenment-desktop)
+   (extensions
+    (list (service-extension dbus-root-service-type
+                             (compose list
+                                      (package-direct-input-selector
+                                       "efl")
+                                      enlightenment-package))
+          (service-extension setuid-program-service-type
+                             enlightenment-setuid-programs)
+          (service-extension profile-service-type
+                             (compose list
+                                      enlightenment-package))))))
+
+(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))
 
 
 ;;;
-- 
2.17.0





Information forwarded to guix-patches <at> gnu.org:
bug#31342; Package guix-patches. (Mon, 07 May 2018 16:43:02 GMT) Full text and rfc822 format available.

Message #14 received at 31342 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Efraim Flashner <efraim <at> flashner.co.il>
Cc: 31342 <at> debbugs.gnu.org
Subject: Re: [bug#31342] [PATCH 1/2] gnu: enlightenment: Fix setuid program
 locations.
Date: Mon, 07 May 2018 18:42:02 +0200
Efraim Flashner <efraim <at> flashner.co.il> skribis:

> * gnu/packages/enlightenment.scm (enlightenment)[source]: Add patch.
> * gnu/packages/patches/enlightenment-fix-setuid-path.patch: New file.
> * gnu/local.mk (dist_patch_DATA): Register it.

LGTM!




Information forwarded to guix-patches <at> gnu.org:
bug#31342; Package guix-patches. (Mon, 07 May 2018 16:50:02 GMT) Full text and rfc822 format available.

Message #17 received at 31342 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Efraim Flashner <efraim <at> flashner.co.il>
Cc: 31342 <at> debbugs.gnu.org
Subject: Re: [bug#31342] [PATCH 2/2] gnu: services: Add Enlightenment desktop
 service.
Date: Mon, 07 May 2018 18:49:43 +0200
Efraim Flashner <efraim <at> flashner.co.il> 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’.




Information forwarded to guix-patches <at> gnu.org:
bug#31342; Package guix-patches. (Mon, 07 May 2018 19:04:01 GMT) Full text and rfc822 format available.

Message #20 received at 31342 <at> debbugs.gnu.org (full text, mbox):

From: Efraim Flashner <efraim <at> flashner.co.il>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 31342 <at> debbugs.gnu.org
Subject: Re: [bug#31342] [PATCH 2/2] gnu: services: Add Enlightenment desktop
 service.
Date: Mon, 7 May 2018 22:03:27 +0300
[Message part 1 (text/plain, inline)]
On Mon, May 07, 2018 at 06:49:43PM +0200, Ludovic Courtès wrote:
> Efraim Flashner <efraim <at> flashner.co.il> 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?
> 

I'm not sure, enlightenment's screen locker code was refactored in
0.22.2 so that it would behave identically on Linux and BSD, and I'm not
sure that the BSDs use PAM, and it seems to with as-is.

> > +          (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’.

I looked at the xfce service especially, and it actually has the same
fields and declarations as enlightenment. I'd like to leave the option
in place to add '(enlightenment-desktop-service)' to an OS-config since
it is then identical to the other desktop services we have.

-- 
Efraim Flashner   <efraim <at> flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
[0001-gnu-services-Add-Enlightenment-desktop-service.patch (text/plain, attachment)]
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#31342; Package guix-patches. (Tue, 08 May 2018 13:26:01 GMT) Full text and rfc822 format available.

Message #23 received at 31342 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Efraim Flashner <efraim <at> flashner.co.il>
Cc: 31342 <at> debbugs.gnu.org
Subject: Re: [bug#31342] [PATCH 2/2] gnu: services: Add Enlightenment desktop
 service.
Date: Tue, 08 May 2018 15:24:59 +0200
Hello!

Efraim Flashner <efraim <at> flashner.co.il> skribis:

> On Mon, May 07, 2018 at 06:49:43PM +0200, Ludovic Courtès wrote:

[...]

>> Perhaps enlightenment_ckpasswd needs a PAM entry as well, like
>> ‘screen-locker-service-type’ does?
>> 
>
> I'm not sure, enlightenment's screen locker code was refactored in
> 0.22.2 so that it would behave identically on Linux and BSD, and I'm not
> sure that the BSDs use PAM, and it seems to with as-is.

If you confirm it works as-is, that’s fine!

>> > +(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’.
>
> I looked at the xfce service especially, and it actually has the same
> fields and declarations as enlightenment.

Sounds good.

> I'd like to leave the option in place to add
> '(enlightenment-desktop-service)' to an OS-config since it is then
> identical to the other desktop services we have.

This style has been (informally, I admit) deprecated since we introduced
the ‘service’ form.  The recommended way is to write:

  (service enlightenment-service-type)

I agree it’s slightly more verbose, but it’s more “transparent.”

Thanks,
Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#31342; Package guix-patches. (Sun, 13 May 2018 15:38:02 GMT) Full text and rfc822 format available.

Message #26 received at 31342 <at> debbugs.gnu.org (full text, mbox):

From: Efraim Flashner <efraim <at> flashner.co.il>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 31342 <at> debbugs.gnu.org
Subject: Re: [bug#31342] [PATCH 2/2] gnu: services: Add Enlightenment desktop
 service.
Date: Sun, 13 May 2018 18:36:53 +0300
[Message part 1 (text/plain, inline)]
On Tue, May 08, 2018 at 03:24:59PM +0200, Ludovic Courtès wrote:
> Hello!
> 
> Efraim Flashner <efraim <at> flashner.co.il> skribis:
> 
> > On Mon, May 07, 2018 at 06:49:43PM +0200, Ludovic Courtès wrote:
> 
> [...]
> 
> >> Perhaps enlightenment_ckpasswd needs a PAM entry as well, like
> >> ‘screen-locker-service-type’ does?
> >> 
> >
> > I'm not sure, enlightenment's screen locker code was refactored in
> > 0.22.2 so that it would behave identically on Linux and BSD, and I'm not
> > sure that the BSDs use PAM, and it seems to with as-is.
> 
> If you confirm it works as-is, that’s fine!
> 
> >> > +(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’.
> >
> > I looked at the xfce service especially, and it actually has the same
> > fields and declarations as enlightenment.
> 
> Sounds good.
> 
> > I'd like to leave the option in place to add
> > '(enlightenment-desktop-service)' to an OS-config since it is then
> > identical to the other desktop services we have.
> 
> This style has been (informally, I admit) deprecated since we introduced
> the ‘service’ form.  The recommended way is to write:
> 
>   (service enlightenment-service-type)
> 
> I agree it’s slightly more verbose, but it’s more “transparent.”
> 
> Thanks,
> Ludo’.

I think I have it this time. No 'enlightenment-desktop-service', yes
'enlightenment-desktop-service-type', which takes a configure option of
an enlightenment package. I moved the description from up to the
service-type and added a "table" detailing all the configure options
available.

-- 
Efraim Flashner   <efraim <at> flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
[signature.asc (application/pgp-signature, inline)]

bug closed, send any further explanations to 31342 <at> debbugs.gnu.org and Efraim Flashner <efraim <at> flashner.co.il> Request was from Efraim Flashner <efraim <at> flashner.co.il> to control <at> debbugs.gnu.org. (Mon, 21 May 2018 07:58:02 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Mon, 18 Jun 2018 11:24:05 GMT) Full text and rfc822 format available.

This bug report was last modified 6 years and 362 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.