[PATCH RFC weston 3/4] compositor-x11: Remove support for ancient XCB

Quentin Glidic sardemff7+wayland at sardemff7.net
Sun Jan 15 13:05:32 UTC 2017


On 29/11/2016 18:00, Daniel Stone wrote:
> We had two non-pkg-config check paths in the configure script, to
> support XCB functionality used before XCB had had an accompanying
> release: xcb_poll_for_queued_event (released in 1.8, 2012), and a
> usable XKB event mechanism (released in 1.9, 2013).
> 
> Convert the former to a version-based hard dependency, and the latter to
> a version-based soft dependency. This avoids two compiler checks.
> 
> Signed-off-by: Daniel Stone <daniels at collabora.com>

A good thing to do even without Meson:
Reviewed-by: Quentin Glidic <sardemff7+git at sardemff7.net>

Cheers,


> ---
>   configure.ac               | 21 ++-------------------
>   libweston/compositor-x11.c |  9 ++-------
>   2 files changed, 4 insertions(+), 26 deletions(-)
> 
> diff --git a/configure.ac b/configure.ac
> index 1e251bf..7d5eaa1 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -183,29 +183,12 @@ AC_ARG_ENABLE(x11-compositor, [  --enable-x11-compositor],,
>   	      enable_x11_compositor=yes)
>   AM_CONDITIONAL(ENABLE_X11_COMPOSITOR, test x$enable_x11_compositor = xyes)
>   if test x$enable_x11_compositor = xyes; then
> -  PKG_CHECK_MODULES([XCB], xcb)
> -  xcb_save_LIBS=$LIBS
> -  xcb_save_CFLAGS=$CFLAGS
> -  CFLAGS=$XCB_CFLAGS
> -  LIBS=$XCB_LIBS
> -  AC_CHECK_FUNCS([xcb_poll_for_queued_event])
> -  LIBS=$xcb_save_LIBS
> -  CFLAGS=$xcb_save_CFLAGS
> -
> +  PKG_CHECK_MODULES([XCB], xcb >= 1.8)
>     X11_COMPOSITOR_MODULES="x11 x11-xcb xcb-shm"
>   
> -  PKG_CHECK_MODULES(X11_COMPOSITOR_XKB, [xcb-xkb],
> +  PKG_CHECK_MODULES(X11_COMPOSITOR_XKB, [xcb-xkb >= 1.9],
>   		    [have_xcb_xkb="yes"], [have_xcb_xkb="no"])
>     if test "x$have_xcb_xkb" = xyes; then
> -	# Most versions of XCB have totally broken XKB bindings, where the
> -	# events don't work.  Make sure we can actually use them.
> -	xcb_xkb_save_CFLAGS=$CFLAGS
> -	CFLAGS=$X11_COMPOSITOR_XKB_CFLAGS
> -	AC_CHECK_MEMBER([struct xcb_xkb_state_notify_event_t.xkbType],
> -			[], [have_xcb_xkb=no], [[#include <xcb/xkb.h>]])
> -	CFLAGS=$xcb_xkb_save_CFLAGS
> -  fi
> -  if test "x$have_xcb_xkb" = xyes; then
>   	X11_COMPOSITOR_MODULES="$X11_COMPOSITOR_MODULES xcb-xkb"
>   	AC_DEFINE([HAVE_XCB_XKB], [1], [libxcb supports XKB protocol])
>     fi
> diff --git a/libweston/compositor-x11.c b/libweston/compositor-x11.c
> index 34ef854..627bb15 100644
> --- a/libweston/compositor-x11.c
> +++ b/libweston/compositor-x11.c
> @@ -1298,15 +1298,10 @@ static int
>   x11_backend_next_event(struct x11_backend *b,
>   		       xcb_generic_event_t **event, uint32_t mask)
>   {
> -	if (mask & WL_EVENT_READABLE) {
> +	if (mask & WL_EVENT_READABLE)
>   		*event = xcb_poll_for_event(b->conn);
> -	} else {
> -#ifdef HAVE_XCB_POLL_FOR_QUEUED_EVENT
> +	else
>   		*event = xcb_poll_for_queued_event(b->conn);
> -#else
> -		*event = xcb_poll_for_event(b->conn);
> -#endif
> -	}
>   
>   	return *event != NULL;
>   }
> 


-- 

Quentin “Sardem FF7” Glidic


More information about the wayland-devel mailing list