From 0d7b51ad6994d57302ad431aede88d9b40a38c19 Mon Sep 17 00:00:00 2001 From: Antoine Cotten Date: Fri, 3 Jul 2026 23:51:32 +0200 Subject: [PATCH] cider-2: allow reading gsettings Cider 4 throws a warning on startup: (cider-2:915399): GLib-GIO-CRITICAL **: g_settings_schema_source_lookup: assertion 'source != NULL' failed wrapGAppsHook3[1] solves the problem transparently by prepending - prepending gtk3 + gsettings-desktop-schemas to XDG_DATA_DIRS - prepending dconf libs to GIO_EXTRA_MODULES - setting the path to GTK's pixbuf loader cache as GDK_PIXBUF_MODULE_FILE We emulate its behavior manually here to avoid a double-wrapping of the cider-2 executable. (strace reveals that all these paths are effectively opened on startup.) [1]: https://nixos.org/manual/nixpkgs/stable/#ssec-gnome-hooks --- pkgs/by-name/ci/cider-2/package.nix | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/pkgs/by-name/ci/cider-2/package.nix b/pkgs/by-name/ci/cider-2/package.nix index d12bfd4ca490..6ded6b4a5738 100644 --- a/pkgs/by-name/ci/cider-2/package.nix +++ b/pkgs/by-name/ci/cider-2/package.nix @@ -5,6 +5,8 @@ dpkg, autoPatchelfHook, makeWrapper, + gsettings-desktop-schemas, + dconf, # Required dependencies for autoPatchelfHook alsa-lib, @@ -53,15 +55,21 @@ stdenv.mkDerivation rec { chmod +x $out/lib/cider/Cider + # The prefixes that follow LD_LIBRARY_PATH are typically injected via wrapGAppsHook3. + # We append them manually instead to avoid a double-wrapping. + makeWrapper $out/lib/cider/Cider $out/bin/${pname} \ + --add-flags "\$\{NIXOS_OZONE_WL:+\$\{WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true\}\}" \ + --add-flags "--no-sandbox --disable-gpu-sandbox" \ + --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libGL ]}" \ + --prefix XDG_DATA_DIRS : "${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}" \ + --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}" \ + --prefix GIO_EXTRA_MODULES : "${dconf.lib}/lib/gio/modules" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" + runHook postInstall ''; postFixup = '' - makeWrapper $out/lib/cider/Cider $out/bin/${pname} \ - --add-flags "\$\{NIXOS_OZONE_WL:+\$\{WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true\}\}" \ - --add-flags "--no-sandbox --disable-gpu-sandbox" \ - --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libGL ]}" - mv $out/share/applications/cider.desktop $out/share/applications/${pname}.desktop substituteInPlace $out/share/applications/${pname}.desktop \ --replace-warn 'Exec=cider' 'Exec=${pname}' \ @@ -70,7 +78,7 @@ stdenv.mkDerivation rec { install -Dm444 $out/share/pixmaps/cider.png \ $out/share/icons/hicolor/256x256/apps/cider.png - rm -r $out/share/pixmaps + rm -r $out/share/{pixmaps,lintian} ''; passthru.updateScript = ./updater.sh;