Gentoo Archives: gentoo-commits

From: Alexandre Restovtsev <tetromino@×××××.com>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/gnome:gnome-next commit in: dev-libs/glib/files/, dev-libs/glib/
Date: Tue, 27 Sep 2011 05:58:16
Message-Id: 42814d8977fb588a6c7371398f22b0be3fa9b79d.tetromino@gentoo
1 commit: 42814d8977fb588a6c7371398f22b0be3fa9b79d
2 Author: Alexandre Rostovtsev <tetromino <AT> gmail <DOT> com>
3 AuthorDate: Tue Sep 27 01:04:23 2011 +0000
4 Commit: Alexandre Restovtsev <tetromino <AT> gmail <DOT> com>
5 CommitDate: Tue Sep 27 01:04:23 2011 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=42814d89
7
8 dev-libs/glib: 2.29.92 → 2.30.0
9
10 Version bump with some incompatible API changes in GDBus.
11
12 ---
13 .../files/glib-2.29.92-close-stream-twice.patch | 149 --------------------
14 .../{glib-2.29.92.ebuild => glib-2.30.0.ebuild} | 5 +-
15 dev-libs/glib/glib-9999.ebuild | 2 +-
16 3 files changed, 2 insertions(+), 154 deletions(-)
17
18 diff --git a/dev-libs/glib/files/glib-2.29.92-close-stream-twice.patch b/dev-libs/glib/files/glib-2.29.92-close-stream-twice.patch
19 deleted file mode 100644
20 index 358bbb5..0000000
21 --- a/dev-libs/glib/files/glib-2.29.92-close-stream-twice.patch
22 +++ /dev/null
23 @@ -1,149 +0,0 @@
24 -commit 7b812c434388f0fc3cbbb67df5ab9f7db3a138ed
25 -Author: Philip Withnall <philip@××××××××××××.uk>
26 -Date: Mon Sep 19 10:13:52 2011 +0200
27 -
28 - Don't close stream twice when splicing
29 -
30 - Ensure that the output/target stream in a g_output_stream_splice_async()
31 - operation is marked as closed if G_OUTPUT_STREAM_SPLICE_CLOSE_TARGET is
32 - passed to g_output_stream_splice_async(). This removes the possibility of
33 - local FDs being closed twice because the stream's not marked as closed.
34 -
35 - This is implemented by calling g_output_stream_close() from within
36 - g_output_stream_splice_async() instead of calling the stream's close_fn()
37 - directly.
38 -
39 - Closes: bgo#659324
40 - (cherry picked from commit fe27bf003764e453cd15cab67e8a99fcda84db1d)
41 -
42 -diff --git a/gio/goutputstream.c b/gio/goutputstream.c
43 -index 8132caf..afe135c 100644
44 ---- a/gio/goutputstream.c
45 -+++ b/gio/goutputstream.c
46 -@@ -95,6 +95,9 @@ static void g_output_stream_real_close_async (GOutputStream *s
47 - static gboolean g_output_stream_real_close_finish (GOutputStream *stream,
48 - GAsyncResult *result,
49 - GError **error);
50 -+static gboolean _g_output_stream_close_internal (GOutputStream *stream,
51 -+ GCancellable *cancellable,
52 -+ GError **error);
53 -
54 - static void
55 - g_output_stream_finalize (GObject *object)
56 -@@ -459,9 +462,7 @@ g_output_stream_real_splice (GOutputStream *stream,
57 - if (flags & G_OUTPUT_STREAM_SPLICE_CLOSE_TARGET)
58 - {
59 - /* But write errors on close are bad! */
60 -- if (class->close_fn &&
61 -- !class->close_fn (stream, cancellable, error))
62 -- res = FALSE;
63 -+ res = _g_output_stream_close_internal (stream, cancellable, error);
64 - }
65 -
66 - if (res)
67 -@@ -470,6 +471,54 @@ g_output_stream_real_splice (GOutputStream *stream,
68 - return -1;
69 - }
70 -
71 -+/* Must always be called inside
72 -+ * g_output_stream_set_pending()/g_output_stream_clear_pending(). */
73 -+static gboolean
74 -+_g_output_stream_close_internal (GOutputStream *stream,
75 -+ GCancellable *cancellable,
76 -+ GError **error)
77 -+{
78 -+ GOutputStreamClass *class;
79 -+ gboolean res;
80 -+
81 -+ if (stream->priv->closed)
82 -+ return TRUE;
83 -+
84 -+ class = G_OUTPUT_STREAM_GET_CLASS (stream);
85 -+
86 -+ stream->priv->closing = TRUE;
87 -+
88 -+ if (cancellable)
89 -+ g_cancellable_push_current (cancellable);
90 -+
91 -+ if (class->flush)
92 -+ res = class->flush (stream, cancellable, error);
93 -+ else
94 -+ res = TRUE;
95 -+
96 -+ if (!res)
97 -+ {
98 -+ /* flushing caused the error that we want to return,
99 -+ * but we still want to close the underlying stream if possible
100 -+ */
101 -+ if (class->close_fn)
102 -+ class->close_fn (stream, cancellable, NULL);
103 -+ }
104 -+ else
105 -+ {
106 -+ res = TRUE;
107 -+ if (class->close_fn)
108 -+ res = class->close_fn (stream, cancellable, error);
109 -+ }
110 -+
111 -+ if (cancellable)
112 -+ g_cancellable_pop_current (cancellable);
113 -+
114 -+ stream->priv->closing = FALSE;
115 -+ stream->priv->closed = TRUE;
116 -+
117 -+ return res;
118 -+}
119 -
120 - /**
121 - * g_output_stream_close:
122 -@@ -514,49 +563,18 @@ g_output_stream_close (GOutputStream *stream,
123 - GCancellable *cancellable,
124 - GError **error)
125 - {
126 -- GOutputStreamClass *class;
127 - gboolean res;
128 -
129 - g_return_val_if_fail (G_IS_OUTPUT_STREAM (stream), FALSE);
130 -
131 -- class = G_OUTPUT_STREAM_GET_CLASS (stream);
132 --
133 - if (stream->priv->closed)
134 - return TRUE;
135 -
136 - if (!g_output_stream_set_pending (stream, error))
137 - return FALSE;
138 -
139 -- stream->priv->closing = TRUE;
140 --
141 -- if (cancellable)
142 -- g_cancellable_push_current (cancellable);
143 -+ res = _g_output_stream_close_internal (stream, cancellable, error);
144 -
145 -- if (class->flush)
146 -- res = class->flush (stream, cancellable, error);
147 -- else
148 -- res = TRUE;
149 --
150 -- if (!res)
151 -- {
152 -- /* flushing caused the error that we want to return,
153 -- * but we still want to close the underlying stream if possible
154 -- */
155 -- if (class->close_fn)
156 -- class->close_fn (stream, cancellable, NULL);
157 -- }
158 -- else
159 -- {
160 -- res = TRUE;
161 -- if (class->close_fn)
162 -- res = class->close_fn (stream, cancellable, error);
163 -- }
164 --
165 -- if (cancellable)
166 -- g_cancellable_pop_current (cancellable);
167 --
168 -- stream->priv->closing = FALSE;
169 -- stream->priv->closed = TRUE;
170 - g_output_stream_clear_pending (stream);
171 -
172 - return res;
173
174 diff --git a/dev-libs/glib/glib-2.29.92.ebuild b/dev-libs/glib/glib-2.30.0.ebuild
175 similarity index 97%
176 rename from dev-libs/glib/glib-2.29.92.ebuild
177 rename to dev-libs/glib/glib-2.30.0.ebuild
178 index 169bc12..e089386 100644
179 --- a/dev-libs/glib/glib-2.29.92.ebuild
180 +++ b/dev-libs/glib/glib-2.30.0.ebuild
181 @@ -37,7 +37,7 @@ DEPEND="${RDEPEND}
182 ~app-text/docbook-xml-dtd-4.1.2 )
183 systemtap? ( >=dev-util/systemtap-1.3 )
184 test? (
185 - >=dev-util/gdbus-codegen-2.29.92
186 + >=dev-util/gdbus-codegen-2.30.0
187 >=sys-apps/dbus-1.2.14 )
188 !<dev-util/gtk-doc-1.15-r2"
189 PDEPEND="introspection? ( dev-libs/gobject-introspection )
190 @@ -58,9 +58,6 @@ src_prepare() {
191 fi
192 fi
193
194 - # Don't close output stream twice; will be in next release
195 - epatch "${FILESDIR}/${P}-close-stream-twice.patch"
196 -
197 # Don't fail gio tests when ran without userpriv, upstream bug 552912
198 # This is only a temporary workaround, remove as soon as possible
199 epatch "${FILESDIR}/${PN}-2.18.1-workaround-gio-test-failure-without-userpriv.patch"
200
201 diff --git a/dev-libs/glib/glib-9999.ebuild b/dev-libs/glib/glib-9999.ebuild
202 index 49e5712..e089386 100644
203 --- a/dev-libs/glib/glib-9999.ebuild
204 +++ b/dev-libs/glib/glib-9999.ebuild
205 @@ -37,7 +37,7 @@ DEPEND="${RDEPEND}
206 ~app-text/docbook-xml-dtd-4.1.2 )
207 systemtap? ( >=dev-util/systemtap-1.3 )
208 test? (
209 - >=dev-util/gdbus-codegen-2.29.92
210 + >=dev-util/gdbus-codegen-2.30.0
211 >=sys-apps/dbus-1.2.14 )
212 !<dev-util/gtk-doc-1.15-r2"
213 PDEPEND="introspection? ( dev-libs/gobject-introspection )