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

This commit is contained in:
Owen W. Taylor 2012-04-20 13:07:29 -04:00
parent bb8afdc79f
commit 74140a1291
2 changed files with 102 additions and 2 deletions

View File

@ -0,0 +1,92 @@
From 317b17b26d54e16d8cd1bdcd70fc44c70f9b865a Mon Sep 17 00:00:00 2001
From: "Owen W. Taylor" <otaylor@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

View File

@ -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@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@gmail.com> - 3.4.1-2
- Silence glib-compile-schemas scriplets