[Spice-devel] [client v2 3/3] build-sys: Enable deprecation warnings instead of ignoring them entirely
Christophe Fergeau
cfergeau at redhat.com
Thu Dec 8 09:36:01 UTC 2016
On Thu, Dec 08, 2016 at 07:29:18AM +0100, Francois Gouget wrote:
> On Thu, 1 Dec 2016, Christophe Fergeau wrote:
>
> > On Thu, Dec 01, 2016 at 04:27:36AM +0100, Francois Gouget wrote:
> > > On Wed, 23 Nov 2016, Christophe Fergeau wrote:
> > >
> > > > On Wed, Nov 23, 2016 at 07:09:28AM +0100, Francois Gouget wrote:
> > > > > For Spice-gtk most deprecation issues come from changes outside Spice
> > > > > (GLib) and thus should not be treated as errors to not break
> > > > > compilation for users who have newer third-party libraries.
> > > > > However they must be visible otherwise Spice developers will not be
> > > > > aware of them and thus will not fix them before breakage happens.
> > > >
> > > > Also iirc -DXXX_VERSION_MIN_REQUIRED=yyy need deprecation warnings to be
> > > > functional
> > >
> > > Hmmm, I applied the patch below and I'm getting errors with or without
> > > this patchset.
> > >
> > > diff --git a/configure.ac b/configure.ac
> > > index f3e7f8d..4661e9f 100644
> > > --- a/configure.ac
> > > +++ b/configure.ac
> > > @@ -136,7 +136,7 @@ AS_IF([test "x$with_gtk" != "xno"],
> > > [AS_IF([test "x$os_win32" = "xyes"],
> > > [PKG_CHECK_MODULES(GTK, gtk+-3.0 >= $GTK_REQUIRED)],
> > > [PKG_CHECK_MODULES(GTK, gtk+-3.0 >= $GTK_REQUIRED epoxy)])]
> > > - [GTK_CFLAGS="$GTK_CFLAGS -DGDK_VERSION_MIN_REQUIRED=$GTK_ENCODED_VERSION \
> > > + [GTK_CFLAGS="$GTK_CFLAGS -DGDK_VERSION_MIN_REQUIRED=4 \
> > > -DGDK_VERSION_MAX_ALLOWED=$GTK_ENCODED_VERSION"])
> > > SPICE_GTK_REQUIRES="${SPICE_GTK_REQUIRES} gtk+-3.0 >= $GTK_REQUIRED"
> >
> > Dunno, with your patch applied, I'm getting
> > channel-webdav.c:317:5: attention : ‘g_output_stream_write_all_finish’
> > is deprecated: Not available before 2.44 [-Wdeprecated-declarations]
>
> I was not seeing those because I was missing the libphodav
> development files so that USE_PHODAV was not defined.
>
> Now I get them too. One of the issues is that we compile with
> -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_36 whereas we would need at
> least ..._2_44. However this would likely require also adding some
> checks in configure.ac to make sure these APIs are available.
>
> I don't think I'm going to really fix those so here's a patch to ignore
> them for now.
Oh, I was not suggesting that you fix these now ;) I was just pointing
out that minimum version required and -Wdeprecated-declarations are
related. Iirc, the phodav support is disabled if glib is too old, so we
should be fine with just disabling.
Christophe
>
> Everyone, feel free to submit something better.
>
>
> commit 1e24dc821e004160fd3793b4029f34f7b5f1379e
> Author: Francois Gouget <fgouget at codeweavers.com>
> Date: Thu Dec 8 07:23:35 2016 +0100
>
> channel-webdav: Temporarily ignore GLib compatibility warnings
>
> A g_inet_socket_xxx() function requires GLib 2.40 while a couple of
> g_output_stream_xxx() functions require GLib 2.44 but we only request
> GLib 2.36.
>
> Signed-off-by: Francois Gouget <fgouget at codeweavers.com>
>
> diff --git a/src/channel-webdav.c b/src/channel-webdav.c
> index 4ecc769..f45d70e 100644
> --- a/src/channel-webdav.c
> +++ b/src/channel-webdav.c
> @@ -314,7 +314,10 @@ static void demux_to_client_cb(GObject *source, GAsyncResult *result, gpointer u
> gboolean fail;
> gsize size;
>
> + /* FIXME: g_output_stream_write_all_finish requires GLib 2.44 or greater */
> + G_GNUC_BEGIN_IGNORE_DEPRECATIONS
> g_output_stream_write_all_finish(G_OUTPUT_STREAM(source), result, &size, &error);
> + G_GNUC_END_IGNORE_DEPRECATIONS
>
> if (error) {
> CHANNEL_DEBUG(client->self, "write failed: %s", error->message);
> @@ -336,9 +339,12 @@ static void demux_to_client(Client *client)
> CHANNEL_DEBUG(client->self, "pushing %"G_GSIZE_FORMAT" to client %p", size, client);
>
> if (size > 0) {
> + /* FIXME: g_output_stream_write_all_async requires GLib 2.44 or greater */
> + G_GNUC_BEGIN_IGNORE_DEPRECATIONS
> g_output_stream_write_all_async(g_io_stream_get_output_stream(client->pipe),
> c->demux.buf, size, G_PRIORITY_DEFAULT,
> c->cancellable, demux_to_client_cb, client);
> + G_GNUC_END_IGNORE_DEPRECATIONS
> return;
> } else {
> /* Nothing to write */
> @@ -372,7 +378,10 @@ static void start_client(SpiceWebdavChannel *self)
> client->cancellable = g_cancellable_new();
> spice_make_pipe(&client->pipe, &peer);
>
> + /* FIXME: g_inet_socket_address_new_from_string requires GLib 2.40 or greater */
> + G_GNUC_BEGIN_IGNORE_DEPRECATIONS
> addr = g_inet_socket_address_new_from_string ("127.0.0.1", 0);
> + G_GNUC_END_IGNORE_DEPRECATIONS
> if (!soup_server_accept_iostream(server, peer, addr, addr, &error))
> goto fail;
>
>
> --
> Francois Gouget <fgouget at codeweavers.com>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/spice-devel/attachments/20161208/01ae02b6/attachment-0001.sig>
More information about the Spice-devel
mailing list