diff options
author | drochner <drochner@pkgsrc.org> | 2012-01-29 10:41:19 +0000 |
---|---|---|
committer | drochner <drochner@pkgsrc.org> | 2012-01-29 10:41:19 +0000 |
commit | 61edd6caa2f7c36bff3de232aca8eeaf0f7a6df9 (patch) | |
tree | 4ac7c88416975730f5cdc243fca204c4d991d233 /net/libsoup24 | |
parent | d1a59d817dd6f285d563d52b740fff258c9630a2 (diff) | |
download | pkgsrc-61edd6caa2f7c36bff3de232aca8eeaf0f7a6df9.tar.gz |
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 (limited to 'net/libsoup24')
-rw-r--r-- | net/libsoup24/Makefile | 3 | ||||
-rw-r--r-- | net/libsoup24/distinfo | 3 | ||||
-rw-r--r-- | net/libsoup24/patches/patch-aa | 78 |
3 files changed, 82 insertions, 2 deletions
diff --git a/net/libsoup24/Makefile b/net/libsoup24/Makefile index 0ace43a3a80..0c5ca603dde 100644 --- a/net/libsoup24/Makefile +++ b/net/libsoup24/Makefile @@ -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 --git a/net/libsoup24/distinfo b/net/libsoup24/distinfo index 8b4056031f9..b80e0740ff0 100644 --- a/net/libsoup24/distinfo +++ b/net/libsoup24/distinfo @@ -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 --git a/net/libsoup24/patches/patch-aa b/net/libsoup24/patches/patch-aa new file mode 100644 index 00000000000..f8c67544079 --- /dev/null +++ b/net/libsoup24/patches/patch-aa @@ -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; + |