gnome3.gpaste: 3.30.2 -> 3.32.0

This commit is contained in:
Tor Hedin Brønner 2019-03-12 17:39:12 +01:00 committed by Jan Tojnar
parent 1a290ef8d5
commit e1094c3408
No known key found for this signature in database
GPG Key ID: 7FAB2A15F7A607A4
2 changed files with 16 additions and 38 deletions

@ -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

@ -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;