From 6ab81f5cc0420864359c2531fecac597364d46db56a99b9a1923e848d0a35276 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Sat, 1 Nov 2014 07:13:48 +0000 Subject: [PATCH] Accepting request 258366 from GNOME:Apps 1 OBS-URL: https://build.opensuse.org/request/show/258366 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/pidgin?expand=0&rev=106 --- pidgin-2.10.10.tar.bz2 | 3 + pidgin-2.10.9.tar.bz2 | 3 - pidgin-crash-missing-gst-registry.patch | 25 +- pidgin-gstreamer1.patch | 330 ------------------------ pidgin.changes | 48 +++- pidgin.spec | 19 +- 6 files changed, 60 insertions(+), 368 deletions(-) create mode 100644 pidgin-2.10.10.tar.bz2 delete mode 100644 pidgin-2.10.9.tar.bz2 delete mode 100644 pidgin-gstreamer1.patch diff --git a/pidgin-2.10.10.tar.bz2 b/pidgin-2.10.10.tar.bz2 new file mode 100644 index 0000000..1f327be --- /dev/null +++ b/pidgin-2.10.10.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dc6b95512eaec75aef170aabce471491fc70584932599dfead20f1f1c45c822d +size 9409485 diff --git a/pidgin-2.10.9.tar.bz2 b/pidgin-2.10.9.tar.bz2 deleted file mode 100644 index bc66545..0000000 --- a/pidgin-2.10.9.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:dc362ed8577f623eea4554a79e917073aa726825074fea402f2e515f0f51f319 -size 10093423 diff --git a/pidgin-crash-missing-gst-registry.patch b/pidgin-crash-missing-gst-registry.patch index 328eb73..1c2ec52 100644 --- a/pidgin-crash-missing-gst-registry.patch +++ b/pidgin-crash-missing-gst-registry.patch @@ -1,7 +1,7 @@ -diff --git a/pidgin/gtkmain.c b/pidgin/gtkmain.c -index 6e828fc..e690d58 100644 ---- a/pidgin/gtkmain.c -+++ b/pidgin/gtkmain.c +Index: pidgin-2.10.10/pidgin/gtkmain.c +=================================================================== +--- pidgin-2.10.10.orig/pidgin/gtkmain.c ++++ pidgin-2.10.10/pidgin/gtkmain.c @@ -75,7 +75,7 @@ #endif @@ -11,19 +11,12 @@ index 6e828fc..e690d58 100644 #ifdef HAVE_SIGNAL_H -@@ -523,7 +523,15 @@ int main(int argc, char *argv[]) - #endif - - /* Initialize GThread before calling any Glib or GTK+ functions. */ -+#if !GLIB_CHECK_VERSION(2, 32, 0) -+ /* GLib threading system is automaticaly initialized since 2.32. -+ * For earlier versions, it have to be initialized before calling any -+ * Glib or GTK+ functions. -+ */ +@@ -528,6 +528,8 @@ int main(int argc, char *argv[]) + */ g_thread_init(NULL); -+#endif -+ /* make sure Gst is initialized before any other Glib/Gst calls (see Gst docs) */ -+ gst_init(NULL, NULL); + #endif ++ /* make sure Gst is initialized before any other Glib/Gst calls (see Gst docs) */ ++ gst_init(NULL, NULL); g_set_prgname("Pidgin"); diff --git a/pidgin-gstreamer1.patch b/pidgin-gstreamer1.patch deleted file mode 100644 index 9235a9f..0000000 --- a/pidgin-gstreamer1.patch +++ /dev/null @@ -1,330 +0,0 @@ -Index: pidgin-2.10.7/libpurple/media/backend-fs2.c -=================================================================== ---- pidgin-2.10.7.orig/libpurple/media/backend-fs2.c -+++ pidgin-2.10.7/libpurple/media/backend-fs2.c -@@ -189,8 +189,13 @@ event_probe_cb(GstPad *srcpad, GstEvent - - gst_pad_unlink(srcpad, gst_pad_get_peer(srcpad)); - -+#if GST_CHECK_VERSION(1,0,0) -+ gst_pad_remove_probe(srcpad, -+ g_value_get_ulong(gst_structure_get_value(s, "handler-id"))); -+#else - gst_pad_remove_event_probe(srcpad, - g_value_get_uint(gst_structure_get_value(s, "handler-id"))); -+#endif - - if (g_value_get_boolean(gst_structure_get_value(s, "release-pad"))) - gst_element_release_request_pad(GST_ELEMENT_PARENT(srcpad), srcpad); -@@ -204,7 +209,12 @@ event_probe_cb(GstPad *srcpad, GstEvent - static void - unlink_teepad_dynamic(GstPad *srcpad, gboolean release_pad) - { -+#if GST_CHECK_VERSION(1,0,0) -+ gulong id = gst_pad_add_probe(srcpad, GST_PAD_PROBE_TYPE_EVENT_BOTH, -+ G_CALLBACK(event_probe_cb), NULL, NULL); -+#else - guint id = gst_pad_add_event_probe(srcpad, G_CALLBACK(event_probe_cb), NULL); -+#endif - - if (GST_IS_GHOST_PAD(srcpad)) - srcpad = gst_ghost_pad_get_target(GST_GHOST_PAD(srcpad)); -@@ -213,7 +223,11 @@ unlink_teepad_dynamic(GstPad *srcpad, gb - gst_event_new_custom(GST_EVENT_CUSTOM_DOWNSTREAM, - gst_structure_new("purple-unlink-tee", - "release-pad", G_TYPE_BOOLEAN, release_pad, -+#if GST_CHECK_VERSION(1,0,0) -+ "handler-id", G_TYPE_ULONG, id, -+#else - "handler-id", G_TYPE_UINT, id, -+#endif - NULL))); - } - -@@ -808,12 +822,15 @@ gst_handle_message_element(GstBus *bus, - PurpleMediaBackendFs2Private *priv = - PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(self); - GstElement *src = GST_ELEMENT(GST_MESSAGE_SRC(msg)); -+ GstStructure *gst_struct; - static guint level_id = 0; - - if (level_id == 0) - level_id = g_signal_lookup("level", PURPLE_TYPE_MEDIA); - -- if (gst_structure_has_name(msg->structure, "level")) { -+ gst_struct = gst_message_get_structure(msg); -+ -+ if (gst_structure_has_name(gst_struct, "level")) { - GstElement *src = GST_ELEMENT(GST_MESSAGE_SRC(msg)); - gchar *name; - gchar *participant = NULL; -@@ -868,12 +885,12 @@ gst_handle_message_element(GstBus *bus, - return; - - #ifdef HAVE_FARSIGHT -- if (gst_structure_has_name(msg->structure, "farsight-error")) { -+ if (gst_structure_has_name(gst_struct, "farsight-error")) { - #else -- if (gst_structure_has_name(msg->structure, "farstream-error")) { -+ if (gst_structure_has_name(gst_struct, "farstream-error")) { - #endif - FsError error_no; -- gst_structure_get_enum(msg->structure, "error-no", -+ gst_structure_get_enum(gst_struct, "error-no", - FS_TYPE_ERROR, (gint*)&error_no); - switch (error_no) { - case FS_ERROR_NO_CODECS: -@@ -910,7 +927,7 @@ gst_handle_message_element(GstBus *bus, - #endif - error_no, - gst_structure_get_string( -- msg->structure, "error-msg")); -+ gst_struct, "error-msg")); - break; - } - -@@ -924,7 +941,7 @@ gst_handle_message_element(GstBus *bus, - #endif - purple_media_end(priv->media, NULL, NULL); - } -- } else if (gst_structure_has_name(msg->structure, -+ } else if (gst_structure_has_name(gst_struct, - #ifdef HAVE_FARSIGHT - "farsight-new-local-candidate")) { - #else -@@ -939,9 +956,9 @@ gst_handle_message_element(GstBus *bus, - PurpleMediaBackendFs2Stream *media_stream; - gchar *name; - -- value = gst_structure_get_value(msg->structure, "stream"); -+ value = gst_structure_get_value(gst_struct, "stream"); - stream = g_value_get_object(value); -- value = gst_structure_get_value(msg->structure, "candidate"); -+ value = gst_structure_get_value(gst_struct, "candidate"); - local_candidate = g_value_get_boxed(value); - - session = get_session_from_fs_stream(self, stream); -@@ -963,7 +980,7 @@ gst_handle_message_element(GstBus *bus, - g_signal_emit_by_name(self, "new-candidate", - session->id, name, candidate); - g_object_unref(candidate); -- } else if (gst_structure_has_name(msg->structure, -+ } else if (gst_structure_has_name(gst_struct, - #ifdef HAVE_FARSIGHT - "farsight-local-candidates-prepared")) { - #else -@@ -975,7 +992,7 @@ gst_handle_message_element(GstBus *bus, - PurpleMediaBackendFs2Session *session; - gchar *name; - -- value = gst_structure_get_value(msg->structure, "stream"); -+ value = gst_structure_get_value(gst_struct, "stream"); - stream = g_value_get_object(value); - session = get_session_from_fs_stream(self, stream); - -@@ -985,7 +1002,7 @@ gst_handle_message_element(GstBus *bus, - - g_signal_emit_by_name(self, "candidates-prepared", - session->id, name); -- } else if (gst_structure_has_name(msg->structure, -+ } else if (gst_structure_has_name(gst_struct, - #ifdef HAVE_FARSIGHT - "farsight-new-active-candidate-pair")) { - #else -@@ -1000,12 +1017,12 @@ gst_handle_message_element(GstBus *bus, - PurpleMediaCandidate *lcandidate, *rcandidate; - gchar *name; - -- value = gst_structure_get_value(msg->structure, "stream"); -+ value = gst_structure_get_value(gst_struct, "stream"); - stream = g_value_get_object(value); -- value = gst_structure_get_value(msg->structure, -+ value = gst_structure_get_value(gst_struct, - "local-candidate"); - local_candidate = g_value_get_boxed(value); -- value = gst_structure_get_value(msg->structure, -+ value = gst_structure_get_value(gst_struct, - "remote-candidate"); - remote_candidate = g_value_get_boxed(value); - -@@ -1023,7 +1040,7 @@ gst_handle_message_element(GstBus *bus, - - g_object_unref(lcandidate); - g_object_unref(rcandidate); -- } else if (gst_structure_has_name(msg->structure, -+ } else if (gst_structure_has_name(gst_struct, - #ifdef HAVE_FARSIGHT - "farsight-recv-codecs-changed")) { - #else -@@ -1033,7 +1050,7 @@ gst_handle_message_element(GstBus *bus, - GList *codecs; - FsCodec *codec; - -- value = gst_structure_get_value(msg->structure, "codecs"); -+ value = gst_structure_get_value(gst_struct, "codecs"); - codecs = g_value_get_boxed(value); - codec = codecs->data; - -@@ -1044,7 +1061,7 @@ gst_handle_message_element(GstBus *bus, - "farstream-recv-codecs-changed: %s\n", - #endif - codec->encoding_name); -- } else if (gst_structure_has_name(msg->structure, -+ } else if (gst_structure_has_name(gst_struct, - #ifdef HAVE_FARSIGHT - "farsight-component-state-changed")) { - #else -@@ -1055,9 +1072,9 @@ gst_handle_message_element(GstBus *bus, - guint component; - const gchar *state; - -- value = gst_structure_get_value(msg->structure, "state"); -+ value = gst_structure_get_value(gst_struct, "state"); - fsstate = g_value_get_enum(value); -- value = gst_structure_get_value(msg->structure, "component"); -+ value = gst_structure_get_value(gst_struct, "component"); - component = g_value_get_uint(value); - - switch (fsstate) { -@@ -1092,7 +1109,7 @@ gst_handle_message_element(GstBus *bus, - #endif - "component: %u state: %s\n", - component, state); -- } else if (gst_structure_has_name(msg->structure, -+ } else if (gst_structure_has_name(gst_struct, - #ifdef HAVE_FARSIGHT - "farsight-send-codec-changed")) { - #else -@@ -1102,7 +1119,7 @@ gst_handle_message_element(GstBus *bus, - FsCodec *codec; - gchar *codec_str; - -- value = gst_structure_get_value(msg->structure, "codec"); -+ value = gst_structure_get_value(gst_struct, "codec"); - codec = g_value_get_boxed(value); - codec_str = fs_codec_to_string(codec); - -@@ -1115,7 +1132,7 @@ gst_handle_message_element(GstBus *bus, - codec_str); - - g_free(codec_str); -- } else if (gst_structure_has_name(msg->structure, -+ } else if (gst_structure_has_name(gst_struct, - #ifdef HAVE_FARSIGHT - "farsight-codecs-changed")) { - #else -@@ -1125,7 +1142,7 @@ gst_handle_message_element(GstBus *bus, - FsSession *fssession; - GList *sessions; - -- value = gst_structure_get_value(msg->structure, "session"); -+ value = gst_structure_get_value(gst_struct, "session"); - fssession = g_value_get_object(value); - sessions = g_hash_table_get_values(priv->sessions); - -Index: pidgin-2.10.7/libpurple/mediamanager.c -=================================================================== ---- pidgin-2.10.7.orig/libpurple/mediamanager.c -+++ pidgin-2.10.7/libpurple/mediamanager.c -@@ -44,7 +44,12 @@ - #else - #include - #endif -+ -+#if GST_CHECK_VERSION(1,0,0) -+#include -+#else - #include -+#endif - - /** @copydoc _PurpleMediaManagerPrivate */ - typedef struct _PurpleMediaManagerPrivate PurpleMediaManagerPrivate; -@@ -270,8 +275,13 @@ purple_media_manager_get_pipeline(Purple - gst_bus_add_signal_watch(GST_BUS(bus)); - g_signal_connect(G_OBJECT(bus), "message", - G_CALLBACK(pipeline_bus_call), manager); -+#if GST_CHECK_VERSION(1,0,0) -+ gst_bus_set_sync_handler(bus, -+ gst_bus_sync_signal_handler, NULL, NULL); -+#else - gst_bus_set_sync_handler(bus, - gst_bus_sync_signal_handler, NULL); -+#endif - gst_object_unref(bus); - - filename = g_build_filename(purple_user_dir(), -@@ -727,7 +737,7 @@ window_id_cb(GstBus *bus, GstMessage *ms - GstElement *sink; - - if (GST_MESSAGE_TYPE(msg) != GST_MESSAGE_ELEMENT || -- !gst_structure_has_name(msg->structure, -+ !gst_structure_has_name(gst_message_get_structure(msg), - "prepare-xwindow-id")) - return; - -@@ -742,8 +752,13 @@ window_id_cb(GstBus *bus, GstMessage *ms - | G_SIGNAL_MATCH_DATA, 0, 0, NULL, - window_id_cb, ow); - -+#if GST_CHECK_VERSION(1,0,0) -+ gst_video_overlay_set_window_handle(GST_VIDEO_OVERLAY(GST_MESSAGE_SRC(msg)), -+ ow->window_id); -+#else - gst_x_overlay_set_xwindow_id(GST_X_OVERLAY( - GST_MESSAGE_SRC(msg)), ow->window_id); -+#endif - } - #endif - -Index: pidgin-2.10.7/configure.ac -=================================================================== ---- pidgin-2.10.7.orig/configure.ac -+++ pidgin-2.10.7/configure.ac -@@ -740,17 +740,17 @@ dnl #################################### - dnl # Check for GStreamer - dnl ####################################################################### - dnl --dnl TODO: Depend on gstreamer >= 0.10.10, and remove the conditional use of -+dnl TODO: Depend on gstreamer >= 1.0.0, and remove the conditional use of - dnl gst_registry_fork_set_enabled. - AC_ARG_ENABLE(gstreamer, - [AC_HELP_STRING([--disable-gstreamer], [compile without GStreamer audio support])], - enable_gst="$enableval", enable_gst="yes") - if test "x$enable_gst" != "xno"; then -- PKG_CHECK_MODULES(GSTREAMER, [gstreamer-0.10], [ -+ PKG_CHECK_MODULES(GSTREAMER, [gstreamer-1.0], [ - AC_DEFINE(USE_GSTREAMER, 1, [Use GStreamer for playing sounds]) - AC_SUBST(GSTREAMER_CFLAGS) - AC_SUBST(GSTREAMER_LIBS) -- AC_CHECK_LIB(gstreamer-0.10, gst_registry_fork_set_enabled, -+ AC_CHECK_LIB(gstreamer-1.0, gst_registry_fork_set_enabled, - [ AC_DEFINE(GST_CAN_DISABLE_FORKING, [], - [Define if gst_registry_fork_set_enabled exists])], - [], [$GSTREAMER_LIBS]) -@@ -766,26 +766,6 @@ Use --disable-gstreamer if you do not ne - fi - - dnl ####################################################################### --dnl # Check for GStreamer Interfaces --dnl ####################################################################### --if test "x$enable_gst" != "xno"; then -- AC_ARG_ENABLE(gstreamer-interfaces, -- [AC_HELP_STRING([--disable-gstreamer-interfaces], [compile without GStreamer interface support])], -- enable_gstinterfaces="$enableval", enable_gstinterfaces="yes") -- if test "x$enable_gstinterfaces" != "xno"; then -- PKG_CHECK_MODULES(GSTINTERFACES, [gstreamer-interfaces-0.10], [ -- AC_DEFINE(USE_GSTINTERFACES, 1, [Use GStreamer interfaces for X overlay support]) -- AC_SUBST(GSTINTERFACES_CFLAGS) -- AC_SUBST(GSTINTERFACES_LIBS) -- ], [ -- enable_gstinterfaces="no" -- ]) -- fi --else -- enable_gstinterfaces="no" --fi -- --dnl ####################################################################### - dnl # Check for Farstream - dnl ####################################################################### - AC_ARG_ENABLE(farstream, diff --git a/pidgin.changes b/pidgin.changes index 8e1c196..a6bde31 100644 --- a/pidgin.changes +++ b/pidgin.changes @@ -1,3 +1,45 @@ +------------------------------------------------------------------- +Fri Oct 24 10:07:47 UTC 2014 - dimstar@opensuse.org + +- Update to version 2.10.10: + + General: + - Check the basic constraints extension when validating + SSL/TLS certificates. This fixes a security hole that allowed + a malicious man-in-the-middle to impersonate an IM server or + any other https endpoint. This affected both the NSS and + GnuTLS plugins (CVE-2014-3694, boo#902495). + - Allow and prefer TLS 1.2 and 1.1 when using the NSS plugin + for SSL (im#15909). + + libpurple3 compatibility: + - Encrypted account passwords are preserved until the new one + is set. + - Fix loading Google Talk and Facebook XMPP accounts. + + Windows-Specific Changes: Don't allow overwriting arbitrary + files on the file system when the user installs a smiley theme + via drag-and-drop (CVE-2014-3697). + + Finch: Fix build against Python 3 (im#15969). + + Gadu-Gadu: Updated internal libgadu to version 1.12.0. + + Groupwise: Fix potential remote crash parsing server message + that indicates that a large amount of memory should be + allocated (CVE-2014-3696, boo#902410). + + IRC: Fix a possible leak of unencrypted data when using /me + command with OTR (im#15750). + + MXit: Fix potential remote crash parsing a malformed emoticon + response (CVE-2014-3695, boo#902409). + + XMPP: + - Fix potential information leak where a malicious XMPP server + and possibly even a malicious remote user could create a + carefully crafted XMPP message that causes libpurple to send + an XMPP message containing arbitrary memory (CVE-2014-3698, + boo#902408). + - Fix Facebook XMPP roster quirks (im#15041, im#15957). + + Yahoo: Fix login when using the GnuTLS library for TLS + connections (im#16172, boo#874606). +- Drop pidgin-gstreamer1.patch: causes crashes and Video still does + not work (boo#853038). Drop BuildRequires conditions switching to + GStreamer 1.0. +- Rebase pidgin-crash-missing-gst-registry.patch. + ------------------------------------------------------------------- Wed Jul 6 23:00:00 UTC 2014 - tbehrens@suse.com @@ -21,11 +63,11 @@ Thu Jun 19 08:27:50 UTC 2014 - fcrozat@suse.com Fri Mar 28 11:50:49 UTC 2014 - cxiong@suse.com - Fix crash when GST registry cache file is missing - + add pidgin-crash-missing-gst-registry.patch according to the - GST doc, "gst_init" should be called before any other calls. + + add pidgin-crash-missing-gst-registry.patch according to the + GST doc, "gst_init" should be called before any other calls. See (bnc#866455). See (pidgin.im#16224) for the upstream bug report. - + ------------------------------------------------------------------- Mon Feb 3 13:15:03 UTC 2014 - zaitor@opensuse.org diff --git a/pidgin.spec b/pidgin.spec index 2aa72df..8dd1120 100644 --- a/pidgin.spec +++ b/pidgin.spec @@ -28,11 +28,11 @@ Name: pidgin Summary: Multiprotocol Instant Messaging Client License: GPL-2.0+ Group: Productivity/Networking/Instant Messenger -Version: 2.10.9 +Version: 2.10.10 Release: 0 # FIXME: Remove unconditional --disable-vv parameter from configure once pidgin is ported to farstream 0.2 Url: http://www.pidgin.im/ -Source: http://downloads.sourceforge.net/project/pidgin/Pidgin/2.10.9/%{name}-%{version}.tar.bz2 +Source: http://downloads.sourceforge.net/project/pidgin/Pidgin/%{version}/%{name}-%{version}.tar.bz2 Source1: pidgin-NLD-smiley-theme.tar.bz2 Source2: pidgin-Tango-smiley-theme.tar.bz2 Source3: pidgin-prefs.xml @@ -44,8 +44,6 @@ Patch5: pidgin-nonblock-common2.patch Patch14: pidgin-mono-buildfix.patch # PATCH-FIX-OPENSUSE pidgin-fix-perl-build.patch vuntz@opensuse.org -- Revert http://developer.pidgin.im/viewmtn/revision/info/f32151852a00fb5abd3fdccdd8df2419031666de as it breaks the build Patch15: pidgin-fix-perl-build.patch -# PATCH-FEATURE-UPSTREAM pidgin-gstreamer1.patch https://developer.pidgin.im/ticket/15386 dimstar@opensuse.org -- Port to GStreamer 1.0 -Patch17: pidgin-gstreamer1.patch # PATCH-FIX-UPSTREAM pidgin-ssl-cache.patch pidgin.im#11568 tbehrens@suse.com -- Disable caching the SSL Session keys, as some (broken) IRC servers are not willing to re-use them upon a disconnect. Patch18: pidgin-ssl-cache.patch # PATCH-FIX-UPSTREAM pidgin-crash-missing-gst-registry.patch bnc#866455 pidgin.im#16224 cxiong@suse.com -- fix crash when GST registry cache file is missing. @@ -133,19 +131,9 @@ BuildRequires: tk-devel BuildRequires: translation-update-upstream %endif BuildRequires: NetworkManager-devel -BuildRequires: update-desktop-files -%if %suse_version > 1230 -BuildRequires: gstreamer-devel -BuildRequires: gstreamer-plugins-base-devel -%else -%if %suse_version > 1030 BuildRequires: gstreamer-0_10-devel BuildRequires: gstreamer-0_10-plugins-base-devel -%else -BuildRequires: gstreamer010-devel -BuildRequires: gstreamer010-plugins-base-devel -%endif -%endif +BuildRequires: update-desktop-files %if %suse_version > 1020 BuildRequires: dbus-1-glib-devel BuildRequires: silc-toolkit-devel @@ -417,7 +405,6 @@ translation-update-upstream %patch14 -p1 %patch15 -p1 %if 0%{?suse_version} >= 1310 -%patch17 -p1 %patch18 -p0 %patch19 -p1 %endif