gnu: enlightenment: Update to 0.24.0.

* gnu/packages/enlightenment.scm (enlightenment): Update to 0.24.0.
[arguments]: Change configure-flags to hardcode efl binary locations.
Remove custom 'fix-dot-desktop-creation phase. Update 'set-system-actions
phase.
* gnu/packages/patches/enlightenment-fix-setuid-path.patch: Update for
new upstream version.
* gnu/services/desktop.scm (enlightenment-setuid-programs): Same.
This commit is contained in:
Efraim Flashner 2020-05-11 10:12:32 +03:00
parent 75c5b027ae
commit 2ae11cd0a4
No known key found for this signature in database
GPG key ID: 41AAE7DCCA3D8351
3 changed files with 69 additions and 224 deletions

View file

@ -292,7 +292,7 @@ (define-public rage
(define-public enlightenment (define-public enlightenment
(package (package
(name "enlightenment") (name "enlightenment")
(version "0.23.1") (version "0.24.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (uri
@ -300,27 +300,27 @@ (define-public enlightenment
"enlightenment/enlightenment-" version ".tar.xz")) "enlightenment/enlightenment-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0d1cyl07w9pvi2pf029kablazks2q9aislzl46b6fq5m1465jc75")) "01053hxdmyjfb6gmz1pqmw0llrgc4356np515h5vsqcn59mhvfz7"))
(patches (search-patches "enlightenment-fix-setuid-path.patch")))) (patches (search-patches "enlightenment-fix-setuid-path.patch"))))
(build-system meson-build-system) (build-system meson-build-system)
(arguments (arguments
`(#:configure-flags '("-Dsystemd=false") `(#:configure-flags
(let ((efl (assoc-ref %build-inputs "efl")))
(list "-Dsystemd=false"
"-Dpackagekit=false"
(string-append "-Dedje-cc=" efl "/bin/edje_cc")
(string-append "-Deldbus-codegen=" efl "/bin/eldbus-codegen")
(string-append "-Deet=" efl "/bin/eet")))
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(delete 'bootstrap) ; We don't want to run the autogen script. (delete 'bootstrap) ; We don't want to run the autogen script.
(add-after 'unpack 'fix-dot-desktop-creation
(lambda _
(substitute* "data/session/meson.build"
(("HAVE_WAYLAND'.*") "HAVE_WAYLAND') == true\n"))
#t))
(add-before 'configure 'set-system-actions (add-before 'configure 'set-system-actions
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(setenv "HOME" "/tmp") (setenv "HOME" "/tmp")
(let ((xkeyboard (assoc-ref inputs "xkeyboard-config")) (let ((xkeyboard (assoc-ref inputs "xkeyboard-config"))
(setxkbmap (assoc-ref inputs "setxkbmap")) (setxkbmap (assoc-ref inputs "setxkbmap"))
(utils (assoc-ref inputs "util-linux")) (utils (assoc-ref inputs "util-linux"))
(libc (assoc-ref inputs "libc")) (libc (assoc-ref inputs "libc"))
(bluez (assoc-ref inputs "bluez"))
(bc (assoc-ref inputs "bc")) (bc (assoc-ref inputs "bc"))
(efl (assoc-ref inputs "efl"))) (efl (assoc-ref inputs "efl")))
;; We need to patch the path to 'base.lst' to be able ;; We need to patch the path to 'base.lst' to be able
@ -337,23 +337,22 @@ (define-public enlightenment
"src/modules/conf_intl/e_int_config_intl.c" "src/modules/conf_intl/e_int_config_intl.c"
"src/modules/wizard/page_010.c") "src/modules/wizard/page_010.c")
(("locale -a") (string-append libc "/bin/locale -a"))) (("locale -a") (string-append libc "/bin/locale -a")))
(substitute* "src/bin/e_import_config_dialog.c"
(("%s/edje_cc -v %s %s %s\", e_prefix_bin_get\\(\\)")
(string-append efl "/bin/edje_cc -v %s %s %s\"")))
(substitute* "src/modules/everything/evry_plug_apps.c" (substitute* "src/modules/everything/evry_plug_apps.c"
(("/usr/bin/") "")) (("/usr/bin/") ""))
(substitute* '("src/bin/e_sys_main.c"
"src/bin/e_util_suid.h")
(("PATH=/bin:/usr/bin:/sbin:/usr/sbin")
(string-append "PATH=/run/setuid-programs:"
"/run/current-system/profile/bin:"
"/run/current-system/profile/sbin")))
(substitute* "src/modules/everything/evry_plug_calc.c" (substitute* "src/modules/everything/evry_plug_calc.c"
(("bc -l") (string-append bc "/bin/bc -l"))) (("bc -l") (string-append bc "/bin/bc -l")))
(substitute* "data/etc/meson.build" (substitute* "data/etc/meson.build"
(("/bin/mount") "/run/setuid-programs/mount") (("/bin/mount") "/run/setuid-programs/mount")
(("/bin/umount") "/run/setuid-programs/umount") (("/bin/umount") "/run/setuid-programs/umount")
(("/usr/bin/eject") (string-append utils "/bin/eject")) (("/usr/bin/eject") (string-append utils "/bin/eject")))
(("/usr/bin/l2ping") (string-append bluez "/bin/l2ling")) (substitute* "src/bin/system/e_system_power.c"
(("/bin/rfkill") (string-append utils "/sbin/rfkill")) (("systemctl") "loginctl"))
(("SUSPEND = ''") "SUSPEND = '/run/current-system/profile/bin/loginctl suspend'")
(("HIBERNATE = ''") "HIBERNATE = '/run/current-system/profile/bin/loginctl hibernate'")
(("/sbin/shutdown -h now") "/run/current-system/profile/bin/loginctl poweroff now")
(("/sbin/shutdown -r now") "/run/current-system/profile/bin/loginctl reboot now"))
#t)))))) #t))))))
(native-inputs (native-inputs
`(("gettext" ,gettext-minimal) `(("gettext" ,gettext-minimal)

View file

@ -1,34 +1,31 @@
diff --git a/src/bin/e_auth.c b/src/bin/e_auth.c diff --git a/src/bin/e_auth.c b/src/bin/e_auth.c
index 00b0e5d84..98ab4518f 100644 index 8b0aa6641..f15d2c2a2 100644
--- a/src/bin/e_auth.c --- a/src/bin/e_auth.c
+++ b/src/bin/e_auth.c +++ b/src/bin/e_auth.c
@@ -9,8 +9,7 @@ e_auth_begin(char *passwd) @@ -11,9 +11,7 @@ e_auth_begin(char *passwd)
pwlen = strlen(passwd);
if (pwlen == 0) goto out;
if (strlen(passwd) == 0) goto out; - snprintf(buf, sizeof(buf),
- "%s/enlightenment/utils/enlightenment_ckpasswd pw",
- snprintf(buf, sizeof(buf), "%s/enlightenment/utils/enlightenment_ckpasswd",
- e_prefix_lib_get()); - e_prefix_lib_get());
+ snprintf(buf, sizeof(buf), "/run/setuid-programs/enlightenment_ckpasswd"); + snprintf(buf, sizeof(buf), "/run/setuid-programs/enlightenment_ckpasswd");
exe = ecore_exe_pipe_run(buf, ECORE_EXE_PIPE_WRITE, NULL); exe = ecore_exe_pipe_run(buf, ECORE_EXE_PIPE_WRITE, NULL);
if (ecore_exe_send(exe, passwd, strlen(passwd)) != EINA_TRUE) goto out; if (!exe) goto out;
diff --git a/src/bin/e_backlight.c b/src/bin/e_backlight.c if (ecore_exe_send(exe, passwd, pwlen) != EINA_TRUE) goto out;
index 2bced6766..208e583ba 100644 @@ -46,9 +44,7 @@ e_auth_polkit_begin(char *passwd, const char *cookie, unsigned int uid)
--- a/src/bin/e_backlight.c pwlen = strlen(passwd);
+++ b/src/bin/e_backlight.c if (pwlen == 0) goto out;
@@ -521,8 +521,8 @@ _bl_sys_level_set(double val)
} - snprintf(buf, sizeof(buf),
// fprintf(stderr, "SET: %1.3f\n", val); - "%s/enlightenment/utils/enlightenment_ckpasswd pk",
snprintf(buf, sizeof(buf), - e_prefix_lib_get());
- "%s/enlightenment/utils/enlightenment_backlight %i %s", + snprintf(buf, sizeof(buf), "/run/setuid-programs/enlightenment_ckpasswd");
- e_prefix_lib_get(), (int)(val * 1000.0), bl_sysval); exe = ecore_exe_pipe_run(buf, ECORE_EXE_PIPE_WRITE, NULL);
+ "/run/setuid-programs/enlightenment_backlight %i %s", if (!exe) goto out;
+ (int)(val * 1000.0), bl_sysval); snprintf(buf, sizeof(buf), "%s %u %s", cookie, uid, passwd);
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 diff --git a/src/bin/e_fm/e_fm_main_eeze.c b/src/bin/e_fm/e_fm_main_eeze.c
index 0fcffa249..c1921121d 100644 index 9b10b3117..74e6b72ad 100644
--- a/src/bin/e_fm/e_fm_main_eeze.c --- a/src/bin/e_fm/e_fm_main_eeze.c
+++ b/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) @@ -318,7 +318,7 @@ _e_fm_main_eeze_volume_eject(E_Volume *v)
@ -58,163 +55,29 @@ index 0fcffa249..c1921121d 100644
eeze_disk_mount_wrapper_set(v->disk, buf2); 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); 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 diff --git a/src/bin/e_start_main.c b/src/bin/e_start_main.c
index 671fbcd9a..90ee04cf1 100644 index b2c439455..cb16c7bd4 100644
--- a/src/bin/e_sys.c --- a/src/bin/e_start_main.c
+++ b/src/bin/e_sys.c +++ b/src/bin/e_start_main.c
@@ -702,20 +702,16 @@ _e_sys_cb_timer(void *data EINA_UNUSED) @@ -710,7 +710,7 @@ main(int argc, char **argv)
"E_ALERT_FONT_DIR=%s/data/fonts", eina_prefix_data_get(pfx));
putenv(buf2);
snprintf(buf3, sizeof(buf3),
- "E_ALERT_SYSTEM_BIN=%s/enlightenment/utils/enlightenment_system", eina_prefix_lib_get(pfx));
+ "E_ALERT_SYSTEM_BIN=/run/setuid-programs/enlightenment_system");
putenv(buf3);
e_init_status_set(_("Checking System Permissions")); if ((valgrind_mode || valgrind_tool) &&
diff --git a/src/bin/e_system.c b/src/bin/e_system.c
index 1e7aabb64..dc0173219 100644
--- a/src/bin/e_system.c
+++ b/src/bin/e_system.c
@@ -132,7 +132,7 @@ _system_spawn(void)
else _respawn_count = 0;
if (_respawn_count > 5) return;
snprintf(buf, sizeof(buf), snprintf(buf, sizeof(buf),
- "%s/enlightenment/utils/enlightenment_sys -t halt", - "%s/enlightenment/utils/enlightenment_system", e_prefix_lib_get());
- e_prefix_lib_get()); + "/run/setuid-programs/enlightenment_system");
+ "/run/setuid-programs/enlightenment_sys -t halt"); _system_exe = ecore_exe_pipe_run
_e_sys_halt_check_exe = ecore_exe_run(buf, NULL); (buf, ECORE_EXE_NOT_LEADER | ECORE_EXE_TERM_WITH_PARENT |
snprintf(buf, sizeof(buf), ECORE_EXE_PIPE_READ | ECORE_EXE_PIPE_WRITE, NULL);
- "%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;
}
@@ -1134,8 +1130,7 @@ _e_sys_action_do(E_Sys_Action a, char *param EINA_UNUSED, Eina_Bool raw)
if (e_util_immortal_check()) return 0;
e_fm2_die();
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)
@@ -1170,8 +1165,7 @@ _e_sys_action_do(E_Sys_Action a, char *param EINA_UNUSED, Eina_Bool raw)
if (e_util_immortal_check()) return 0;
e_fm2_die();
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)
@@ -1204,8 +1198,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)
@@ -1265,8 +1258,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/bluez5/e_mod_main.c b/src/modules/bluez5/e_mod_main.c
index a581c466c..095d8f360 100644
--- a/src/modules/bluez5/e_mod_main.c
+++ b/src/modules/bluez5/e_mod_main.c
@@ -321,8 +321,8 @@ ebluez5_rfkill_unblock(const char *name)
if (buf)
{
eina_strbuf_append_printf
- (buf, "%s/enlightenment/utils/enlightenment_sys rfkill-unblock %s",
- e_prefix_lib_get(), name);
+ (buf, "/run/setuid-programs/enlightenment_sys rfkill-unblock %s",
+ name);
_rfkill_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 b66b365d8..bab0802cc 100644
--- a/src/modules/cpufreq/e_mod_main.c
+++ b/src/modules/cpufreq/e_mod_main.c
@@ -1452,8 +1452,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)
diff --git a/src/modules/sysinfo/cpuclock/cpuclock.c b/src/modules/sysinfo/cpuclock/cpuclock.c
index 938916e53..00d5067d0 100644
--- a/src/modules/sysinfo/cpuclock/cpuclock.c
+++ b/src/modules/sysinfo/cpuclock/cpuclock.c
@@ -80,8 +80,7 @@ _cpuclock_set_governor(const char *governor)
char buf[4096 + 100], exe[4096];
struct stat st;
- snprintf(exe, 4096, "%s/%s/cpuclock_sysfs",
- e_module_dir_get(sysinfo_config->module), MODULE_ARCH);
+ snprintf(exe, 4096, "/run/setuid-programs/cpuclock_sysfs");
if (stat(exe, &st) < 0) return;
snprintf(buf, sizeof(buf),
@@ -108,8 +107,7 @@ _cpuclock_set_frequency(int frequency)
if (system(buf) != 0)
ERR("Error code from trying to run \"%s\"", buf);
#else
- snprintf(exe, 4096, "%s/%s/cpuclock_sysfs",
- e_module_dir_get(sysinfo_config->module), MODULE_ARCH);
+ snprintf(exe, 4096, "/run/setuid-programs/cpuclock_sysfs");
if (stat(exe, &st) < 0) return;
snprintf(buf, sizeof(buf),
"%s %s %i", exe, "frequency", frequency);
@@ -127,8 +125,7 @@ _cpuclock_set_pstate(int min, int max, int turbo)
char buf[4096 + 100], exe[4096];
struct stat st;
- snprintf(exe, 4096, "%s/%s/cpuclock_sysfs",
- e_module_dir_get(sysinfo_config->module), MODULE_ARCH);
+ snprintf(exe, 4096, "/run/setuid-programs/cpuclock_sysfs");
if (stat(exe, &st) < 0) return;
snprintf(buf, sizeof(buf),
"%s %s %i %i %i", exe, "pstate", min, max, turbo);
--
2.23.0

View file

@ -1036,29 +1036,12 @@ (define (enlightenment-setuid-programs enlightenment-desktop-configuration)
(match-record enlightenment-desktop-configuration (match-record enlightenment-desktop-configuration
<enlightenment-desktop-configuration> <enlightenment-desktop-configuration>
(enlightenment) (enlightenment)
(let ((module-arch (match (string-tokenize (%current-system) (list (file-append enlightenment
(char-set-complement (char-set #\-))) "/lib/enlightenment/utils/enlightenment_sys")
((arch "linux") (string-append "linux-gnu-" arch)) (file-append enlightenment
((arch "gnu") (string-append "gnu-" arch))))) "/lib/enlightenment/utils/enlightenment_system")
(list (file-append enlightenment (file-append enlightenment
"/lib/enlightenment/utils/enlightenment_sys") "/lib/enlightenment/utils/enlightenment_ckpasswd"))))
(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/"
module-arch "-"
(package-version enlightenment)
"/freqset"))
(file-append enlightenment
(string-append
"/lib/enlightenment/modules/sysinfo/"
module-arch "-"
(package-version enlightenment)
"/cpuclock_sysfs"))))))
(define enlightenment-desktop-service-type (define enlightenment-desktop-service-type
(service-type (service-type