Hello community,
here is the log from the commit of package telepathy-glib for openSUSE:Factory
checked in at Wed Oct 5 17:48:20 CEST 2011.
--------
--- openSUSE:Factory/telepathy-glib/telepathy-glib.changes 2011-10-04 18:15:20.000000000 +0200
+++ /mounts/work_src_done/STABLE/telepathy-glib/telepathy-glib.changes 2011-10-05 07:53:21.000000000 +0200
@@ -1,0 +2,18 @@
+Wed Oct 5 05:38:12 UTC 2011 - vuntz@opensuse.org
+
+- Update to version 0.15.7:
+ + Fixes:
+ - fdo#40555: Memory leaks in TpConnection and protocol.c
+ - Memory leak if the debug message cache is disabled
+ - fdo#38060: Fix a crash in TpMessageMixin, triggered by
+ delivery reports.
+ - fdo#38997: Cope beter if UNIX sockets are not supported.
+ - fdo#40523: Connection Manager crash when a client acks the
+ same message twice.
+ - fdo#41414: Make sure tp_connection_upgrade_contacts() is
+ no-op if all features are already prepared.
+ - fdo#41368: Fix introspection.
+ - fdo#41435: Ensure sent messages have a sender even with
+ butterfly, which does not set "message-sender".
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
telepathy-glib-0.15.6.tar.gz
New:
----
telepathy-glib-0.15.7.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ telepathy-glib.spec ++++++
--- /var/tmp/diff_new_pack.WBe17c/_old 2011-10-05 17:48:08.000000000 +0200
+++ /var/tmp/diff_new_pack.WBe17c/_new 2011-10-05 17:48:08.000000000 +0200
@@ -18,7 +18,7 @@
Name: telepathy-glib
-Version: 0.15.6
+Version: 0.15.7
Release: 1
License: LGPLv2.1
Summary: Libraries for adding telepathy support to applications that use glib
++++++ telepathy-glib-0.15.6.tar.gz -> telepathy-glib-0.15.7.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/telepathy-glib-0.15.6/ChangeLog new/telepathy-glib-0.15.7/ChangeLog
--- old/telepathy-glib-0.15.6/ChangeLog 2011-09-30 15:51:34.000000000 +0200
+++ new/telepathy-glib-0.15.7/ChangeLog 2011-10-04 17:05:40.000000000 +0200
@@ -1,3 +1,140 @@
+commit b0c14c2613232de12ce8800230471db93517d7d4
+Author: Xavier Claessens
+Date: 2011-10-03 14:38:03 +0200
+
+ Version 0.15.7
+
+commit f1b611ea1a5e06cd801d059db05dd00de6ad5e1c
+Merge: be94076 41be1c9
+Author: Will Thompson
+Date: 2011-10-04 15:41:18 +0100
+
+ Merge branch 'telepathy-glib-0.14'
+
+ Conflicts:
+ NEWS
+ configure.ac
+ telepathy-glib/message-mixin.c
+
+commit 41be1c9d7467a643efc6c12cf3b96816d98fbd30
+Author: Will Thompson
+Date: 2011-10-04 15:31:12 +0100
+
+ Nano-version bump to 0.14.10.1
+
+commit 041f910c3c94caa7eed412acd645bec68408fc22
+Author: Will Thompson
+Date: 2011-10-04 15:22:21 +0100
+
+ Version 0.14.10
+
+commit cb7875e4bf52b8553d4cab670ac6e0484afa5f6d
+Author: Will Thompson
+Date: 2011-10-04 15:21:25 +0100
+
+ More NEWS for 0.14.10
+
+commit 1c1c688e8c6ceda679c1473c7454ee6db2710007
+Merge: a899ab8 dff3ce5
+Author: Will Thompson
+Date: 2011-10-04 15:05:11 +0100
+
+ Merge branch '40523-crash-on-ack' into telepathy-glib-0.14
+
+ Reviewed-by: Xavier Claessens
+
+commit dff3ce56fe82a9b16068d0cdcbc508d2d3c390ba
+Author: Will Thompson
+Date: 2011-10-04 14:16:07 +0100
+
+ MessageMixin: DEBUG if AckPM gets an id more than once
+
+commit be940765ac3e355ee7efb52a49bf68431e52b0c0
+Author: Xavier Claessens
+Date: 2011-10-03 15:05:05 +0200
+
+ test_upgrade_noop: verify with all features
+
+commit 535ac16a74b535c3256e7acd9757a61e23bfc493
+Author: Xavier Claessens
+Date: 2011-10-03 14:18:20 +0200
+
+ Add regression test case to verify no-op upgrade
+
+commit b693c190495599b90ca07f9441cf6ecc41bd5169
+Author: Xavier Claessens
+Date: 2011-10-03 12:41:10 +0200
+
+ Make sure tp_connection_upgrade_contacts() is no-op if all features are already prepared
+
+commit dedd4a32647c96dd3854120c5c20b319ed00fbae
+Author: Xavier Claessens
+Date: 2011-10-04 10:48:05 +0200
+
+ Add unit test for sent message without message-sender
+
+commit bd5f36739a0e9b16c9351b1ac71a5ba26e24cf87
+Author: Xavier Claessens
+Date: 2011-10-04 08:05:56 +0200
+
+ TpTextChannel: Fallback to self contact if sent message does not have a sender
+
+ This was a regression, butterfly does not set message-sender on sent messages.
+
+ Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=41435
+
+commit e6886e1af905cbd11b91dcd82104ee5a394863fa
+Author: Will Thompson
+Date: 2011-10-03 14:20:01 +0100
+
+ MessageMixin: don't repeatedly scan pending message list
+
+ g_queue_remove() has to traverse the list, comparing data pointers,
+ until it finds the link we want to remove. It's stupid to use it here,
+ because we already *have* a pointer to each link we want to remove.
+
+commit 4d41eec6c0b51c8bedd2a15fafc64529e45c4340
+Author: Will Thompson
+Date: 2011-10-03 13:54:57 +0100
+
+ MessageMixin: don't crash if an id appears twice
+
+ Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=40523
+
+commit c3f9dd779c1d780eab6d0de8be510c2ea45fc796
+Author: Will Thompson
+Date: 2011-10-03 12:57:41 +0100
+
+ MessageMixin: track messages to be acked in a GPtrArray
+
+ Since 'ids' may contain duplicates (which a future patch will filter
+ out), using an array of GList *s is a bit cumbersome: we'd have to be
+ sure not to index elements of it which haven't been initialized. Using a
+ GPtrArray is clearer.
+
+commit 89b27c10020723769d4c7732c56f9ff809801c01
+Author: Xavier Claessens
+Date: 2011-10-03 10:19:17 +0200
+
+ Add warning comment to warn that ordering matters for gi-scanner
+
+commit c1b9b9f899589e3fc3a340ef5f0a22b962a32ee1
+Author: Xavier Claessens
+Date: 2011-10-03 10:17:17 +0200
+
+ Revert "Sort alphabetically introspected files"
+
+ This reverts commit 48998822d5e9575af822c1936b35be514dc2401b.
+
+ It seems gi-scanner depends on the order the files are given.
+ See https://bugzilla.gnome.org/show_bug.cgi?id=660629
+
+commit 48e8194462ade5440f9a76121796383676148f6e
+Author: Xavier Claessens
+Date: 2011-10-03 12:23:44 +0200
+
+ Nano-version bump
+
commit 43b597d8bb9d67d4256961981b5a578b6a2e44b5
Author: Xavier Claessens
Date: 2011-09-30 14:30:23 +0200
@@ -212,6 +349,12 @@
Signed-off-by: Jonny Lamb
+commit a899ab819ccb3f60b083822eedb0f7989bee3707
+Author: Vivek Dasmohapatra
+Date: 2011-09-07 17:01:59 +0100
+
+ Update NEWS
+
commit 55979632725dcce40bf5b6b29cfe4a5e1ed4b7f7
Merge: 2f8725a 0cb8c83
Author: Vivek Dasmohapatra
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/telepathy-glib-0.15.6/NEWS new/telepathy-glib-0.15.7/NEWS
--- old/telepathy-glib-0.15.6/NEWS 2011-09-30 15:34:13.000000000 +0200
+++ new/telepathy-glib-0.15.7/NEWS 2011-10-04 16:57:59.000000000 +0200
@@ -1,3 +1,30 @@
+telepathy-glib 0.15.7 (2011-10-04)
+==================================
+
+Fixes:
+
+• fd.o#40555: Memory leaks in TpConnection and protocol.c (Vivek)
+
+• Memory leak if the debug message cache is disabled (Vivek)
+
+• fd.o#38060: Fix a crash in TpMessageMixin, triggered by delivery
+ reports. (Danni)
+
+• fd.o#38997: Cope beter if UNIX sockets are not supported. (Guillaume)
+
+• fd.o#40523: Connection Manager crash when a client acks the same
+ message twice. (Will)
+
+• fd.o#41414: Make sure tp_connection_upgrade_contacts() is no-op if all
+ features are already prepared (Xavier).
+
+• fd.o#41368: Fix introspection by reverting
+ 48998822d5e9575af822c1936b35be514dc2401b. The order in which files are given
+ to gi-scanner matters (Xavier).
+
+• fd.o#41435: Ensure sent messages have a sender even with butterfly, which does
+ not set "message-sender" (Xavier).
+
telepathy-glib 0.15.6 (2011-09-30)
==================================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/telepathy-glib-0.15.6/configure new/telepathy-glib-0.15.7/configure
--- old/telepathy-glib-0.15.6/configure 2011-09-30 15:34:59.000000000 +0200
+++ new/telepathy-glib-0.15.7/configure 2011-10-04 16:58:08.000000000 +0200
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for Telepathy-GLib 0.15.6.
+# Generated by GNU Autoconf 2.68 for Telepathy-GLib 0.15.7.
#
# Report bugs to https://bugs.freedesktop.org/enter_bug.cgi?product=Telepathy&component=tp-glib.
#
@@ -631,8 +631,8 @@
# Identity of this package.
PACKAGE_NAME='Telepathy-GLib'
PACKAGE_TARNAME='telepathy-glib'
-PACKAGE_VERSION='0.15.6'
-PACKAGE_STRING='Telepathy-GLib 0.15.6'
+PACKAGE_VERSION='0.15.7'
+PACKAGE_STRING='Telepathy-GLib 0.15.7'
PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=Telepathy&component=tp-glib'
PACKAGE_URL=''
@@ -1459,7 +1459,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures Telepathy-GLib 0.15.6 to adapt to many kinds of systems.
+\`configure' configures Telepathy-GLib 0.15.7 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1529,7 +1529,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of Telepathy-GLib 0.15.6:";;
+ short | recursive ) echo "Configuration of Telepathy-GLib 0.15.7:";;
esac
cat <<\_ACEOF
@@ -1682,7 +1682,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-Telepathy-GLib configure 0.15.6
+Telepathy-GLib configure 0.15.7
generated by GNU Autoconf 2.68
Copyright (C) 2010 Free Software Foundation, Inc.
@@ -2172,7 +2172,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by Telepathy-GLib $as_me 0.15.6, which was
+It was created by Telepathy-GLib $as_me 0.15.7, which was
generated by GNU Autoconf 2.68. Invocation command line was
$ $0 $@
@@ -2990,7 +2990,7 @@
# Define the identity of the package.
PACKAGE='telepathy-glib'
- VERSION='0.15.6'
+ VERSION='0.15.7'
cat >>confdefs.h <<_ACEOF
@@ -18019,7 +18019,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by Telepathy-GLib $as_me 0.15.6, which was
+This file was extended by Telepathy-GLib $as_me 0.15.7, which was
generated by GNU Autoconf 2.68. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -18085,7 +18085,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-Telepathy-GLib config.status 0.15.6
+Telepathy-GLib config.status 0.15.7
configured by $0, generated by GNU Autoconf 2.68,
with options \\"\$ac_cs_config\\"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/telepathy-glib-0.15.6/configure.ac new/telepathy-glib-0.15.7/configure.ac
--- old/telepathy-glib-0.15.6/configure.ac 2011-09-30 15:34:17.000000000 +0200
+++ new/telepathy-glib-0.15.7/configure.ac 2011-10-04 16:57:59.000000000 +0200
@@ -11,7 +11,7 @@
m4_define([tp_glib_major_version], [0])
m4_define([tp_glib_minor_version], [15])
-m4_define([tp_glib_micro_version], [6])
+m4_define([tp_glib_micro_version], [7])
m4_define([tp_glib_nano_version], [0])
# If library source has changed since last release, increment revision
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/telepathy-glib-0.15.6/docs/reference/html/index.html new/telepathy-glib-0.15.7/docs/reference/html/index.html
--- old/telepathy-glib-0.15.6/docs/reference/html/index.html 2011-09-30 15:51:34.000000000 +0200
+++ new/telepathy-glib-0.15.7/docs/reference/html/index.html 2011-10-04 17:05:39.000000000 +0200
@@ -15,7 +15,7 @@
<div>
<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">telepathy-glib API Reference Manual</p></th></tr></table></div>
<div><p class="releaseinfo">
- This manual documents telepathy-glib version 0.15.6
+ This manual documents telepathy-glib version 0.15.7
.
The latest development version of this documentation can be found here:
<a class="ulink" href="http://telepathy.freedesktop.org/doc/telepathy-glib/" target="_top">online copy of the telepathy-glib API Reference Manual</a>.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/telepathy-glib-0.15.6/docs/reference/version.xml new/telepathy-glib-0.15.7/docs/reference/version.xml
--- old/telepathy-glib-0.15.6/docs/reference/version.xml 2011-09-30 15:35:13.000000000 +0200
+++ new/telepathy-glib-0.15.7/docs/reference/version.xml 2011-10-04 16:58:21.000000000 +0200
@@ -1 +1 @@
-0.15.6
+0.15.7
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/telepathy-glib-0.15.6/telepathy-glib/Makefile.in new/telepathy-glib-0.15.7/telepathy-glib/Makefile.in
--- old/telepathy-glib-0.15.6/telepathy-glib/Makefile.in 2011-09-30 15:35:03.000000000 +0200
+++ new/telepathy-glib-0.15.7/telepathy-glib/Makefile.in 2011-10-04 16:58:12.000000000 +0200
@@ -828,64 +828,67 @@
kludge.xsl \
$(NULL)
+
+# /!\ Order matters, see https://bugzilla.gnome.org/show_bug.cgi?id=660629
@HAVE_INTROSPECTION_TRUE@INTROSPECTION_FILES = \
+@HAVE_INTROSPECTION_TRUE@ $(srcdir)/proxy.c _gen/proxy-introspectable.h \
@HAVE_INTROSPECTION_TRUE@ $(srcdir)/account.c $(srcdir)/account.h \
@HAVE_INTROSPECTION_TRUE@ $(srcdir)/account-channel-request.c $(srcdir)/account-channel-request.h \
@HAVE_INTROSPECTION_TRUE@ $(srcdir)/account-manager.c $(srcdir)/account-manager.h \
-@HAVE_INTROSPECTION_TRUE@ $(srcdir)/add-dispatch-operation-context.c $(srcdir)/add-dispatch-operation-context.h \
@HAVE_INTROSPECTION_TRUE@ $(srcdir)/automatic-client-factory.c $(srcdir)/automatic-client-factory.h \
@HAVE_INTROSPECTION_TRUE@ $(srcdir)/automatic-proxy-factory.c $(srcdir)/automatic-proxy-factory.h \
-@HAVE_INTROSPECTION_TRUE@ $(srcdir)/base-client.c $(srcdir)/base-client.h \
-@HAVE_INTROSPECTION_TRUE@ $(srcdir)/base-connection.c $(srcdir)/base-connection.h \
@HAVE_INTROSPECTION_TRUE@ $(srcdir)/basic-proxy-factory.c $(srcdir)/basic-proxy-factory.h \
-@HAVE_INTROSPECTION_TRUE@ $(srcdir)/capabilities.c $(srcdir)/capabilities.h \
-@HAVE_INTROSPECTION_TRUE@ $(srcdir)/channel.c $(srcdir)/channel.h \
-@HAVE_INTROSPECTION_TRUE@ $(srcdir)/channel-contacts.c \
-@HAVE_INTROSPECTION_TRUE@ $(srcdir)/channel-dispatcher.c $(srcdir)/channel-dispatcher.h \
-@HAVE_INTROSPECTION_TRUE@ $(srcdir)/channel-dispatch-operation.c $(srcdir)/channel-dispatch-operation.h \
-@HAVE_INTROSPECTION_TRUE@ $(srcdir)/channel-group.c \
-@HAVE_INTROSPECTION_TRUE@ $(srcdir)/channel-request.c $(srcdir)/channel-request.h \
@HAVE_INTROSPECTION_TRUE@ $(srcdir)/client-channel-factory.c $(srcdir)/client-channel-factory.h \
-@HAVE_INTROSPECTION_TRUE@ $(srcdir)/client-message.c $(srcdir)/client-message.h \
@HAVE_INTROSPECTION_TRUE@ $(srcdir)/connection.c $(srcdir)/connection.h \
-@HAVE_INTROSPECTION_TRUE@ $(srcdir)/connection-avatars.c \
@HAVE_INTROSPECTION_TRUE@ $(srcdir)/connection-contact-list.c $(srcdir)/connection-contact-list.h \
@HAVE_INTROSPECTION_TRUE@ $(srcdir)/connection-handles.c $(srcdir)/connection-contact-info.c \
+@HAVE_INTROSPECTION_TRUE@ $(srcdir)/connection-avatars.c \
+@HAVE_INTROSPECTION_TRUE@ $(srcdir)/protocol.c $(srcdir)/protocol.h \
@HAVE_INTROSPECTION_TRUE@ $(srcdir)/connection-manager.c $(srcdir)/connection-manager.h \
+@HAVE_INTROSPECTION_TRUE@ $(srcdir)/channel.c $(srcdir)/channel.h \
+@HAVE_INTROSPECTION_TRUE@ $(srcdir)/channel-group.c \
+@HAVE_INTROSPECTION_TRUE@ $(srcdir)/channel-contacts.c \
+@HAVE_INTROSPECTION_TRUE@ $(srcdir)/handle.c $(srcdir)/handle.h \
+@HAVE_INTROSPECTION_TRUE@ $(srcdir)/handle-channels-context.c $(srcdir)/handle-channels-context.h \
+@HAVE_INTROSPECTION_TRUE@ $(srcdir)/dbus-daemon.c $(srcdir)/dbus-daemon.h \
+@HAVE_INTROSPECTION_TRUE@ $(srcdir)/interfaces.c \
+@HAVE_INTROSPECTION_TRUE@ $(srcdir)/intset.c $(srcdir)/intset.h \
+@HAVE_INTROSPECTION_TRUE@ $(srcdir)/dbus.c $(srcdir)/dbus.h \
+@HAVE_INTROSPECTION_TRUE@ $(srcdir)/capabilities.c $(srcdir)/capabilities.h \
@HAVE_INTROSPECTION_TRUE@ $(srcdir)/contact.c $(srcdir)/contact.h \
@HAVE_INTROSPECTION_TRUE@ $(srcdir)/contact-operations.c $(srcdir)/contact-operations.h \
@HAVE_INTROSPECTION_TRUE@ $(srcdir)/contact-search.c $(srcdir)/contact-search.h \
@HAVE_INTROSPECTION_TRUE@ $(srcdir)/contact-search-result.c $(srcdir)/contact-search-result.h \
-@HAVE_INTROSPECTION_TRUE@ $(srcdir)/contacts-mixin.c $(srcdir)/contacts-mixin.h \
-@HAVE_INTROSPECTION_TRUE@ $(srcdir)/dbus.c $(srcdir)/dbus.h \
-@HAVE_INTROSPECTION_TRUE@ $(srcdir)/dbus-daemon.c $(srcdir)/dbus-daemon.h \
-@HAVE_INTROSPECTION_TRUE@ $(srcdir)/dbus-properties-mixin.c $(srcdir)/dbus-properties-mixin.h \
-@HAVE_INTROSPECTION_TRUE@ $(srcdir)/dbus-tube-channel.c $(srcdir)/dbus-tube-channel.h \
-@HAVE_INTROSPECTION_TRUE@ $(srcdir)/debug.c $(srcdir)/debug.h \
@HAVE_INTROSPECTION_TRUE@ $(srcdir)/defs.h \
-@HAVE_INTROSPECTION_TRUE@ $(srcdir)/errors.c $(srcdir)/errors.h \
-@HAVE_INTROSPECTION_TRUE@ $(srcdir)/file-transfer-channel.c $(srcdir)/file-transfer-channel.h \
-@HAVE_INTROSPECTION_TRUE@ $(srcdir)/group-mixin.c $(srcdir)/group-mixin.h \
-@HAVE_INTROSPECTION_TRUE@ $(srcdir)/handle.c $(srcdir)/handle.h \
-@HAVE_INTROSPECTION_TRUE@ $(srcdir)/handle-channels-context.c $(srcdir)/handle-channels-context.h \
-@HAVE_INTROSPECTION_TRUE@ $(srcdir)/handle-repo.c $(srcdir)/handle-repo.h $(srcdir)/handle-set.c \
-@HAVE_INTROSPECTION_TRUE@ $(srcdir)/interfaces.c \
-@HAVE_INTROSPECTION_TRUE@ $(srcdir)/intset.c $(srcdir)/intset.h \
-@HAVE_INTROSPECTION_TRUE@ $(srcdir)/message.c $(srcdir)/message.h \
-@HAVE_INTROSPECTION_TRUE@ $(srcdir)/observe-channels-context.c $(srcdir)/observe-channels-context.h \
-@HAVE_INTROSPECTION_TRUE@ $(srcdir)/presence-mixin.c $(srcdir)/presence-mixin.h \
-@HAVE_INTROSPECTION_TRUE@ $(srcdir)/protocol.c $(srcdir)/protocol.h \
-@HAVE_INTROSPECTION_TRUE@ $(srcdir)/proxy.c _gen/proxy-introspectable.h \
-@HAVE_INTROSPECTION_TRUE@ $(srcdir)/signalled-message.c $(srcdir)/signalled-message.h \
+@HAVE_INTROSPECTION_TRUE@ $(srcdir)/debug.c $(srcdir)/debug.h \
+@HAVE_INTROSPECTION_TRUE@ $(srcdir)/base-client.c $(srcdir)/base-client.h \
@HAVE_INTROSPECTION_TRUE@ $(srcdir)/simple-approver.c $(srcdir)/simple-approver.h \
@HAVE_INTROSPECTION_TRUE@ $(srcdir)/simple-client-factory.c $(srcdir)/simple-client-factory.h \
@HAVE_INTROSPECTION_TRUE@ $(srcdir)/simple-handler.c $(srcdir)/simple-handler.h \
@HAVE_INTROSPECTION_TRUE@ $(srcdir)/simple-observer.c $(srcdir)/simple-observer.h \
+@HAVE_INTROSPECTION_TRUE@ $(srcdir)/dbus-properties-mixin.c $(srcdir)/dbus-properties-mixin.h \
+@HAVE_INTROSPECTION_TRUE@ $(srcdir)/contacts-mixin.c $(srcdir)/contacts-mixin.h \
+@HAVE_INTROSPECTION_TRUE@ $(srcdir)/group-mixin.c $(srcdir)/group-mixin.h \
+@HAVE_INTROSPECTION_TRUE@ $(srcdir)/presence-mixin.c $(srcdir)/presence-mixin.h \
+@HAVE_INTROSPECTION_TRUE@ $(srcdir)/channel-dispatch-operation.c $(srcdir)/channel-dispatch-operation.h \
+@HAVE_INTROSPECTION_TRUE@ $(srcdir)/channel-request.c $(srcdir)/channel-request.h \
+@HAVE_INTROSPECTION_TRUE@ $(srcdir)/observe-channels-context.c $(srcdir)/observe-channels-context.h \
+@HAVE_INTROSPECTION_TRUE@ $(srcdir)/add-dispatch-operation-context.c $(srcdir)/add-dispatch-operation-context.h \
+@HAVE_INTROSPECTION_TRUE@ $(srcdir)/protocol.c $(srcdir)/protocol.h \
+@HAVE_INTROSPECTION_TRUE@ $(srcdir)/base-connection.c $(srcdir)/base-connection.h \
+@HAVE_INTROSPECTION_TRUE@ $(srcdir)/handle-repo.c $(srcdir)/handle-repo.h $(srcdir)/handle-set.c \
@HAVE_INTROSPECTION_TRUE@ $(srcdir)/stream-tube-channel.c $(srcdir)/stream-tube-channel.h \
+@HAVE_INTROSPECTION_TRUE@ $(srcdir)/dbus-tube-channel.c $(srcdir)/dbus-tube-channel.h \
@HAVE_INTROSPECTION_TRUE@ $(srcdir)/stream-tube-connection.c $(srcdir)/stream-tube-connection.h \
@HAVE_INTROSPECTION_TRUE@ $(srcdir)/text-channel.c $(srcdir)/text-channel.h \
+@HAVE_INTROSPECTION_TRUE@ $(srcdir)/file-transfer-channel.c $(srcdir)/file-transfer-channel.h \
+@HAVE_INTROSPECTION_TRUE@ $(srcdir)/client-message.c $(srcdir)/client-message.h \
+@HAVE_INTROSPECTION_TRUE@ $(srcdir)/message.c $(srcdir)/message.h \
+@HAVE_INTROSPECTION_TRUE@ $(srcdir)/signalled-message.c $(srcdir)/signalled-message.h \
+@HAVE_INTROSPECTION_TRUE@ $(srcdir)/channel-dispatcher.c $(srcdir)/channel-dispatcher.h \
+@HAVE_INTROSPECTION_TRUE@ $(srcdir)/errors.c $(srcdir)/errors.h \
@HAVE_INTROSPECTION_TRUE@ _gen/telepathy-enums.h _gen/telepathy-enums-gtk-doc.h \
-@HAVE_INTROSPECTION_TRUE@ _gen/telepathy-interfaces.h _gen/telepathy-interfaces-gtk-doc.h\
+@HAVE_INTROSPECTION_TRUE@ _gen/telepathy-interfaces.h \
@HAVE_INTROSPECTION_TRUE@ $(NULL)
@HAVE_INTROSPECTION_TRUE@girdir = $(datadir)/gir-1.0
@@ -1794,7 +1797,6 @@
@HAVE_INTROSPECTION_TRUE@ $(srcdir)/kludge.xsl \
@HAVE_INTROSPECTION_TRUE@ $(INTROSPECTION_FILES)
@HAVE_INTROSPECTION_TRUE@ $(AM_V_GEN)$(INTROSPECTION_SCANNER) -v \
-@HAVE_INTROSPECTION_TRUE@ --warn-all \
@HAVE_INTROSPECTION_TRUE@ --namespace TelepathyGLib \
@HAVE_INTROSPECTION_TRUE@ --nsversion=0.12 \
@HAVE_INTROSPECTION_TRUE@ --identifier-prefix=Tp \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/telepathy-glib-0.15.6/telepathy-glib/contact.c new/telepathy-glib-0.15.7/telepathy-glib/contact.c
--- old/telepathy-glib-0.15.6/telepathy-glib/contact.c 2011-09-30 14:22:58.000000000 +0200
+++ new/telepathy-glib-0.15.7/telepathy-glib/contact.c 2011-10-04 14:24:30.000000000 +0200
@@ -4029,6 +4029,28 @@
return TRUE;
}
+static void
+contacts_context_remove_common_features (ContactsContext *context)
+{
+ ContactFeatureFlags minimal_feature_flags = 0xFFFFFFFF;
+ guint i;
+
+ context->contacts_have_ids = TRUE;
+
+ for (i = 0; i < context->contacts->len; i++)
+ {
+ TpContact *contact = g_ptr_array_index (context->contacts, i);
+
+ minimal_feature_flags &= contact->priv->has_features;
+
+ if (contact->priv->identifier == NULL)
+ context->contacts_have_ids = FALSE;
+ }
+
+ context->wanted &= (~minimal_feature_flags);
+}
+
+
/**
* tp_connection_get_contacts_by_handle:
* @self: A connection, which must be ready (#TpConnection:connection-ready
@@ -4073,7 +4095,6 @@
ContactFeatureFlags feature_flags = 0;
ContactsContext *context;
GPtrArray *contacts;
- guint i;
/* As an implementation detail, this method actually starts working slightly
* before we're officially ready. We use this to get the TpContact for the
@@ -4099,27 +4120,13 @@
if (contacts != NULL)
{
- ContactFeatureFlags minimal_feature_flags = 0xFFFFFFFF;
-
/* We have already held (and possibly inspected) handles, so we can
* skip that. */
- context->contacts_have_ids = TRUE;
+ g_ptr_array_foreach (contacts, (GFunc) g_object_ref, NULL);
+ tp_g_ptr_array_extend (context->contacts, contacts);
- for (i = 0; i < n_handles; i++)
- {
- TpContact *contact = g_object_ref (g_ptr_array_index (contacts, i));
-
- minimal_feature_flags &= contact->priv->has_features;
- g_ptr_array_add (context->contacts, contact);
-
- if (contact->priv->identifier == NULL)
- context->contacts_have_ids = FALSE;
- }
-
- /* This context won't need to retrieve any features that every
- * contact in the list already has. */
- context->wanted &= (~minimal_feature_flags);
+ contacts_context_remove_common_features (context);
/* We do need to retrieve any features that aren't there yet, though. */
if (tp_proxy_has_interface_by_id (self,
@@ -4236,10 +4243,10 @@
g_array_append_val (context->handles, contacts[i]->priv->handle);
}
- context->contacts_have_ids = TRUE;
-
g_assert (context->handles->len == n_contacts);
+ contacts_context_remove_common_features (context);
+
if (tp_proxy_has_interface_by_id (self,
TP_IFACE_QUARK_CONNECTION_INTERFACE_CONTACTS))
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/telepathy-glib-0.15.6/telepathy-glib/introspection.am new/telepathy-glib-0.15.7/telepathy-glib/introspection.am
--- old/telepathy-glib-0.15.6/telepathy-glib/introspection.am 2011-09-30 12:57:25.000000000 +0200
+++ new/telepathy-glib-0.15.7/telepathy-glib/introspection.am 2011-10-03 14:19:03.000000000 +0200
@@ -7,64 +7,66 @@
if HAVE_INTROSPECTION
+# /!\ Order matters, see https://bugzilla.gnome.org/show_bug.cgi?id=660629
INTROSPECTION_FILES = \
+ $(srcdir)/proxy.c _gen/proxy-introspectable.h \
$(srcdir)/account.c $(srcdir)/account.h \
$(srcdir)/account-channel-request.c $(srcdir)/account-channel-request.h \
$(srcdir)/account-manager.c $(srcdir)/account-manager.h \
- $(srcdir)/add-dispatch-operation-context.c $(srcdir)/add-dispatch-operation-context.h \
$(srcdir)/automatic-client-factory.c $(srcdir)/automatic-client-factory.h \
$(srcdir)/automatic-proxy-factory.c $(srcdir)/automatic-proxy-factory.h \
- $(srcdir)/base-client.c $(srcdir)/base-client.h \
- $(srcdir)/base-connection.c $(srcdir)/base-connection.h \
$(srcdir)/basic-proxy-factory.c $(srcdir)/basic-proxy-factory.h \
- $(srcdir)/capabilities.c $(srcdir)/capabilities.h \
- $(srcdir)/channel.c $(srcdir)/channel.h \
- $(srcdir)/channel-contacts.c \
- $(srcdir)/channel-dispatcher.c $(srcdir)/channel-dispatcher.h \
- $(srcdir)/channel-dispatch-operation.c $(srcdir)/channel-dispatch-operation.h \
- $(srcdir)/channel-group.c \
- $(srcdir)/channel-request.c $(srcdir)/channel-request.h \
$(srcdir)/client-channel-factory.c $(srcdir)/client-channel-factory.h \
- $(srcdir)/client-message.c $(srcdir)/client-message.h \
$(srcdir)/connection.c $(srcdir)/connection.h \
- $(srcdir)/connection-avatars.c \
$(srcdir)/connection-contact-list.c $(srcdir)/connection-contact-list.h \
$(srcdir)/connection-handles.c $(srcdir)/connection-contact-info.c \
+ $(srcdir)/connection-avatars.c \
+ $(srcdir)/protocol.c $(srcdir)/protocol.h \
$(srcdir)/connection-manager.c $(srcdir)/connection-manager.h \
+ $(srcdir)/channel.c $(srcdir)/channel.h \
+ $(srcdir)/channel-group.c \
+ $(srcdir)/channel-contacts.c \
+ $(srcdir)/handle.c $(srcdir)/handle.h \
+ $(srcdir)/handle-channels-context.c $(srcdir)/handle-channels-context.h \
+ $(srcdir)/dbus-daemon.c $(srcdir)/dbus-daemon.h \
+ $(srcdir)/interfaces.c \
+ $(srcdir)/intset.c $(srcdir)/intset.h \
+ $(srcdir)/dbus.c $(srcdir)/dbus.h \
+ $(srcdir)/capabilities.c $(srcdir)/capabilities.h \
$(srcdir)/contact.c $(srcdir)/contact.h \
$(srcdir)/contact-operations.c $(srcdir)/contact-operations.h \
$(srcdir)/contact-search.c $(srcdir)/contact-search.h \
$(srcdir)/contact-search-result.c $(srcdir)/contact-search-result.h \
- $(srcdir)/contacts-mixin.c $(srcdir)/contacts-mixin.h \
- $(srcdir)/dbus.c $(srcdir)/dbus.h \
- $(srcdir)/dbus-daemon.c $(srcdir)/dbus-daemon.h \
- $(srcdir)/dbus-properties-mixin.c $(srcdir)/dbus-properties-mixin.h \
- $(srcdir)/dbus-tube-channel.c $(srcdir)/dbus-tube-channel.h \
- $(srcdir)/debug.c $(srcdir)/debug.h \
$(srcdir)/defs.h \
- $(srcdir)/errors.c $(srcdir)/errors.h \
- $(srcdir)/file-transfer-channel.c $(srcdir)/file-transfer-channel.h \
- $(srcdir)/group-mixin.c $(srcdir)/group-mixin.h \
- $(srcdir)/handle.c $(srcdir)/handle.h \
- $(srcdir)/handle-channels-context.c $(srcdir)/handle-channels-context.h \
- $(srcdir)/handle-repo.c $(srcdir)/handle-repo.h $(srcdir)/handle-set.c \
- $(srcdir)/interfaces.c \
- $(srcdir)/intset.c $(srcdir)/intset.h \
- $(srcdir)/message.c $(srcdir)/message.h \
- $(srcdir)/observe-channels-context.c $(srcdir)/observe-channels-context.h \
- $(srcdir)/presence-mixin.c $(srcdir)/presence-mixin.h \
- $(srcdir)/protocol.c $(srcdir)/protocol.h \
- $(srcdir)/proxy.c _gen/proxy-introspectable.h \
- $(srcdir)/signalled-message.c $(srcdir)/signalled-message.h \
+ $(srcdir)/debug.c $(srcdir)/debug.h \
+ $(srcdir)/base-client.c $(srcdir)/base-client.h \
$(srcdir)/simple-approver.c $(srcdir)/simple-approver.h \
$(srcdir)/simple-client-factory.c $(srcdir)/simple-client-factory.h \
$(srcdir)/simple-handler.c $(srcdir)/simple-handler.h \
$(srcdir)/simple-observer.c $(srcdir)/simple-observer.h \
+ $(srcdir)/dbus-properties-mixin.c $(srcdir)/dbus-properties-mixin.h \
+ $(srcdir)/contacts-mixin.c $(srcdir)/contacts-mixin.h \
+ $(srcdir)/group-mixin.c $(srcdir)/group-mixin.h \
+ $(srcdir)/presence-mixin.c $(srcdir)/presence-mixin.h \
+ $(srcdir)/channel-dispatch-operation.c $(srcdir)/channel-dispatch-operation.h \
+ $(srcdir)/channel-request.c $(srcdir)/channel-request.h \
+ $(srcdir)/observe-channels-context.c $(srcdir)/observe-channels-context.h \
+ $(srcdir)/add-dispatch-operation-context.c $(srcdir)/add-dispatch-operation-context.h \
+ $(srcdir)/protocol.c $(srcdir)/protocol.h \
+ $(srcdir)/base-connection.c $(srcdir)/base-connection.h \
+ $(srcdir)/handle-repo.c $(srcdir)/handle-repo.h $(srcdir)/handle-set.c \
$(srcdir)/stream-tube-channel.c $(srcdir)/stream-tube-channel.h \
+ $(srcdir)/dbus-tube-channel.c $(srcdir)/dbus-tube-channel.h \
$(srcdir)/stream-tube-connection.c $(srcdir)/stream-tube-connection.h \
$(srcdir)/text-channel.c $(srcdir)/text-channel.h \
+ $(srcdir)/file-transfer-channel.c $(srcdir)/file-transfer-channel.h \
+ $(srcdir)/client-message.c $(srcdir)/client-message.h \
+ $(srcdir)/message.c $(srcdir)/message.h \
+ $(srcdir)/signalled-message.c $(srcdir)/signalled-message.h \
+ $(srcdir)/channel-dispatcher.c $(srcdir)/channel-dispatcher.h \
+ $(srcdir)/errors.c $(srcdir)/errors.h \
_gen/telepathy-enums.h _gen/telepathy-enums-gtk-doc.h \
- _gen/telepathy-interfaces.h _gen/telepathy-interfaces-gtk-doc.h\
+ _gen/telepathy-interfaces.h \
$(NULL)
_gen/proxy-introspectable.h: proxy.h introspection.am
@@ -76,7 +78,6 @@
$(srcdir)/kludge.xsl \
$(INTROSPECTION_FILES)
$(AM_V_GEN)$(INTROSPECTION_SCANNER) -v \
- --warn-all \
--namespace TelepathyGLib \
--nsversion=0.12 \
--identifier-prefix=Tp \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/telepathy-glib-0.15.6/telepathy-glib/message-mixin.c new/telepathy-glib-0.15.7/telepathy-glib/message-mixin.c
--- old/telepathy-glib-0.15.6/telepathy-glib/message-mixin.c 2011-09-30 14:22:58.000000000 +0200
+++ new/telepathy-glib-0.15.7/telepathy-glib/message-mixin.c 2011-10-04 16:54:54.000000000 +0200
@@ -55,6 +55,7 @@
#include
#include
+#include
#include
#include
@@ -389,19 +390,30 @@
DBusGMethodInvocation *context)
{
TpMessageMixin *mixin = TP_MESSAGE_MIXIN (iface);
- GList **nodes;
+ GPtrArray *links = g_ptr_array_sized_new (ids->len);
+ TpIntset *seen = tp_intset_new ();
guint i;
- nodes = g_new (GList *, ids->len);
-
for (i = 0; i < ids->len; i++)
{
guint id = g_array_index (ids, guint, i);
+ GList *link_;
+
+ if (tp_intset_is_member (seen, id))
+ {
+ gchar *client = dbus_g_method_get_sender (context);
- nodes[i] = g_queue_find_custom (mixin->priv->pending,
+ DEBUG ("%s passed message id %u more than once in one call to "
+ "AcknowledgePendingMessages. Foolish pup.", client, id);
+ g_free (client);
+ continue;
+ }
+
+ tp_intset_add (seen, id);
+ link_ = g_queue_find_custom (mixin->priv->pending,
GUINT_TO_POINTER (id), pending_item_id_equals_data);
- if (nodes[i] == NULL)
+ if (link_ == NULL)
{
GError *error = g_error_new (TP_ERRORS, TP_ERROR_INVALID_ARGUMENT,
"invalid message id %u", id);
@@ -410,26 +422,31 @@
dbus_g_method_return_error (context, error);
g_error_free (error);
- g_free (nodes);
+ g_ptr_array_unref (links);
+ tp_intset_destroy (seen);
return;
}
+
+ g_ptr_array_add (links, link_);
}
tp_svc_channel_interface_messages_emit_pending_messages_removed (iface,
ids);
- for (i = 0; i < ids->len; i++)
+ for (i = 0; i < links->len; i++)
{
- TpMessage *item = nodes[i]->data;
- TpCMMessage *cm_msg = nodes[i]->data;
+ GList *link_ = g_ptr_array_index (links, i);
+ TpMessage *item = link_->data;
+ TpCMMessage *cm_msg = link_->data;
DEBUG ("acknowledging message id %u", cm_msg->incoming_id);
- g_queue_remove (mixin->priv->pending, item);
+ g_queue_delete_link (mixin->priv->pending, link_);
tp_message_destroy (item);
}
- g_free (nodes);
+ g_ptr_array_unref (links);
+ tp_intset_destroy (seen);
tp_svc_channel_type_text_return_from_acknowledge_pending_messages (context);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/telepathy-glib-0.15.6/telepathy-glib/text-channel.c new/telepathy-glib-0.15.7/telepathy-glib/text-channel.c
--- old/telepathy-glib-0.15.6/telepathy-glib/text-channel.c 2011-09-30 14:22:58.000000000 +0200
+++ new/telepathy-glib-0.15.7/telepathy-glib/text-channel.c 2011-10-04 14:25:04.000000000 +0200
@@ -217,6 +217,7 @@
static void
prepare_sender_async (TpTextChannel *self,
const GPtrArray *message,
+ gboolean fallback_to_self,
GAsyncReadyCallback callback,
gpointer user_data)
{
@@ -226,11 +227,26 @@
const gchar *id;
handle = get_sender (self, message, &contact, &id);
+ if (contact == NULL && fallback_to_self)
+ {
+ TpConnection *conn;
+
+ conn = tp_channel_borrow_connection ((TpChannel *) self);
+
+ DEBUG ("Failed to get our self contact, please fix CM (%s)",
+ tp_proxy_get_object_path (conn));
+
+ /* Use the connection self contact as a fallback */
+ contact = tp_connection_get_self_contact (conn);
+ if (contact != NULL)
+ g_object_ref (contact);
+ }
if (contact != NULL)
{
GPtrArray *contacts = g_ptr_array_new_with_free_func (g_object_unref);
+ /* get_sender() refs the contact, we give that ref to the ptr-array */
g_ptr_array_add (contacts, contact);
_tp_channel_contacts_queue_prepare_async (channel,
contacts, callback, user_data);
@@ -340,7 +356,7 @@
data->flags = flags;
data->token = tp_str_empty (token) ? NULL : g_strdup (token);
- prepare_sender_async (self, parts,
+ prepare_sender_async (self, parts, TRUE,
message_sent_sender_ready_cb, data);
}
@@ -497,7 +513,7 @@
DEBUG ("New message received");
- prepare_sender_async (self, message,
+ prepare_sender_async (self, message, FALSE,
message_received_sender_ready_cb,
copy_parts (message));
}
@@ -657,7 +673,7 @@
{
GPtrArray *parts = g_ptr_array_index (messages, i);
- prepare_sender_async (self, parts,
+ prepare_sender_async (self, parts, FALSE,
pending_message_sender_ready_cb,
copy_parts (parts));
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/telepathy-glib-0.15.6/tests/dbus/contacts.c new/telepathy-glib-0.15.7/tests/dbus/contacts.c
--- old/telepathy-glib-0.15.6/tests/dbus/contacts.c 2011-09-30 12:56:51.000000000 +0200
+++ new/telepathy-glib-0.15.7/tests/dbus/contacts.c 2011-10-04 14:25:04.000000000 +0200
@@ -59,6 +59,28 @@
TpConnection *no_requests_client_conn;
} Fixture;
+/* We only really actively test TP_CONTACT_FEATURE_ALIAS, but preparing any
+ * of these once should be enough, assuming that the CM is not broken.
+ */
+static TpContactFeature all_contact_features[] = {
+ TP_CONTACT_FEATURE_ALIAS,
+ TP_CONTACT_FEATURE_AVATAR_TOKEN,
+ TP_CONTACT_FEATURE_PRESENCE,
+ TP_CONTACT_FEATURE_LOCATION,
+ TP_CONTACT_FEATURE_CAPABILITIES,
+ TP_CONTACT_FEATURE_AVATAR_DATA,
+ TP_CONTACT_FEATURE_CONTACT_INFO,
+ TP_CONTACT_FEATURE_CLIENT_TYPES,
+ TP_CONTACT_FEATURE_SUBSCRIPTION_STATES,
+ TP_CONTACT_FEATURE_CONTACT_GROUPS
+};
+
+/* If people add new features, they should add them to this test. We could
+ * generate the list dynamically but this seems less brittle.
+ */
+G_STATIC_ASSERT (G_N_ELEMENTS (all_contact_features) == NUM_TP_CONTACT_FEATURES);
+
+
static void
by_handle_cb (TpConnection *connection,
guint n_contacts,
@@ -839,44 +861,16 @@
g_assert (ok);
}
-static void
-test_by_handle_again (Fixture *f,
- gconstpointer unused G_GNUC_UNUSED)
+static TpHandle
+get_handle_with_no_caps (Fixture *f,
+ const gchar *id)
{
- Result result = { g_main_loop_new (NULL, FALSE), NULL, NULL, NULL };
TpHandle handle;
- TpHandleRepoIface *service_repo = tp_base_connection_get_handles (
- f->base_connection, TP_HANDLE_TYPE_CONTACT);
- TpContact *contact;
- gpointer weak_pointer;
- const gchar *alias = "Alice in Wonderland";
GHashTable *capabilities;
- /* We only really actively test TP_CONTACT_FEATURE_ALIAS, but preparing any
- * of these once should be enough, assuming that the CM is not broken.
- */
- TpContactFeature features[] = {
- TP_CONTACT_FEATURE_ALIAS,
- TP_CONTACT_FEATURE_AVATAR_TOKEN,
- TP_CONTACT_FEATURE_PRESENCE,
- TP_CONTACT_FEATURE_LOCATION,
- TP_CONTACT_FEATURE_CAPABILITIES,
- TP_CONTACT_FEATURE_AVATAR_DATA,
- TP_CONTACT_FEATURE_CONTACT_INFO,
- TP_CONTACT_FEATURE_CLIENT_TYPES,
- TP_CONTACT_FEATURE_SUBSCRIPTION_STATES,
- TP_CONTACT_FEATURE_CONTACT_GROUPS
- };
-
- g_test_bug ("25181");
- /* If people add new features, they should add them to this test. We could
- * generate the list dynamically but this seems less brittle.
- */
- g_assert_cmpuint (G_N_ELEMENTS (features), ==, NUM_TP_CONTACT_FEATURES);
- handle = tp_handle_ensure (service_repo, "alice", NULL, NULL);
+ handle = tp_handle_ensure (f->service_repo, id, NULL, NULL);
g_assert_cmpuint (handle, !=, 0);
- tp_tests_contacts_connection_change_aliases (f->service_conn, 1, &handle,
- &alias);
+
/* Unlike almost every other feature, with capabilities “not sure” and “none”
* are different: you really might care about the difference between “I don't
* know if blah can do video” versus “I know blah cannot do video”.
@@ -892,9 +886,28 @@
capabilities);
g_hash_table_unref (capabilities);
+ return handle;
+}
+
+static void
+test_by_handle_again (Fixture *f,
+ gconstpointer unused G_GNUC_UNUSED)
+{
+ Result result = { g_main_loop_new (NULL, FALSE), NULL, NULL, NULL };
+ TpHandle handle;
+ TpContact *contact;
+ gpointer weak_pointer;
+ const gchar *alias = "Alice in Wonderland";
+
+ g_test_bug ("25181");
+
+ handle = get_handle_with_no_caps (f, "alice");
+ tp_tests_contacts_connection_change_aliases (f->service_conn, 1, &handle,
+ &alias);
+
tp_connection_get_contacts_by_handle (f->client_conn,
1, &handle,
- G_N_ELEMENTS (features), features,
+ G_N_ELEMENTS (all_contact_features), all_contact_features,
by_handle_cb,
&result, finish, NULL);
g_main_loop_run (result.loop);
@@ -916,7 +929,7 @@
tp_connection_get_contacts_by_handle (f->client_conn,
1, &handle,
- G_N_ELEMENTS (features), features,
+ G_N_ELEMENTS (all_contact_features), all_contact_features,
by_handle_cb,
&result, finish, NULL);
g_main_loop_run (result.loop);
@@ -1387,6 +1400,46 @@
g_main_loop_unref (result.loop);
}
+/* Regression test case for fd.o#41414 */
+static void
+test_upgrade_noop (Fixture *f,
+ gconstpointer unused G_GNUC_UNUSED)
+{
+ Result result = { g_main_loop_new (NULL, FALSE), NULL, NULL, NULL };
+ TpHandle handle;
+ TpContact *contact;
+
+ g_test_bug ("41414");
+
+ /* Get a contact by handle */
+ handle = get_handle_with_no_caps (f, "test-upgrade-noop");
+ tp_connection_get_contacts_by_handle (f->client_conn,
+ 1, &handle,
+ G_N_ELEMENTS (all_contact_features), all_contact_features,
+ by_handle_cb,
+ &result, finish, NULL);
+ g_main_loop_run (result.loop);
+ g_assert_no_error (result.error);
+
+ contact = g_object_ref (g_ptr_array_index (result.contacts, 0));
+ reset_result (&result);
+
+ /* Upgrade it, but it should already have all features */
+ make_the_connection_disappear (f);
+ tp_connection_upgrade_contacts (f->client_conn,
+ 1, &contact,
+ G_N_ELEMENTS (all_contact_features), all_contact_features,
+ upgrade_cb,
+ &result, finish, NULL);
+ g_main_loop_run (result.loop);
+ g_assert_no_error (result.error);
+ reset_result (&f->result);
+
+ put_the_connection_back (f);
+
+ g_object_unref (contact);
+}
+
typedef struct
{
gboolean alias_changed;
@@ -2884,6 +2937,7 @@
ADD (no_features);
ADD (features);
ADD (upgrade);
+ ADD (upgrade_noop);
ADD (by_id);
ADD (avatar_requirements);
ADD (avatar_data);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/telepathy-glib-0.15.6/tests/dbus/message-mixin.c new/telepathy-glib-0.15.7/tests/dbus/message-mixin.c
--- old/telepathy-glib-0.15.6/tests/dbus/message-mixin.c 2011-07-15 15:42:19.000000000 +0200
+++ new/telepathy-glib-0.15.7/tests/dbus/message-mixin.c 2011-10-04 16:54:54.000000000 +0200
@@ -1043,9 +1043,15 @@
g_print ("\n\n==== Acknowledging one message ====\n");
{
- GArray *msgid = g_array_sized_new (FALSE, FALSE, sizeof (guint), 1);
+ /* As a regression test for
+ * https://bugs.freedesktop.org/show_bug.cgi?id=40523, we include the
+ * ID of the message we want to ack twice. This used to cause a
+ * double-free.
+ */
+ GArray *msgid = g_array_sized_new (FALSE, FALSE, sizeof (guint), 2);
g_array_append_val (msgid, last_received_id);
+ g_array_append_val (msgid, last_received_id);
tp_cli_channel_type_text_run_acknowledge_pending_messages (chan, -1,
msgid, &error, NULL);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/telepathy-glib-0.15.6/tests/dbus/text-channel.c new/telepathy-glib-0.15.7/tests/dbus/text-channel.c
--- old/telepathy-glib-0.15.6/tests/dbus/text-channel.c 2011-09-30 12:56:51.000000000 +0200
+++ new/telepathy-glib-0.15.7/tests/dbus/text-channel.c 2011-10-04 14:25:04.000000000 +0200
@@ -886,6 +886,43 @@
g_assert (tp_contact_has_feature (sender, TP_CONTACT_FEATURE_ALIAS));
}
+static void
+test_sent_with_no_sender (Test *test,
+ gconstpointer data G_GNUC_UNUSED)
+{
+ GPtrArray *parts;
+ TpContact *sender;
+
+ tp_tests_proxy_run_until_prepared (test->channel, NULL);
+
+ /* Simulate a message sent with no sender, it must fallback to
+ * connection's self-contact. Unfortunately we cannot use the message mixin
+ * because it force setting a sender, and we can't use TpCMMessage to create
+ * parts because it's kept private. So back to old school. */
+ parts = g_ptr_array_new_with_free_func ((GDestroyNotify) g_hash_table_unref);
+ g_ptr_array_add (parts, tp_asv_new (
+ "message-type", G_TYPE_UINT, TP_CHANNEL_TEXT_MESSAGE_TYPE_NORMAL,
+ NULL));
+ g_ptr_array_add (parts, tp_asv_new (
+ "content-type", G_TYPE_STRING, "text/plain",
+ "content", G_TYPE_STRING, "bla bla bla",
+ NULL));
+
+ g_signal_connect (test->channel, "message-sent",
+ G_CALLBACK (message_sent_cb), test);
+
+ tp_svc_channel_interface_messages_emit_message_sent (test->chan_service,
+ parts, 0, "this-is-a-token");
+
+ g_main_loop_run (test->mainloop);
+ g_assert_no_error (test->error);
+
+ sender = tp_signalled_message_get_sender (test->sent_msg);
+ g_assert (sender == tp_connection_get_self_contact (test->connection));
+
+ g_ptr_array_unref (parts);
+}
+
int
main (int argc,
char **argv)
@@ -917,6 +954,8 @@
setup, test_pending_messages_with_no_sender_id, teardown);
g_test_add ("/text-channel/sender-prepared", Test, NULL, setup,
test_sender_prepared, teardown);
+ g_test_add ("/text-channel/sent-with-no-sender", Test, NULL, setup,
+ test_sent_with_no_sender, teardown);
return g_test_run ();
}
continue with "q"...
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org