[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#691664: marked as done (unblock: libinfinity/0.5.2-5)



Your message dated Sun, 28 Oct 2012 10:56:20 +0000
with message-id <1351421780.5616.60.camel@jacala.jungle.funky-badger.org>
and subject line Re: Bug#691664: unblock: libinfinity/0.5.2-5
has caused the Debian Bug report #691664,
regarding unblock: libinfinity/0.5.2-5
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
691664: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=691664
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Please unblock package libinfinity

Fix a crash that could occur when it is noticed at send time that a
connection is down. Fix a broken recommends.

0001-Fix-a-crash-when-a-connection-goes-down-while-attemp.patch adds
some state tracking to see if the data processing handler is currently
in XML or TLS processing and frees resources accordingly.

0001-Rework-Gtk3-support.patch had to be refreshed to be able to apply
correctly. Sorry for not reordering the series so that this wouldn't
have been necessary.

unblock libinfinity/0.5.2-5

Thanks
Philipp Kern
Base version: libinfinity_0.5.2-3 from testing
Target version: libinfinity_0.5.2-5 from unstable

No hints in place.

 changelog                                                               |   18 
 control                                                                 |    2 
 patches/0001-Fix-a-crash-when-a-connection-goes-down-while-attemp.patch |  393 ++++++++++
 patches/0001-Rework-Gtk3-support.patch                                  |   47 -
 patches/series                                                          |    1 
 5 files changed, 435 insertions(+), 26 deletions(-)

gpgv: keyblock resource `/home/pkern/.gnupg/trustedkeys.gpg': file open error
gpgv: Signature made Sat 02 Jun 2012 10:19:37 PM UTC using DSA key ID B2CFCDD8
gpgv: Can't check signature: public key not found
dpkg-source: warning: failed to verify signature on /tmp/tmpRo6cmB/libinfinity_0.5.2-3.dsc
gpgv: keyblock resource `/home/pkern/.gnupg/trustedkeys.gpg': file open error
gpgv: Signature made Tue 23 Oct 2012 10:18:42 PM UTC using RSA key ID 35D056EC
gpgv: Can't check signature: public key not found
dpkg-source: warning: failed to verify signature on /tmp/tmpRo6cmB/libinfinity_0.5.2-5.dsc
diff -Nru libinfinity-0.5.2/debian/changelog libinfinity-0.5.2/debian/changelog
--- libinfinity-0.5.2/debian/changelog	2012-06-02 21:59:24.000000000 +0000
+++ libinfinity-0.5.2/debian/changelog	2012-10-23 22:08:40.000000000 +0000
@@ -1,3 +1,21 @@
+libinfinity (0.5.2-5) unstable; urgency=low
+
+  * Fix a crash when a connection goes down while attempting to
+    send data.
+  * Revert "Mark infinoted multi-arch:foreign". It would not be useful
+    in wheezy.
+  * Refresh patch "Rework Gtk3 support".
+
+ -- Philipp Kern <pkern@debian.org>  Wed, 24 Oct 2012 00:04:51 +0200
+
+libinfinity (0.5.2-4) unstable; urgency=low
+
+  * Recommend the correct infgtk3 library package in libinfinity-0.5-dbg.
+    (Closes: #680444)
+  * Mark infinoted multi-arch:foreign.
+
+ -- Philipp Kern <pkern@debian.org>  Tue, 10 Jul 2012 12:34:18 -0600
+
 libinfinity (0.5.2-3) unstable; urgency=low
 
   * Make infinoted the real daemon package, providing the non-versioned
diff -Nru libinfinity-0.5.2/debian/control libinfinity-0.5.2/debian/control
--- libinfinity-0.5.2/debian/control	2012-06-02 21:36:41.000000000 +0000
+++ libinfinity-0.5.2/debian/control	2012-10-23 22:06:54.000000000 +0000
@@ -42,7 +42,7 @@
 Architecture: any
 Pre-Depends: dpkg (>= 1.15.6)
 Depends: ${misc:Depends}, libinfinity-0.5-0 (= ${binary:Version})
-Recommends: libinfgtk-0.5-0 (= ${binary:Version}), infinoted-0.5 (= ${binary:Version})
+Recommends: libinfgtk3-0.5-0 (= ${binary:Version}), infinoted-0.5 (= ${binary:Version})
 Description: infinote-based collaborative editing - debugging symbols
  libinfinity is library to build collaborative text editors. Changes
  to the text buffers are synced to all other clients over a central server.
diff -Nru libinfinity-0.5.2/debian/patches/0001-Fix-a-crash-when-a-connection-goes-down-while-attemp.patch libinfinity-0.5.2/debian/patches/0001-Fix-a-crash-when-a-connection-goes-down-while-attemp.patch
--- libinfinity-0.5.2/debian/patches/0001-Fix-a-crash-when-a-connection-goes-down-while-attemp.patch	1970-01-01 00:00:00.000000000 +0000
+++ libinfinity-0.5.2/debian/patches/0001-Fix-a-crash-when-a-connection-goes-down-while-attemp.patch	2012-10-23 22:03:30.000000000 +0000
@@ -0,0 +1,393 @@
+From 9469bdf6116857c9d4c3df154dadb942285c9d98 Mon Sep 17 00:00:00 2001
+From: Armin Burgmeier <armin@arbur.net>
+Date: Sun, 21 Oct 2012 17:14:35 +0200
+Subject: [PATCH] Fix a crash when a connection goes down while attempting to
+ send data
+
+2012-10-21  Armin Burgmeier  <armin@arbur.net>
+
+	* libinfinity/common/inf-xmpp-connection.c: Fix a crash that could
+	occur when it is noticed at send time that a connection is down.
+
+diff --git a/libinfinity/common/inf-xmpp-connection.c b/libinfinity/common/inf-xmpp-connection.c
+index b6f7fe3..6bf2edb 100644
+--- a/libinfinity/common/inf-xmpp-connection.c
++++ b/libinfinity/common/inf-xmpp-connection.c
+@@ -117,7 +117,7 @@ struct _InfXmppConnectionPrivate {
+   InfXmppConnectionMessage* last_message;
+ 
+   /* XML parsing */
+-  gboolean parsing; /* Whether we are currently in an XML parser callback */
++  guint parsing; /* Whether we are currently in an XML parser or GnuTLS callback */
+   xmlParserCtxtPtr parser;
+   xmlNodePtr root;
+   xmlNodePtr cur;
+@@ -543,6 +543,71 @@ inf_xmpp_connection_pop_message(InfXmppConnection* connection)
+   g_slice_free(InfXmppConnectionMessage, message);
+ }
+ 
++/* Note that this function does not change the state of xmpp, so it might
++ * rest in a state where it expects to actually have the resources available
++ * that are cleared here. Be sure to adjust state after having called
++ * this function. */
++static void
++inf_xmpp_connection_clear(InfXmppConnection* xmpp)
++{
++  InfXmppConnectionPrivate* priv;
++  priv = INF_XMPP_CONNECTION_PRIVATE(xmpp);
++
++  g_object_freeze_notify(G_OBJECT(xmpp));
++
++  if(priv->sasl_session != NULL)
++  {
++    inf_sasl_context_stop_session(priv->sasl_context, priv->sasl_session);
++    priv->sasl_session = NULL;
++  }
++
++  if(priv->sasl_remote_mechanisms != NULL)
++  {
++    g_free(priv->sasl_remote_mechanisms);
++    priv->sasl_remote_mechanisms = NULL;
++  }
++
++  if(priv->session != NULL)
++  {
++    gnutls_deinit(priv->session);
++    priv->session = NULL;
++
++    g_object_notify(G_OBJECT(xmpp), "tls-enabled");
++  }
++
++  if(priv->parser != NULL)
++  {
++    xmlFreeParserCtxt(priv->parser);
++    priv->parser = NULL;
++
++    if(priv->root != NULL)
++    {
++      xmlFreeNode(priv->root);
++      priv->root = NULL;
++      priv->cur = NULL;
++    }
++  }
++
++  while(priv->messages != NULL)
++    inf_xmpp_connection_pop_message(xmpp);
++
++  if(priv->buf != NULL)
++  {
++    g_assert(priv->doc != NULL);
++
++    xmlBufferFree(priv->buf);
++    xmlFreeDoc(priv->doc);
++
++    priv->buf = NULL;
++    priv->doc = NULL;
++  }
++
++  priv->pull_data = NULL;
++  priv->pull_len = 0;
++
++  g_object_thaw_notify(G_OBJECT(xmpp));
++}
++
+ static void
+ inf_xmpp_connection_send_chars(InfXmppConnection* xmpp,
+                                gconstpointer data,
+@@ -554,11 +619,18 @@ inf_xmpp_connection_send_chars(InfXmppConnection* xmpp,
+ 
+   priv = INF_XMPP_CONNECTION_PRIVATE(xmpp);
+ 
+-  g_assert(priv->status != INF_XMPP_CONNECTION_HANDSHAKING);
++  g_assert(priv->status != INF_XMPP_CONNECTION_HANDSHAKING &&
++           priv->status != INF_XMPP_CONNECTION_CLOSED);
+ 
+   if(INF_XMPP_CONNECTION_PRINT_TRAFFIC)
+     printf("\033[00;34m%.*s\033[00;00m\n", (int)len, (const char*)data);
+ 
++  /* From here on we go into a GnuTLS callback. Set this flag to prevent
++   * premature cleanup -- make sure that if the connection is being brought
++   * down from a GnuTLS callback then we keep the GnuTLS context around
++   * until the gntuls_record_send() call finishes. */
++  ++priv->parsing;
++
+   if(priv->session != NULL)
+   {
+     do
+@@ -576,6 +648,7 @@ inf_xmpp_connection_send_chars(InfXmppConnection* xmpp,
+         g_error_free(error);
+ 
+         inf_tcp_connection_close(priv->tcp);
++        break;
+       }
+       else if(cur_bytes == 0)
+       {
+@@ -596,6 +669,19 @@ inf_xmpp_connection_send_chars(InfXmppConnection* xmpp,
+     priv->position += len;
+     inf_tcp_connection_send(priv->tcp, data, len);
+   }
++
++  g_assert(priv->parsing > 0);
++  if(--priv->parsing == 0)
++  {
++    if(priv->status == INF_XMPP_CONNECTION_CLOSED)
++    {
++      /* Status changed to CLOSED, so while attempting to send data we noticed
++       * that the connection is down. Clear up. We didn't clean up in the
++       * disconnection callback because we wanted to keep the gnutls context
++       * alive until gnutls_record_send() returns. */
++      inf_xmpp_connection_clear(xmpp);
++    }
++  }
+ }
+ 
+ static void
+@@ -611,6 +697,7 @@ inf_xmpp_connection_send_xml(InfXmppConnection* xmpp,
+   xmlDocSetRootElement(priv->doc, xml);
+   xmlNodeDump(priv->buf, priv->doc, xml, 0, 0);
+   xmlUnlinkNode(xml);
++  xmlSetListDoc(xml, NULL);
+ 
+   inf_xmpp_connection_send_chars(
+     xmpp,
+@@ -618,72 +705,11 @@ inf_xmpp_connection_send_xml(InfXmppConnection* xmpp,
+     xmlBufferLength(priv->buf)
+   );
+ 
+-  xmlBufferEmpty(priv->buf);
+-}
+-
+-/* Note that this function does not change the state of xmpp, so it might
+- * rest in a state where it expects to actually have the resources available
+- * that are cleared here. Be sure to adjust state after having called
+- * this function. */
+-static void
+-inf_xmpp_connection_clear(InfXmppConnection* xmpp)
+-{
+-  InfXmppConnectionPrivate* priv;
+-  priv = INF_XMPP_CONNECTION_PRIVATE(xmpp);
+-
+-  g_object_freeze_notify(G_OBJECT(xmpp));
+-
+-  if(priv->sasl_session != NULL)
+-  {
+-    inf_sasl_context_stop_session(priv->sasl_context, priv->sasl_session);
+-    priv->sasl_session = NULL;
+-  }
+-
+-  if(priv->sasl_remote_mechanisms != NULL)
+-  {
+-    g_free(priv->sasl_remote_mechanisms);
+-    priv->sasl_remote_mechanisms = NULL;
+-  }
+-
+-  if(priv->session != NULL)
+-  {
+-    gnutls_deinit(priv->session);
+-    priv->session = NULL;
+-
+-    g_object_notify(G_OBJECT(xmpp), "tls-enabled");
+-  }
+-
+-  if(priv->parser != NULL)
+-  {
+-    xmlFreeParserCtxt(priv->parser);
+-    priv->parser = NULL;
+-
+-    if(priv->root != NULL)
+-    {
+-      xmlFreeNode(priv->root);
+-      priv->root = NULL;
+-      priv->cur = NULL;
+-    }
+-  }
+-
+-  while(priv->messages != NULL)
+-    inf_xmpp_connection_pop_message(xmpp);
+-
++  /* The connection might be closed & cleared as a result from
++   * inf_xmpp_connection_send_chars(), so make sure the buffer still
++   * exists before emptying it. */
+   if(priv->buf != NULL)
+-  {
+-    g_assert(priv->doc != NULL);
+-
+-    xmlBufferFree(priv->buf);
+-    xmlFreeDoc(priv->doc);
+-
+-    priv->buf = NULL;
+-    priv->doc = NULL;
+-  }
+-
+-  priv->pull_data = NULL;
+-  priv->pull_len = 0;
+-
+-  g_object_thaw_notify(G_OBJECT(xmpp));
++    xmlBufferEmpty(priv->buf);
+ }
+ 
+ /*
+@@ -778,7 +804,7 @@ inf_xmpp_connection_terminate(InfXmppConnection* xmpp)
+   }
+ 
+   /* Clear resources such as GnuTLS session and XML parser */
+-  if(!priv->parsing)
++  if(priv->parsing == 0)
+     inf_xmpp_connection_clear(xmpp);
+ 
+   /* The Change from CLOSING_STREAM to CLOSING_GNUTLS does not change
+@@ -1327,7 +1353,7 @@ inf_xmpp_connection_sasl_finish(InfXmppConnection* xmpp,
+     /* We might be in a XML callback here, so do not initiate the stream right
+      * now because it replaces the XML parser. The stream is reinitiated in
+      * received_cb(). */
+-    if(!priv->parsing)
++    if(priv->parsing == 0)
+       inf_xmpp_connection_initiate(xmpp);
+   }
+   else
+@@ -2973,13 +2999,13 @@ inf_xmpp_connection_received_cb(InfTcpConnection* tcp,
+ 
+   g_object_ref(xmpp);
+ 
+-  g_assert(priv->parsing == FALSE);
++  g_assert(priv->parsing == 0);
+   g_assert(priv->parser != NULL);
+ 
+   /* Let callbacks know that we start XML parsing. In case of deinitialization
+    * this tells them to keep the XML parser alive. We clean up after parsing
+    * in that case. */
+-  priv->parsing = TRUE;
++  ++priv->parsing;
+ 
+   if(priv->status != INF_XMPP_CONNECTION_HANDSHAKING)
+   {
+@@ -3058,35 +3084,37 @@ inf_xmpp_connection_received_cb(InfTcpConnection* tcp,
+              priv->pull_len == 0);
+   }
+ 
+-  priv->parsing = FALSE;
+-
+-  if(priv->status == INF_XMPP_CONNECTION_CLOSING_GNUTLS ||
+-     priv->status == INF_XMPP_CONNECTION_CLOSED)
++  g_assert(priv->parsing > 0);
++  if(--priv->parsing == 0)
+   {
+-    /* Status changed to CLOSING_GNUTLS, this means that someone called
+-     * _terminate(). Clean up any resources in use (XML parser, GnuTLS
+-     * session etc. */
+-    inf_xmpp_connection_clear(xmpp);
++    if(priv->status == INF_XMPP_CONNECTION_CLOSING_GNUTLS ||
++       priv->status == INF_XMPP_CONNECTION_CLOSED)
++    {
++      /* Status changed to CLOSING_GNUTLS, this means that someone called
++       * _terminate(). Clean up any resources in use (XML parser, GnuTLS
++       * session etc. */
++      inf_xmpp_connection_clear(xmpp);
+ 
+-    if(priv->status != INF_XMPP_CONNECTION_CLOSED)
++      if(priv->status != INF_XMPP_CONNECTION_CLOSED)
++      {
++        /* Close the TCP connection after remaining stuff has been sent out
++         * in case it is not closed already. */
++        inf_xmpp_connection_push_message(
++          xmpp,
++          inf_xmpp_connection_received_cb_sent_func,
++          NULL,
++          NULL
++        );
++      }
++    }
++    else if(priv->status == INF_XMPP_CONNECTION_AUTH_CONNECTED)
+     {
+-      /* Close the TCP connection after remaining stuff has been sent out
+-       * in case it is not closed already. */
+-      inf_xmpp_connection_push_message(
+-        xmpp,
+-        inf_xmpp_connection_received_cb_sent_func,
+-        NULL,
+-        NULL
+-      );
++      /* Reinitiate connection after successful authentication */
++      /* TODO: Only do this if status at the beginning of this call was
++       * AUTHENTICATING */
++      inf_xmpp_connection_initiate(xmpp);
+     }
+   }
+-  else if(priv->status == INF_XMPP_CONNECTION_AUTH_CONNECTED)
+-  {
+-    /* Reinitiate connection after successful authentication */
+-    /* TODO: Only do this if status at the beginning of this call was
+-     * AUTHENTICATING */
+-    inf_xmpp_connection_initiate(xmpp);
+-  }
+ 
+   g_object_unref(xmpp);
+ }
+@@ -3124,7 +3152,7 @@ inf_xmpp_connection_notify_status_cb(InfTcpConnection* tcp,
+        * signal handler) then we can't delete the XML parser here (otherwise
+        * libxml2 crashes, understandably). Instead, just set the status to
+        * closed and clean up after XML parsing in _received_cb(). */
+-      if(!priv->parsing)
++      if(priv->parsing == 0)
+         inf_xmpp_connection_clear(xmpp);
+ 
+       priv->status = INF_XMPP_CONNECTION_CLOSED;
+@@ -3364,7 +3392,7 @@ inf_xmpp_connection_init(GTypeInstance* instance,
+   priv->messages = NULL;
+   priv->last_message = NULL;
+ 
+-  priv->parsing = FALSE;
++  priv->parsing = 0;
+   priv->parser = NULL;
+   priv->root = NULL;
+   priv->cur = NULL;
+@@ -3707,7 +3735,7 @@ inf_xmpp_connection_xml_connection_close(InfXmlConnection* connection)
+     break;
+   case INF_XMPP_CONNECTION_CONNECTED:
+   case INF_XMPP_CONNECTION_AUTH_CONNECTED:
+-    g_assert(priv->parsing == FALSE);
++    g_assert(priv->parsing == 0);
+     inf_xmpp_connection_terminate(INF_XMPP_CONNECTION(connection));
+     /* TODO: Shouldn't we close the TCP connection here, as in
+      * inf_xmpp_connection_received_cb()? */
+@@ -3730,7 +3758,7 @@ inf_xmpp_connection_xml_connection_close(InfXmlConnection* connection)
+      * wait on either successful or unsuccessful authentication result,
+      * and then close the connection normally. Actually, this is what
+      * inf_xmpp_connection_deinitiate is supposed to do. */
+-    g_assert(priv->parsing == FALSE);
++    g_assert(priv->parsing == 0);
+     inf_xmpp_connection_terminate(INF_XMPP_CONNECTION(connection));
+     /* TODO: Shouldn't we close the TCP connection here, as in
+      * inf_xmpp_connection_received_cb()? */
+@@ -3759,12 +3787,22 @@ inf_xmpp_connection_xml_connection_send(InfXmlConnection* connection,
+ 
+   inf_xmpp_connection_send_xml(INF_XMPP_CONNECTION(connection), xml);
+ 
+-  inf_xmpp_connection_push_message(
+-    INF_XMPP_CONNECTION(connection),
+-    inf_xmpp_connection_xml_connection_send_sent,
+-    inf_xmpp_connection_xml_connection_send_free,
+-    xml
+-  );
++  /* It can happen that while calling inf_xmpp_connection_send_xml we
++   * notice that the connection is down. Only proceed with sent notification
++   * if the connection is still up and we could actually send the thing. */
++  if(priv->status == INF_XMPP_CONNECTION_READY)
++  {
++    inf_xmpp_connection_push_message(
++      INF_XMPP_CONNECTION(connection),
++      inf_xmpp_connection_xml_connection_send_sent,
++      inf_xmpp_connection_xml_connection_send_free,
++      xml
++    );
++  }
++  else
++  {
++    xmlFreeNode(xml);
++  }
+ }
+ 
+ /*
+-- 
+1.7.10.4
+
diff -Nru libinfinity-0.5.2/debian/patches/0001-Rework-Gtk3-support.patch libinfinity-0.5.2/debian/patches/0001-Rework-Gtk3-support.patch
--- libinfinity-0.5.2/debian/patches/0001-Rework-Gtk3-support.patch	2012-03-18 12:29:28.000000000 +0000
+++ libinfinity-0.5.2/debian/patches/0001-Rework-Gtk3-support.patch	2012-10-23 22:04:43.000000000 +0000
@@ -26,11 +26,11 @@
  libinftextgtk/Makefile.am |   35 +++++++++++++++++++++++++++--------
  5 files changed, 80 insertions(+), 20 deletions(-)
 
-diff --git a/Makefile.am b/Makefile.am
-index 24c312b..61f8bb1 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -7,12 +7,12 @@ pkgconfig_DATA = \
+Index: libinfinity-0.5.2/Makefile.am
+===================================================================
+--- libinfinity-0.5.2.orig/Makefile.am	2012-10-24 00:04:33.608932275 +0200
++++ libinfinity-0.5.2/Makefile.am	2012-10-24 00:04:39.069053873 +0200
+@@ -7,12 +7,12 @@
  
  if WITH_INFGTK
  SUBDIRS += libinfgtk
@@ -45,11 +45,11 @@
  endif
  
  if WITH_INFINOTED
-diff --git a/configure.ac b/configure.ac
-index 00bc007..351ab71 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -122,13 +122,18 @@ if test "x$with_gtk3" = "xyes"
+Index: libinfinity-0.5.2/configure.ac
+===================================================================
+--- libinfinity-0.5.2.orig/configure.ac	2012-10-24 00:04:35.528975035 +0200
++++ libinfinity-0.5.2/configure.ac	2012-10-24 00:04:39.069053873 +0200
+@@ -122,13 +122,18 @@
  then
  	gtk_requirement="gtk+-3.0 >= 2.90.6"
  	gtk_version=3
@@ -68,7 +68,7 @@
  
  ###################################
  # libinftextgtk optional package
-@@ -321,8 +326,8 @@ AC_CONFIG_FILES([
+@@ -326,8 +331,8 @@
  AC_CONFIG_FILES(
    libinfinity-libinfinity_api_version.pc:libinfinity.pc.in
    libinftext-libinfinity_api_version.pc:libinftext.pc.in
@@ -79,7 +79,7 @@
  )
  
  AC_OUTPUT
-@@ -334,6 +339,7 @@ Build optional packages:
+@@ -339,6 +344,7 @@
    infinoted: $with_infinoted
  
  Enable support for:
@@ -87,10 +87,10 @@
    avahi: $use_avahi
    libdaemon: $use_libdaemon
    pam: $use_pam
-diff --git a/libinfgtk/Makefile.am b/libinfgtk/Makefile.am
-index 1826ae9..7daa6d3 100644
---- a/libinfgtk/Makefile.am
-+++ b/libinfgtk/Makefile.am
+Index: libinfinity-0.5.2/libinfgtk/Makefile.am
+===================================================================
+--- libinfinity-0.5.2.orig/libinfgtk/Makefile.am	2012-10-24 00:04:33.608932275 +0200
++++ libinfinity-0.5.2/libinfgtk/Makefile.am	2012-10-24 00:04:39.073053962 +0200
 @@ -1,24 +1,25 @@
  # TODO: Find a way to have the version number set automatically.
 +if WITH_GTK3
@@ -124,7 +124,7 @@
  	inf-gtk-browser-model.h \
  	inf-gtk-browser-model-filter.h \
  	inf-gtk-browser-model-sort.h \
-@@ -30,7 +31,7 @@ libinfgtk_0_5_la_HEADERS = \
+@@ -30,7 +31,7 @@
  	inf-gtk-chat.h \
  	inf-gtk-io.h
  
@@ -133,7 +133,7 @@
  	inf-gtk-browser-model.c \
  	inf-gtk-browser-model-filter.c \
  	inf-gtk-browser-model-sort.c \
-@@ -41,3 +42,21 @@ libinfgtk_0_5_la_SOURCES = \
+@@ -41,3 +42,21 @@
  	inf-gtk-certificate-view.c \
  	inf-gtk-chat.c \
  	inf-gtk-io.c
@@ -155,10 +155,10 @@
 +libinfgtk_0_5_ladir = \
 +	$(includedir)/libinfgtk-$(LIBINFINITY_API_VERSION)/libinfgtk
 +endif
-diff --git a/libinftextgtk/Makefile.am b/libinftextgtk/Makefile.am
-index 1dd0daa..0bdbafe 100644
---- a/libinftextgtk/Makefile.am
-+++ b/libinftextgtk/Makefile.am
+Index: libinfinity-0.5.2/libinftextgtk/Makefile.am
+===================================================================
+--- libinfinity-0.5.2.orig/libinftextgtk/Makefile.am	2012-10-24 00:04:33.608932275 +0200
++++ libinfinity-0.5.2/libinftextgtk/Makefile.am	2012-10-24 00:04:39.073053962 +0200
 @@ -1,34 +1,53 @@
  # TODO: Find a way to have the version number set automatically.
 +if WITH_GTK3
@@ -221,6 +221,3 @@
 +libinftextgtk_0_5_ladir = \
 +	$(includedir)/libinftextgtk-$(LIBINFINITY_API_VERSION)/libinftextgtk
 +endif
--- 
-1.7.9.1
-
diff -Nru libinfinity-0.5.2/debian/patches/series libinfinity-0.5.2/debian/patches/series
--- libinfinity-0.5.2/debian/patches/series	2012-06-02 16:19:15.000000000 +0000
+++ libinfinity-0.5.2/debian/patches/series	2012-10-23 22:04:19.000000000 +0000
@@ -1,5 +1,6 @@
 0001-Check-for-libm-for-libinftextgtk.patch
 0001-Fix-a-few-enumeration-type-registration.patch
+0001-Fix-a-crash-when-a-connection-goes-down-while-attemp.patch
 0001-Rework-Gtk3-support.patch
 0002-gtk3-test-Makefile.am.patch
 0003-gtk3-docs.patch
Hints needed:
unblock libinfinity/0.5.2-5

--- End Message ---
--- Begin Message ---
On Sun, 2012-10-28 at 10:24 +0100, Philipp Kern wrote:
> Please unblock package libinfinity
> 
> Fix a crash that could occur when it is noticed at send time that a
> connection is down. Fix a broken recommends.

Unblocked; thanks.

Regards,

Adam

--- End Message ---

Reply to: