mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-21 13:10:33 +00:00
Merge pull request #4101 from ts468/e19
Add package: Enlightenment E19!!!!
This commit is contained in:
commit
3224b32e64
|
@ -19,7 +19,7 @@ in
|
|||
# E.g., if KDE is enabled, it supersedes xterm.
|
||||
imports = [
|
||||
./none.nix ./xterm.nix ./xfce.nix ./kde4.nix
|
||||
./e17.nix ./e18.nix ./gnome3.nix ./xbmc.nix
|
||||
./e17.nix ./e18.nix ./e19.nix ./gnome3.nix ./xbmc.nix
|
||||
];
|
||||
|
||||
options = {
|
||||
|
|
94
nixos/modules/services/x11/desktop-managers/e19.nix
Normal file
94
nixos/modules/services/x11/desktop-managers/e19.nix
Normal file
|
@ -0,0 +1,94 @@
|
|||
{ config, pkgs, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
|
||||
xcfg = config.services.xserver;
|
||||
cfg = xcfg.desktopManager.e19;
|
||||
e19_enlightenment = pkgs.e19.enlightenment.override { set_freqset_setuid = true; };
|
||||
|
||||
in
|
||||
|
||||
{
|
||||
options = {
|
||||
|
||||
services.xserver.desktopManager.e19.enable = mkOption {
|
||||
default = false;
|
||||
example = true;
|
||||
description = "Enable the E19 desktop environment.";
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
config = mkIf (xcfg.enable && cfg.enable) {
|
||||
|
||||
environment.systemPackages = [
|
||||
pkgs.e19.efl pkgs.e19.evas pkgs.e19.emotion pkgs.e19.elementary e19_enlightenment
|
||||
pkgs.e19.terminology pkgs.e19.econnman
|
||||
pkgs.xorg.xauth # used by kdesu
|
||||
pkgs.gtk # To get GTK+'s themes.
|
||||
pkgs.tango-icon-theme
|
||||
pkgs.shared_mime_info
|
||||
pkgs.gnome.gnomeicontheme
|
||||
pkgs.xorg.xcursorthemes
|
||||
];
|
||||
|
||||
environment.pathsToLink = [ "/etc/enlightenment" "/etc/xdg" "/share/enlightenment" "/share/elementary" "/share/applications" "/share/locale" "/share/icons" "/share/themes" "/share/mime" "/share/desktop-directories" ];
|
||||
|
||||
services.xserver.desktopManager.session = [
|
||||
{ name = "E19";
|
||||
start = ''
|
||||
# Set GTK_DATA_PREFIX so that GTK+ can find the themes
|
||||
export GTK_DATA_PREFIX=${config.system.path}
|
||||
# find theme engines
|
||||
export GTK_PATH=${config.system.path}/lib/gtk-3.0:${config.system.path}/lib/gtk-2.0
|
||||
export XDG_MENU_PREFIX=enlightenment
|
||||
|
||||
# make available for D-BUS user services
|
||||
#export XDG_DATA_DIRS=$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}:${config.system.path}/share:${pkgs.e19.efl}/share
|
||||
|
||||
# Update user dirs as described in http://freedesktop.org/wiki/Software/xdg-user-dirs/
|
||||
${pkgs.xdg-user-dirs}/bin/xdg-user-dirs-update
|
||||
|
||||
${e19_enlightenment}/bin/enlightenment_start
|
||||
waitPID=$!
|
||||
'';
|
||||
}];
|
||||
|
||||
security.setuidPrograms = [ "e19_freqset" ];
|
||||
|
||||
environment.etc = singleton
|
||||
{ source = "${pkgs.xkeyboard_config}/etc/X11/xkb";
|
||||
target = "X11/xkb";
|
||||
};
|
||||
|
||||
fonts.fonts = [ pkgs.dejavu_fonts pkgs.ubuntu_font_family ];
|
||||
|
||||
services.udisks2.enable = true;
|
||||
services.upower.enable = config.powerManagement.enable;
|
||||
|
||||
#services.dbus.packages = [ pkgs.efl ]; # dbus-1 folder is not in /etc but in /share, so needs fixing first
|
||||
|
||||
systemd.user.services.efreet =
|
||||
{ enable = true;
|
||||
description = "org.enlightenment.Efreet";
|
||||
serviceConfig =
|
||||
{ ExecStart = "${pkgs.e19.efl}/bin/efreetd";
|
||||
StandardOutput = "null";
|
||||
};
|
||||
};
|
||||
|
||||
systemd.user.services.ethumb =
|
||||
{ enable = true;
|
||||
description = "org.enlightenment.Ethumb";
|
||||
serviceConfig =
|
||||
{ ExecStart = "${pkgs.e19.efl}/bin/ethumbd";
|
||||
StandardOutput = "null";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
};
|
||||
|
||||
}
|
26
pkgs/desktops/e19/default.nix
Normal file
26
pkgs/desktops/e19/default.nix
Normal file
|
@ -0,0 +1,26 @@
|
|||
{ callPackage, pkgs }:
|
||||
let
|
||||
openjpeg_1 = with pkgs; lib.overrideDerivation openjpeg (oldAttrs: {
|
||||
name = "openjpeg-1.5.1";
|
||||
src = fetchurl {
|
||||
url = "http://openjpeg.googlecode.com/files/openjpeg-1.5.1.tar.gz";
|
||||
sha1 = "1b0b74d1af4c297fd82806a9325bb544caf9bb8b";
|
||||
};
|
||||
#passthru = { incDir = "openjpeg-1.5.1"; };
|
||||
});
|
||||
in
|
||||
rec {
|
||||
#### CORE EFL
|
||||
efl = callPackage ./efl.nix { openjpeg=openjpeg_1; };
|
||||
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 { };
|
||||
|
||||
}
|
23
pkgs/desktops/e19/econnman.nix
Normal file
23
pkgs/desktops/e19/econnman.nix
Normal file
|
@ -0,0 +1,23 @@
|
|||
{ stdenv, fetchurl, pkgconfig, e19, 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 e19.efl python27 dbus ];
|
||||
propagatedBuildInputs = [ python27Packages.pythonefl_1_11 python27Packages.dbus e19.elementary ];
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/econnman-bin --prefix PYTHONPATH : ${python27Packages.dbus}/lib/python2.7/site-packages:${python27Packages.pythonefl_1_11}/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;
|
||||
};
|
||||
}
|
8
pkgs/desktops/e19/efl-setup-hook.sh
Executable file
8
pkgs/desktops/e19/efl-setup-hook.sh
Executable file
|
@ -0,0 +1,8 @@
|
|||
addDbusIncludePath () {
|
||||
if test -d "$1/include/dbus-1.0"
|
||||
then
|
||||
export NIX_CFLAGS_COMPILE="${NIX_CFLAGS_COMPILE} -I$1/include/dbus-1.0 -I $1/lib/dbus-1.0/include"
|
||||
fi
|
||||
}
|
||||
|
||||
envHooks=(${envHooks[@]} addDbusIncludePath)
|
33
pkgs/desktops/e19/efl.nix
Normal file
33
pkgs/desktops/e19/efl.nix
Normal file
|
@ -0,0 +1,33 @@
|
|||
{ stdenv, fetchurl, pkgconfig, openssl, libjpeg, zlib, freetype, fontconfig, fribidi, SDL2, SDL, mesa, giflib, libpng, libtiff, glib, gst_all_1, pulseaudio, libsndfile, xlibs, wayland, libdrm, libxkbcommon, udev, utillinuxCurses, dbus, bullet, luajit, python27Packages, openjpeg, doxygen, expat, lua5_2, harfbuzz, jbig2dec, librsvg, dbus_libs, alsaLib, poppler, libraw, libspectre, xineLib, vlc, libwebp, curl }:
|
||||
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "efl-${version}";
|
||||
version = "1.11.2";
|
||||
src = fetchurl {
|
||||
url = "http://download.enlightenment.org/rel/libs/efl/${name}.tar.gz";
|
||||
sha256 = "123jrcifd7i0r9zh8qllqiz3d378fyy7fzkanyki9wbxlz91rk7k";
|
||||
};
|
||||
|
||||
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 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 ] ++ [ xlibs.libXrender xlibs.libXfixes xlibs.libXrandr xlibs.libxkbfile xlibs.libxcb xlibs.xcbutilkeysyms openjpeg doxygen expat lua5_2 harfbuzz jbig2dec librsvg dbus_libs alsaLib poppler libraw libspectre xineLib vlc libwebp curl ];
|
||||
|
||||
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-wayland" "--enable-xine" "--enable-fb" "--disable-tslib" "--with-systemdunitdir=$out/systemd/user" ];
|
||||
|
||||
NIX_CFLAGS_COMPILE = [ "-I${xlibs.libXtst}" "-I${dbus_libs}/include/dbus-1.0" "-I${dbus_libs}/lib/dbus-1.0/include" ];
|
||||
|
||||
preConfigure = ''
|
||||
export PKG_CONFIG_PATH="${gst_all_1.gst-plugins-base}/lib/pkgconfig/gstreamer-video-0.10.pc:$PKG_CONFIG_PATH"
|
||||
'';
|
||||
|
||||
setupHook = ./efl-setup-hook.sh;
|
||||
|
||||
meta = {
|
||||
description = "Enlightenment Core libraries";
|
||||
homepage = http://enlightenment.org/;
|
||||
maintainers = [ stdenv.lib.maintainers.matejc ];
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
license = stdenv.lib.licenses.lgpl3;
|
||||
};
|
||||
}
|
20
pkgs/desktops/e19/elementary.nix
Normal file
20
pkgs/desktops/e19/elementary.nix
Normal file
|
@ -0,0 +1,20 @@
|
|||
{ stdenv, fetchurl, pkgconfig, e19, libcap, gdbm }:
|
||||
stdenv.mkDerivation rec {
|
||||
name = "elementary-${version}";
|
||||
version = "1.11.2";
|
||||
src = fetchurl {
|
||||
url = "http://download.enlightenment.org/rel/libs/elementary/${name}.tar.gz";
|
||||
sha256 = "041hwp81qyq4wsw483g2jh52gcanqg046f91pmd0vzgwcgxyixqq";
|
||||
};
|
||||
buildInputs = [ pkgconfig e19.efl gdbm ] ++ stdenv.lib.optionals stdenv.isLinux [ libcap ];
|
||||
preConfigure = ''
|
||||
export NIX_CFLAGS_COMPILE="-I${e19.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;
|
||||
};
|
||||
}
|
20
pkgs/desktops/e19/emotion.nix
Normal file
20
pkgs/desktops/e19/emotion.nix
Normal file
|
@ -0,0 +1,20 @@
|
|||
{ stdenv, fetchurl, pkgconfig, e19, vlc }:
|
||||
stdenv.mkDerivation rec {
|
||||
name = "emotion_generic_players-${version}";
|
||||
version = "1.11.0";
|
||||
src = fetchurl {
|
||||
url = "http://download.enlightenment.org/rel/libs/emotion_generic_players/${name}.tar.gz";
|
||||
sha256 = "0x6aigsqnfn9vcaj1rj6055s0vh811svzhwz5zghksg4lqipjbjx";
|
||||
};
|
||||
buildInputs = [ pkgconfig e19.efl vlc ];
|
||||
preConfigure = ''
|
||||
export NIX_CFLAGS_COMPILE="-I${e19.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;
|
||||
};
|
||||
}
|
38
pkgs/desktops/e19/enlightenment.nix
Normal file
38
pkgs/desktops/e19/enlightenment.nix
Normal file
|
@ -0,0 +1,38 @@
|
|||
{ stdenv, fetchurl, pkgconfig, e19, xlibs, libffi, pam, alsaLib, luajit, bzip2, libpthreadstubs, gdbm, libcap, set_freqset_setuid ? false }:
|
||||
|
||||
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "enlightenment-${version}";
|
||||
version = "0.19.0";
|
||||
src = fetchurl {
|
||||
url = "http://download.enlightenment.org/rel/apps/enlightenment/${name}.tar.xz";
|
||||
sha256 = "0d9s8gwma32hj8h000k1bzibr3zj8qajcf14va3w81k87gkilxfp";
|
||||
};
|
||||
buildInputs = [ pkgconfig e19.efl e19.elementary xlibs.libXdmcp xlibs.libxcb xlibs.xcbutilkeysyms xlibs.libXrandr libffi pam alsaLib luajit bzip2 libpthreadstubs gdbm ] ++ stdenv.lib.optionals stdenv.isLinux [ libcap ];
|
||||
preConfigure = ''
|
||||
export NIX_CFLAGS_COMPILE="-I${e19.efl}/include/eo-1 -I${e19.efl}/include/ecore-imf-1 -I${e19.efl}/include/ethumb-client-1 -I${e19.efl}/include/ethumb-1 $NIX_CFLAGS_COMPILE"
|
||||
export USER_SESSION_DIR=$prefix/lib/systemd/user
|
||||
'';
|
||||
|
||||
# this is a hack and without this cpufreq module is not working:
|
||||
# when set_freqset_setuid is true and "e19_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 "e19_freqset",
|
||||
# 2. linkes "e19_freqset" to enlightenment/bin so that,
|
||||
# 3. setuidPrograms detects it and makes appropriate stuff to /var/setuid-wrappers/e19_freqset,
|
||||
# 4. and finaly, linkes /var/setuid-wrappers/e19_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/e19_freqset
|
||||
ln -sv $CPUFREQ_DIRPATH/e19_freqset $out/bin/e19_freqset
|
||||
ln -sv /var/setuid-wrappers/e19_freqset $CPUFREQ_DIRPATH/freqset
|
||||
'' else "";
|
||||
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;
|
||||
};
|
||||
}
|
17
pkgs/desktops/e19/evas.nix
Normal file
17
pkgs/desktops/e19/evas.nix
Normal file
|
@ -0,0 +1,17 @@
|
|||
{ stdenv, fetchurl, pkgconfig, e19, zlib, libspectre, gstreamer, gst_plugins_base, gst_ffmpeg, gst_plugins_good, poppler, librsvg, libraw }:
|
||||
stdenv.mkDerivation rec {
|
||||
name = "evas_generic_loaders-${version}";
|
||||
version = "1.11.2";
|
||||
src = fetchurl {
|
||||
url = "http://download.enlightenment.org/rel/libs/evas_generic_loaders/${name}.tar.gz";
|
||||
sha256 = "03p6v7l2fxvldiymqk16pqnbm9llygp6i19qhn3rmrqy1hkjkry6";
|
||||
};
|
||||
buildInputs = [ pkgconfig e19.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 = [ stdenv.lib.maintainers.matejc ];
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
license = stdenv.lib.licenses.gpl2;
|
||||
};
|
||||
}
|
23
pkgs/desktops/e19/terminology.nix
Normal file
23
pkgs/desktops/e19/terminology.nix
Normal file
|
@ -0,0 +1,23 @@
|
|||
{ stdenv, fetchurl, pkgconfig, e19 }:
|
||||
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 e19.efl e19.elementary ];
|
||||
preConfigure = ''
|
||||
export NIX_CFLAGS_COMPILE="-I${e19.efl}/include/eo-1 $NIX_CFLAGS_COMPILE"
|
||||
export NIX_CFLAGS_COMPILE="-I${e19.efl}/include/ecore-con-1 $NIX_CFLAGS_COMPILE"
|
||||
export NIX_CFLAGS_COMPILE="-I${e19.efl}/include/eldbus-1 $NIX_CFLAGS_COMPILE"
|
||||
export NIX_CFLAGS_COMPILE="-I${e19.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;
|
||||
};
|
||||
}
|
|
@ -10893,6 +10893,11 @@ let
|
|||
import ../desktops/e18 { inherit callPackage pkgs; }
|
||||
);
|
||||
|
||||
e19 = recurseIntoAttrs (
|
||||
let callPackage = newScope pkgs.e19; in
|
||||
import ../desktops/e19 { inherit callPackage pkgs; }
|
||||
);
|
||||
|
||||
gnome2 = callPackage ../desktops/gnome-2 {
|
||||
callPackage = pkgs.newScope pkgs.gnome2;
|
||||
self = pkgs.gnome2;
|
||||
|
|
|
@ -10656,6 +10656,26 @@ let
|
|||
};
|
||||
};
|
||||
|
||||
pythonefl_1_11 = buildPythonPackage rec {
|
||||
name = "python-efl-${version}";
|
||||
version = "1.11.0";
|
||||
src = fetchurl {
|
||||
url = "http://download.enlightenment.org/rel/bindings/python/${name}.tar.xz";
|
||||
sha256 = "1d4hj39alg6j7ah1bc8wvlka9d13i8iy3fxxraik2f60w6811i48";
|
||||
};
|
||||
preConfigure = ''
|
||||
export NIX_CFLAGS_COMPILE="-I${pkgs.e19.efl}/include/eo-1 -I${pkgs.e19.efl}/include/eina-1 -I${pkgs.e19.efl}/include/eina-1/eina -I${pkgs.e19.efl}/include/evas-1 -I${dbus}/include/dbus-1.0 -I${pkgs.e19.efl}/include/efl-1 -I${pkgs.e19.efl}/include/eet-1 -I${pkgs.e19.efl}/include/ecore-1 -I${pkgs.e19.efl}/include/ecore-evas-1 -I${pkgs.e19.efl}/include/ecore-file-1 -I${pkgs.e19.efl}/include/ecore-input-1 -I${pkgs.e19.efl}/include/ecore-imf-1 -I${pkgs.e19.efl}/include/ecore-con-1 -I${pkgs.e19.efl}/include/edje-1 -I${pkgs.e19.efl}/include/eldbus-1 -I${pkgs.e19.efl}/include/efreet-1 -I${pkgs.e19.efl}/include/ethumb-client-1 -I${pkgs.e19.efl}/include/ethumb-1 -I${pkgs.e19.efl}/include/ecore-x-1 $NIX_CFLAGS_COMPILE"
|
||||
'';
|
||||
buildInputs = [ pkgs.pkgconfig pkgs.e19.efl pkgs.e19.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;
|
||||
};
|
||||
};
|
||||
|
||||
pythonefl = buildPythonPackage rec {
|
||||
name = "python-efl-${version}";
|
||||
version = "1.10.0";
|
||||
|
|
Loading…
Reference in a new issue