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 <[email protected]> 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);

