{ stdenv , lib , fetchurl , meson , ninja , pkg-config , wrapGAppsHook4 , fontconfig , glib , gsettings-desktop-schemas , gtk4 , libadwaita , gnome-desktop , xdg-desktop-portal , wayland , gnome , libjxl , librsvg , webp-pixbuf-loader }: stdenv.mkDerivation rec { pname = "xdg-desktop-portal-gnome"; version = "45.1"; src = fetchurl { url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz"; sha256 = "PpyoIQRABfs3vWjr5K0Zb8PQcoNVgUZ6IqSHnax7X90="; }; nativeBuildInputs = [ meson ninja pkg-config wrapGAppsHook4 ]; buildInputs = [ fontconfig glib gsettings-desktop-schemas # settings exposed by settings portal gtk4 libadwaita gnome-desktop xdg-desktop-portal wayland # required by GTK 4 ]; mesonFlags = [ "-Dsystemduserunitdir=${placeholder "out"}/lib/systemd/user" ]; postInstall = '' # Pull in WebP and JXL support for gnome-backgrounds. # In postInstall to run before gappsWrapperArgsHook. export GDK_PIXBUF_MODULE_FILE="${gnome._gdkPixbufCacheBuilder_DO_NOT_USE { extraLoaders = [ libjxl librsvg webp-pixbuf-loader ]; }}" ''; passthru = { updateScript = gnome.updateScript { packageName = pname; }; }; meta = with lib; { description = "Backend implementation for xdg-desktop-portal for the GNOME desktop environment"; homepage = "https://gitlab.gnome.org/GNOME/xdg-desktop-portal-gnome"; maintainers = teams.gnome.members; platforms = platforms.linux; license = licenses.lgpl21Plus; }; }