Bug#691664: unblock: libinfinity/0.5.2-5
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
Reply to: