Hello!
On Tue, Jun 07, 2016 at 12:57:59AM +0200, Michael Biebl wrote:
> Am 07.06.2016 um 00:41 schrieb Andreas Hilboll:
[...]
> >(gnome-calendar:4888): GLib-GIO-ERROR **: Settings schema
> > 'org.gnome.shell.calendar' is not installed
>
> That schema is provided by gnome-shell-common
>
> We either need to add that as a dependency or (better) make
> gnome-calendar handle it gracefully if the schema doesn't exist.
The attached patch might help, but I also noticed that in the 3.21 series
gnome-calendar (and gnome-shell) has been migrated to use the
gsettings-desktop-schemas org.gnome.desktop.calendar schema instead.
I guess that makes it less interesting to gracefully handle missing
schema in favour of just adding a versioned dependency on
gsettings-desktop-schemas.
I guess we could just carry the patch until we update to 3.21.x/3.22
if someone verifies it actually works... Could you test rebuilding
the gnome-calendar package with the attached patch and see if it
solves your issue Andreas?
Regards,
Andreas Henriksson
From: Andreas Henriksson
Subject: make gnome-calendar start even if gnome-shell schemas are missing
Bug-Debian: https://bugs.debian.org/826609
--- a/src/gcal-year-view.c
+++ b/src/gcal-year-view.c
@@ -1483,6 +1483,26 @@
gtk_widget_class_set_css_name (widget_class, "calendar-view");
}
+/* bind GNOME Shell' show week numbers property to GNOME Calendar's one */
+static void
+gcal_bind_gnome_shell_week_numbers_to_gcal (GcalYearView *self)
+{
+ GSettingsSchemaSource *defsrc;
+
+ /* bail out early if gnome-shell schema is not available. */
+ defsrc = g_settings_schema_source_get_default ();
+ if (!defsrc || g_settings_schema_source_lookup (defsrc,
+ "org.gnome.shell.calendar",
+ TRUE) == NULL) {
+self->shell_settings = NULL;
+return;
+ }
+
+ self->shell_settings = g_settings_new ("org.gnome.shell.calendar");
+ g_settings_bind (self->shell_settings, "show-weekdate", self, "show-week-numbers", G_SETTINGS_BIND_DEFAULT);
+ g_signal_connect_swapped (self->shell_settings, "changed::show-weekdate", G_CALLBACK (gtk_widget_queue_draw), self);
+}
+
static void
gcal_year_view_init (GcalYearView *self)
{
@@ -1501,10 +1521,7 @@
self->end_selected_date = g_new0 (icaltimetype, 1);
self->end_selected_date->zone = e_cal_util_get_system_timezone ();
- /* bind GNOME Shell' show week numbers property to GNOME Calendar's one */
- self->shell_settings = g_settings_new ("org.gnome.shell.calendar");
- g_settings_bind (self->shell_settings, "show-weekdate", self, "show-week-numbers", G_SETTINGS_BIND_DEFAULT);
- g_signal_connect_swapped (self->shell_settings, "changed::show-weekdate", G_CALLBACK (gtk_widget_queue_draw), self);
+ gcal_bind_gnome_shell_week_numbers_to_gcal (self);
gtk_list_box_set_header_func (GTK_LIST_BOX (self->events_sidebar), update_sidebar_headers, self, NULL);
gtk_list_box_set_sort_func (GTK_LIST_BOX (self->events_sidebar), sidebar_sort_func, NULL, NULL);