Change:
Enabling the gnome-shell extension provided by fails, as can be seen in the output below. It specifically results in an error that I found in the Extensions app (). See screenshot below. Launching the standalone app also produces the same error, but sends it to the user as a desktop notification. Steps to reproduce the behavior: to in . to in for debugging. . the machine (logging out of the current GNOME session and logging back in should also work). to enable the extension by executing that the GNOME Pomodoro icon is not displayed in the topbar. that the output of includes . the Extensions application, click the dropdown beside Pomodoro, and notice the error message displayed (). the Pomodoro application for the first time in a GNOME session, and notice that it sends a notification to the user with the same error message (). GNOME Pomodoro would be displayed in the topbar as an item on the right. The output of should include rather than after enabling the extension Opening the standalone GNOME Pomodoro application would not result in an error notification being sent to the user. Opening the Extensions app, this is the error we're presented with. ! This is the topbar item we expect to get (screenshot from an older version of GNOME, not mine): ! This appears to be a NixOS-specific bug. It has been reported in the project's repository also () for NixOS 20.05, but I could not find a corresponding issue in this tracker. I can confirm that this package works as expected on at least one other distribution which officially packages it (Fedora 34). They appear to be tracking upstream without adding any patches (see: ) There doesn't appear to be a maintainer specified; pinging the person who co-committed the last change to bump version. My system is built using flakes; providing the output of both in my nixfiles directory, as well as the output requested. Maintainer information:

Discussion:
<del> { lib, stdenv </del> <ins> { lib , stdenv </ins> , fetchFromGitHub <del> , autoconf-archive , appstream-glib </del> <ins> , substituteAll , fetchpatch , meson , ninja </ins> , pkg-config , wrapGAppsHook <ins> , desktop-file-utils </ins> , libcanberra , gst_all_1 , vala

, gom , sqlite , libxml2 <del> , autoreconfHook </del> , glib , gobject-introspection , libpeas <del> , gnome-shell </del> , gsettings-desktop-schemas <del> , adwaita-icon-theme </del> , gettext }: stdenv.mkDerivation rec { pname = "gnome-shell-pomodoro"; <del> version = "0.19.1"; </del> <ins> version = "0.20.0"; </ins> src = fetchFromGitHub { <del> owner = "codito"; </del> <ins> owner = "gnome-pomodoro"; </ins> repo = "gnome-pomodoro"; rev = version; <del> sha256 = "sha256-im66QUzz6PcX0vkf4cN57ttRLB4KKPFky1pwUa4V7kQ="; </del> <ins> sha256 = "sha256-USzLHoBM0QbBPtbTzJJY02cOSDtmlxPGYhMj7M1FJic="; </ins> }; <ins> patches = [ # Our glib setup hooks moves GSettings schemas to a subdirectory to prevent conflicts. # We need to patch the build script so that the extension can find them. (substituteAll { src = ./fix-schema-path.patch; inherit pname version; }) # Fix error reporting code. # https://github.com/gnome-pomodoro/gnome-pomodoro/pull/591 (fetchpatch { url = "https://github.com/gnome-pomodoro/gnome-pomodoro/commit/133bd62f15653856d9705b66188b42c20d81719e.patch"; sha256 = "A20K+57A6/lYH2Buri2+wrCQgz6EGBdYg2xQbHPSkYc="; }) ]; </ins> nativeBuildInputs = [ <del> appstream-glib autoconf-archive autoreconfHook </del> <ins> meson ninja </ins> gettext gobject-introspection libxml2 pkg-config vala wrapGAppsHook <ins> desktop-file-utils </ins> ]; buildInputs = [ <del> adwaita-icon-theme </del> glib <del> gnome-shell </del> gom gsettings-desktop-schemas gst_all_1.gst-plugins-base

<ins> diff --git a/data/meson.build b/data/meson.build index 5e4ce69..982b3c9 100644 --- a/data/meson.build +++ b/data/meson.build @@ -31,7 +31,7 @@ i18n.merge_file( install_data( 'org.gnome.pomodoro.gschema.xml', -  install_dir: get_option('datadir') / 'glib-2.0' / 'schemas', +  install_dir: gschema_dir, ) subdir('icons') diff --git a/meson-post-install.sh b/meson-post-install.sh index bf4013a..c87fba4 100644 --- a/meson-post-install.sh +++ b/meson-post-install.sh @@ -7,7 +7,7 @@ datadir="${prefix}/$1" # want/need us to do the below if [ -z "${DESTDIR}" ]; then echo "Compiling GSchema..." -    glib-compile-schemas "${datadir}/glib-2.0/schemas" +    glib-compile-schemas "${datadir}/gsettings-schemas/@pname@-@version@/glib-2.0/schemas" echo "Updating icon cache..." gtk-update-icon-cache -f -t "${datadir}/icons/hicolor" diff --git a/meson.build b/meson.build index 09857a1..a07d27c 100644 --- a/meson.build +++ b/meson.build @@ -40,7 +40,8 @@ add_project_arguments( ) # We are going to use these variables later on for the plugins -gschema_dir = get_option('prefix') / get_option('datadir') / 'glib-2.0' / 'schemas' +nix_package_name = '@pname@' + '-' + '@version@' +gschema_dir = get_option('prefix') / get_option('datadir') / 'gsettings-schemas' / nix_package_name / 'glib-2.0' / 'schemas' plugin_libdir = get_option('prefix') / get_option('libdir') / meson.project_name() / 'plugins' extension_dir = get_option('prefix') / get_option('datadir') / 'gnome-shell' / 'extensions' / 'pomodoro@arun.codito.in' </ins>