[Pkg-telepathy-commits] [SCM] telepathy-gabble packaging branch, debian, updated. debian/0.16.1-2
Simon McVittie
smcv at debian.org
Fri Sep 14 11:56:13 UTC 2012
The following commit has been merged in the debian branch:
commit 566e9ba9da7362c04df2e964469ec7041dc83bfb
Author: Simon McVittie <smcv at debian.org>
Date: Fri Sep 14 12:39:09 2012 +0100
Update to 0.16.3, sort of (functional changes only)
* Add patch from 0.16.2 to fix a potential use-after-free when
disconnecting with TLS verification channels open
* Add patches from 0.16.3 to avoid triggering repeated capability discovery
in iChat (Closes: #687370, LP: #984132)
diff --git a/debian/changelog b/debian/changelog
index 9d68497..4b810dc 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,12 @@
+telepathy-gabble (0.16.1-2) unstable; urgency=low
+
+ * Add patch from 0.16.2 to fix a potential use-after-free when
+ disconnecting with TLS verification channels open
+ * Add patches from 0.16.3 to avoid triggering repeated capability discovery
+ in iChat (Closes: #687370, LP: #984132)
+
+ -- Simon McVittie <smcv at debian.org> Fri, 14 Sep 2012 12:39:01 +0100
+
telepathy-gabble (0.16.1-1) unstable; urgency=medium
* Bump priority to medium as this version is fixing connection issues with
diff --git a/debian/patches/0001-server-tls-manager-deal-with-modification-of-the-GLi.patch b/debian/patches/0001-server-tls-manager-deal-with-modification-of-the-GLi.patch
new file mode 100644
index 0000000..7ea6193
--- /dev/null
+++ b/debian/patches/0001-server-tls-manager-deal-with-modification-of-the-GLi.patch
@@ -0,0 +1,39 @@
+From: Jonny Lamb <jonny.lamb at collabora.co.uk>
+Date: Wed, 11 Jul 2012 11:53:03 +0100
+Subject: [PATCH 01/15] server-tls-manager: deal with modification of the
+ GList while iterating it
+
+Signed-off-by: Jonny Lamb <jonny.lamb at collabora.co.uk>
+Origin: upstream, 0.16.2, commit:f88ae541292e0ff4abd9214bef4c7b99a55dc4e9
+Bug: https://bugs.freedesktop.org/show_bug.cgi?id=53087
+---
+ src/server-tls-manager.c | 13 +++++++++++--
+ 1 file changed, 11 insertions(+), 2 deletions(-)
+
+diff --git a/src/server-tls-manager.c b/src/server-tls-manager.c
+index 8dd90fb..c28d2d4 100644
+--- a/src/server-tls-manager.c
++++ b/src/server-tls-manager.c
+@@ -122,8 +122,17 @@ close_all (GabbleServerTLSManager *self)
+ if (self->priv->channel != NULL)
+ tp_base_channel_close (TP_BASE_CHANNEL (self->priv->channel));
+
+- for (l = self->priv->completed_channels; l != NULL; l = l->next)
+- tp_base_channel_close (l->data);
++ l = self->priv->completed_channels;
++ while (l != NULL)
++ {
++ /* use a temporary variable as the ::closed callback will delete
++ * the link from the list. */
++ GList *next = l->next;
++
++ tp_base_channel_close (l->data);
++
++ l = next;
++ }
+ }
+
+ static void
+--
+1.7.10.4
+
diff --git a/debian/patches/0011-Add-Google-camera-v1-as-a-first-class-caps-bundle.patch b/debian/patches/0011-Add-Google-camera-v1-as-a-first-class-caps-bundle.patch
new file mode 100644
index 0000000..af4e310
--- /dev/null
+++ b/debian/patches/0011-Add-Google-camera-v1-as-a-first-class-caps-bundle.patch
@@ -0,0 +1,156 @@
+From: Simon McVittie <simon.mcvittie at collabora.co.uk>
+Date: Fri, 7 Sep 2012 15:18:23 +0100
+Subject: [PATCH 11/15] Add Google camera-v1 as a first-class caps bundle
+
+This is partly a point of principle - given any caps bundle that we have
+ever advertised support for, we should be prepared to define when asked -
+but mainly a workaround for the iChat bug mentioned in commit af55ea3d.
+If we return an error, it will keep disco'ing us repeatedly in a loop.
+
+This leaves us with the problem of finding out what the bundle contains.
+In Google's usage it is only its name that is important (ignoring that
+XEP-0115 explicitly makes bundle names opaque), but replying to disco
+requests for it requires us to be able to turn it into a set of 0 or
+more capability URIs. Because of the Google server bug mentioned in
+commit cd0da0a8, we can't just ask a Google client, because they're
+all on Google servers, so they can't usefully be disco'd.
+
+We assume here that it behaves like the voice-v1 and video-v1 bundles
+in containing exactly one URI, and that that URI corresponds to the
+bundle name in the same way.
+
+Signed-off-by: Simon McVittie <simon.mcvittie at collabora.co.uk>
+Reviewed-by: Sjoerd Simons <sjoerd.simons at collabora.co.uk>
+Bug: https://bugs.freedesktop.org/show_bug.cgi?id=54634
+Bug-Debian: http://bugs.debian.org/687370
+Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/telepathy-gabble/+bug/984132
+Origin: upstream, 0.16.3, commit:fbfa8c138da1a4f00c74af4bda98e858a203a58b
+---
+ gabble/capabilities.h | 1 +
+ src/capabilities.c | 13 +++++++++++++
+ src/connection.c | 3 +++
+ src/namespaces.h | 1 +
+ src/presence-cache.c | 3 +++
+ 5 files changed, 21 insertions(+)
+
+diff --git a/gabble/capabilities.h b/gabble/capabilities.h
+index 81c8c25..dd0a0c9 100644
+--- a/gabble/capabilities.h
++++ b/gabble/capabilities.h
+@@ -65,6 +65,7 @@ const GabbleCapabilitySet *gabble_capabilities_get_olpc_notify (void);
+ const GabbleCapabilitySet *gabble_capabilities_get_bundle_share_v1 (void);
+ const GabbleCapabilitySet *gabble_capabilities_get_bundle_voice_v1 (void);
+ const GabbleCapabilitySet *gabble_capabilities_get_bundle_video_v1 (void);
++const GabbleCapabilitySet *gabble_capabilities_get_bundle_camera_v1 (void);
+
+ /* Return the capabilities we always have */
+ const GabbleCapabilitySet *gabble_capabilities_get_fixed_caps (void);
+diff --git a/src/capabilities.c b/src/capabilities.c
+index 14a396a..d2b25f5 100644
+--- a/src/capabilities.c
++++ b/src/capabilities.c
+@@ -77,6 +77,7 @@ static const Feature self_advertised_features[] =
+ { FEATURE_OPTIONAL, NS_GOOGLE_FEAT_SHARE },
+ { FEATURE_OPTIONAL, NS_GOOGLE_FEAT_VOICE },
+ { FEATURE_OPTIONAL, NS_GOOGLE_FEAT_VIDEO },
++ { FEATURE_OPTIONAL, NS_GOOGLE_FEAT_CAMERA },
+ { FEATURE_OPTIONAL, NS_JINGLE_DESCRIPTION_AUDIO },
+ { FEATURE_OPTIONAL, NS_JINGLE_DESCRIPTION_VIDEO },
+ { FEATURE_OPTIONAL, NS_JINGLE_RTP },
+@@ -103,6 +104,7 @@ static GabbleCapabilitySet *legacy_caps = NULL;
+ static GabbleCapabilitySet *share_v1_caps = NULL;
+ static GabbleCapabilitySet *voice_v1_caps = NULL;
+ static GabbleCapabilitySet *video_v1_caps = NULL;
++static GabbleCapabilitySet *camera_v1_caps = NULL;
+ static GabbleCapabilitySet *any_audio_caps = NULL;
+ static GabbleCapabilitySet *any_video_caps = NULL;
+ static GabbleCapabilitySet *any_audio_video_caps = NULL;
+@@ -138,6 +140,12 @@ gabble_capabilities_get_bundle_video_v1 (void)
+ }
+
+ const GabbleCapabilitySet *
++gabble_capabilities_get_bundle_camera_v1 (void)
++{
++ return camera_v1_caps;
++}
++
++const GabbleCapabilitySet *
+ gabble_capabilities_get_any_audio (void)
+ {
+ return any_audio_caps;
+@@ -271,6 +279,9 @@ gabble_capabilities_init (gpointer conn)
+ video_v1_caps = gabble_capability_set_new ();
+ gabble_capability_set_add (video_v1_caps, NS_GOOGLE_FEAT_VIDEO);
+
++ camera_v1_caps = gabble_capability_set_new ();
++ gabble_capability_set_add (camera_v1_caps, NS_GOOGLE_FEAT_CAMERA);
++
+ any_audio_caps = gabble_capability_set_new ();
+ gabble_capability_set_add (any_audio_caps, NS_JINGLE_RTP_AUDIO);
+ gabble_capability_set_add (any_audio_caps, NS_JINGLE_DESCRIPTION_AUDIO);
+@@ -335,6 +346,7 @@ gabble_capabilities_finalize (gpointer conn)
+ gabble_capability_set_free (share_v1_caps);
+ gabble_capability_set_free (voice_v1_caps);
+ gabble_capability_set_free (video_v1_caps);
++ gabble_capability_set_free (camera_v1_caps);
+ gabble_capability_set_free (any_audio_caps);
+ gabble_capability_set_free (any_video_caps);
+ gabble_capability_set_free (any_audio_video_caps);
+@@ -350,6 +362,7 @@ gabble_capabilities_finalize (gpointer conn)
+ share_v1_caps = NULL;
+ voice_v1_caps = NULL;
+ video_v1_caps = NULL;
++ camera_v1_caps = NULL;
+ any_audio_caps = NULL;
+ any_video_caps = NULL;
+ any_audio_video_caps = NULL;
+diff --git a/src/connection.c b/src/connection.c
+index c1e5946..316af96 100644
+--- a/src/connection.c
++++ b/src/connection.c
+@@ -2707,6 +2707,9 @@ iq_disco_cb (WockyPorter *porter,
+
+ if (!tp_strdiff (suffix, BUNDLE_VIDEO_V1))
+ features = gabble_capabilities_get_bundle_video_v1 ();
++
++ if (!tp_strdiff (suffix, BUNDLE_CAMERA_V1))
++ features = gabble_capabilities_get_bundle_camera_v1 ();
+ }
+
+ if (data_forms != NULL)
+diff --git a/src/namespaces.h b/src/namespaces.h
+index 4f8415c..13ae5db 100644
+--- a/src/namespaces.h
++++ b/src/namespaces.h
+@@ -35,6 +35,7 @@
+ #define NS_GOOGLE_FEAT_SHARE "http://google.com/xmpp/protocol/share/v1"
+ #define NS_GOOGLE_FEAT_VOICE "http://www.google.com/xmpp/protocol/voice/v1"
+ #define NS_GOOGLE_FEAT_VIDEO "http://www.google.com/xmpp/protocol/video/v1"
++#define NS_GOOGLE_FEAT_CAMERA "http://www.google.com/xmpp/protocol/camera/v1"
+ #define NS_GOOGLE_JINGLE_INFO "google:jingleinfo"
+ #define NS_GOOGLE_ROSTER "google:roster"
+ #define NS_GOOGLE_QUEUE "google:queue"
+diff --git a/src/presence-cache.c b/src/presence-cache.c
+index 31a3012..72901a0 100644
+--- a/src/presence-cache.c
++++ b/src/presence-cache.c
+@@ -522,6 +522,7 @@ gabble_presence_cache_add_bundles (GabblePresenceCache *cache)
+ */
+ GOOGLE_BUNDLE ("voice-v1", NS_GOOGLE_FEAT_VOICE);
+ GOOGLE_BUNDLE ("video-v1", NS_GOOGLE_FEAT_VIDEO);
++ GOOGLE_BUNDLE ("camera-v1", NS_GOOGLE_FEAT_CAMERA);
+
+ /* File transfer support */
+ GOOGLE_BUNDLE ("share-v1", NS_GOOGLE_FEAT_SHARE);
+@@ -550,6 +551,8 @@ gabble_presence_cache_add_bundles (GabblePresenceCache *cache)
+ NS_GABBLE_CAPS "#" BUNDLE_VIDEO_V1, NS_GOOGLE_FEAT_VIDEO);
+ gabble_presence_cache_add_bundle_caps (cache,
+ NS_GABBLE_CAPS "#" BUNDLE_SHARE_V1, NS_GOOGLE_FEAT_SHARE);
++ gabble_presence_cache_add_bundle_caps (cache,
++ NS_GABBLE_CAPS "#" BUNDLE_CAMERA_V1, NS_GOOGLE_FEAT_CAMERA);
+ }
+
+ static GObject *
+--
+1.7.10.4
+
diff --git a/debian/patches/0012-Now-that-camera-v1-has-a-caps-URI-don-t-treat-it-as-.patch b/debian/patches/0012-Now-that-camera-v1-has-a-caps-URI-don-t-treat-it-as-.patch
new file mode 100644
index 0000000..5b17314
--- /dev/null
+++ b/debian/patches/0012-Now-that-camera-v1-has-a-caps-URI-don-t-treat-it-as-.patch
@@ -0,0 +1,53 @@
+From: Simon McVittie <simon.mcvittie at collabora.co.uk>
+Date: Fri, 7 Sep 2012 15:19:30 +0100
+Subject: [PATCH 12/15] Now that camera-v1 has a caps URI, don't treat it as
+ part of video-v1
+
+Bug: https://bugs.freedesktop.org/show_bug.cgi?id=54634
+Reviewed-by: Sjoerd Simons <sjoerd.simons at collabora.co.uk>
+Signed-off-by: Simon McVittie <simon.mcvittie at collabora.co.uk>
+Bug-Debian: http://bugs.debian.org/687370
+Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/telepathy-gabble/+bug/984132
+Origin: upstream, 0.16.3, commit:da14b4e86d503b30054b10b5e7b00eae7ba1add5
+---
+ src/connection.c | 5 +++--
+ src/media-factory.c | 5 ++++-
+ 2 files changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/src/connection.c b/src/connection.c
+index 316af96..5ea0d1a 100644
+--- a/src/connection.c
++++ b/src/connection.c
+@@ -2403,10 +2403,11 @@ gabble_connection_fill_in_caps (GabbleConnection *self,
+ if (voice_v1)
+ g_string_append (ext, " " BUNDLE_VOICE_V1);
+
+- if (video_v1) {
++ if (video_v1)
+ g_string_append (ext, " " BUNDLE_VIDEO_V1);
++
++ if (gabble_presence_has_cap (presence, NS_GOOGLE_FEAT_CAMERA))
+ g_string_append (ext, " " BUNDLE_CAMERA_V1);
+- }
+
+ wocky_node_set_attribute (node, "ext", ext->str);
+ g_string_free (ext, TRUE);
+diff --git a/src/media-factory.c b/src/media-factory.c
+index b52cfc6..493a817 100644
+--- a/src/media-factory.c
++++ b/src/media-factory.c
+@@ -1053,7 +1053,10 @@ gabble_media_factory_add_caps (GabbleCapabilitySet *caps,
+ /* video-v1 implies that we interop with Google Video Chat, i.e. we have
+ * gtalk-p2p and H.264 as well as video */
+ if (gtalk_p2p && h264)
+- gabble_capability_set_add (caps, NS_GOOGLE_FEAT_VIDEO);
++ {
++ gabble_capability_set_add (caps, NS_GOOGLE_FEAT_VIDEO);
++ gabble_capability_set_add (caps, NS_GOOGLE_FEAT_CAMERA);
++ }
+ }
+ }
+
+--
+1.7.10.4
+
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..6c55aa4
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1,3 @@
+0001-server-tls-manager-deal-with-modification-of-the-GLi.patch
+0011-Add-Google-camera-v1-as-a-first-class-caps-bundle.patch
+0012-Now-that-camera-v1-has-a-caps-URI-don-t-treat-it-as-.patch
--
telepathy-gabble packaging
More information about the Pkg-telepathy-commits
mailing list