about summary refs log tree commit diff
path: root/nixpkgs/pkgs/desktops/enlightenment/efl.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/desktops/enlightenment/efl.nix')
-rw-r--r--nixpkgs/pkgs/desktops/enlightenment/efl.nix164
1 files changed, 114 insertions, 50 deletions
diff --git a/nixpkgs/pkgs/desktops/enlightenment/efl.nix b/nixpkgs/pkgs/desktops/enlightenment/efl.nix
index 1876cce6c8a9..183e72565d3d 100644
--- a/nixpkgs/pkgs/desktops/enlightenment/efl.nix
+++ b/nixpkgs/pkgs/desktops/enlightenment/efl.nix
@@ -1,58 +1,119 @@
-{ stdenv, fetchurl, pkgconfig, openssl, libjpeg, zlib, lz4, freetype, fontconfig
-, fribidi, SDL2, SDL, libGL, giflib, libpng, libtiff, glib, gst_all_1, libpulseaudio
-, libsndfile, xorg, libdrm, libxkbcommon, udev, utillinux, bullet, luajit
-, python27Packages, openjpeg, doxygen, expat, harfbuzz, jbig2dec, librsvg
-, dbus, alsaLib, poppler, ghostscript, libraw, libspectre, xineLib, libwebp
-, curl, libinput, systemd, mesa, writeText, gtk3
+{ stdenv, fetchurl, meson, ninja, pkgconfig, SDL, SDL2, alsaLib,
+  avahi, bullet, check, curl, dbus, doxygen, expat, fontconfig,
+  freetype, fribidi, ghostscript, giflib, glib, gst_all_1, gtk3,
+  harfbuzz, ibus, jbig2dec, libGL, libdrm, libinput, libjpeg, libpng,
+  libpulseaudio, libraw, librsvg, libsndfile, libspectre, libtiff,
+  libwebp, libxkbcommon, luajit, lz4, mesa, openjpeg, openssl,
+  poppler, python27Packages, systemd, udev, utillinux, writeText,
+  xorg, zlib
 }:
 
 stdenv.mkDerivation rec {
   pname = "efl";
-  version = "1.22.3";
+  version = "1.23.3";
 
   src = fetchurl {
     url = "http://download.enlightenment.org/rel/libs/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "1j1i8cwq4ym9z34ikv35mdmv5q7q69hdp494mc6l03g9n6cl2yky";
+    sha256 = "00b9lp3h65254kdb1ys15fv7p3ln7qsvf15jkw4kli5ymagadkjk";
   };
 
-  nativeBuildInputs = [ pkgconfig gtk3 ];
-
-  buildInputs = [ openssl zlib lz4 freetype fontconfig SDL libGL mesa
-    giflib libpng libtiff glib gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good
-    gst_all_1.gst-libav libpulseaudio libsndfile xorg.libXcursor xorg.xorgproto
-    xorg.libX11 udev systemd ];
-
-  propagatedBuildInputs = [ libxkbcommon python27Packages.dbus-python 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 alsaLib poppler ghostscript libraw libspectre xineLib libwebp curl libdrm
-    libinput utillinux fribidi SDL2 ];
-
-  # ac_ct_CXX must be set to random value, because then it skips some magic which does alternative searching for g++
-  configureFlags = [
-    "--enable-sdl"
-    "--enable-drm"
-    "--enable-elput"
-    "--with-opengl=full"
-    "--enable-image-loader-jp2k"
-    "--enable-xinput22"
-    "--enable-multisense"
-    "--enable-liblz4"
-    "--enable-systemd"
-    "--enable-image-loader-webp"
-    "--enable-harfbuzz"
-    "--enable-xine"
-    "--enable-fb"
-    "--disable-tslib"
-    "--with-systemdunitdir=$out/systemd/user"
-    "ac_ct_CXX=foo"
+  nativeBuildInputs = [
+    meson
+    ninja
+    gtk3
+    pkgconfig
+    check
+  ];
+
+  buildInputs = [
+    SDL
+    avahi
+    fontconfig
+    freetype
+    giflib
+    glib
+    gst_all_1.gst-libav
+    gst_all_1.gst-plugins-base
+    gst_all_1.gst-plugins-good
+    gst_all_1.gstreamer
+    ibus
+    libGL
+    libpng
+    libpulseaudio
+    libsndfile
+    libtiff
+    lz4
+    mesa
+    openssl
+    systemd
+    udev
+    xorg.libX11
+    xorg.libXcursor
+    xorg.xorgproto
+    zlib
+  ];
+
+  propagatedBuildInputs = [
+    SDL2
+    alsaLib
+    bullet
+    curl
+    dbus
+    dbus
+    doxygen
+    expat
+    fribidi
+    ghostscript
+    harfbuzz
+    jbig2dec
+    libdrm
+    libinput
+    libjpeg
+    libraw
+    librsvg
+    libspectre
+    libwebp
+    libxkbcommon
+    luajit
+    openjpeg
+    poppler
+    python27Packages.dbus-python
+    utillinux
+    xorg.libXScrnSaver
+    xorg.libXcomposite
+    xorg.libXdamage
+    xorg.libXext
+    xorg.libXfixes
+    xorg.libXi
+    xorg.libXinerama
+    xorg.libXp
+    xorg.libXrandr
+    xorg.libXrender
+    xorg.libXtst
+    xorg.libxcb
+    xorg.libxkbfile
+    xorg.xcbutilkeysyms
+  ];
+
+  mesonFlags = [
+    "--buildtype=release"
+    "-D build-tests=false" # disable build tests, which are not working
+    "-D drm=true"
+    "-D embedded-lz4=false"
+    "-D evas-loaders-disabler=json"
+    "-D fb=true"
+    "-D opengl=full"
+    "-D sdl=true"
   ];
 
   patches = [ ./efl-elua.patch ];
 
   postPatch = ''
     patchShebangs src/lib/elementary/config_embed
+
+    # fix destination of systemd unit and dbus service
+    substituteInPlace systemd-services/meson.build --replace "dep.get_pkgconfig_variable('systemduserunitdir')" "'$out/systemd/user'"
+    substituteInPlace dbus-services/meson.build --replace "dep.get_pkgconfig_variable('session_bus_services_dir')" "'$out/share/dbus-1/services'"
   '';
 
   # bin/edje_cc creates $HOME/.run, which would break build of reverse dependencies.
@@ -61,35 +122,38 @@ stdenv.mkDerivation rec {
   '';
 
   preConfigure = ''
-    export LD_LIBRARY_PATH="$(pwd)/src/lib/eina/.libs:$LD_LIBRARY_PATH"
+    # allow ecore_con to find libcurl.so, which is a runtime dependency (it is dlopened)
+    export LD_LIBRARY_PATH="${curl.out}/lib:$LD_LIBRARY_PATH"
+
     source "$setupHook"
   '';
 
-  NIX_CFLAGS_COMPILE = [ "-DluaL_reg=luaL_Reg" ]; # needed since luajit-2.1.0-beta3
+  NIX_CFLAGS_COMPILE = "-DluaL_reg=luaL_Reg"; # needed since luajit-2.1.0-beta3
 
   postInstall = ''
+    # fix use of $out variable
     substituteInPlace "$out/share/elua/core/util.lua" --replace '$out' "$out"
+
+    # add all module include dirs to the Cflags field in efl.pc
     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"
+    substituteInPlace "$out/lib/pkgconfig/efl.pc" \
+      --replace 'Cflags: -I''${includedir}/efl-1' \
+                'Cflags: -I''${includedir}/eina-1/eina'"$modules"
 
     # build icon cache
     gtk-update-icon-cache "$out"/share/icons/Enlightenment-X
   '';
 
-  # EFL applications depend on libcurl, although it is linked at
-  # runtime by hand in code (it is dlopened).
   postFixup = ''
+    # EFL applications depend on libcurl, which is linked at runtime by hand in code (it is dlopened)
     patchelf --add-needed ${curl.out}/lib/libcurl.so $out/lib/libecore_con.so
   '';
 
-  enableParallelBuilding = true;
-
   meta = {
     description = "Enlightenment foundation libraries";
     homepage = https://enlightenment.org/;
-    platforms = stdenv.lib.platforms.linux;
     license = stdenv.lib.licenses.lgpl3;
-    maintainers = with stdenv.lib.maintainers; [ matejc tstrobel ftrvxmtrx ];
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = with stdenv.lib.maintainers; [ matejc tstrobel ftrvxmtrx romildo ];
   };
 }