From c42a0fbf097722c8023b6d105f63d92a80907a11 Mon Sep 17 00:00:00 2001 From: José Romildo Malaquias Date: Sat, 11 Nov 2017 15:44:32 -0200 Subject: enlightenment: 0.21.10 -> 0.22.0 - Update to version 0.22.0 - Switch build tools from autotools to meson - Change handling of setuid programs --- pkgs/desktops/enlightenment/enlightenment.nix | 63 +++++++++++++++------------ 1 file changed, 34 insertions(+), 29 deletions(-) (limited to 'pkgs/desktops/enlightenment/enlightenment.nix') diff --git a/pkgs/desktops/enlightenment/enlightenment.nix b/pkgs/desktops/enlightenment/enlightenment.nix index 44cb6809ea4..b1bd4e6b2f3 100644 --- a/pkgs/desktops/enlightenment/enlightenment.nix +++ b/pkgs/desktops/enlightenment/enlightenment.nix @@ -1,51 +1,56 @@ -{ stdenv, fetchurl, pkgconfig, efl, xcbutilkeysyms, libXrandr, libXdmcp, -libxcb, libffi, pam, alsaLib, luajit, bzip2, libpthreadstubs, gdbm, libcap, -mesa_glu, xkeyboard_config, pcre }: +{ stdenv, fetchurl, meson, ninja, pkgconfig, gettext, efl, + xcbutilkeysyms, libXrandr, libXdmcp, libxcb, libffi, pam, alsaLib, + luajit, bzip2, libpthreadstubs, gdbm, libcap, mesa_glu, + xkeyboard_config, pcre +}: stdenv.mkDerivation rec { name = "enlightenment-${version}"; - version = "0.21.10"; + version = "0.22.0"; src = fetchurl { url = "http://download.enlightenment.org/rel/apps/enlightenment/${name}.tar.xz"; - sha256 = "053zmlpjx45xg2rbbxyjh0phhgbsnmsnypzz2bib545klp51bfcv"; + sha256 = "0xmrvryr35idd7fyqgshfhvy2053bs3vwrxbx681pi6rgpdvjghv"; }; - nativeBuildInputs = [ (pkgconfig.override { vanilla = true; }) ]; + nativeBuildInputs = [ + meson + ninja + (pkgconfig.override { vanilla = true; }) + gettext + ]; buildInputs = [ - efl libXdmcp libxcb xcbutilkeysyms libXrandr libffi pam alsaLib - luajit bzip2 libpthreadstubs gdbm pcre + efl + libXdmcp + libxcb + xcbutilkeysyms + libXrandr + libffi + pam + alsaLib + luajit + bzip2 + libpthreadstubs + gdbm + pcre ] ++ stdenv.lib.optionals stdenv.isLinux [ libcap ]; - preConfigure = '' - export USER_SESSION_DIR=$prefix/lib/systemd/user + # Instead of setting owner to root and permissions to setuid/setgid + # (which is not allowed for files in /nix/store) of some + # enlightenment programs, the file $out/e-wrappers.nix is created, + # containing the needed configuration for that purpose. It can be + # used in the enlightenment module. + patches = [ ./enlightenment.suid-exes.patch ]; - substituteInPlace src/modules/xkbswitch/e_mod_parse.c \ - --replace "/usr/share/X11/xkb/rules/xorg.lst" "${xkeyboard_config}/share/X11/xkb/rules/base.lst" - - substituteInPlace "src/bin/e_import_config_dialog.c" \ - --replace "e_prefix_bin_get()" "\"${efl}/bin\"" - ''; + mesonFlags = [ "-Dsystemdunitdir=lib/systemd/user" ]; enableParallelBuilding = true; - # this is a hack and without this cpufreq module is not working. does the following: - # 1. moves the "freqset" binary to "e_freqset", - # 2. linkes "e_freqset" to enlightenment/bin so that, - # 3. wrappers.setuid detects it and places wrappers in /run/wrappers/bin/e_freqset, - # 4. and finally, links /run/wrappers/bin/e_freqset to original destination where enlightenment wants it - postInstall = '' - export CPUFREQ_DIRPATH=`readlink -f $out/lib/enlightenment/modules/cpufreq/linux-gnu-*`; - mv $CPUFREQ_DIRPATH/freqset $CPUFREQ_DIRPATH/e_freqset - ln -sv $CPUFREQ_DIRPATH/e_freqset $out/bin/e_freqset - ln -sv /run/wrappers/bin/e_freqset $CPUFREQ_DIRPATH/freqset - ''; - meta = with stdenv.lib; { description = "The Compositing Window Manager and Desktop Shell"; - homepage = http://enlightenment.org/; + homepage = https://www.enlightenment.org; license = licenses.bsd2; platforms = platforms.linux; maintainers = with maintainers; [ matejc tstrobel ftrvxmtrx romildo ]; -- cgit 1.4.1