pkgsrc-Changes-HG archive

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

[pkgsrc/trunk]: pkgsrc/net/libsoup24 add patch from upstream to avoid excessi...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/6d79d8e3bb7c
branches:  trunk
changeset: 598734:6d79d8e3bb7c
user:      drochner <drochner%pkgsrc.org@localhost>
date:      Sun Jan 29 10:41:19 2012 +0000

description:
add patch from upstream to avoid excessive use of glib2 "cancellables",
this is a problem with the glib2-2.30 implementation of the latter
which runs out of file descriptors easily
bump PKGREV

diffstat:

 net/libsoup24/Makefile         |   3 +-
 net/libsoup24/distinfo         |   3 +-
 net/libsoup24/patches/patch-aa |  78 ++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 82 insertions(+), 2 deletions(-)

diffs (106 lines):

diff -r 54f949a3cbfd -r 6d79d8e3bb7c net/libsoup24/Makefile
--- a/net/libsoup24/Makefile    Sun Jan 29 10:15:56 2012 +0000
+++ b/net/libsoup24/Makefile    Sun Jan 29 10:41:19 2012 +0000
@@ -1,7 +1,8 @@
-# $NetBSD: Makefile,v 1.34 2011/09/12 18:04:51 drochner Exp $
+# $NetBSD: Makefile,v 1.35 2012/01/29 10:41:19 drochner Exp $
 
 DISTNAME=      libsoup-2.34.3
 PKGNAME=       ${DISTNAME:S/libsoup/libsoup24/}
+PKGREVISION=   1
 CATEGORIES=    net gnome
 MASTER_SITES=  ${MASTER_SITE_GNOME:=sources/libsoup/2.34/}
 EXTRACT_SUFX=  .tar.bz2
diff -r 54f949a3cbfd -r 6d79d8e3bb7c net/libsoup24/distinfo
--- a/net/libsoup24/distinfo    Sun Jan 29 10:15:56 2012 +0000
+++ b/net/libsoup24/distinfo    Sun Jan 29 10:41:19 2012 +0000
@@ -1,5 +1,6 @@
-$NetBSD: distinfo,v 1.24 2011/09/12 18:04:51 drochner Exp $
+$NetBSD: distinfo,v 1.25 2012/01/29 10:41:19 drochner Exp $
 
 SHA1 (libsoup-2.34.3.tar.bz2) = ea2354aa01f52ce3c9e40175c4d5ec9f9d46c039
 RMD160 (libsoup-2.34.3.tar.bz2) = 14df1e875c91e7be163ceadd801d043e82e80e03
 Size (libsoup-2.34.3.tar.bz2) = 697132 bytes
+SHA1 (patch-aa) = 83207f05095bceb280357c0a9ebb4ab0a9e97770
diff -r 54f949a3cbfd -r 6d79d8e3bb7c net/libsoup24/patches/patch-aa
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/net/libsoup24/patches/patch-aa    Sun Jan 29 10:41:19 2012 +0000
@@ -0,0 +1,78 @@
+$NetBSD: patch-aa,v 1.5 2012/01/29 10:41:19 drochner Exp $
+
+gnome bug #658743
+
+--- libsoup/soup-http-input-stream.c.orig      2011-03-27 15:59:43.000000000 +0000
++++ libsoup/soup-http-input-stream.c
+@@ -45,7 +45,7 @@ typedef struct {
+       goffset offset;
+ 
+       GCancellable *cancellable;
+-      GSource *cancel_watch;
++      guint cancel_id;
+       SoupHTTPInputStreamCallback got_headers_cb;
+       SoupHTTPInputStreamCallback got_chunk_cb;
+       SoupHTTPInputStreamCallback finished_cb;
+@@ -310,19 +310,19 @@ soup_http_input_stream_finished (SoupMes
+               priv->finished_cb (stream);
+ }
+ 
+-static gboolean
+-soup_http_input_stream_cancelled (GIOChannel *chan, GIOCondition condition,
+-                                       gpointer stream)
++static void
++soup_http_input_stream_cancelled (GCancellable *cancellable,
++                                       gpointer user_data)
+ {
++      SoupHTTPInputStream *stream = user_data;
+       SoupHTTPInputStreamPrivate *priv = SOUP_HTTP_INPUT_STREAM_GET_PRIVATE (stream);
+ 
+-      priv->cancel_watch = NULL;
++      g_signal_handler_disconnect (cancellable, priv->cancel_id);
++      priv->cancel_id = 0;
+ 
+       soup_session_pause_message (priv->session, priv->msg);
+       if (priv->cancelled_cb)
+-              priv->cancelled_cb (stream);
+-
+-      return FALSE;
++              priv->cancelled_cb (G_INPUT_STREAM (stream));
+ }
+ 
+ static void
+@@ -332,17 +332,12 @@ soup_http_input_stream_prepare_for_io (G
+                                      gsize count)
+ {
+       SoupHTTPInputStreamPrivate *priv = SOUP_HTTP_INPUT_STREAM_GET_PRIVATE (stream);
+-      int cancel_fd;
+ 
+       priv->cancellable = cancellable;
+-      cancel_fd = g_cancellable_get_fd (cancellable);
+-      if (cancel_fd != -1) {
+-              GIOChannel *chan = g_io_channel_unix_new (cancel_fd);
+-              priv->cancel_watch = soup_add_io_watch (priv->async_context, chan,
+-                                                      G_IO_IN | G_IO_ERR | G_IO_HUP,
+-                                                      soup_http_input_stream_cancelled,
+-                                                      stream);
+-              g_io_channel_unref (chan);
++      if (cancellable) {
++              priv->cancel_id = g_signal_connect (cancellable, "cancelled",
++                              G_CALLBACK (soup_http_input_stream_cancelled),
++                              stream);
+       }
+ 
+       priv->caller_buffer = buffer;
+@@ -358,10 +353,9 @@ soup_http_input_stream_done_io (GInputSt
+ {
+       SoupHTTPInputStreamPrivate *priv = SOUP_HTTP_INPUT_STREAM_GET_PRIVATE (stream);
+ 
+-      if (priv->cancel_watch) {
+-              g_source_destroy (priv->cancel_watch);
+-              priv->cancel_watch = NULL;
+-              g_cancellable_release_fd (priv->cancellable);
++      if (priv->cancel_id) {
++              g_signal_handler_disconnect (priv->cancellable, priv->cancel_id);
++              priv->cancel_id = 0;
+       }
+       priv->cancellable = NULL;
+ 



Home | Main Index | Thread Index | Old Index