diff --git a/libevdev_deprecated_api.patch b/libevdev_deprecated_api.patch new file mode 100644 index 0000000..bcc28b6 --- /dev/null +++ b/libevdev_deprecated_api.patch @@ -0,0 +1,118 @@ +From 3cd9a70fea1ccf795419a1726c7c279b0aaf237e Mon Sep 17 00:00:00 2001 +From: Rui Matos +Date: Tue, 19 Nov 2013 16:02:58 +0000 +Subject: device-manager-evdev: Stop using deprecated libevdev API + +Fixes compiler warnings with libevdev >= 0.4 and makes use of a new +function to set the clock id instead of doing the ioctl directly. + +https://bugzilla.gnome.org/show_bug.cgi?id=712816 +--- +diff --git a/README.in b/README.in +index 0018869..0e73a42 100644 +--- a/README.in ++++ b/README.in +@@ -40,7 +40,7 @@ When building the CEx100 backend, Clutter also depends on: + When building the evdev input backend, Clutter also depends on: + + • xkbcommon +- • libevdev ++ • libevdev ≥ @LIBEVDEV_REQ_VERSION@ + + If you are building the API reference you will also need: + +diff --git a/clutter/evdev/clutter-device-manager-evdev.c b/clutter/evdev/clutter-device-manager-evdev.c +index 38d707f..bc34c39 100644 +--- a/clutter/evdev/clutter-device-manager-evdev.c ++++ b/clutter/evdev/clutter-device-manager-evdev.c +@@ -605,11 +605,11 @@ sync_source (ClutterEventSource *source) + const gchar *device_path; + + /* We read a SYN_DROPPED, ignore it and sync the device */ +- err = libevdev_next_event (source->dev, LIBEVDEV_READ_SYNC, &ev); ++ err = libevdev_next_event (source->dev, LIBEVDEV_READ_FLAG_SYNC, &ev); + while (err == 1) + { + dispatch_one_event (source, &ev); +- err = libevdev_next_event (source->dev, LIBEVDEV_READ_SYNC, &ev); ++ err = libevdev_next_event (source->dev, LIBEVDEV_READ_FLAG_SYNC, &ev); + } + + if (err != -EAGAIN && CLUTTER_HAS_DEBUG (EVENT)) +@@ -664,7 +664,7 @@ clutter_event_dispatch (GSource *g_source, + if (clutter_events_pending ()) + goto queue_event; + +- err = libevdev_next_event (source->dev, LIBEVDEV_READ_NORMAL, &ev); ++ err = libevdev_next_event (source->dev, LIBEVDEV_READ_FLAG_NORMAL, &ev); + while (err != -EAGAIN) + { + if (err == 1) +@@ -677,7 +677,7 @@ clutter_event_dispatch (GSource *g_source, + goto out; + } + +- err = libevdev_next_event (source->dev, LIBEVDEV_READ_NORMAL, &ev); ++ err = libevdev_next_event (source->dev, LIBEVDEV_READ_FLAG_NORMAL, &ev); + } + + queue_event: +@@ -725,7 +725,7 @@ clutter_event_source_new (ClutterInputDeviceEvdev *input_device) + GSource *source = g_source_new (&event_funcs, sizeof (ClutterEventSource)); + ClutterEventSource *event_source = (ClutterEventSource *) source; + const gchar *node_path; +- gint fd, clkid; ++ gint fd; + GError *error; + ClutterInputDeviceType device_type; + +@@ -756,15 +756,13 @@ clutter_event_source_new (ClutterInputDeviceEvdev *input_device) + } + } + +- /* Tell evdev to use the monotonic clock for its timestamps */ +- clkid = CLOCK_MONOTONIC; +- ioctl (fd, EVIOCSCLOCKID, &clkid); +- + /* setup the source */ + event_source->device = input_device; + event_source->event_poll_fd.fd = fd; + event_source->event_poll_fd.events = G_IO_IN; ++ + libevdev_new_from_fd (fd, &event_source->dev); ++ libevdev_set_clock_id (event_source->dev, CLOCK_MONOTONIC); + + device_type = clutter_input_device_get_device_type (CLUTTER_INPUT_DEVICE (input_device)); + if (device_type == CLUTTER_TOUCHPAD_DEVICE) +diff --git a/configure.ac b/configure.ac +index 0448ee4..47fce79 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -146,6 +146,7 @@ m4_define([uprof_req_version], [0.3]) + m4_define([xfixes_req_version], [3]) + m4_define([xcomposite_req_version], [0.4]) + m4_define([gdk_req_version], [3.3.18]) ++m4_define([libevdev_req_version], [0.4]) + + AC_SUBST([GLIB_REQ_VERSION], [glib_req_version]) + AC_SUBST([COGL_REQ_VERSION], [cogl_req_version]) +@@ -158,6 +159,7 @@ AC_SUBST([UPROF_REQ_VERSION], [uprof_req_version]) + AC_SUBST([XFIXES_REQ_VERSION], [xfixes_req_version]) + AC_SUBST([XCOMPOSITE_REQ_VERSION], [xcomposite_req_version]) + AC_SUBST([GDK_REQ_VERSION], [gdk_req_version]) ++AC_SUBST([LIBEVDEV_REQ_VERSION], [libevdev_req_version]) + + # Checks for typedefs, structures, and compiler characteristics. + AM_PATH_GLIB_2_0([glib_req_version], +@@ -478,7 +480,7 @@ AS_IF([test "x$enable_evdev" = "xyes"], + AS_IF([test "x$have_evdev" = "xyes"], + [ + CLUTTER_INPUT_BACKENDS="$CLUTTER_INPUT_BACKENDS evdev" +- BACKEND_PC_FILES="$BACKEND_PC_FILES gudev-1.0 libevdev xkbcommon" ++ BACKEND_PC_FILES="$BACKEND_PC_FILES gudev-1.0 libevdev >= $LIBEVDEV_REQ_VERSION xkbcommon" + experimental_input_backend="yes" + AC_DEFINE([HAVE_EVDEV], [1], [Have evdev support for input handling]) + SUPPORT_EVDEV=1 +-- +cgit v0.9.2 +