diff options
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/desktops/enlightenment/efl')
-rw-r--r-- | infra/libkookie/nixpkgs/pkgs/desktops/enlightenment/efl/default.nix | 213 | ||||
-rw-r--r-- | infra/libkookie/nixpkgs/pkgs/desktops/enlightenment/efl/efl-elua.patch | 14 |
2 files changed, 227 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/desktops/enlightenment/efl/default.nix b/infra/libkookie/nixpkgs/pkgs/desktops/enlightenment/efl/default.nix new file mode 100644 index 000000000000..00ea83cb85c3 --- /dev/null +++ b/infra/libkookie/nixpkgs/pkgs/desktops/enlightenment/efl/default.nix @@ -0,0 +1,213 @@ +{ stdenv +, fetchurl +, meson +, ninja +, pkg-config +, SDL2 +, alsaLib +, bullet +, check +, curl +, dbus +, doxygen +, expat +, fontconfig +, freetype +, fribidi +, ghostscript +, giflib +, glib +, gst_all_1 +, gtk3 +, harfbuzz +, hicolor-icon-theme +, ibus +, jbig2dec +, libGL +, libdrm +, libinput +, libjpeg +, libpng +, libpulseaudio +, libraw +, librsvg +, libsndfile +, libspectre +, libtiff +, libwebp +, libxkbcommon +, luajit +, lz4 +, mesa +, mint-x-icons +, openjpeg +, openssl +, poppler +, python3Packages +, systemd +, udev +, util-linux +, wayland +, wayland-protocols +, writeText +, xorg +, zlib +}: + +stdenv.mkDerivation rec { + pname = "efl"; + version = "1.25.1"; + + src = fetchurl { + url = "http://download.enlightenment.org/rel/libs/${pname}/${pname}-${version}.tar.xz"; + sha256 = "0svybbrvpf6q955y6fclxh3md64z0dgmh0x54x2j60503hhs071m"; + }; + + nativeBuildInputs = [ + meson + ninja + gtk3 + pkg-config + check + ]; + + buildInputs = [ + 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 + wayland-protocols + xorg.libX11 + xorg.libXcursor + xorg.xorgproto + zlib + # still missing parent icon themes: RAVE-X, Faenza + ]; + + propagatedBuildInputs = [ + SDL2 + alsaLib + bullet + curl + dbus + dbus + doxygen + expat + fribidi + ghostscript + harfbuzz + hicolor-icon-theme # for the icon theme + jbig2dec + libdrm + libinput + libjpeg + libraw + librsvg + libspectre + libwebp + libxkbcommon + luajit + mint-x-icons # Mint-X is a parent icon theme of Enlightenment-X + openjpeg + poppler + util-linux + wayland + xorg.libXScrnSaver + xorg.libXcomposite + xorg.libXdamage + xorg.libXext + xorg.libXfixes + xorg.libXi + xorg.libXinerama + xorg.libXrandr + xorg.libXrender + xorg.libXtst + xorg.libxcb + ]; + + dontDropIconThemeCache = true; + + mesonFlags = [ + "--buildtype=release" + "-D build-tests=false" # disable build tests, which are not working + "-D ecore-imf-loaders-disabler=ibus,scim" # ibus is disabled by default, scim is not availabe in nixpkgs + "-D embedded-lz4=false" + "-D fb=true" + "-D network-backend=connman" + "-D sdl=true" + "-D elua=true" + "-D bindings=lua,cxx" + # for wayland client support + "-D wl=true" + "-D drm=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 "sys_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. + setupHook = writeText "setupHook.sh" '' + export HOME="$TEMPDIR" + ''; + + preConfigure = '' + # 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:+:}$LD_LIBRARY_PATH" + + source "$setupHook" + ''; + + postInstall = '' + # fix use of $out variable + substituteInPlace "$out/share/elua/core/util.lua" --replace '$out' "$out" + rm "$out/share/elua/core/util.lua.orig" + + # 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" + + # build icon cache + gtk-update-icon-cache "$out"/share/icons/Enlightenment-X + ''; + + postFixup = '' + # Some libraries are linked at runtime by hand in code (they are dlopened) + patchelf --add-needed ${curl.out}/lib/libcurl.so $out/lib/libecore_con.so + patchelf --add-needed ${libpulseaudio}/lib/libpulse.so $out/lib/libecore_audio.so + patchelf --add-needed ${libsndfile.out}/lib/libsndfile.so $out/lib/libecore_audio.so + ''; + + meta = with stdenv.lib; { + description = "Enlightenment foundation libraries"; + homepage = "https://enlightenment.org/"; + license = with licenses; [ bsd2 lgpl2Only licenses.zlib ]; + platforms = platforms.linux; + maintainers = with maintainers; [ matejc tstrobel ftrvxmtrx romildo ]; + }; +} diff --git a/infra/libkookie/nixpkgs/pkgs/desktops/enlightenment/efl/efl-elua.patch b/infra/libkookie/nixpkgs/pkgs/desktops/enlightenment/efl/efl-elua.patch new file mode 100644 index 000000000000..96c42b3ff3ca --- /dev/null +++ b/infra/libkookie/nixpkgs/pkgs/desktops/enlightenment/efl/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 |