diff --git a/pkgs/desktops/gnome-3/misc/gpaste/default.nix b/pkgs/desktops/gnome-3/misc/gpaste/default.nix index 54b64ab2355f..3da7031b5114 100644 --- a/pkgs/desktops/gnome-3/misc/gpaste/default.nix +++ b/pkgs/desktops/gnome-3/misc/gpaste/default.nix @@ -2,20 +2,16 @@ , pango, gtk3, gnome3, dbus, clutter, appstream-glib, wrapGAppsHook, systemd, gobject-introspection }: stdenv.mkDerivation rec { - version = "3.30.2"; + version = "3.32.0"; name = "gpaste-${version}"; src = fetchurl { url = "https://github.com/Keruspe/GPaste/archive/v${version}.tar.gz"; - sha256 = "0vlbvv6rjxq7h9cl3ilndjk7d51ac1x7agj8k6a7bwjx8h1fr62x"; + sha256 = "1fvpl9vqmrr1w22hm0ybabn9pjfii5qj9ghnc2jzihgrn2h486v6"; }; patches = [ ./fix-paths.patch - (fetchpatch { - url = https://github.com/Keruspe/GPaste/commit/eacd9ecbcf6db260a2bdc22275c7a855cad66424.patch; - sha256 = "1668xcmx90gpjlgv2iyp6yqbxq3r5sw5cxds0dmzlyvbqdmc3py2"; - }) ]; # TODO: switch to substituteAll with placeholder diff --git a/pkgs/desktops/gnome-3/misc/gpaste/fix-paths.patch b/pkgs/desktops/gnome-3/misc/gpaste/fix-paths.patch index ca6b9a5b22ed..c8a3fad2272b 100644 --- a/pkgs/desktops/gnome-3/misc/gpaste/fix-paths.patch +++ b/pkgs/desktops/gnome-3/misc/gpaste/fix-paths.patch @@ -1,6 +1,6 @@ --- a/src/gnome-shell/extension.js +++ b/src/gnome-shell/extension.js -@@ -7,6 +7,8 @@ +@@ -6,6 +6,8 @@ const Config = imports.misc.config; @@ -11,45 +11,27 @@ imports.gi.versions.GPaste = '1.0'; --- a/src/gnome-shell/prefs.js +++ b/src/gnome-shell/prefs.js -@@ -7,6 +7,8 @@ +@@ -6,6 +6,8 @@ const Gettext = imports.gettext; +imports.gi.GIRepository.Repository.prepend_search_path('@typelibPath@'); + - const GPaste = imports.gi.GPaste; + const { GPaste } = imports.gi; const ExtensionUtils = imports.misc.extensionUtils; --- a/src/libgpaste/settings/gpaste-settings.c +++ b/src/libgpaste/settings/gpaste-settings.c -@@ -22,6 +22,8 @@ - - typedef struct - { -+ GSettingsSchemaSource *schema_source; -+ GSettingsSchema *schema; - GSettings *settings; - GSettings *shell_settings; - -@@ -919,6 +921,8 @@ - { - g_signal_handler_disconnect (settings, priv->c_signals[C_CHANGED]); - g_clear_object (&priv->settings); -+ g_settings_schema_unref (priv->schema); -+ g_settings_schema_source_unref (priv->schema_source); +@@ -1013,7 +1013,11 @@ } + else + { +- return g_settings_new (G_PASTE_SETTINGS_NAME); ++ // library used by introspection requires schemas but we cannot set XDG_DATA_DIRS for the library ++ GSettingsSchemaSource *schema_source = g_settings_schema_source_new_from_directory ("@gschemasCompiled@", NULL, FALSE, NULL); ++ g_autoptr (GSettingsSchema) schema = g_settings_schema_source_lookup (schema_source, G_PASTE_SETTINGS_NAME, FALSE); ++ g_settings_schema_source_unref (schema_source); ++ return g_settings_new_full (schema, NULL, NULL); + } + } - if (shell_settings) -@@ -1000,7 +1004,11 @@ - g_paste_settings_init (GPasteSettings *self) - { - GPasteSettingsPrivate *priv = g_paste_settings_get_instance_private (self); -- GSettings *settings = priv->settings = g_settings_new (G_PASTE_SETTINGS_NAME); -+ -+ // library used by introspection requires schemas but we cannot set XDG_DATA_DIRS for the library -+ GSettingsSchemaSource *schema_source = priv->schema_source = g_settings_schema_source_new_from_directory ("@gschemasCompiled@", NULL, FALSE, NULL); -+ priv->schema = g_settings_schema_source_lookup (schema_source, G_PASTE_SETTINGS_NAME, FALSE); -+ GSettings *settings = priv->settings = g_settings_new_full (priv->schema, NULL, NULL); - - priv->history_name = NULL; - priv->launch_ui = NULL;