From e1dfe0bfcfa052eff00d13542890ae4a1c970142 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sun, 31 May 2026 10:46:09 +0200 Subject: [PATCH] enlightenment.efl: enable structuredAttrs and strictDeps, modernize --- pkgs/desktops/enlightenment/efl/default.nix | 49 ++++++++++++--------- 1 file changed, 29 insertions(+), 20 deletions(-) diff --git a/pkgs/desktops/enlightenment/efl/default.nix b/pkgs/desktops/enlightenment/efl/default.nix index ecf4c384c02c..c5682badc019 100644 --- a/pkgs/desktops/enlightenment/efl/default.nix +++ b/pkgs/desktops/enlightenment/efl/default.nix @@ -70,14 +70,19 @@ zlib, directoryListingUpdater, }: - -stdenv.mkDerivation rec { +let + inherit (lib) + mesonBool + mesonOption + ; +in +stdenv.mkDerivation (finalAttrs: { pname = "efl"; version = "1.28.1"; src = fetchurl { - url = "https://download.enlightenment.org/rel/libs/${pname}/${pname}-${version}.tar.xz"; - sha256 = "sha256-hM9hRfnMgr//aQAFviQ5LI88UvjgD/BNjuo3FCnAlCQ="; + url = "https://download.enlightenment.org/rel/libs/efl/efl-${finalAttrs.version}.tar.xz"; + hash = "sha256-hM9hRfnMgr//aQAFviQ5LI88UvjgD/BNjuo3FCnAlCQ="; }; nativeBuildInputs = [ @@ -159,6 +164,8 @@ stdenv.mkDerivation rec { libxcb ]; + strictDeps = true; + dontDropIconThemeCache = true; # Fix build with gcc15 (-std=gnu23) @@ -166,17 +173,17 @@ stdenv.mkDerivation rec { 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 available in nixpkgs - "-D embedded-lz4=false" - "-D fb=true" - "-D network-backend=connman" - "-D sdl=true" - "-D elua=true" - "-D bindings=lua,cxx" + (mesonBool "build-tests" false) # disable build tests, which are not working + (mesonOption "ecore-imf-loaders-disabler" "ibus,scim") # ibus is disabled by default, scim is not available in nixpkgs + (mesonBool "embedded-lz4" false) + (mesonBool "fb" true) + (mesonOption "network-backend" "connman") + (mesonBool "sdl" true) + (mesonBool "elua" true) + (mesonOption "bindings" "lua,cxx") # for wayland client support - "-D wl=true" - "-D drm=true" + (mesonBool "wl" true) + (mesonBool "drm" true) ]; patches = [ @@ -187,8 +194,8 @@ stdenv.mkDerivation rec { 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'" + substituteInPlace systemd-services/meson.build --replace-fail "sys_dep.get_pkgconfig_variable('systemduserunitdir')" "'$out/systemd/user'" + substituteInPlace dbus-services/meson.build --replace-fail "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. @@ -205,14 +212,14 @@ stdenv.mkDerivation rec { postInstall = '' # fix use of $out variable - substituteInPlace "$out/share/elua/core/util.lua" --replace '$out' "$out" + substituteInPlace "$out/share/elua/core/util.lua" --replace-fail '$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" + --replace-fail 'Cflags: -I''${includedir}/efl-1' \ + 'Cflags: -I''${includedir}/eina-1/eina'"$modules" # build icon cache gtk-update-icon-cache "$out"/share/icons/Enlightenment-X @@ -227,6 +234,8 @@ stdenv.mkDerivation rec { passthru.updateScript = directoryListingUpdater { }; + __structuredAttrs = true; + meta = { description = "Enlightenment foundation libraries"; homepage = "https://enlightenment.org/"; @@ -242,4 +251,4 @@ stdenv.mkDerivation rec { ]; teams = [ lib.teams.enlightenment ]; }; -} +})