diff --git a/nixos/modules/services/x11/desktop-managers/default.nix b/nixos/modules/services/x11/desktop-managers/default.nix index b82398ccf9dd..991c68471a67 100644 --- a/nixos/modules/services/x11/desktop-managers/default.nix +++ b/nixos/modules/services/x11/desktop-managers/default.nix @@ -17,7 +17,7 @@ in # Note: the order in which desktop manager modules are imported here # determines the default: later modules (if enabled) are preferred. # E.g., if KDE is enabled, it supersedes xterm. - imports = [ ./none.nix ./xterm.nix ./xfce.nix ./kde4.nix ./e17.nix ./gnome3.nix ./xbmc.nix ]; + imports = [ ./none.nix ./xterm.nix ./xfce.nix ./kde4.nix ./e17.nix ./e18.nix ./gnome3.nix ./xbmc.nix ]; options = { diff --git a/nixos/modules/services/x11/desktop-managers/e18.nix b/nixos/modules/services/x11/desktop-managers/e18.nix new file mode 100644 index 000000000000..e59b7f426837 --- /dev/null +++ b/nixos/modules/services/x11/desktop-managers/e18.nix @@ -0,0 +1,40 @@ +{ config, pkgs, ... }: + +with pkgs.lib; + +let + + xcfg = config.services.xserver; + cfg = xcfg.desktopManager.e18; + +in + +{ + options = { + + services.xserver.desktopManager.e18.enable = mkOption { + default = false; + example = true; + description = "Enable the E18 desktop environment."; + }; + + }; + + config = mkIf (xcfg.enable && cfg.enable) { + + environment.systemPackages = [ + pkgs.e18.efl pkgs.e18.evas pkgs.e18.emotion pkgs.e18.elementary pkgs.e18.enlightenment + pkgs.e18.terminology pkgs.e18.econnman + ]; + + services.xserver.desktopManager.session = [ + { name = "E18"; + start = '' + ${pkgs.e18.enlightenment}/bin/enlightenment_start + waitPID=$! + ''; + }]; + + }; + +} diff --git a/pkgs/desktops/e18/default.nix b/pkgs/desktops/e18/default.nix new file mode 100644 index 000000000000..56361eb85ce1 --- /dev/null +++ b/pkgs/desktops/e18/default.nix @@ -0,0 +1,16 @@ +{ callPackage, pkgs }: +rec { + #### CORE EFL + efl = callPackage ./efl.nix { }; + evas = callPackage ./evas.nix { }; + emotion = callPackage ./emotion.nix { }; + elementary = callPackage ./elementary.nix { }; + + #### WINDOW MANAGER + enlightenment = callPackage ./enlightenment.nix { }; + + #### APPLICATIONS + econnman = callPackage ./econnman.nix { }; + terminology = callPackage ./terminology.nix { }; + +} diff --git a/pkgs/desktops/e18/econnman.nix b/pkgs/desktops/e18/econnman.nix new file mode 100644 index 000000000000..f2c67edf4f88 --- /dev/null +++ b/pkgs/desktops/e18/econnman.nix @@ -0,0 +1,23 @@ +{ stdenv, fetchurl, pkgconfig, e18, 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 e18.efl python27 dbus ]; + propagatedBuildInputs = [ python27Packages.pythonefl python27Packages.dbus e18.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 = "Econnman is a user interface for the connman network connection manager"; + homepage = http://enlightenment.org/; + maintainers = [ stdenv.lib.maintainers.matejc ]; + platforms = stdenv.lib.platforms.linux; + license = stdenv.lib.licenses.lgpl3; + }; +} diff --git a/pkgs/desktops/e18/efl.nix b/pkgs/desktops/e18/efl.nix new file mode 100644 index 000000000000..ca09ac32ee53 --- /dev/null +++ b/pkgs/desktops/e18/efl.nix @@ -0,0 +1,23 @@ +{ stdenv, fetchurl, pkgconfig, openssl, libjpeg, zlib, freetype, fontconfig, fribidi, SDL, mesa, giflib, libpng, libtiff, glib, gst_all_1, pulseaudio, libsndfile, xlibs, wayland, libdrm, libxkbcommon, udev, utillinuxCurses, dbus, bullet, luajit, python27Packages }: +stdenv.mkDerivation rec { + name = "efl-${version}"; + version = "1.10.2"; + src = fetchurl { + url = "http://download.enlightenment.org/rel/libs/efl/${name}.tar.gz"; + sha256 = "0py8x0kv2hgl5v983xb6653fvmvn20im6picpc0hqfyxy09g1b24"; + }; + buildInputs = [ pkgconfig openssl zlib freetype fontconfig fribidi SDL mesa giflib libpng libtiff glib gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-libav pulseaudio libsndfile xlibs.libXcursor xlibs.printproto xlibs.libX11 libdrm udev utillinuxCurses luajit ]; + propagatedBuildInputs = [ wayland libxkbcommon python27Packages.dbus dbus libjpeg xlibs.libXcomposite xlibs.libXdamage xlibs.libXinerama xlibs.libXp xlibs.libXtst xlibs.libXi xlibs.libXext bullet xlibs.libXScrnSaver ]; + configureFlags = [ "--with-opengl=full" "--with-tests=none" "--enable-wayland" "--enable-sdl" "--enable-drm" ]; + preConfigure = '' + export NIX_CFLAGS_COMPILE="-I${xlibs.libXtst} $NIX_CFLAGS_COMPILE" + export PKG_CONFIG_PATH="${gst_all_1.gst-plugins-base}/lib/pkgconfig/gstreamer-video-0.10.pc:$PKG_CONFIG_PATH" + ''; + meta = { + description = "Enlightenment Core libraries"; + homepage = http://enlightenment.org/; + maintainers = [ stdenv.lib.maintainers.matejc ]; + platforms = stdenv.lib.platforms.linux; + license = stdenv.lib.licenses.lgpl3; + }; +} diff --git a/pkgs/desktops/e18/elementary.nix b/pkgs/desktops/e18/elementary.nix new file mode 100644 index 000000000000..f808d5c905b7 --- /dev/null +++ b/pkgs/desktops/e18/elementary.nix @@ -0,0 +1,20 @@ +{ stdenv, fetchurl, pkgconfig, e18 }: +stdenv.mkDerivation rec { + name = "elementary-${version}"; + version = "1.10.2"; + src = fetchurl { + url = "http://download.enlightenment.org/rel/libs/elementary/${name}.tar.gz"; + sha256 = "0y3knvmabl9adc8pd54p7qxpf7gvciixc1rk40hqppwhdgbgpz28"; + }; + buildInputs = [ pkgconfig e18.efl ]; + preConfigure = '' + export NIX_CFLAGS_COMPILE="-I${e18.efl}/include/ethumb-1 $NIX_CFLAGS_COMPILE" + ''; + meta = { + description = "Widget set/toolkit"; + homepage = http://enlightenment.org/; + maintainers = [ stdenv.lib.maintainers.matejc ]; + platforms = stdenv.lib.platforms.linux; + license = stdenv.lib.licenses.lgpl2; + }; +} diff --git a/pkgs/desktops/e18/emotion.nix b/pkgs/desktops/e18/emotion.nix new file mode 100644 index 000000000000..7e1c3be64008 --- /dev/null +++ b/pkgs/desktops/e18/emotion.nix @@ -0,0 +1,20 @@ +{ stdenv, fetchurl, pkgconfig, e18, vlc }: +stdenv.mkDerivation rec { + name = "emotion_generic_players-${version}"; + version = "1.10.0"; + src = fetchurl { + url = "http://download.enlightenment.org/rel/libs/emotion_generic_players/${name}.tar.gz"; + sha256 = "1nwlrk9inrhiv6jpzji10ikcdlhzhz7f2b5qhi2ai8bb6j61ryyc"; + }; + buildInputs = [ pkgconfig e18.efl vlc ]; + preConfigure = '' + export NIX_CFLAGS_COMPILE="-I${e18.efl}/include/eo-1 $NIX_CFLAGS_COMPILE" + ''; + meta = { + description = "Extra video decoders"; + homepage = http://enlightenment.org/; + maintainers = [ stdenv.lib.maintainers.matejc ]; + platforms = stdenv.lib.platforms.linux; + license = stdenv.lib.licenses.bsd2; + }; +} diff --git a/pkgs/desktops/e18/enlightenment.nix b/pkgs/desktops/e18/enlightenment.nix new file mode 100644 index 000000000000..fde939c146ae --- /dev/null +++ b/pkgs/desktops/e18/enlightenment.nix @@ -0,0 +1,20 @@ +{ stdenv, fetchurl, pkgconfig, e18, xlibs, libffi, pam, alsaLib, luajit }: +stdenv.mkDerivation rec { + name = "enlightenment-${version}"; + version = "0.18.8"; + src = fetchurl { + url = "http://download.enlightenment.org/rel/apps/enlightenment/${name}.tar.gz"; + sha256 = "1fsigbrknkwy909p1gqwxag1bar3p413s4f6fq3qnbsd6gjbvj8l"; + }; + buildInputs = [ pkgconfig e18.efl e18.elementary xlibs.libxcb xlibs.xcbutilkeysyms xlibs.libXrandr libffi pam alsaLib luajit ]; + preConfigure = '' + export NIX_CFLAGS_COMPILE="-I${e18.efl}/include/eo-1 -I${e18.efl}/include/ecore-imf-1 -I${e18.efl}/include/ethumb-client-1 -I${e18.efl}/include/ethumb-1 $NIX_CFLAGS_COMPILE" + ''; + meta = { + description = "The Compositing Window Manager and Desktop Shell"; + homepage = http://enlightenment.org/; + maintainers = [ stdenv.lib.maintainers.matejc ]; + platforms = stdenv.lib.platforms.linux; + license = stdenv.lib.licenses.bsd2; + }; +} diff --git a/pkgs/desktops/e18/evas.nix b/pkgs/desktops/e18/evas.nix new file mode 100644 index 000000000000..9ddd94dbaea0 --- /dev/null +++ b/pkgs/desktops/e18/evas.nix @@ -0,0 +1,17 @@ +{ stdenv, fetchurl, pkgconfig, e18, zlib }: +stdenv.mkDerivation rec { + name = "evas_generic_loaders-${version}"; + version = "1.10.0"; + src = fetchurl { + url = "http://download.enlightenment.org/rel/libs/evas_generic_loaders/${name}.tar.gz"; + sha256 = "0qx44g7a8pzcgspx8q10zjiwzafis301fhpchd4pskfxhqd4qagm"; + }; + buildInputs = [ pkgconfig e18.efl zlib ]; + meta = { + description = "Extra image decoders"; + homepage = http://enlightenment.org/; + maintainers = [ stdenv.lib.maintainers.matejc ]; + platforms = stdenv.lib.platforms.linux; + license = stdenv.lib.licenses.gpl2; + }; +} diff --git a/pkgs/desktops/e18/terminology.nix b/pkgs/desktops/e18/terminology.nix new file mode 100644 index 000000000000..892abc6ea5fe --- /dev/null +++ b/pkgs/desktops/e18/terminology.nix @@ -0,0 +1,23 @@ +{ stdenv, fetchurl, pkgconfig, e18 }: +stdenv.mkDerivation rec { + name = "terminology-${version}"; + version = "0.6.1"; + src = fetchurl { + url = "http://download.enlightenment.org/rel/apps/terminology/${name}.tar.gz"; + sha256 = "1wi9njyfs95y4nb9jd30032qqka5cg7k0wacck8s1yqxwg5ng38x"; + }; + buildInputs = [ pkgconfig e18.efl e18.elementary ]; + preConfigure = '' + export NIX_CFLAGS_COMPILE="-I${e18.efl}/include/eo-1 $NIX_CFLAGS_COMPILE" + export NIX_CFLAGS_COMPILE="-I${e18.efl}/include/ecore-con-1 $NIX_CFLAGS_COMPILE" + export NIX_CFLAGS_COMPILE="-I${e18.efl}/include/eldbus-1 $NIX_CFLAGS_COMPILE" + export NIX_CFLAGS_COMPILE="-I${e18.efl}/include/ethumb-1 $NIX_CFLAGS_COMPILE" + ''; + meta = { + description = "The best terminal emulator written with the EFL"; + homepage = http://enlightenment.org/; + maintainers = [ stdenv.lib.maintainers.matejc ]; + platforms = stdenv.lib.platforms.linux; + license = stdenv.lib.licenses.bsd2; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 5a2d3d0a251f..0c50b0c8fd74 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -10481,6 +10481,11 @@ let import ../desktops/e17 { inherit callPackage pkgs; } ); + e18 = recurseIntoAttrs ( + let callPackage = newScope pkgs.e18; in + import ../desktops/e18 { inherit callPackage pkgs; } + ); + gnome2 = callPackage ../desktops/gnome-2 { callPackage = pkgs.newScope pkgs.gnome2; self = pkgs.gnome2; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index b7e2c7a4c0b4..fccad5c81de4 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -9511,6 +9511,27 @@ rec { }; }; + pythonefl = buildPythonPackage rec { + name = "python-efl-${version}"; + version = "1.10.0"; + src = fetchurl { + url = "http://download.enlightenment.org/rel/bindings/python/${name}.tar.gz"; + sha256 = "1inv2qalnm9paifdwyh9q3ffxcp9bjj92phvfw1rgkaildvfji5i"; + }; + preConfigure = '' + export NIX_CFLAGS_COMPILE="-I${pkgs.e18.efl}/include/eo-1 -I${pkgs.e18.efl}/include/eina-1 -I${pkgs.e18.efl}/include/eina-1/eina -I${pkgs.e18.efl}/include/evas-1 -I${dbus}/include/dbus-1.0 -I${pkgs.e18.efl}/include/efl-1 -I${pkgs.e18.efl}/include/eet-1 -I${pkgs.e18.efl}/include/ecore-1 -I${pkgs.e18.efl}/include/ecore-evas-1 -I${pkgs.e18.efl}/include/ecore-file-1 -I${pkgs.e18.efl}/include/ecore-input-1 -I${pkgs.e18.efl}/include/ecore-imf-1 -I${pkgs.e18.efl}/include/ecore-con-1 -I${pkgs.e18.efl}/include/edje-1 -I${pkgs.e18.efl}/include/eldbus-1 -I${pkgs.e18.efl}/include/efreet-1 -I${pkgs.e18.efl}/include/ethumb-client-1 -I${pkgs.e18.efl}/include/ethumb-1 -I${pkgs.e18.efl}/include/ecore-x-1 $NIX_CFLAGS_COMPILE" + ''; + buildInputs = [ pkgs.pkgconfig pkgs.e18.efl pkgs.e18.elementary ]; + meta = { + description = "Python bindings for EFL and Elementary."; + homepage = http://enlightenment.org/; + maintainers = [ stdenv.lib.maintainers.matejc ]; + platforms = stdenv.lib.platforms.linux; + license = stdenv.lib.licenses.gpl3; + }; + }; + + # python2.7 specific packages } // optionalAttrs isPy27 ( with pythonPackages;