diff options
Diffstat (limited to 'pkgs/desktops/enlightenment')
-rw-r--r-- | pkgs/desktops/enlightenment/default.nix | 41 | ||||
-rw-r--r-- | pkgs/desktops/enlightenment/econnman.nix | 23 | ||||
-rw-r--r-- | pkgs/desktops/enlightenment/efl-elua.patch | 14 | ||||
-rw-r--r-- | pkgs/desktops/enlightenment/efl.nix | 56 | ||||
-rw-r--r-- | pkgs/desktops/enlightenment/elementary.nix | 20 | ||||
-rw-r--r-- | pkgs/desktops/enlightenment/elementary.patch | 18 | ||||
-rw-r--r-- | pkgs/desktops/enlightenment/emotion.nix | 18 | ||||
-rw-r--r-- | pkgs/desktops/enlightenment/enlightenment.nix | 47 | ||||
-rw-r--r-- | pkgs/desktops/enlightenment/evas.nix | 17 | ||||
-rw-r--r-- | pkgs/desktops/enlightenment/rage.nix | 31 | ||||
-rw-r--r-- | pkgs/desktops/enlightenment/terminology.nix | 17 |
11 files changed, 275 insertions, 27 deletions
diff --git a/pkgs/desktops/enlightenment/default.nix b/pkgs/desktops/enlightenment/default.nix index 5aa3d781e4b3a..b285498be9dc1 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 0000000000000..0dabd7f1347f2 --- /dev/null +++ b/pkgs/desktops/enlightenment/econnman.nix @@ -0,0 +1,23 @@ +{ stdenv, fetchurl, pkgconfig, efl, elementary, python2Packages, 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 python2Packages.python python2Packages.wrapPython dbus ]; + pythonPath = [ python2Packages.pythonefl python2Packages.dbus elementary ]; + postInstall = '' + wrapPythonPrograms + ''; + + 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 0000000000000..96c42b3ff3ca1 --- /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 0000000000000..c2124f0b29283 --- /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.17.0"; + src = fetchurl { + url = "http://download.enlightenment.org/rel/libs/efl/${name}.tar.xz"; + sha256 = "1zisnz4x54mn9sm46kcr571faqnazkcglyf0lbz19l34syx40df1"; + }; + + 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 0000000000000..ffb0d70920ebb --- /dev/null +++ b/pkgs/desktops/enlightenment/elementary.nix @@ -0,0 +1,20 @@ +{ stdenv, fetchurl, pkgconfig, efl, libcap, automake, autoconf, libdrm, gdbm }: +stdenv.mkDerivation rec { + name = "elementary-${version}"; + version = "1.17.0"; + src = fetchurl { + url = "http://download.enlightenment.org/rel/libs/elementary/${name}.tar.xz"; + sha256 = "0avb0d6nk4d88l81c2j6py13vdfnvg080ycw2y3qvawyjf1mhska"; + }; + buildInputs = [ pkgconfig efl libdrm gdbm automake 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 0000000000000..32080c81cb38d --- /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 0000000000000..39b3b1620751b --- /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.17.0"; + src = fetchurl { + url = "http://download.enlightenment.org/rel/libs/emotion_generic_players/${name}.tar.xz"; + sha256 = "03kaql95mk0c5j50v3c5i5lmlr3gz7xlh8p8q87xz8zf9j5h1pp7"; + }; + 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 0000000000000..ea232a2c6070d --- /dev/null +++ b/pkgs/desktops/enlightenment/enlightenment.nix @@ -0,0 +1,47 @@ +{ stdenv, fetchurl, pkgconfig, efl, elementary, xcbutilkeysyms, libXrandr, libXdmcp, libxcb, +libffi, pam, alsaLib, luajit, bzip2, libuuid, libpthreadstubs, gdbm, libcap, mesa_glu +, xkeyboard_config }: + +stdenv.mkDerivation rec { + name = "enlightenment-${version}"; + version = "0.20.6"; + src = fetchurl { + url = "http://download.enlightenment.org/rel/apps/enlightenment/${name}.tar.xz"; + sha256 = "11ahll68nlci214ka05whp5l32hy9lznmcdfqx3hxsmq2p7bl7zj"; + }; + buildInputs = [ pkgconfig efl elementary libXdmcp libxcb + xcbutilkeysyms 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. does the following: + # 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 = '' + 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 + ''; + + 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 0000000000000..fe8897b8be7a1 --- /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.17.0"; + src = fetchurl { + url = "http://download.enlightenment.org/rel/libs/evas_generic_loaders/${name}.tar.xz"; + sha256 = "0ynq1nx0bfgg19p4vki1fap36yyip53zaxpzncx2slr6jcx1kxf2"; + }; + 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 0000000000000..8c3391cf2714d --- /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 0000000000000..a302b7d5f6123 --- /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; + }; +} |