[gnome-shell/f17] Add a patch from upstream to avoid a crash when Evolution is not installed (#814401)

Owen Taylor otaylor at fedoraproject.org
Fri Apr 20 17:08:11 UTC 2012


commit 74140a129194663636b73ddb49d60a44cec8e261
Author: Owen W. Taylor <otaylor at fishsoup.net>
Date:   Fri Apr 20 13:07:29 2012 -0400

    Add a patch from upstream to avoid a crash when Evolution is not installed (#814401)

 ...ution-calendar-settings-into-our-own-sche.patch |   92 ++++++++++++++++++++
 gnome-shell.spec                                   |   12 ++-
 2 files changed, 102 insertions(+), 2 deletions(-)
---
diff --git a/Mirror-Evolution-calendar-settings-into-our-own-sche.patch b/Mirror-Evolution-calendar-settings-into-our-own-sche.patch
new file mode 100644
index 0000000..283d15e
--- /dev/null
+++ b/Mirror-Evolution-calendar-settings-into-our-own-sche.patch
@@ -0,0 +1,92 @@
+From 317b17b26d54e16d8cd1bdcd70fc44c70f9b865a Mon Sep 17 00:00:00 2001
+From: "Owen W. Taylor" <otaylor at fishsoup.net>
+Date: Fri, 20 Apr 2012 10:51:32 -0400
+Subject: [PATCH] Mirror Evolution calendar settings into our own schema
+
+Right now, we are hard-depending on the presence of Evolution by
+using its settings schemas. This is likely to be unpopular, and
+also causes instability if someone happens not to have Evolution
+installed, so install a schema that has the same data path as
+the Evolution schema, but a different name and install that
+for the keys we need.
+
+To avoid a string-freeze break, we rely on the translations in
+Evolution - if Evolution isn't installed, the key descriptions
+will be untranslated in dconf-editor.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=674424
+---
+ data/Makefile.am                                   |    2 +-
+ ...g.gnome.shell.evolution.calendar.gschema.xml.in |   21 ++++++++++++++++++++
+ po/POTFILES.skip                                   |    1 +
+ src/calendar-server/calendar-sources.c             |    5 ++++-
+ 4 files changed, 27 insertions(+), 2 deletions(-)
+ create mode 100644 data/org.gnome.shell.evolution.calendar.gschema.xml.in
+
+diff --git a/data/Makefile.am b/data/Makefile.am
+index 4803081..05caf27 100644
+--- a/data/Makefile.am
++++ b/data/Makefile.am
+@@ -53,7 +53,7 @@ dist_theme_DATA =				\
+ 	theme/ws-switch-arrow-up.svg		\
+ 	theme/ws-switch-arrow-down.svg
+ 
+-gsettings_SCHEMAS = org.gnome.shell.gschema.xml
++gsettings_SCHEMAS = org.gnome.shell.gschema.xml org.gnome.shell.evolution.calendar.gschema.xml
+ 
+ @INTLTOOL_XML_NOMERGE_RULE@
+ @GSETTINGS_RULES@
+diff --git a/data/org.gnome.shell.evolution.calendar.gschema.xml.in b/data/org.gnome.shell.evolution.calendar.gschema.xml.in
+new file mode 100644
+index 0000000..f0ce82b
+--- /dev/null
++++ b/data/org.gnome.shell.evolution.calendar.gschema.xml.in
+@@ -0,0 +1,21 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<!-- NOTE: This schema is a GNOME 3.4 workaround - it uses the same path
++     as org.gnome.evolution.calendar, but avoids us requiring Evolution
++     be installed. In GNOME 3.6 the selected state will become a flag
++     on the calendar. Because the translations are in Evolution,
++     this is untranslated and in POTFILES.skip.
++  -->
++<schemalist>
++  <schema path="/org/gnome/evolution/calendar/" id="org.gnome.shell.evolution.calendar" gettext-domain="evolution">
++    <key type="as" name="selected-calendars">
++      <default>[]</default>
++      <summary>List of selected calendars</summary>
++      <description>List of calendars to load</description>
++    </key>
++    <key type="as" name="selected-tasks">
++      <default>[]</default>
++      <summary>List of selected task lists</summary>
++      <description>List of task lists to load</description>
++    </key>
++  </schema>
++</schemalist>
+diff --git a/po/POTFILES.skip b/po/POTFILES.skip
+index e032bdc..fe31eda 100644
+--- a/po/POTFILES.skip
++++ b/po/POTFILES.skip
+@@ -1,2 +1,3 @@
+ data/gnome-shell.desktop.in
+ data/gnome-shell-extension-prefs.desktop.in
++data/org.gnome.shell.evolution.calendar.gschema.xml.in
+diff --git a/src/calendar-server/calendar-sources.c b/src/calendar-server/calendar-sources.c
+index a1eb80f..59fa044 100644
+--- a/src/calendar-server/calendar-sources.c
++++ b/src/calendar-server/calendar-sources.c
+@@ -52,7 +52,10 @@
+ #define CALENDAR_SOURCES_APPOINTMENT_SOURCES_KEY          CALENDAR_SOURCES_EVO_DIR "/calendar/sources"
+ #define CALENDAR_SOURCES_TASK_SOURCES_KEY                 CALENDAR_SOURCES_EVO_DIR "/tasks/sources"
+ 
+-#define CALENDAR_SELECTED_SOURCES_SCHEMA                  "org.gnome.evolution.calendar"
++/* org.gnome.shell.evolution.calendar has the same data behind it
++ * as org.gnome.evolution.calendar, but is a small schema we install
++ * ourselves */
++#define CALENDAR_SELECTED_SOURCES_SCHEMA                  "org.gnome.shell.evolution.calendar"
+ #define CALENDAR_SOURCES_SELECTED_APPOINTMENT_SOURCES_KEY "selected-calendars"
+ #define CALENDAR_SOURCES_SELECTED_TASK_SOURCES_KEY        "selected-tasks"
+ 
+-- 
+1.7.10
+
diff --git a/gnome-shell.spec b/gnome-shell.spec
index 630a722..9fcd848 100644
--- a/gnome-shell.spec
+++ b/gnome-shell.spec
@@ -1,6 +1,6 @@
 Name:           gnome-shell
 Version:        3.4.1
-Release:        2%{?dist}
+Release:        3%{?dist}
 Summary:        Window management and application launching for GNOME
 
 Group:          User Interface/Desktops
@@ -12,6 +12,8 @@ Source0:        http://download.gnome.org/sources/gnome-shell/3.4/%{name}-%{vers
 Patch0: gnome-shell-avoid-redhat-menus.patch
 # Replace Epiphany with Firefox in the default favourite apps list
 Patch1: gnome-shell-favourite-apps-firefox.patch
+# https://bugzilla.gnome.org/show_bug.cgi?id=674424
+Patch2: Mirror-Evolution-calendar-settings-into-our-own-sche.patch
 
 %define clutter_version 1.9.16
 %define gobject_introspection_version 0.10.1
@@ -87,12 +89,15 @@ easy to use experience.
 %setup -q
 %patch0 -p1 -b .avoid-redhat-menus
 %patch1 -p1 -b .firefox
+%patch2 -p1 -b .mirror-schemas
 
 rm configure
 
 %build
 export CFLAGS="$RPM_OPT_FLAGS -Wno-error=deprecated-declarations"
-(if ! test -x configure; then NOCONFIGURE=1 ./autogen.sh; fi;
+# (if ! test -x configure; then NOCONFIGURE=1 ./autogen.sh; fi;
+# reautogen for Mirror-Evolution-calendar-settings-into-our-own-sche.patch
+ (NOCONFIGURE=1 ./autogen.sh; 
  %configure --disable-static)
 make V=1 %{?_smp_mflags}
 
@@ -147,6 +152,9 @@ glib-compile-schemas --allow-any-name %{_datadir}/glib-2.0/schemas &> /dev/null
 %exclude %{_datadir}/gtk-doc
 
 %changelog
+* Fri Apr 20 2012 Owen Taylor <otaylor at redhat.com> - 3.4.1-3
+- Add a patch from upstream to avoid a crash when Evolution is not installed (#814401)
+
 * Wed Apr 18 2012 Kalev Lember <kalevlember at gmail.com> - 3.4.1-2
 - Silence glib-compile-schemas scriplets
 


More information about the scm-commits mailing list