about summary refs log tree commit diff
path: root/pkgs/desktops/enlightenment/enlightenment.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/desktops/enlightenment/enlightenment.nix')
-rw-r--r--pkgs/desktops/enlightenment/enlightenment.nix77
1 files changed, 32 insertions, 45 deletions
diff --git a/pkgs/desktops/enlightenment/enlightenment.nix b/pkgs/desktops/enlightenment/enlightenment.nix
index 8ba0dffc8a4d..833a3ba29ac5 100644
--- a/pkgs/desktops/enlightenment/enlightenment.nix
+++ b/pkgs/desktops/enlightenment/enlightenment.nix
@@ -1,19 +1,29 @@
-{ stdenv, fetchurl, meson, ninja, pkgconfig, gettext, alsaLib, bc,
-  bzip2, efl, gdbm, libXdmcp, libXrandr, libcap, libffi,
-  libpthreadstubs, libxcb, luajit, mesa, pam, pcre, xcbutilkeysyms,
-  xkeyboard_config,
+{ stdenv
+, fetchurl
+, meson
+, ninja
+, pkgconfig
+, gettext
+, alsaLib
+, acpid
+, bc
+, ddcutil
+, efl
+, pam
+, xkeyboard_config
+, udisks2
 
-  bluetoothSupport ? true, bluez5,
-  pulseSupport ? !stdenv.isDarwin, libpulseaudio,
+, bluetoothSupport ? true, bluez5
+, pulseSupport ? !stdenv.isDarwin, libpulseaudio
 }:
 
 stdenv.mkDerivation rec {
   pname = "enlightenment";
-  version = "0.23.1";
+  version = "0.24.0";
 
   src = fetchurl {
     url = "http://download.enlightenment.org/rel/apps/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "0d1cyl07w9pvi2pf029kablazks2q9aislzl46b6fq5m1465jc75";
+    sha256 = "01053hxdmyjfb6gmz1pqmw0llrgc4356np515h5vsqcn59mhvfz7";
   };
 
   nativeBuildInputs = [
@@ -25,58 +35,35 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     alsaLib
-    bc  # for the Everything module calculator mode
-    bzip2
+    acpid # for systems with ACPI for lid events, AC/Battery plug in/out etc
+    bc # for the Everything module calculator mode
+    ddcutil # specifically libddcutil.so.2 for backlight control
     efl
-    gdbm
-    libXdmcp
-    libXrandr
-    libffi
-    libpthreadstubs
-    libxcb
-    luajit
-    mesa
     pam
-    pcre
-    xcbutilkeysyms
     xkeyboard_config
+    udisks2 # for removable storage mounting/unmounting
   ]
-  ++ stdenv.lib.optional stdenv.isLinux libcap
-  ++ stdenv.lib.optional bluetoothSupport bluez5
-  ++ stdenv.lib.optional pulseSupport libpulseaudio
+  ++ stdenv.lib.optional bluetoothSupport bluez5 # for bluetooth configuration and control
+  ++ stdenv.lib.optional pulseSupport libpulseaudio # for proper audio device control and redirection
   ;
 
   patches = [
-    # Some programs installed by enlightenment (to set the cpu frequency,
-    # for instance) need root ownership and setuid/setgid permissions, which
-    # are not allowed for files in /nix/store. Instead of allowing the
-    # installer to try to do this, the file $out/e-wrappers.nix is created,
-    # containing the needed configuration for wrapping those programs. It
-    # can be used in the enlightenment module. The idea is:
-    #
-    #  1) rename the original binary adding the extension .orig
-    #  2) wrap the renamed binary at /run/wrappers/bin/
-    #  3) create a new symbolic link using the original binary name (in the
-    #     original directory where enlightenment wants it) pointing to the
-    #     wrapper
-
-    ./enlightenment.suid-exes.patch
+    # Executables cannot be made setuid in nix store. They should be
+    # wrapped in the enlightenment service module, and the wrapped
+    # executables should be used instead.
+    ./0001-wrapped-setuid-executables.patch
   ];
 
   postPatch = ''
-    # edge_cc is a binary provided by efl and cannot be found at the directory
-    # given by e_prefix_bin_get(), which is $out/bin
-
-    substituteInPlace src/bin/e_import_config_dialog.c \
-      --replace "e_prefix_bin_get()" "\"${efl}/bin\""
-
     substituteInPlace src/modules/everything/evry_plug_calc.c \
       --replace "ecore_exe_pipe_run(\"bc -l\"" "ecore_exe_pipe_run(\"${bc}/bin/bc -l\""
   '';
 
-  mesonFlags = [ "-Dsystemdunitdir=lib/systemd/user" ];
+  mesonFlags = [
+    "-D systemdunitdir=lib/systemd/user"
+  ];
 
-  enableParallelBuilding = true;
+  passthru.providedSessions = [ "enlightenment" ];
 
   meta = with stdenv.lib; {
     description = "The Compositing Window Manager and Desktop Shell";