summary refs log tree commit diff
path: root/pkgs/desktops/enlightenment
diff options
context:
space:
mode:
authorNikolay Amiantov <ab@fmap.me>2016-03-12 02:43:40 +0300
committerNikolay Amiantov <ab@fmap.me>2016-03-12 03:10:37 +0300
commite358d9498c493a3e53769e0514afed8836ae0b3e (patch)
tree2b7bb4204b1de01e1d9415cfd6b59c56873e899f /pkgs/desktops/enlightenment
parent0bf8a1a86df67649893726d50761567121330006 (diff)
downloadnixpkgs-e358d9498c493a3e53769e0514afed8836ae0b3e.tar
nixpkgs-e358d9498c493a3e53769e0514afed8836ae0b3e.tar.gz
nixpkgs-e358d9498c493a3e53769e0514afed8836ae0b3e.tar.bz2
nixpkgs-e358d9498c493a3e53769e0514afed8836ae0b3e.tar.lz
nixpkgs-e358d9498c493a3e53769e0514afed8836ae0b3e.tar.xz
nixpkgs-e358d9498c493a3e53769e0514afed8836ae0b3e.tar.zst
nixpkgs-e358d9498c493a3e53769e0514afed8836ae0b3e.zip
e19: rename to enlightenment, drop old one
Diffstat (limited to 'pkgs/desktops/enlightenment')
-rw-r--r--pkgs/desktops/enlightenment/default.nix41
-rw-r--r--pkgs/desktops/enlightenment/econnman.nix23
-rw-r--r--pkgs/desktops/enlightenment/efl-elua.patch14
-rw-r--r--pkgs/desktops/enlightenment/efl.nix56
-rw-r--r--pkgs/desktops/enlightenment/elementary.nix20
-rw-r--r--pkgs/desktops/enlightenment/elementary.patch18
-rw-r--r--pkgs/desktops/enlightenment/emotion.nix18
-rw-r--r--pkgs/desktops/enlightenment/enlightenment.nix47
-rw-r--r--pkgs/desktops/enlightenment/evas.nix17
-rw-r--r--pkgs/desktops/enlightenment/rage.nix31
-rw-r--r--pkgs/desktops/enlightenment/terminology.nix17
11 files changed, 275 insertions, 27 deletions
diff --git a/pkgs/desktops/enlightenment/default.nix b/pkgs/desktops/enlightenment/default.nix
index 5aa3d781e4b..b285498be9d 100644
--- a/pkgs/desktops/enlightenment/default.nix
+++ b/pkgs/desktops/enlightenment/default.nix
@@ -1,29 +1,16 @@
-{ stdenv, fetchurl, pkgconfig, xlibsWrapper, xorg, dbus, imlib2, freetype }:
+{ callPackage, pkgs }:
+rec {
+  #### CORE EFL
+  efl = callPackage ./efl.nix { openjpeg = pkgs.openjpeg_1; };
+  evas = callPackage ./evas.nix { };
+  emotion = callPackage ./emotion.nix { };
+  elementary = callPackage ./elementary.nix { };
 
-let version = "0.16.8.15"; in
-  stdenv.mkDerivation {
-    name = "enlightenment-${version}";
+  #### WINDOW MANAGER
+  enlightenment = callPackage ./enlightenment.nix { };
 
-    src = fetchurl {
-      url = "mirror://sourceforge/enlightenment/e16-${version}.tar.gz";
-      sha256 = "0f8hg79mrk6b3fsvynvsrnqh1zgmvnnza0lf7qn4pq2mqyigbhgk";
-    };
-
-    buildInputs = [pkgconfig imlib2 freetype 
-      xorg.libX11 xorg.libXt xorg.libXext xorg.libXrender xorg.libXft ];
-
-    meta = {
-      description = "Desktop shell built on the Enlightenment Foundation Libraries";
-
-      longDescription = ''
-        Enlightenment is a window manager.  Enlightenment is a desktop
-        shell.  Enlightenment is the building blocks to create
-        beautiful applications.  Enlightenment, or simply e, is a
-        group of people trying to make a new generation of software.
-      '';
-
-      homepage = http://enlightenment.org/;
-
-      license = "BSD-style";
-    };
-  }
+  #### APPLICATIONS
+  econnman = callPackage ./econnman.nix { };
+  terminology = callPackage ./terminology.nix { };
+  rage = callPackage ./rage.nix { };
+}
diff --git a/pkgs/desktops/enlightenment/econnman.nix b/pkgs/desktops/enlightenment/econnman.nix
new file mode 100644
index 00000000000..f1ffe7cd604
--- /dev/null
+++ b/pkgs/desktops/enlightenment/econnman.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, pkgconfig, efl, elementary, python27, python27Packages, dbus, makeWrapper }:
+stdenv.mkDerivation rec {
+  name = "econnman-${version}";
+  version = "1.1";
+  src = fetchurl {
+    url = "http://download.enlightenment.org/rel/apps/econnman/${name}.tar.gz";
+    sha256 = "057pwwavlvrrq26bncqnfrf449zzaim0zq717xv86av4n940gwv0";
+  };
+
+  buildInputs = [ makeWrapper pkgconfig efl python27 dbus ];
+  propagatedBuildInputs = [ python27Packages.pythonefl python27Packages.dbus elementary ];
+  postInstall = ''
+    wrapProgram $out/bin/econnman-bin --prefix PYTHONPATH : ${python27Packages.dbus}/lib/python2.7/site-packages:${python27Packages.pythonefl}/lib/python2.7/site-packages
+  '';
+
+  meta = {
+    description = "A user interface for the connman network connection manager";
+    homepage = http://enlightenment.org/;
+    maintainers = with stdenv.lib.maintainers; [ matejc tstrobel ftrvxmtrx ];
+    platforms = stdenv.lib.platforms.linux;
+    license = stdenv.lib.licenses.lgpl3;
+  };
+}
diff --git a/pkgs/desktops/enlightenment/efl-elua.patch b/pkgs/desktops/enlightenment/efl-elua.patch
new file mode 100644
index 00000000000..96c42b3ff3c
--- /dev/null
+++ b/pkgs/desktops/enlightenment/efl-elua.patch
@@ -0,0 +1,14 @@
+--- ./src/scripts/elua/core/util.lua.old	2015-05-17 11:59:57.307743243 +0200
++++ ./src/scripts/elua/core/util.lua	2015-05-17 12:39:11.906797377 +0200
+@@ -159,7 +159,10 @@
+         local ev = os.getenv("ELUA_" .. libname:upper() .. "_LIBRARY_PATH")
+         local succ, v = load_lib(libname, ev)
+         if not succ then
+-            error(v, 2)
++            succ, v = load_lib(libname, "$out/lib")
++            if not succ then
++                error(v, 2)
++            end
+         end
+         lib = v
+         loaded_libs[libname] = lib
diff --git a/pkgs/desktops/enlightenment/efl.nix b/pkgs/desktops/enlightenment/efl.nix
new file mode 100644
index 00000000000..dd9c837ed8b
--- /dev/null
+++ b/pkgs/desktops/enlightenment/efl.nix
@@ -0,0 +1,56 @@
+{ stdenv, fetchurl, pkgconfig, openssl, libjpeg, zlib, freetype, fontconfig, fribidi, SDL2, SDL, mesa, giflib, libpng, libtiff, glib, gst_all_1, libpulseaudio, libsndfile, xorg, libdrm, libxkbcommon, udev, utillinux, dbus, bullet, luajit, python27Packages, openjpeg, doxygen, expat, harfbuzz, jbig2dec, librsvg, dbus_libs, alsaLib, poppler, libraw, libspectre, xineLib, libwebp, curl, libinput }:
+
+
+stdenv.mkDerivation rec {
+  name = "efl-${version}";
+  version = "1.16.1";
+  src = fetchurl {
+    url = "http://download.enlightenment.org/rel/libs/efl/${name}.tar.xz";
+    sha256 = "116s4lcfj5lrfhyvvka3np9glqyrh21cyl9rhw7al0wgb60vw0gg";
+  };
+
+  buildInputs = [ pkgconfig openssl zlib freetype fontconfig fribidi SDL2 SDL mesa
+    giflib libpng libtiff glib gst_all_1.gstreamer gst_all_1.gst-plugins-base
+    gst_all_1.gst-libav libpulseaudio libsndfile xorg.libXcursor xorg.printproto
+    xorg.libX11 udev utillinux ];
+
+  propagatedBuildInputs = [ libxkbcommon python27Packages.dbus dbus libjpeg xorg.libXcomposite
+    xorg.libXdamage xorg.libXinerama xorg.libXp xorg.libXtst xorg.libXi xorg.libXext
+    bullet xorg.libXScrnSaver xorg.libXrender xorg.libXfixes xorg.libXrandr
+    xorg.libxkbfile xorg.libxcb xorg.xcbutilkeysyms openjpeg doxygen expat luajit
+    harfbuzz jbig2dec librsvg dbus_libs alsaLib poppler libraw libspectre xineLib libwebp curl libdrm
+    libinput ];
+
+  # ac_ct_CXX must be set to random value, because then it skips some magic which does alternative searching for g++
+  configureFlags = [ "--with-tests=none" "--enable-sdl" "--enable-drm" "--with-opengl=full"
+    "--enable-image-loader-jp2k" "--enable-xinput22" "--enable-multisense" "--enable-systemd"
+    "--enable-image-loader-webp" "--enable-harfbuzz" "--enable-xine" "--enable-fb"
+    "--disable-tslib" "--with-systemdunitdir=$out/systemd/user"
+    "ac_ct_CXX=foo" ];
+
+  NIX_CFLAGS_COMPILE = [ "-I${xorg.libXtst}" "-I${dbus_libs}/include/dbus-1.0" "-I${dbus_libs}/lib/dbus-1.0/include" ];
+
+  patches = [ ./efl-elua.patch ];
+
+  preConfigure = ''
+    export PKG_CONFIG_PATH="${gst_all_1.gst-plugins-base}/lib/pkgconfig/gstreamer-video-0.10.pc:$PKG_CONFIG_PATH"
+    export LD_LIBRARY_PATH="$(pwd)/src/lib/eina/.libs:$LD_LIBRARY_PATH"
+  '';
+
+  postInstall = ''
+    substituteInPlace "$out/share/elua/core/util.lua" --replace '$out' "$out"
+    modules=$(for i in "$out/include/"*/; do printf ' -I''${includedir}/'`basename $i`; done)
+    substituteInPlace "$out/lib/pkgconfig/efl.pc" --replace 'Cflags: -I''${includedir}/efl-1' \
+      'Cflags: -I''${includedir}/eina-1/eina'"$modules"
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "Enlightenment Core libraries";
+    homepage = http://enlightenment.org/;
+    maintainers = with stdenv.lib.maintainers; [ matejc tstrobel ftrvxmtrx ];
+    platforms = stdenv.lib.platforms.linux;
+    license = stdenv.lib.licenses.lgpl3;
+  };
+}
diff --git a/pkgs/desktops/enlightenment/elementary.nix b/pkgs/desktops/enlightenment/elementary.nix
new file mode 100644
index 00000000000..a1a4b955d9e
--- /dev/null
+++ b/pkgs/desktops/enlightenment/elementary.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, pkgconfig, efl, libcap, automake114x, autoconf, libdrm, gdbm }:
+stdenv.mkDerivation rec {
+  name = "elementary-${version}";
+  version = "1.16.1";
+  src = fetchurl {
+    url = "http://download.enlightenment.org/rel/libs/elementary/${name}.tar.xz";
+    sha256 = "0q58imh7s35q6cq5hsa6gqj84rkckh8s61iass8zyvcw19j66f3y";
+  };
+  buildInputs = [ pkgconfig efl libdrm gdbm automake114x autoconf ] ++ stdenv.lib.optionals stdenv.isLinux [ libcap ];
+  NIX_CFLAGS_COMPILE = [ "-I${libdrm}/include/libdrm" ];
+  patches = [ ./elementary.patch ];
+  enableParallelBuilding = true;
+  meta = {
+    description = "Widget set/toolkit";
+    homepage = http://enlightenment.org/;
+    maintainers = with stdenv.lib.maintainers; [ matejc tstrobel ftrvxmtrx ];
+    platforms = stdenv.lib.platforms.linux;
+    license = stdenv.lib.licenses.lgpl2;
+  };
+}
diff --git a/pkgs/desktops/enlightenment/elementary.patch b/pkgs/desktops/enlightenment/elementary.patch
new file mode 100644
index 00000000000..32080c81cb3
--- /dev/null
+++ b/pkgs/desktops/enlightenment/elementary.patch
@@ -0,0 +1,18 @@
+--- a/elementary.pc.in	2015-05-16 21:08:14.321148417 +0200
++++ b/elementary.pc.in	2015-05-16 21:08:30.643412725 +0200
+@@ -14,4 +14,4 @@
+ Requires.private: @requirement_elm_pc@
+ Version: @VERSION@
+ Libs: -L${libdir} -lelementary @ELEMENTARY_PC_LIBS@
+-Cflags: -I${includedir}/elementary-@VMAJ@
++Cflags: -I${includedir}/elementary-@VMAJ@ @ELEMENTARY_PC_CFLAGS@
+--- a/Makefile.am	2015-05-16 21:08:14.322148433 +0200
++++ b/Makefile.am	2015-05-16 21:08:30.643412725 +0200
+@@ -84,6 +84,7 @@
+ -e 's,@requirement_elm_pc\@,$(requirement_elm_pc),g' \
+ -e 's,@ELEMENTARY_LIBS\@,$(ELEMENTARY_LIBS),g' \
+ -e 's,@ELEMENTARY_PC_LIBS\@,$(ELEMENTARY_PC_LIBS),g' \
++-e 's,@ELEMENTARY_PC_CFLAGS\@,$(ELEMENTARY_PC_CFLAGS),g' \
+ < $< > $@ || rm $@
+ 
+ pc_verbose = $(pc_verbose_@AM_V@)
diff --git a/pkgs/desktops/enlightenment/emotion.nix b/pkgs/desktops/enlightenment/emotion.nix
new file mode 100644
index 00000000000..282ef81ab4e
--- /dev/null
+++ b/pkgs/desktops/enlightenment/emotion.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl, pkgconfig, efl, vlc }:
+stdenv.mkDerivation rec {
+  name = "emotion_generic_players-${version}";
+  version = "1.16.0";
+  src = fetchurl {
+    url = "http://download.enlightenment.org/rel/libs/emotion_generic_players/${name}.tar.xz";
+    sha256 = "163ay26c6dx49m1am7vsxxn0gy877zhayxq0yxn9zkbq2srzvjym";
+  };
+  buildInputs = [ pkgconfig efl vlc ];
+  NIX_CFLAGS_COMPILE = [ "-I${efl}/include/eo-1" ];
+  meta = {
+    description = "Extra video decoders";
+    homepage = http://enlightenment.org/;
+    maintainers = with stdenv.lib.maintainers; [ matejc tstrobel ftrvxmtrx ];
+    platforms = stdenv.lib.platforms.linux;
+    license = stdenv.lib.licenses.bsd2;
+  };
+}
diff --git a/pkgs/desktops/enlightenment/enlightenment.nix b/pkgs/desktops/enlightenment/enlightenment.nix
new file mode 100644
index 00000000000..ee9b3fbc526
--- /dev/null
+++ b/pkgs/desktops/enlightenment/enlightenment.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchurl, pkgconfig, efl, elementary, xorg, libffi, pam, alsaLib, luajit, bzip2, libuuid
+, libpthreadstubs, gdbm, libcap, mesa_glu, xkeyboard_config, set_freqset_setuid ? false }:
+
+stdenv.mkDerivation rec {
+  name = "enlightenment-${version}";
+  version = "0.20.3";
+  src = fetchurl {
+    url = "http://download.enlightenment.org/rel/apps/enlightenment/${name}.tar.xz";
+    sha256 = "19z3bwdzwpzwi330l5g5mj7xy6wy8xrc39zivjhm0d1ql3fh649j";
+  };
+  buildInputs = [ pkgconfig efl elementary xorg.libXdmcp xorg.libxcb
+    xorg.xcbutilkeysyms xorg.libXrandr libffi pam alsaLib luajit bzip2 libuuid
+    libpthreadstubs gdbm ] ++ stdenv.lib.optionals stdenv.isLinux [ libcap ];
+  NIX_CFLAGS_COMPILE = [ "-I${efl}/include/eo-1" "-I${efl}/include/emile-1" "-I${libuuid}/include/uuid" ];
+  preConfigure = ''
+    export USER_SESSION_DIR=$prefix/lib/systemd/user
+
+    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\""
+  '';
+
+  enableParallelBuilding = true;
+
+  # this is a hack and without this cpufreq module is not working:
+  #   when set_freqset_setuid is true and "e_freqset" is set in setuidPrograms (this is taken care of in e19 NixOS module),
+  #   then this postInstall does the folowing:
+  #   1. moves the "freqset" binary to "e_freqset",
+  #   2. linkes "e_freqset" to enlightenment/bin so that,
+  #   3. setuidPrograms detects it and makes appropriate stuff to /var/setuid-wrappers/e_freqset,
+  #   4. and finaly, linkes /var/setuid-wrappers/e_freqset to original destination where enlightenment wants it
+  postInstall = if set_freqset_setuid then ''
+    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 /var/setuid-wrappers/e_freqset $CPUFREQ_DIRPATH/freqset
+  '' else "";
+  meta = {
+    description = "The Compositing Window Manager and Desktop Shell";
+    homepage = http://enlightenment.org/;
+    maintainers = with stdenv.lib.maintainers; [ matejc tstrobel ftrvxmtrx ];
+    platforms = stdenv.lib.platforms.linux;
+    license = stdenv.lib.licenses.bsd2;
+  };
+}
diff --git a/pkgs/desktops/enlightenment/evas.nix b/pkgs/desktops/enlightenment/evas.nix
new file mode 100644
index 00000000000..6cc6af9678b
--- /dev/null
+++ b/pkgs/desktops/enlightenment/evas.nix
@@ -0,0 +1,17 @@
+{ stdenv, fetchurl, pkgconfig, efl, zlib, libspectre, gstreamer, gst_plugins_base, gst_ffmpeg, gst_plugins_good, poppler, librsvg, libraw }:
+stdenv.mkDerivation rec {
+  name = "evas_generic_loaders-${version}";
+  version = "1.16.0";
+  src = fetchurl {
+    url = "http://download.enlightenment.org/rel/libs/evas_generic_loaders/${name}.tar.xz";
+    sha256 = "1il3i3rii6ddpj7cw2mdqnb0q2wmhwnvs6qi9janna1n5hhrqyfm";
+  };
+  buildInputs = [ pkgconfig efl zlib libspectre gstreamer gst_plugins_base gst_ffmpeg gst_plugins_good poppler librsvg libraw ];
+  meta = {
+    description = "Extra image decoders";
+    homepage = http://enlightenment.org/;
+    maintainers = with stdenv.lib.maintainers; [ matejc tstrobel ftrvxmtrx ];
+    platforms = stdenv.lib.platforms.linux;
+    license = stdenv.lib.licenses.gpl2;
+  };
+}
diff --git a/pkgs/desktops/enlightenment/rage.nix b/pkgs/desktops/enlightenment/rage.nix
new file mode 100644
index 00000000000..8c3391cf271
--- /dev/null
+++ b/pkgs/desktops/enlightenment/rage.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, elementary, efl, automake, autoconf, libtool, pkgconfig, gst_all_1
+, makeWrapper, lib }:
+stdenv.mkDerivation rec {
+  name = "rage-${version}";
+  version = "0.1.4";
+  src = fetchurl {
+    url = "http://download.enlightenment.org/rel/apps/rage/${name}.tar.gz";
+    sha256 = "10j3n8crk16jzqz2hn5djx6vms5f6x83qyiaphhqx94h9dgv2mgg";
+  };
+  buildInputs = [ elementary efl automake autoconf libtool pkgconfig
+    makeWrapper ];
+  GST_PLUGIN_PATH = lib.makeSearchPath "lib/gstreamer-1.0" [
+    gst_all_1.gst-plugins-base
+    gst_all_1.gst-plugins-good
+    gst_all_1.gst-plugins-bad
+    gst_all_1.gst-libav ];
+  configurePhase = ''
+    ./autogen.sh --prefix=$out
+  '';
+  postInstall = ''
+    wrapProgram $out/bin/rage \
+      --prefix GST_PLUGIN_PATH : "$GST_PLUGIN_PATH"
+  '';
+  meta = {
+    description = "Video + Audio player along the lines of mplayer";
+    homepage = http://enlightenment.org/;
+    maintainers = with stdenv.lib.maintainers; [ matejc ftrvxmtrx ];
+    platforms = stdenv.lib.platforms.linux;
+    license = stdenv.lib.licenses.bsd2;
+  };
+}
diff --git a/pkgs/desktops/enlightenment/terminology.nix b/pkgs/desktops/enlightenment/terminology.nix
new file mode 100644
index 00000000000..a302b7d5f61
--- /dev/null
+++ b/pkgs/desktops/enlightenment/terminology.nix
@@ -0,0 +1,17 @@
+{ stdenv, fetchurl, pkgconfig, efl, elementary }:
+stdenv.mkDerivation rec {
+  name = "terminology-${version}";
+  version = "0.9.1";
+  src = fetchurl {
+    url = "http://download.enlightenment.org/rel/apps/terminology/${name}.tar.xz";
+    sha256 = "1kwv9vkhngdm5v38q93xpcykghnyawhjjcb5bgy0p89gpbk7mvpc";
+  };
+  buildInputs = [ pkgconfig efl elementary ];
+  meta = {
+    description = "The best terminal emulator written with the EFL";
+    homepage = http://enlightenment.org/;
+    maintainers = with stdenv.lib.maintainers; [ matejc tstrobel ftrvxmtrx ];
+    platforms = stdenv.lib.platforms.linux;
+    license = stdenv.lib.licenses.bsd2;
+  };
+}