[PATCH weston] Require libinput 0.4.0

Jonas Ådahl jadahl at gmail.com
Wed Jun 25 13:48:09 PDT 2014


On Wed, Jun 25, 2014 at 09:42:28AM -0700, Andrea Giammarchi wrote:
> Not sure this is the right place for this question but weston does not
> build when libinput 0.4 is used:
> 
> ./autogen.sh --prefix=$WLD \
>       --disable-rpi-compositor \
>       --enable-libinput-backend \
>       --enable-egl --with-cairo-glesv2 --enable-wayland-compositor \
>       --disable-x11-compositor --disable-fbdev-compositor \
>       --disable-xwayland --disable-xwayland-test \
>       --without-x
> 
> the config looks great, but then it fails with
> drm_backend_la-libinput-seat.lo

This doesn't really tell me much; what error message did you get? If
it's during running make, try with make V=1.

> 
> Is there any particular dependency I am missing or any flag I should use to
> build libinput in order to make weston using it?

Passing --enable-libinput-backend should be enough to make weston use
libinput instead of the bundled udev/evdev backend.

Jonas

> 
> If I drop `enable-libinput-backend` weston builds and launch without
> problems.
> 
> Thanks
> 
> 
> 
> 
> 
> On Tue, Jun 24, 2014 at 11:55 PM, Jonas Ådahl <jadahl at gmail.com> wrote:
> 
> > On Wed, Jun 25, 2014 at 02:07:36PM +1000, Peter Hutterer wrote:
> > > No functional changes, just adjusting for API changes in libinput:
> > > - libinput_destroy() replaced by libinput_unref()
> > > - log functions now take a libinput context, userdata is gone
> > > - udev seat creation is now libinput_udev_create_context() and
> > >   libinput_udev_assign_seat()
> >
> > Applied and pushed, thanks.
> >
> > Jonas
> >
> > >
> > > Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
> > > ---
> > >  configure.ac        |  2 +-
> > >  src/libinput-seat.c | 32 +++++++++++++++++++++-----------
> > >  2 files changed, 22 insertions(+), 12 deletions(-)
> > >
> > > diff --git a/configure.ac b/configure.ac
> > > index b4511fc..648bee8 100644
> > > --- a/configure.ac
> > > +++ b/configure.ac
> > > @@ -160,7 +160,7 @@ AC_ARG_ENABLE(libinput-backend, [
> >  --enable-libinput-backend],,
> > >  AM_CONDITIONAL([ENABLE_LIBINPUT_BACKEND], [test
> > x$enable_libinput_backend = xyes])
> > >  if test x$enable_libinput_backend = xyes; then
> > >    AC_DEFINE([BUILD_LIBINPUT_BACKEND], [1], [Build the libinput input
> > device backend])
> > > -  PKG_CHECK_MODULES(LIBINPUT_BACKEND, [libinput >= 0.3.0])
> > > +  PKG_CHECK_MODULES(LIBINPUT_BACKEND, [libinput >= 0.4.0])
> > >  fi
> > >
> > >
> > > diff --git a/src/libinput-seat.c b/src/libinput-seat.c
> > > index d59ae42..09cf7c7 100644
> > > --- a/src/libinput-seat.c
> > > +++ b/src/libinput-seat.c
> > > @@ -252,8 +252,9 @@ udev_input_enable(struct udev_input *input)
> > >  }
> > >
> > >  static void
> > > -libinput_log_func(enum libinput_log_priority priority, void *user_data,
> > > -                  const char *format, va_list args)
> > > +libinput_log_func(struct libinput *libinput,
> > > +               enum libinput_log_priority priority,
> > > +               const char *format, va_list args)
> > >  {
> > >       weston_vlog(format, args);
> > >  }
> > > @@ -268,25 +269,34 @@ udev_input_init(struct udev_input *input, struct
> > weston_compositor *c, struct ud
> > >
> > >       input->compositor = c;
> > >
> > > -     libinput_log_set_handler(&libinput_log_func, NULL);
> > > -
> > >       log_priority = getenv("WESTON_LIBINPUT_LOG_PRIORITY");
> > >
> > > +     input->libinput = libinput_udev_create_context(&libinput_interface,
> > > +                                                    input, udev);
> > > +     if (!input->libinput) {
> > > +             return -1;
> > > +     }
> > > +
> > > +     libinput_log_set_handler(input->libinput, &libinput_log_func);
> > > +
> > >       if (log_priority) {
> > >               if (strcmp(log_priority, "debug") == 0) {
> > > -
> > libinput_log_set_priority(LIBINPUT_LOG_PRIORITY_DEBUG);
> > > +                     libinput_log_set_priority(input->libinput,
> > > +
> > LIBINPUT_LOG_PRIORITY_DEBUG);
> > >               } else if (strcmp(log_priority, "info") == 0) {
> > > -
> > libinput_log_set_priority(LIBINPUT_LOG_PRIORITY_INFO);
> > > +                     libinput_log_set_priority(input->libinput,
> > > +
> > LIBINPUT_LOG_PRIORITY_INFO);
> > >               } else if (strcmp(log_priority, "error") == 0) {
> > > -
> > libinput_log_set_priority(LIBINPUT_LOG_PRIORITY_ERROR);
> > > +                     libinput_log_set_priority(input->libinput,
> > > +
> > LIBINPUT_LOG_PRIORITY_ERROR);
> > >               }
> > >       }
> > >
> > > -     input->libinput =
> > libinput_udev_create_for_seat(&libinput_interface, input,
> > > -                                                     udev, seat_id);
> > > -     if (!input->libinput) {
> > > +     if (libinput_udev_assign_seat(input->libinput, seat_id) != 0) {
> > > +             libinput_unref(input->libinput);
> > >               return -1;
> > >       }
> > > +
> > >       process_events(input);
> > >
> > >       return udev_input_enable(input);
> > > @@ -300,7 +310,7 @@ udev_input_destroy(struct udev_input *input)
> > >       wl_event_source_remove(input->libinput_source);
> > >       wl_list_for_each_safe(seat, next, &input->compositor->seat_list,
> > base.link)
> > >               udev_seat_destroy(seat);
> > > -     libinput_destroy(input->libinput);
> > > +     libinput_unref(input->libinput);
> > >  }
> > >
> > >  static void
> > > --
> > > 1.9.3
> > >
> > > _______________________________________________
> > > wayland-devel mailing list
> > > wayland-devel at lists.freedesktop.org
> > > http://lists.freedesktop.org/mailman/listinfo/wayland-devel
> > _______________________________________________
> > wayland-devel mailing list
> > wayland-devel at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/wayland-devel
> >


More information about the wayland-devel mailing list