diff options
Diffstat (limited to 'pkgs/desktops/enlightenment/efl.nix')
-rw-r--r-- | pkgs/desktops/enlightenment/efl.nix | 68 |
1 files changed, 35 insertions, 33 deletions
diff --git a/pkgs/desktops/enlightenment/efl.nix b/pkgs/desktops/enlightenment/efl.nix index 5e3763c9a6dd..153616a3bc8e 100644 --- a/pkgs/desktops/enlightenment/efl.nix +++ b/pkgs/desktops/enlightenment/efl.nix @@ -1,28 +1,32 @@ -{ stdenv, fetchurl, pkgconfig, SDL, SDL2, alsaLib, bullet, curl, dbus, +{ 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, jbig2dec, libGL, libdrm, libinput, + 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, xineLib, xorg, zlib + utillinux, writeText, xorg, zlib }: stdenv.mkDerivation rec { pname = "efl"; - version = "1.22.5"; + version = "1.23.1"; src = fetchurl { url = "http://download.enlightenment.org/rel/libs/${pname}/${pname}-${version}.tar.xz"; - sha256 = "1cjk56z0whpzcqwg3xdq23kyp1g83xa67m9dlp7ywmb36bn4ca59"; + sha256 = "0q9g4j7k10s1a8rv2ca9v9lydh7ml3zsrqvgncc4qhvdl76208nn"; }; nativeBuildInputs = [ + meson + ninja gtk3 pkgconfig + check ]; buildInputs = [ SDL + avahi fontconfig freetype giflib @@ -31,6 +35,7 @@ stdenv.mkDerivation rec { gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good gst_all_1.gstreamer + ibus libGL libpng libpulseaudio @@ -73,7 +78,6 @@ stdenv.mkDerivation rec { poppler python27Packages.dbus-python utillinux - xineLib xorg.libXScrnSaver xorg.libXcomposite xorg.libXdamage @@ -90,30 +94,25 @@ stdenv.mkDerivation rec { xorg.xcbutilkeysyms ]; - # 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" + 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. @@ -122,35 +121,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 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 ]; }; } |