From 12a10e32cd4b7fbbd2f399c3d0ef69644a7d0b38 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Jul 23 2016 01:47:32 +0000 Subject: Backport several patches from upstream --- diff --git a/empathy.spec b/empathy.spec index 33cb7ab..1a5f6cb 100644 --- a/empathy.spec +++ b/empathy.spec @@ -16,8 +16,9 @@ %global gcr_version 2.91.4 Name: empathy +# FIXME: Reenable parallel build for 3.12.13. Version: 3.12.12 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Instant Messaging Client for GNOME License: GPLv2+ @@ -26,6 +27,15 @@ URL: http://live.gnome.org/Empathy Source0: http://download.gnome.org/sources/%{name}/3.12/%{name}-%{version}.tar.xz Source1: %{name}-README.ConnectionManagers +# https://bugzilla.gnome.org/show_bug.cgi?id=756990 +Patch0: fix-date-icons.patch +# https://bugzilla.gnome.org/show_bug.cgi?id=767516 +Patch1: fix-empathy-call.patch +# https://bugzilla.gnome.org/show_bug.cgi?id=746735 +Patch3: fix-reduce-accuracy-setting.patch +# https://bugzilla.gnome.org/show_bug.cgi?id=768889 +Patch4: fs-element-notifiers-crash.patch + BuildRequires: enchant-devel >= %{enchant_version} BuildRequires: iso-codes-devel BuildRequires: desktop-file-utils @@ -60,8 +70,6 @@ BuildRequires: libsecret-devel >= %{libsecret_version} BuildRequires: gcr-devel >= %{gcr_version} BuildRequires: pkgconfig(gee-0.8) BuildRequires: itstool -# hack to conserve space on the live cd -BuildRequires: /usr/bin/convert Requires: telepathy-filesystem Requires: telepathy-mission-control >= %{tp_mc_min_version} @@ -81,20 +89,16 @@ It is built on top of the Telepathy framework. %prep %autosetup -p1 -# force this to be regenerated -rm data/empathy.desktop - %build -## GCC complains about some unused functions, so we forcibly show those as -## simple warnings instead of build-halting errors. %configure \ --disable-schemas-compile \ --disable-silent-rules \ --disable-static \ --enable-ubuntu-online-accounts=no -# Parallel builds are broken. +# Parallel build is broken in 3.12.12, but it will be fixed in the next release. +# TODO: Reenable parallel build. make install -m 0644 %{SOURCE1} ./README.ConnectionManagers @@ -110,12 +114,6 @@ desktop-file-install --delete-original \ --dir %{buildroot}%{_datadir}/applications \ %{buildroot}%{_datadir}/applications/%{name}.desktop -# hack to conserve space on the live image -for f in video_overview.png conf_overview.png croom_overview.png; do - convert %{buildroot}%{_datadir}/help/C/empathy/figures/$f -resize 150x150 $f - mv $f %{buildroot}%{_datadir}/help/C/empathy/figures -done - %post touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : @@ -200,6 +198,9 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || : %{_datadir}/adium/message-styles/PlanetGNOME.AdiumMessageStyle/Contents/Resources/main.css %changelog +* Fri Jul 22 2016 Michael Catanzaro - 3.12.12-2 +- Backport several patches from upstream + * Fri May 13 2016 Kalev Lember - 3.12.12-1 - Update to 3.12.12 diff --git a/fix-date-icons.patch b/fix-date-icons.patch new file mode 100644 index 0000000..700be2d --- /dev/null +++ b/fix-date-icons.patch @@ -0,0 +1,25 @@ +From 746b5b52c8469d5156a0a94fff4361ec3378246c Mon Sep 17 00:00:00 2001 +From: Hussam Al-Tayeb +Date: Thu, 22 Oct 2015 16:25:00 -0500 +Subject: [PATCH] Fix missing date icons in chat history window + +use x-office-calendar icon instead + +https://bugzilla.gnome.org/show_bug.cgi?id=756990 +--- + libempathy-gtk/empathy-log-window.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libempathy-gtk/empathy-log-window.c b/libempathy-gtk/empathy-log-window.c +index d58de82..b3a66e7 100644 +--- a/libempathy-gtk/empathy-log-window.c ++++ b/libempathy-gtk/empathy-log-window.c +@@ -204,7 +204,7 @@ enum + COL_EVENTS_COUNT + }; + +-#define CALENDAR_ICON "stock_calendar" ++#define CALENDAR_ICON "x-office-calendar" + + /* Seconds between two messages to be considered one conversation */ + #define MAX_GAP 30*60 diff --git a/fix-empathy-call.patch b/fix-empathy-call.patch new file mode 100644 index 0000000..0693a9b --- /dev/null +++ b/fix-empathy-call.patch @@ -0,0 +1,45 @@ +From 9f0d8a6e7444dd59729bac2c24717ea72aea5080 Mon Sep 17 00:00:00 2001 +From: Michael Catanzaro +Date: Thu, 21 Jul 2016 20:48:12 -0500 +Subject: [PATCH] Revert "Don't call XInitThreads in Wayland" + +This reverts commit a9ede294c57bc5738be3c33cba4ef88b9a7d4a0e. + +It causes empathy-call to crash when run in X11, and fixes absolutely +nothing. See the bug for details. + +Thanks to Diane Trout for investigating and preparing a substantially- +identical patch. + +https://bugzilla.gnome.org/show_bug.cgi?id=767516 +--- + src/empathy-call.c | 9 +++------ + 1 file changed, 3 insertions(+), 6 deletions(-) + +diff --git a/src/empathy-call.c b/src/empathy-call.c +index 8821bf3..1ac8a79 100644 +--- a/src/empathy-call.c ++++ b/src/empathy-call.c +@@ -28,7 +28,6 @@ + #include + + #ifdef CLUTTER_WINDOWING_X11 +-#include + #include + #endif + +@@ -216,11 +215,9 @@ main (int argc, + g_setenv ("GST_DEBUG_DUMP_DOT_DIR", g_get_tmp_dir (), FALSE); + + #ifdef GDK_WINDOWING_X11 +- if (GDK_IS_X11_DISPLAY (gdk_display_get_default ())) { +- /* We can't call clutter_gst_init() before gtk_clutter_init(), so no choice +- * but to intiialise X11 threading ourself */ +- XInitThreads (); +- } ++ /* We can't call clutter_gst_init() before gtk_clutter_init(), so no choice ++ * but to intiialise X11 threading ourself */ ++ XInitThreads (); + #endif + + optcontext = g_option_context_new (N_("- Empathy Audio/Video Client")); diff --git a/fix-reduce-accuracy-setting.patch b/fix-reduce-accuracy-setting.patch new file mode 100644 index 0000000..ce43fb1 --- /dev/null +++ b/fix-reduce-accuracy-setting.patch @@ -0,0 +1,46 @@ +From f1b1b75e6772502290cbff5be2c8f31b61bdb6df Mon Sep 17 00:00:00 2001 +From: Fabrice Bellet +Date: Mon, 23 Mar 2015 01:30:50 +0100 +Subject: [PATCH] location-manager: fix reduce accuracy setting + +https://bugzilla.gnome.org/show_bug.cgi?id=746735 +--- + libempathy-gtk/empathy-location-manager.c | 17 +++++++++++++++++ + 1 file changed, 17 insertions(+) + +diff --git a/libempathy-gtk/empathy-location-manager.c b/libempathy-gtk/empathy-location-manager.c +index 8787eb2..6ba39ac 100644 +--- a/libempathy-gtk/empathy-location-manager.c ++++ b/libempathy-gtk/empathy-location-manager.c +@@ -368,6 +368,18 @@ publish_cb (GSettings *gsettings_loc, + } + + static void ++reduce_accuracy_cb (GSettings *gsettings_loc, ++ const gchar *key, ++ gpointer user_data) ++{ ++ EmpathyLocationManager *self = EMPATHY_LOCATION_MANAGER (user_data); ++ ++ DEBUG ("Reduce Accuracy changed"); ++ ++ self->priv->reduce_accuracy = g_settings_get_boolean (gsettings_loc, key); ++} ++ ++static void + account_manager_prepared_cb (GObject *source_object, + GAsyncResult *result, + gpointer user_data) +@@ -416,7 +428,12 @@ empathy_location_manager_init (EmpathyLocationManager *self) + "changed::" EMPATHY_PREFS_LOCATION_PUBLISH, + G_CALLBACK (publish_cb), self); + ++ g_signal_connect (priv->gsettings_loc, ++ "changed::" EMPATHY_PREFS_LOCATION_REDUCE_ACCURACY, ++ G_CALLBACK (reduce_accuracy_cb), self); ++ + publish_cb (priv->gsettings_loc, EMPATHY_PREFS_LOCATION_PUBLISH, self); ++ reduce_accuracy_cb (priv->gsettings_loc, EMPATHY_PREFS_LOCATION_REDUCE_ACCURACY, self); + } + + EmpathyLocationManager * diff --git a/fs-element-notifiers-crash.patch b/fs-element-notifiers-crash.patch new file mode 100644 index 0000000..cfcad8b --- /dev/null +++ b/fs-element-notifiers-crash.patch @@ -0,0 +1,53 @@ +From e07685ff5e93346a86690fcf1b8449bf934c8da4 Mon Sep 17 00:00:00 2001 +From: Fabrice Bellet +Date: Wed, 13 Jul 2016 16:00:05 +0200 +Subject: [PATCH] call-window: properly remove the fs element notifiers + +This patch removes the FsElementAddedNotifier from the pipeline +in the conference remove callback, instead of just unreferencing +them. This fixes a crash in the rtp-special-source stop thread +cleanup code. + +https://bugzilla.gnome.org/show_bug.cgi?id=768889 +--- + src/empathy-call-window.c | 19 ++++++++++++++++--- + 1 file changed, 16 insertions(+), 3 deletions(-) + +diff --git a/src/empathy-call-window.c b/src/empathy-call-window.c +index a54346c..2bbbd0f 100644 +--- a/src/empathy-call-window.c ++++ b/src/empathy-call-window.c +@@ -2513,17 +2513,30 @@ empathy_call_window_conference_added_cb (EmpathyCallHandler *handler, + } + + static void ++empathy_call_window_add_notifier_remove (gpointer data, gpointer user_data) ++{ ++ EmpathyCallWindow *self = EMPATHY_CALL_WINDOW (user_data); ++ EmpathyCallWindowPriv *priv = GET_PRIV (self); ++ FsElementAddedNotifier *notifier = data; ++ ++ fs_element_added_notifier_remove (notifier, GST_BIN (priv->pipeline)); ++} ++ ++static void + empathy_call_window_conference_removed_cb (EmpathyCallHandler *handler, + GstElement *conference, gpointer user_data) + { + EmpathyCallWindow *self = EMPATHY_CALL_WINDOW (user_data); + EmpathyCallWindowPriv *priv = GET_PRIV (self); + +- g_list_free_full (priv->notifiers, g_object_unref); +- priv->notifiers = NULL; +- + gst_bin_remove (GST_BIN (priv->pipeline), conference); + gst_element_set_state (conference, GST_STATE_NULL); ++ ++ g_list_foreach (priv->notifiers, ++ empathy_call_window_add_notifier_remove, user_data); ++ ++ g_list_free_full (priv->notifiers, g_object_unref); ++ priv->notifiers = NULL; + } + + static gboolean