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 - vu...@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 <xclae...@gmail.com> +Date: 2011-10-03 14:38:03 +0200 + + Version 0.15.7 + +commit f1b611ea1a5e06cd801d059db05dd00de6ad5e1c +Merge: be94076 41be1c9 +Author: Will Thompson <will.thomp...@collabora.co.uk> +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 <will.thomp...@collabora.co.uk> +Date: 2011-10-04 15:31:12 +0100 + + Nano-version bump to 0.14.10.1 + +commit 041f910c3c94caa7eed412acd645bec68408fc22 +Author: Will Thompson <will.thomp...@collabora.co.uk> +Date: 2011-10-04 15:22:21 +0100 + + Version 0.14.10 + +commit cb7875e4bf52b8553d4cab670ac6e0484afa5f6d +Author: Will Thompson <will.thomp...@collabora.co.uk> +Date: 2011-10-04 15:21:25 +0100 + + More NEWS for 0.14.10 + +commit 1c1c688e8c6ceda679c1473c7454ee6db2710007 +Merge: a899ab8 dff3ce5 +Author: Will Thompson <will.thomp...@collabora.co.uk> +Date: 2011-10-04 15:05:11 +0100 + + Merge branch '40523-crash-on-ack' into telepathy-glib-0.14 + + Reviewed-by: Xavier Claessens <xclae...@gmail.com> + +commit dff3ce56fe82a9b16068d0cdcbc508d2d3c390ba +Author: Will Thompson <will.thomp...@collabora.co.uk> +Date: 2011-10-04 14:16:07 +0100 + + MessageMixin: DEBUG if AckPM gets an id more than once + +commit be940765ac3e355ee7efb52a49bf68431e52b0c0 +Author: Xavier Claessens <xclae...@gmail.com> +Date: 2011-10-03 15:05:05 +0200 + + test_upgrade_noop: verify with all features + +commit 535ac16a74b535c3256e7acd9757a61e23bfc493 +Author: Xavier Claessens <xclae...@gmail.com> +Date: 2011-10-03 14:18:20 +0200 + + Add regression test case to verify no-op upgrade + +commit b693c190495599b90ca07f9441cf6ecc41bd5169 +Author: Xavier Claessens <xclae...@gmail.com> +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 <xclae...@gmail.com> +Date: 2011-10-04 10:48:05 +0200 + + Add unit test for sent message without message-sender + +commit bd5f36739a0e9b16c9351b1ac71a5ba26e24cf87 +Author: Xavier Claessens <xclae...@gmail.com> +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 <will.thomp...@collabora.co.uk> +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 <will.thomp...@collabora.co.uk> +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 <will.thomp...@collabora.co.uk> +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 <xclae...@gmail.com> +Date: 2011-10-03 10:19:17 +0200 + + Add warning comment to warn that ordering matters for gi-scanner + +commit c1b9b9f899589e3fc3a340ef5f0a22b962a32ee1 +Author: Xavier Claessens <xclae...@gmail.com> +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 <xclae...@gmail.com> +Date: 2011-10-03 12:23:44 +0200 + + Nano-version bump + commit 43b597d8bb9d67d4256961981b5a578b6a2e44b5 Author: Xavier Claessens <xclae...@gmail.com> Date: 2011-09-30 14:30:23 +0200 @@ -212,6 +349,12 @@ Signed-off-by: Jonny Lamb <jonny.l...@collabora.co.uk> +commit a899ab819ccb3f60b083822eedb0f7989bee3707 +Author: Vivek Dasmohapatra <vi...@collabora.co.uk> +Date: 2011-09-07 17:01:59 +0100 + + Update NEWS + commit 55979632725dcce40bf5b6b29cfe4a5e1ed4b7f7 Merge: 2f8725a 0cb8c83 Author: Vivek Dasmohapatra <vi...@collabora.co.uk> 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 <telepathy-glib/message-mixin.h> #include <dbus/dbus-glib.h> +#include <dbus/dbus-glib-lowlevel.h> #include <string.h> #include <telepathy-glib/cm-message.h> @@ -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+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org