Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 10 Jun 2018 15:54:55 +0200
From:      Niclas Zeising <zeising+freebsd@daemonic.se>
To:        freebsd-x11@freebsd.org
Subject:   Re: [CFT] changes and updates to x11 input devices
Message-ID:  <49a1235b-608d-aa98-c6da-b98f55e50e54@daemonic.se>
In-Reply-To: <dbf6a804-887d-4683-c371-90785b76aa92@freebsd.org>
References:  <dbf6a804-887d-4683-c371-90785b76aa92@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------28747E1BE58F66ACECC8BD0A
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 06/10/18 09:01, Niclas Zeising wrote:
> Hi!
> I've been working for a little while on incorporating the various=20
> patches floating around for changes and updates to xorg input drivers,=20
> mostly related to libinput.=C2=A0 The result can be found here, in the =
x11=20
> team development repo:
>=20
> https://github.com/FreeBSDDesktop/freebsd-ports/tree/feature/input
>=20
> It contains upates to libinput, libeevdev, libwacom, xf86-input-libinpu=
t=20
> and dependencies.
>=20
> Please help me in testing this as much as possible, so that we can land=
=20
> it in the ports system
>=20
> The branch above is a complete ports tree, so you can use it to build=20
> from, or to point poudriere at it.=C2=A0 Please test various input devi=
ces,=20
> synaptics touchpads, wacom devices and so on.=C2=A0 Both success and fa=
ilure=20
> stories are interesting.


On request, attached is a patch with all changes.
Regards
--=20
Niclas

--------------28747E1BE58F66ACECC8BD0A
Content-Type: text/x-patch;
 name="ports.input.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
 filename="ports.input.diff"

diff --git a/audio/baresip/Makefile b/audio/baresip/Makefile
index ffdae5425a20..dd15bcd767e4 100644
--- a/audio/baresip/Makefile
+++ b/audio/baresip/Makefile
@@ -29,7 +29,7 @@ OPTIONS_DEFINE=	CONS DOCS EXAMPLES FFMPEG G711 G722 G726 GSM GSTREAMER ILBC \
 	L16 OPUS OSS PORTAUDIO SDL SNDFILE SPEEX SRTP STDIO UUID V4L V4L2 X11 \
 	DTLS_SRTP AUBRIDGE VIDBRIDGE HTTPD DSHOW DIRECTFB ACCOUNT \
 	NATPMP SDL MIW SNAPSHOT SELFVIEW VUMETER AULOOP CONTACT \
-	MENU PRESENCE SYSLOG VIDLOOP
+	MENU PRESENCE SYSLOG VIDLOOP EVDEV
 OPTIONS_DEFAULT=CONS G711 G722 G726 L16 OSS STDIO
 
 AULOOP_DESC=	Audio-loop test module
@@ -37,6 +37,7 @@ BV32_DESC=	BroadVoice32 Wideband Audio codec
 CONTACT_DESC=	Contacts module
 CONS_DESC=	Console input driver
 DTLS_SRTP_DESC=	DTLS Secure RTP module [broken]
+EVDEV_DESC=	Input event device interface module
 G711_DESC=	G.711 audio codec
 G722_DESC=	G.722 audio codec
 G722_1_DESC=	G.722.1 audio codec
diff --git a/audio/baresip/Makefile.depends b/audio/baresip/Makefile.depends
index 2dbc5bc24e01..de4154c4aad0 100644
--- a/audio/baresip/Makefile.depends
+++ b/audio/baresip/Makefile.depends
@@ -4,7 +4,7 @@ ALSA_DEPEND=	${LOCALBASE}/include/alsa/asoundlib.h:audio/alsa-lib
 BV32_DEPEND=	# nonexistent
 CONS_DEPEND=	# unnecessary
 DTLS_SRTP_DEPEND=	# unnecessary
-EVDEV_DEPEND=
+EVDEV_DEPEND=	${LOCALBASE}/include/linux/input.h:devel/evdev-proto
 FFMPEG_DEPEND=	${LOCALBASE}/include/libavcodec/avcodec.h:multimedia/ffmpeg
 G711_DEPEND=	${LOCALBASE}/include/spandsp/g711.h:comms/spandsp
 G722_DEPEND=	${LOCALBASE}/include/spandsp/g722.h:comms/spandsp
diff --git a/comms/lirc/Makefile b/comms/lirc/Makefile
index 1585a1414cd7..3feee05b43af 100644
--- a/comms/lirc/Makefile
+++ b/comms/lirc/Makefile
@@ -11,7 +11,7 @@ MASTER_SITES=	SF/${PORTNAME}/LIRC/${PORTVERSION}
 MAINTAINER=	ports@FreeBSD.org
 COMMENT=	Linux Infrared Remote Control
 
-BUILD_DEPENDS=	v4l_compat>=1.0.20110603:multimedia/v4l_compat
+BUILD_DEPENDS=	${LOCALBASE}/include/linux/input.h:devel/evdev-proto
 
 USES=		alias autoreconf gmake libtool localbase python tar:bzip2
 USE_XORG=	sm x11 ice
diff --git a/comms/svxlink/Makefile b/comms/svxlink/Makefile
index 50f170890da4..2beeab003ded 100644
--- a/comms/svxlink/Makefile
+++ b/comms/svxlink/Makefile
@@ -19,14 +19,13 @@ LIB_DEPENDS?=	libgsm.so:audio/gsm \
 		libpopt.so:devel/popt \
 		libopus.so:audio/opus \
 		librtlsdr.so:comms/rtl-sdr
-BUILD_DEPENDS=	pkg-config:devel/pkgconf \
-		${LOCALBASE}/include/linux/input.h:multimedia/v4l_compat
+BUILD_DEPENDS=	${LOCALBASE}/include/linux/input.h:devel/evdev-proto
 
 USE_GITHUB=	yes
 GH_ACCOUNT=	sm0svx
 GH_PROJECT=	svxlink
 
-USES=		cmake tcl groff
+USES=		cmake tcl groff pkgconfig
 CMAKE_SOURCE_PATH=	${WRKSRC}/src
 CMAKE_ARGS+=	-DMAN_INSTALL_DIR:FILEPATH=${MANDIRS} \
 		-DLOCAL_STATE_DIR=/var
diff --git a/devel/Makefile b/devel/Makefile
index 7fdc60cbf5a7..32846174558d 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -600,6 +600,7 @@
     SUBDIR += etcd33
     SUBDIR += etl
     SUBDIR += euca2ools
+    SUBDIR += evdev-proto
     SUBDIR += evemu
     SUBDIR += eventxx
     SUBDIR += evolution-gconf-tools
@@ -4906,6 +4907,7 @@
     SUBDIR += py-pytrie
     SUBDIR += py-pytvmaze
     SUBDIR += py-pytz
+    SUBDIR += py-pyudev
     SUBDIR += py-pyutil
     SUBDIR += py-pyvalid
     SUBDIR += py-pyvisa
diff --git a/devel/evdev-proto/Makefile b/devel/evdev-proto/Makefile
new file mode 100644
index 000000000000..2f9ae2efc278
--- /dev/null
+++ b/devel/evdev-proto/Makefile
@@ -0,0 +1,58 @@
+# $FreeBSD$
+
+PORTNAME=	evdev-proto
+PORTVERSION=	4.16
+CATEGORIES=	devel
+MASTER_SITES=	https://github.com/torvalds/linux/raw/v${PORTVERSION}/include/uapi/linux/
+DISTNAME=	input.h input-event-codes.h uinput.h
+EXTRACT_SUFX=	# empty
+
+MAINTAINER=	wulf@FreeBSD.org
+COMMENT=	Input event device header files
+
+LICENSE=	GPLv2
+
+NO_BUILD=	yes
+NO_ARCH=	yes
+WRKSRC=		${WRKDIR}
+
+PLIST_FILES=	${DISTNAME:S|^|include/linux/|}
+
+do-extract:
+	@${MKDIR} ${WRKSRC}
+.for i in ${DISTNAME}
+	@${CP} ${DISTDIR}/${i} ${WRKSRC}
+.endfor
+
+post-patch:
+	@${REINPLACE_CMD} -i '' -E -e \
+		's/__u([[:digit:]]+)/uint\1_t/g ; \
+		s/__s([[:digit:]]+)/int\1_t/g ; \
+		/# *include/ s|<sys/ioctl.h>|<sys/ioccom.h>| ; \
+		/# *include[[:space:]]+<linux\/types.h>/d ; \
+		/EVIOC(RMFF|GRAB|REVOKE)/ s/_IOW(.*), *int/_IOWINT\1/ ; \
+		/EVIOCGKEYCODE/ s/_IOR/_IOWR/ ; \
+		/EVIOCGMASK/ s/_IOR/_IOW/ ; \
+		/EVIOCGMTSLOTS/ s/_IOC_READ/IOC_INOUT/ ; \
+		/#define/ s/_IOC_READ/IOC_OUT/ ; \
+		/#define/ s/_IOC_WRITE/IOC_IN/ ; \
+		s/[[:space:]]+__user[[:space:]]+/ / ; \
+		/__USE_TIME_BITS64/ s|^#if (.*)$$|#if 1 /* \1 */|' \
+		${WRKSRC}/input.h
+	@${REINPLACE_CMD} -i '' -E -e \
+		's/__u([[:digit:]]+)/uint\1_t/g ; \
+		s/__s([[:digit:]]+)/int\1_t/g ; \
+		/# *include/s|<linux/types.h>|<sys/types.h>| ; \
+		/#define/ s/_IOW(.*), *int/_IOWINT\1/ ; \
+		/#define/ s/_IOW(.*), *char\*/_IO\1/ ; \
+		/#define/ s/_IOC_READ/IOC_OUT/' \
+		${WRKSRC}/uinput.h
+
+do-install:
+	@${MKDIR} ${STAGEDIR}${PREFIX}/include/linux/
+.for i in ${DISTNAME}
+	${INSTALL_DATA} ${WRKSRC}/${i} \
+		${STAGEDIR}${PREFIX}/include/linux/
+.endfor
+
+.include <bsd.port.mk>
diff --git a/devel/evdev-proto/distinfo b/devel/evdev-proto/distinfo
new file mode 100644
index 000000000000..b5fa88ce7f80
--- /dev/null
+++ b/devel/evdev-proto/distinfo
@@ -0,0 +1,7 @@
+TIMESTAMP = 1522694717
+SHA256 (input.h) = b61cc749f3b517f0e5b0f4b83a23cbcd9c044a3ff97d8fa3d639fbe0b00236e0
+SIZE (input.h) = 15890
+SHA256 (input-event-codes.h) = a736ca688b6d5fd5d0f52d77b620387dd1f0d360ebba53106ca7be96a8231249
+SIZE (input-event-codes.h) = 24313
+SHA256 (uinput.h) = 9123b078f13047c34797332c4f835e5f1e418387e9a950024920faa5a1186974
+SIZE (uinput.h) = 9276
diff --git a/devel/evdev-proto/pkg-descr b/devel/evdev-proto/pkg-descr
new file mode 100644
index 000000000000..950c6ab03039
--- /dev/null
+++ b/devel/evdev-proto/pkg-descr
@@ -0,0 +1 @@
+This port installs the input event device header files.
diff --git a/devel/evemu/Makefile b/devel/evemu/Makefile
index 1b87a4d659ca..74ddaad73d9a 100644
--- a/devel/evemu/Makefile
+++ b/devel/evemu/Makefile
@@ -12,7 +12,7 @@ COMMENT=	Records and replays EVDEV descriptions and events
 
 LICENSE=	GPLv3
 
-BUILD_DEPENDS=	v4l_compat>=0:multimedia/v4l_compat
+BUILD_DEPENDS=	${LOCALBASE}/include/linux/input.h:devel/evdev-proto
 LIB_DEPENDS=	libevdev.so:devel/libevdev
 
 USES=		tar:xz pathfix libtool pkgconfig localbase
diff --git a/devel/evemu/files/patch-tools_evemu-record.c b/devel/evemu/files/patch-tools_evemu-record.c
index f09d9fdc7381..e69de29bb2d1 100644
--- a/devel/evemu/files/patch-tools_evemu-record.c
+++ b/devel/evemu/files/patch-tools_evemu-record.c
@@ -1,12 +0,0 @@
---- tools/evemu-record.c.orig	2016-03-01 14:10:40 UTC
-+++ tools/evemu-record.c
-@@ -209,6 +209,9 @@ out:
- 	return rc;
- }
- 
-+/* Fix broken linux/input.h ioctl define found in multimedia/v4l_compat as of 2017-04-02 */
-+#undef	EVIOCGRAB
-+#define	EVIOCGRAB	_IOWINT('E', 0x90)
- static inline bool test_grab_device(int fd)
- {
- 	if (ioctl(fd, EVIOCGRAB, (void*)1) < 0) {
diff --git a/devel/libepoll-shim/Makefile b/devel/libepoll-shim/Makefile
index 20ef0d4a39e6..f5dd7780aa4a 100644
--- a/devel/libepoll-shim/Makefile
+++ b/devel/libepoll-shim/Makefile
@@ -2,7 +2,7 @@
 # $FreeBSD$
 
 PORTNAME=	libepoll-shim
-PORTVERSION=	0.0.20161220
+PORTVERSION=	0.0.20180530
 CATEGORIES=	devel
 
 MAINTAINER=	x11@FreeBSD.org
@@ -13,7 +13,7 @@ LICENSE=	MIT
 USE_GITHUB=	yes
 GH_ACCOUNT=	FreeBSDDesktop
 GH_PROJECT=	epoll-shim
-GH_TAGNAME=	c04b26b
+GH_TAGNAME=	385633e
 
 USE_LDCONFIG=	yes
 
diff --git a/devel/libepoll-shim/distinfo b/devel/libepoll-shim/distinfo
index 14540e447ef8..b27e9ac8f482 100644
--- a/devel/libepoll-shim/distinfo
+++ b/devel/libepoll-shim/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1482268996
-SHA256 (FreeBSDDesktop-epoll-shim-0.0.20161220-c04b26b_GH0.tar.gz) = ae644d6b21567e9bb5e3a145e6e8ce233de16dc6c93ca4a1facb24f1375f442a
-SIZE (FreeBSDDesktop-epoll-shim-0.0.20161220-c04b26b_GH0.tar.gz) = 7634
+TIMESTAMP = 1527700937
+SHA256 (FreeBSDDesktop-epoll-shim-0.0.20180530-385633e_GH0.tar.gz) = 03fdbc9f161a38d53a3eaa813d30ef11f6929803bb724967d76ee28a31b743f4
+SIZE (FreeBSDDesktop-epoll-shim-0.0.20180530-385633e_GH0.tar.gz) = 15594
diff --git a/devel/libevdev/Makefile b/devel/libevdev/Makefile
index 1342dfad8fa8..dd42dc889dd2 100644
--- a/devel/libevdev/Makefile
+++ b/devel/libevdev/Makefile
@@ -1,7 +1,7 @@
 # $FreeBSD$
 
 PORTNAME=	libevdev
-PORTVERSION=	1.4.4
+PORTVERSION=	1.5.9
 CATEGORIES=	devel
 MASTER_SITES=	http://freedesktop.org/software/${PORTNAME}/
 
@@ -11,22 +11,33 @@ COMMENT=	Linux Event Device library
 LICENSE=	MIT # without linux/*.h
 LICENSE_FILE=	${WRKSRC}/COPYING
 
-BUILD_DEPENDS=	v4l_compat>=1.0.20110603:multimedia/v4l_compat
-RUN_DEPENDS=	v4l_compat>=1.0.20110603:multimedia/v4l_compat
+BUILD_DEPENDS=	${LOCALBASE}/include/linux/input.h:devel/evdev-proto
+LIB_DEPENDS=	libepoll-shim.so:devel/libepoll-shim
 
-USES=		gmake libtool pathfix python:build tar:xz
+USES=		gmake libtool localbase pathfix pkgconfig python:build tar:xz
 EXTRACT_AFTER_ARGS=	--exclude include # v4l_compat
 GNU_CONFIGURE=	yes
-CONFIGURE_ENV=	ac_cv_path_DOXYGEN=""
-CPPFLAGS+=	-I${LOCALBASE}/include # v4l_compat
+CONFIGURE_ENV=	ac_cv_path_DOXYGEN="" ac_cv_path_VALGRIND=""
+CPPFLAGS+=	-I${LOCALBASE}/include/libepoll-shim
 INSTALL_TARGET=	install-strip
 USE_LDCONFIG=	yes
 
+# Test requires /dev/uinput and should be run as root
+.if exists(/dev/uinput)
+TEST_USES+=	pkgconfig
+TEST_DEPENDS=	checkmk:devel/check
+TEST_TARGET=	check
+TEST_WRKSRC=	${WRKSRC}/test
+.endif
+
 post-patch:
-	@${REINPLACE_CMD} -e '/input\.h/s,top_srcdir,LOCALBASE,' \
+	@${REINPLACE_CMD} -e '/input\.h/s,top_srcdir,LOCALBASE,g' \
 		${WRKSRC}/libevdev/Makefile.in
-# XXX tools require signalfd(2), test require /dev/uinput
-	@${REINPLACE_CMD} -e '/^SUBDIRS/s,tools test,,' \
-		${WRKSRC}/Makefile.in
+	@${REINPLACE_CMD} -e '/^LIBS = /s/$$/ -pthread -lrt -lepoll-shim/' \
+		${WRKSRC}/tools/Makefile.in
+	@${REINPLACE_CMD} -e 's|program_invocation_short_name|getprogname()|' \
+		${WRKSRC}/tools/mouse-dpi-tool.c \
+		${WRKSRC}/tools/touchpad-edge-detector.c \
+		${WRKSRC}/tools/libevdev-tweak-device.c
 
 .include <bsd.port.mk>
diff --git a/devel/libevdev/distinfo b/devel/libevdev/distinfo
index 606b4098fc0a..83224e5f8150 100644
--- a/devel/libevdev/distinfo
+++ b/devel/libevdev/distinfo
@@ -1,2 +1,3 @@
-SHA256 (libevdev-1.4.4.tar.xz) = ed9979369b6a6e28f5897d099538549ecffb2b7c00c1b717eb77c31d85bc45a9
-SIZE (libevdev-1.4.4.tar.xz) = 409856
+TIMESTAMP = 1522696039
+SHA256 (libevdev-1.5.9.tar.xz) = e1663751443bed9d3e76a4fe2caf6fa866a79705d91cacad815c04e706198a75
+SIZE (libevdev-1.5.9.tar.xz) = 408200
diff --git a/devel/libevdev/files/patch-libevdev_libevdev-uinput.c b/devel/libevdev/files/patch-libevdev_libevdev-uinput.c
new file mode 100644
index 000000000000..c6f92480bca9
--- /dev/null
+++ b/devel/libevdev/files/patch-libevdev_libevdev-uinput.c
@@ -0,0 +1,40 @@
+--- libevdev/libevdev-uinput.c.orig	2017-05-04 00:37:30 UTC
++++ libevdev/libevdev-uinput.c
+@@ -182,6 +182,7 @@ libevdev_uinput_get_fd(const struct libevdev_uinput *u
+ 	return uinput_dev->fd;
+ }
+ 
++#if defined(linux)
+ static int is_event_device(const struct dirent *dent) {
+ 	return strncmp("event", dent->d_name, 5) == 0;
+ }
+@@ -213,10 +214,12 @@ fetch_device_node(const char *path)
+ static int is_input_device(const struct dirent *dent) {
+ 	return strncmp("input", dent->d_name, 5) == 0;
+ }
++#endif
+ 
+ static int
+ fetch_syspath_and_devnode(struct libevdev_uinput *uinput_dev)
+ {
++#if defined(linux)
+ 	struct dirent **namelist;
+ 	int ndev, i;
+ 	int rc;
+@@ -290,6 +293,16 @@ fetch_syspath_and_devnode(struct libevdev_uinput *uinp
+ 	free(namelist);
+ 
+ 	return uinput_dev->devnode ? 0 : -1;
++#elif defined(__FreeBSD__)
++	char devnode[80];
++	if (ioctl(uinput_dev->fd, UI_GET_SYSNAME(sizeof(devnode)), devnode) < 0)
++		return -1;
++	asprintf(&uinput_dev->devnode, "/dev/input/%s", devnode);
++	uinput_dev->syspath = strdup(uinput_dev->devnode);
++	return 0;
++#else
++	return -1;
++#endif
+ }
+ 
+ static int
diff --git a/devel/libevdev/files/patch-test_test-libevdev-events.c b/devel/libevdev/files/patch-test_test-libevdev-events.c
new file mode 100644
index 000000000000..b4d960c1daf6
--- /dev/null
+++ b/devel/libevdev/files/patch-test_test-libevdev-events.c
@@ -0,0 +1,20 @@
+--- test/test-libevdev-events.c.orig	2017-05-04 00:37:30 UTC
++++ test/test-libevdev-events.c
+@@ -1057,7 +1057,7 @@ START_TEST(test_syn_delta_late_sync)
+ 	} while (rc >= 0);
+ 
+ 	/* force enough events to trigger a SYN_DROPPED */
+-	for (i = 0; i < 100; i++) {
++	for (i = 0; i < 200; i++) {
+ 		uinput_device_event(uidev, EV_ABS, ABS_X, 100 + i);
+ 		uinput_device_event(uidev, EV_ABS, ABS_Y, 500 + i);
+ 		uinput_device_event(uidev, EV_ABS, ABS_MT_POSITION_X, 100 + i);
+@@ -1152,7 +1152,7 @@ START_TEST(test_syn_delta_late_sync)
+ 	} while (rc >= 0);
+ 
+ 	/* force enough events to trigger a SYN_DROPPED */
+-	for (i = 0; i < 100; i++) {
++	for (i = 0; i < 200; i++) {
+ 		uinput_device_event(uidev, EV_ABS, ABS_X, 100 + i);
+ 		uinput_device_event(uidev, EV_ABS, ABS_Y, 500 + i);
+ 		uinput_device_event(uidev, EV_ABS, ABS_MT_POSITION_X, 100 + i);
diff --git a/devel/libevdev/files/patch-test_test-libevdev-has-event.c b/devel/libevdev/files/patch-test_test-libevdev-has-event.c
new file mode 100644
index 000000000000..adac5377008c
--- /dev/null
+++ b/devel/libevdev/files/patch-test_test-libevdev-has-event.c
@@ -0,0 +1,16 @@
+--- test/test-libevdev-has-event.c.orig	2017-05-04 00:37:30 UTC
++++ test/test-libevdev-has-event.c
+@@ -116,6 +116,13 @@ START_TEST(test_event_codes)
+ 			evbit++;
+ 			continue;
+ 		}
++#ifdef __FreeBSD__
++		/* Force feedback events are not supported by FreeBSD */
++		if (*evbit == EV_FF) {
++			evbit++;
++			continue;
++		}
++#endif
+ 
+ 		max = libevdev_event_type_get_max(*evbit);
+ 
diff --git a/devel/libevdev/files/patch-test_test-libevdev-init.c b/devel/libevdev/files/patch-test_test-libevdev-init.c
new file mode 100644
index 000000000000..79735a3f906c
--- /dev/null
+++ b/devel/libevdev/files/patch-test_test-libevdev-init.c
@@ -0,0 +1,11 @@
+--- test/test-libevdev-init.c.orig	2017-05-04 00:37:30 UTC
++++ test/test-libevdev-init.c
+@@ -490,7 +490,7 @@ START_TEST(test_set_clock_id)
+ 	rc = libevdev_set_clock_id(dev, CLOCK_MONOTONIC);
+ 	ck_assert_int_eq(rc, 0);
+ 
+-	rc = libevdev_set_clock_id(dev, CLOCK_MONOTONIC_RAW);
++	rc = libevdev_set_clock_id(dev, CLOCK_MONOTONIC_FAST);
+ 	ck_assert_int_eq(rc, -EINVAL);
+ 
+ 	uinput_device_free(uidev);
diff --git a/devel/libevdev/files/patch-test_test-main.c b/devel/libevdev/files/patch-test_test-main.c
new file mode 100644
index 000000000000..e080d7316040
--- /dev/null
+++ b/devel/libevdev/files/patch-test_test-main.c
@@ -0,0 +1,26 @@
+--- test/test-main.c.orig	2017-05-04 00:37:30 UTC
++++ test/test-main.c
+@@ -41,6 +41,7 @@ extern Suite *uinput_suite(void);
+ static int
+ is_debugger_attached(void)
+ {
++#if defined (linux)
+ 	int status;
+ 	int rc;
+ 	int pid = fork();
+@@ -64,6 +65,15 @@ is_debugger_attached(void)
+ 	}
+ 
+ 	return rc;
++#else
++	/*
++	 * Skip useless gdb test as setting CK_FORK environment variable in
++	 * absence of attached debugger gives no harm to user.
++	 * Moreover this test is broken on most nonlinux systems, look at
++	 * discussion here: http://stackoverflow.com/questions/3596781/
++	 */
++	return 1;
++#endif
+ }
+ 
+ int main(int argc, char **argv)
diff --git a/devel/libevdev/pkg-plist b/devel/libevdev/pkg-plist
index 0f5d673093fa..566fee11b2f9 100644
--- a/devel/libevdev/pkg-plist
+++ b/devel/libevdev/pkg-plist
@@ -1,8 +1,11 @@
+bin/libevdev-tweak-device
+bin/mouse-dpi-tool
+bin/touchpad-edge-detector
 include/libevdev-1.0/libevdev/libevdev-uinput.h
 include/libevdev-1.0/libevdev/libevdev.h
 lib/libevdev.a
 lib/libevdev.so
 lib/libevdev.so.2
-lib/libevdev.so.2.1.10
+lib/libevdev.so.2.1.21
 libdata/pkgconfig/libevdev.pc
 man/man3/libevdev.3.gz
diff --git a/devel/libmtdev/Makefile b/devel/libmtdev/Makefile
index 6028ee34d462..a32cf6a80b75 100644
--- a/devel/libmtdev/Makefile
+++ b/devel/libmtdev/Makefile
@@ -12,8 +12,7 @@ COMMENT=	Multitouch Protocol Translation Library
 LICENSE=	MIT
 LICENSE_FILE=	${WRKSRC}/COPYING
 
-BUILD_DEPENDS=	v4l_compat>=1.0.20110603:multimedia/v4l_compat
-RUN_DEPENDS=	v4l_compat>=1.0.20110603:multimedia/v4l_compat
+BUILD_DEPENDS=	${LOCALBASE}/include/linux/input.h:devel/evdev-proto
 
 USES=		libtool pathfix tar:bz2
 GNU_CONFIGURE=	yes
diff --git a/devel/libmtdev/files/patch-test-mtdev-test.c b/devel/libmtdev/files/patch-test-mtdev-test.c
new file mode 100644
index 000000000000..b1c8575bd82d
--- /dev/null
+++ b/devel/libmtdev/files/patch-test-mtdev-test.c
@@ -0,0 +1,16 @@
+--- test/mtdev-test.c.orig	2014-02-28 22:48:23.000000000 +0400
++++ test/mtdev-test.c	2015-04-03 02:57:56.890923000 +0300
+@@ -28,11 +28,12 @@
+ 
+ #include <mtdev.h>
+ #include <stdio.h>
++#include <stdint.h>
+ #include <unistd.h>
+ #include <fcntl.h>
+ 
+ /* year-proof millisecond event time */
+-typedef __u64 mstime_t;
++typedef uint64_t mstime_t;
+ 
+ static int use_event(const struct input_event *ev)
+ {
diff --git a/devel/libudev-devd/Makefile b/devel/libudev-devd/Makefile
index c65aa3a543ec..691d13085f18 100644
--- a/devel/libudev-devd/Makefile
+++ b/devel/libudev-devd/Makefile
@@ -1,7 +1,7 @@
 # $FreeBSD$
 
 PORTNAME=	libudev-devd
-PORTVERSION=	0.3
+PORTVERSION=	0.4
 CATEGORIES=	devel
 
 MAINTAINER=	x11@FreeBSD.org
@@ -9,14 +9,13 @@ COMMENT=	libudev-compatible interface for devd
 
 LICENSE=	BSD2CLAUSE
 
-BUILD_DEPENDS=	v4l_compat>=0:multimedia/v4l_compat
-LIB_DEPENDS=	libevdev.so:devel/libevdev
+BUILD_DEPENDS=	${LOCALBASE}/include/linux/input.h:devel/evdev-proto
 
 USE_GITHUB=	yes
 GH_ACCOUNT=	FreeBSDDesktop
-GH_TAGNAME=	b7aa09f
+GH_TAGNAME=	fbe5a0b
 
-USES=		dos2unix autoreconf gmake libtool localbase pathfix pkgconfig
+USES=		autoreconf gmake libtool localbase pathfix pkgconfig
 USE_LDCONFIG=	yes
 GNU_CONFIGURE=	yes
 INSTALL_TARGET=	install-strip
diff --git a/devel/libudev-devd/distinfo b/devel/libudev-devd/distinfo
index 3fc5a3672a1a..e87dd12a262a 100644
--- a/devel/libudev-devd/distinfo
+++ b/devel/libudev-devd/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1500809406
-SHA256 (FreeBSDDesktop-libudev-devd-0.3-b7aa09f_GH0.tar.gz) = 880a497ef5123fdebf447f4b9b1a7adae3fa2a71885a42dd7c35dbb877985260
-SIZE (FreeBSDDesktop-libudev-devd-0.3-b7aa09f_GH0.tar.gz) = 16442
+TIMESTAMP = 1527795819
+SHA256 (FreeBSDDesktop-libudev-devd-0.4-fbe5a0b_GH0.tar.gz) = 4f6423caf9b673e8bae14c2ec94f0ac1c3fc90b2a1b96315ce11caba1ac342e2
+SIZE (FreeBSDDesktop-libudev-devd-0.4-fbe5a0b_GH0.tar.gz) = 17111
diff --git a/devel/libudev-devd/files/patch-utils.h b/devel/libudev-devd/files/patch-utils.h
deleted file mode 100644
index 26f4db4a5623..000000000000
--- a/devel/libudev-devd/files/patch-utils.h
+++ /dev/null
@@ -1,13 +0,0 @@
---- utils.h.orig	2017-01-07 22:21:49 UTC
-+++ utils.h
-@@ -5,8 +5,8 @@
- #include <unistd.h>
- 
- 
--#define	ENABLE_TRACE
--#define	LOG_LEVEL       1
-+/* #define	ENABLE_TRACE */
-+#define	LOG_LEVEL       0
- 
- /*
- #ifndef	LOG_LEVEL
diff --git a/devel/py-evdev/Makefile b/devel/py-evdev/Makefile
index d7e4a49c4d4a..8ed7b8db5568 100644
--- a/devel/py-evdev/Makefile
+++ b/devel/py-evdev/Makefile
@@ -1,7 +1,7 @@
 # $FreeBSD$
 
 PORTNAME=	evdev
-PORTVERSION=	0.5.0
+PORTVERSION=	0.8.1
 CATEGORIES=	devel python
 MASTER_SITES=	CHEESESHOP
 PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
@@ -12,15 +12,22 @@ COMMENT=	Bindings to the Linux input handling subsystem
 LICENSE=	BSD3CLAUSE
 LICENSE_FILE=	${WRKSRC}/LICENSE
 
-BUILD_DEPENDS=	v4l_compat>=1.0.20110603:multimedia/v4l_compat
+BUILD_DEPENDS=	${LOCALBASE}/include/linux/input.h:devel/evdev-proto
 
 USES=		python
 USE_PYTHON=	autoplist distutils
 CPPFLAGS+=	-I${LOCALBASE}/include # v4l_compat
 
-post-patch:
-	@${REINPLACE_CMD} -e '/header/s,/usr,${LOCALBASE},' \
-		${WRKSRC}/${PYSETUP}
+EVDEV_INCLUDES=	${LOCALBASE}/include
+
+PYDISTUTILS_BUILD_TARGET=	build_ecodes
+PYDISTUTILS_BUILDARGS+=		--evdev-headers ${EVDEV_INCLUDES}/linux/input.h:${EVDEV_INCLUDES}/linux/input-event-codes.h
+PYDISTUTILS_BUILDARGS+=		build_ext
+PYDISTUTILS_BUILDARGS+=		--include-dirs ${EVDEV_INCLUDES}
+
+# Supply install target with evdev headers path
+PYDISTUTILS_INSTALL_TARGET=	${PYDISTUTILS_BUILD_TARGET} \
+				${PYDISTUTILS_BUILDARGS} install
 
 post-install:
 	${FIND} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} \
diff --git a/devel/py-evdev/distinfo b/devel/py-evdev/distinfo
index 399a3b2dac4a..f2929eefc2ad 100644
--- a/devel/py-evdev/distinfo
+++ b/devel/py-evdev/distinfo
@@ -1,2 +1,3 @@
-SHA256 (evdev-0.5.0.tar.gz) = 509f0f6ce5a12315fcad0b7f9b41cbdfc5c5f49a7cecdd6a88ce5c1d04f6827c
-SIZE (evdev-0.5.0.tar.gz) = 23931
+TIMESTAMP = 1522711809
+SHA256 (evdev-0.8.1.tar.gz) = 3f10c22f15ffedb34519e4af2201f1a088a958efedfd50da0da1aa3887283dff
+SIZE (evdev-0.8.1.tar.gz) = 22680
diff --git a/devel/py-pyudev/Makefile b/devel/py-pyudev/Makefile
new file mode 100644
index 000000000000..a06d4c54a20b
--- /dev/null
+++ b/devel/py-pyudev/Makefile
@@ -0,0 +1,22 @@
+# $FreeBSD$
+
+PORTNAME=	pyudev
+PORTVERSION=	0.21.0
+CATEGORIES=	devel python
+MASTER_SITES=	CHEESESHOP
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER=	x11@FreeBSD.org
+COMMENT=	Pure Python libudev binding
+
+LICENSE=	LGPL21
+LICENSE_FILE=	${WRKSRC}/COPYING
+
+LIB_DEPENDS=	libudev.so:devel/libudev-devd
+RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}six>0:devel/py-six@${FLAVOR}
+
+USES=		python
+USE_PYTHON=	autoplist distutils
+NO_ARCH=	yes
+
+.include <bsd.port.mk>
diff --git a/devel/py-pyudev/distinfo b/devel/py-pyudev/distinfo
new file mode 100644
index 000000000000..75f2087d7eb0
--- /dev/null
+++ b/devel/py-pyudev/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1527799557
+SHA256 (pyudev-0.21.0.tar.gz) = 094b7a100150114748aaa3b70663485dd360457a709bfaaafe5a977371033f2b
+SIZE (pyudev-0.21.0.tar.gz) = 89469
diff --git a/devel/py-pyudev/pkg-descr b/devel/py-pyudev/pkg-descr
new file mode 100644
index 000000000000..56bef47b1649
--- /dev/null
+++ b/devel/py-pyudev/pkg-descr
@@ -0,0 +1,8 @@
+pyudev is a LGPL licensed, pure Python binding for libudev, the device
+and hardware management and information library for Linux. It supports
+almost all libudev functionality. You can enumerate devices, query
+device properties and attributes or monitor devices, including
+asynchronous monitoring with threads, or within the event loops of Qt,
+Glib or wxPython.
+
+WWW: https://pyudev.readthedocs.org
diff --git a/multimedia/lives/Makefile b/multimedia/lives/Makefile
index 59b62ecca957..7d6033e6f9e4 100644
--- a/multimedia/lives/Makefile
+++ b/multimedia/lives/Makefile
@@ -14,7 +14,7 @@ COMMENT=	Video editing system
 LICENSE=	GPLv3+
 LICENSE_FILE=	${WRKSRC}/COPYING
 
-BUILD_DEPENDS=	${LOCALBASE}/include/linux/input.h:multimedia/v4l_compat \
+BUILD_DEPENDS=	${LOCALBASE}/include/linux/videodev.h:multimedia/v4l_compat \
 		${LOCALBASE}/bin/analyseplugin:audio/ladspa
 LIB_DEPENDS=	libasound.so:audio/alsa-lib \
 		libjack.so:audio/jack \
diff --git a/multimedia/v4l_compat/Makefile b/multimedia/v4l_compat/Makefile
index 1d98d2c024ee..a4976a55a9cd 100644
--- a/multimedia/v4l_compat/Makefile
+++ b/multimedia/v4l_compat/Makefile
@@ -1,7 +1,7 @@
 # $FreeBSD$
 
 PORTNAME=	v4l_compat
-PORTREVISION=	0
+PORTREVISION=	1
 
 COMMENT=	Video4Linux IOCTL header files
 
@@ -14,8 +14,7 @@ DESCR=		${.CURDIR}/pkg-descr
 PLIST=		${.CURDIR}/pkg-plist
 LIBV4L_SLAVE=	compat
 
-BASE_HEADERS=	input.h uinput.h ivtv.h v4l2-controls.h \
-		v4l2-common.h videodev2.h
+BASE_HEADERS=	ivtv.h v4l2-controls.h v4l2-common.h videodev2.h
 DVB_HEADERS=	audio.h dmx.h frontend.h video.h
 EXTRA_HEADERS=	ca.h osd.h version.h
 
diff --git a/multimedia/v4l_compat/pkg-plist b/multimedia/v4l_compat/pkg-plist
index 3296ca9c5e1f..636875db6ddf 100644
--- a/multimedia/v4l_compat/pkg-plist
+++ b/multimedia/v4l_compat/pkg-plist
@@ -5,9 +5,7 @@ include/linux/dvb/frontend.h
 include/linux/dvb/osd.h
 include/linux/dvb/version.h
 include/linux/dvb/video.h
-include/linux/input.h
 include/linux/ivtv.h
-include/linux/uinput.h
 include/linux/v4l2-common.h
 include/linux/v4l2-controls.h
 include/linux/videodev.h
diff --git a/x11-drivers/xf86-input-evdev/Makefile b/x11-drivers/xf86-input-evdev/Makefile
index b4c90e125877..718c15858cf0 100644
--- a/x11-drivers/xf86-input-evdev/Makefile
+++ b/x11-drivers/xf86-input-evdev/Makefile
@@ -10,10 +10,9 @@ COMMENT=	X.Org event device input driver
 LICENSE=	MIT # various styles
 LICENSE_FILE=	${WRKSRC}/COPYING
 
-BUILD_DEPENDS=	v4l_compat>=1.0.20110603:multimedia/v4l_compat
+BUILD_DEPENDS=	${LOCALBASE}/include/linux/input.h:devel/evdev-proto
 LIB_DEPENDS=	libevdev.so:devel/libevdev \
 		libmtdev.so:devel/libmtdev
-RUN_DEPENDS=	webcamd>=3.1.0.1:multimedia/webcamd
 
 XORG_CAT=	driver
 USES=		pathfix
diff --git a/x11-drivers/xf86-input-libinput/Makefile b/x11-drivers/xf86-input-libinput/Makefile
index 3573e6c7fe06..38a8646b3432 100644
--- a/x11-drivers/xf86-input-libinput/Makefile
+++ b/x11-drivers/xf86-input-libinput/Makefile
@@ -1,7 +1,7 @@
 # $FreeBSD$
 
 PORTNAME=	xf86-input-libinput
-PORTVERSION=	0.25.0
+PORTVERSION=	0.27.1
 CATEGORIES=	x11-drivers
 
 MAINTAINER=	x11@FreeBSD.org
@@ -10,6 +10,7 @@ COMMENT=	X.Org libinput input driver
 LICENSE=	MIT # various styles
 LICENSE_FILE=	${WRKSRC}/COPYING
 
+BUILD_DEPENDS=	${LOCALBASE}/include/linux/input.h:devel/evdev-proto
 LIB_DEPENDS=	libinput.so:x11/libinput
 
 XORG_CAT=	driver
diff --git a/x11-drivers/xf86-input-libinput/distinfo b/x11-drivers/xf86-input-libinput/distinfo
index 855193014eec..81db44acb7c5 100644
--- a/x11-drivers/xf86-input-libinput/distinfo
+++ b/x11-drivers/xf86-input-libinput/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1489176847
-SHA256 (xorg/driver/xf86-input-libinput-0.25.0.tar.bz2) = bb7fd1658fa7e6c757fd55480aa8a07f8ccfb0a80ae42c29dbc67d57958c556f
-SIZE (xorg/driver/xf86-input-libinput-0.25.0.tar.bz2) = 368913
+TIMESTAMP = 1528570727
+SHA256 (xorg/driver/xf86-input-libinput-0.27.1.tar.bz2) = d4ad8dc5ad6f962a3f15f61ba9e9f8e37fa0b57eee9f484e2bd721d60ca72ee6
+SIZE (xorg/driver/xf86-input-libinput-0.27.1.tar.bz2) = 373248
diff --git a/x11-drivers/xf86-input-synaptics/Makefile b/x11-drivers/xf86-input-synaptics/Makefile
index 9c74c40c7769..3aa149c7eb6f 100644
--- a/x11-drivers/xf86-input-synaptics/Makefile
+++ b/x11-drivers/xf86-input-synaptics/Makefile
@@ -18,7 +18,7 @@ OPTIONS_DEFINE=	EVDEV
 EVDEV_DESC=	Use evdev for input events (requires kernel support)
 
 EVDEV_CONFIGURE_ENV=	BUILD_EVENTCOMM=yes
-EVDEV_BUILD_DEPENDS=	${LOCALBASE}/include/linux/input.h:multimedia/v4l_compat
+EVDEV_BUILD_DEPENDS=	${LOCALBASE}/include/linux/input.h:devel/evdev-proto
 EVDEV_LIB_DEPENDS=	libevdev.so:devel/libevdev
 
 .include <bsd.port.mk>
diff --git a/x11-drivers/xf86-input-wacom/Makefile b/x11-drivers/xf86-input-wacom/Makefile
index bf8a0378fc6b..ce3e93d31e03 100644
--- a/x11-drivers/xf86-input-wacom/Makefile
+++ b/x11-drivers/xf86-input-wacom/Makefile
@@ -10,7 +10,7 @@ COMMENT=	X.Org Wacom tablet driver
 
 LICENSE=	GPLv2+
 
-BUILD_DEPENDS=	v4l_compat>=1.0.20110603:multimedia/v4l_compat
+BUILD_DEPENDS=	${LOCALBASE}/include/linux/input.h:devel/evdev-proto
 RUN_DEPENDS=	webcamd>=3.1.0.1:multimedia/webcamd
 
 USES=		gmake pathfix
diff --git a/x11-drivers/xf86-input-wacom/files/patch-src-wcmValidateDevice.c b/x11-drivers/xf86-input-wacom/files/patch-src-wcmValidateDevice.c
index 71a40cffabae..64bc9fb44e0a 100644
--- a/x11-drivers/xf86-input-wacom/files/patch-src-wcmValidateDevice.c
+++ b/x11-drivers/xf86-input-wacom/files/patch-src-wcmValidateDevice.c
@@ -29,6 +29,15 @@
  	if (match)
  		xf86Msg(X_WARNING, "%s: device file already in use by %s. "
  			"Ignoring.\n", pInfo->name, pDevices->name);
+@@ -123,7 +124,7 @@ ret:
+ static struct
+ {
+ 	const char* type;
+-	__u16 tool[3]; /* tool array is terminated by 0 */
++	uint16_t tool[3]; /* tool array is terminated by 0 */
+ } wcmType [] =
+ {
+ 	{ "stylus", { BTN_TOOL_PEN,       0                  } },
 @@ -205,6 +206,10 @@ int wcmDeviceTypeKeys(InputInfoPtr pInfo
  		case 0x314: /* Intuos Pro S */
  		case 0x315: /* Intuos Pro M */
diff --git a/x11-servers/xwayland/Makefile b/x11-servers/xwayland/Makefile
index 218dbcb9a34e..81f88239fc23 100644
--- a/x11-servers/xwayland/Makefile
+++ b/x11-servers/xwayland/Makefile
@@ -7,7 +7,8 @@ COMMENT=	X Clients under Wayland
 
 LICENSE=	MIT
 
-BUILD_DEPENDS=	${LOCALBASE}/libdata/pkgconfig/wayland-protocols.pc:graphics/wayland-protocols
+BUILD_DEPENDS=	${LOCALBASE}/include/linux/input.h:devel/evdev-proto \
+		${LOCALBASE}/libdata/pkgconfig/wayland-protocols.pc:graphics/wayland-protocols
 LIB_DEPENDS=	libwayland-client.so:graphics/wayland \
 		libinput.so:x11/libinput
 
diff --git a/x11/kf5-kwayland/Makefile b/x11/kf5-kwayland/Makefile
index 9bc4cfc99b56..410b3d5a1479 100644
--- a/x11/kf5-kwayland/Makefile
+++ b/x11/kf5-kwayland/Makefile
@@ -7,7 +7,7 @@ CATEGORIES=	x11 kde kde-frameworks
 MAINTAINER=	kde@FreeBSD.org
 COMMENT=	KF5 Client and Server library wrapper for the Wayland libraries
 
-BUILD_DEPENDS=	${LOCALBASE}/include/linux/input.h:multimedia/v4l_compat
+BUILD_DEPENDS=	${LOCALBASE}/include/linux/input.h:devel/evdev-proto
 LIB_DEPENDS=	libwayland-client.so:graphics/wayland
 
 LICENSE=	LGPL21 LGPL3
diff --git a/x11/libinput/Makefile b/x11/libinput/Makefile
index 6bb96d13647a..303448b572c5 100644
--- a/x11/libinput/Makefile
+++ b/x11/libinput/Makefile
@@ -1,30 +1,61 @@
 # $FreeBSD$
 
 PORTNAME=	libinput
-PORTVERSION=	1.6.0
+PORTVERSION=	1.11.0
 CATEGORIES=	x11
 MASTER_SITES=	http://freedesktop.org/software/${PORTNAME}/
 
 MAINTAINER=	x11@FreeBSD.org
 COMMENT=	Generic input library
 
-BUILD_DEPENDS=	v4l_compat>=0:multimedia/v4l_compat
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/COPYING
+
+BUILD_DEPENDS=	${LOCALBASE}/include/linux/input.h:devel/evdev-proto
+RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}evdev>0:devel/py-evdev@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pyudev>0:devel/py-pyudev@${PY_FLAVOR}
 LIB_DEPENDS=	libevdev.so:devel/libevdev \
 		libepoll-shim.so:devel/libepoll-shim \
-		libwacom.so:x11/libwacom \
 		libudev.so:devel/libudev-devd \
 		libmtdev.so:devel/libmtdev
 
-USES=		autoreconf gmake libtool pathfix pkgconfig tar:xz
-USE_LDCONFIG=	yes
-GNU_CONFIGURE=	yes
 
+OPTIONS_DEFINE=	DEBUG_GUI LIBWACOM
+OPTIONS_DEFAULT=LIBWACOM
+OPTIONS_SUB=	yes
+ 
+DEBUG_GUI_DESC=	Build the GUI event viewer
+LIBWACOM_DESC=	Libwacom support
+
+DEBUG_GUI_USE=		GNOME=gtk30,glib20,cairo
+DEBUG_GUI_MESON_TRUE=	debug-gui
+LIBWACOM_LIB_DEPENDS=	libwacom.so:x11/libwacom
+LIBWACOM_MESON_TRUE=	libwacom
+
+USES=			localbase meson pkgconfig python:3.4+,run shebangfix tar:xz
+USE_LDCONFIG=		yes
+EXTRACT_AFTER_ARGS=	--exclude include/linux # supplied linux/input.h
+
+MESON_ARGS+=	-Ddocumentation=false -Dtests=false
 CPPFLAGS+=	-I${LOCALBASE}/include/libepoll-shim
+LDFLAGS+=	-lepoll-shim
 INSTALL_TARGET=	install-strip
 
+python_OLD_CMD=	"/usr/bin/env python3"
+SHEBANG_FILES=	tools/libinput-measure-fuzz \
+		tools/libinput-measure-touch-size \
+		tools/libinput-measure-touchpad-pressure \
+		tools/libinput-measure-touchpad-tap \
+		tools/libinput-measure-trackpoint-range \
+		tools/libinput-replay
+
+post-extract:
+	# meson script checks existence of bundled evdev headers. Fake them.
+	${LN} -sf ${LOCALBASE}/include/linux ${WRKSRC}/include/linux
+
 post-patch:
 	${REINPLACE_CMD} -e 's|program_invocation_short_name|getprogname()|' \
-	    ${WRKSRC}/tools/libinput-list-devices.c \
-	    ${WRKSRC}/tools/ptraccel-debug.c ${WRKSRC}/tools/shared.c
+		${WRKSRC}/tools/ptraccel-debug.c \
+		${WRKSRC}/tools/libinput-record.c
 
 .include <bsd.port.mk>
diff --git a/x11/libinput/distinfo b/x11/libinput/distinfo
index 6b4217e50efe..e2887cdf38b9 100644
--- a/x11/libinput/distinfo
+++ b/x11/libinput/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1486789508
-SHA256 (libinput-1.6.0.tar.xz) = b7534f518d735c643aedca2fb4694683dfddc8d0600cfb628c87a18e65255832
-SIZE (libinput-1.6.0.tar.xz) = 927656
+TIMESTAMP = 1528298578
+SHA256 (libinput-1.11.0.tar.xz) = 64a36c4f826f4b5d473bf2cb803122f96390a18243ec810f2ce8ac5076a0bc12
+SIZE (libinput-1.11.0.tar.xz) = 485976
diff --git a/x11/libinput/files/patch-Makefile.am b/x11/libinput/files/patch-Makefile.am
deleted file mode 100644
index b8a4db09214e..000000000000
--- a/x11/libinput/files/patch-Makefile.am
+++ /dev/null
@@ -1,8 +0,0 @@
---- Makefile.am.orig	2017-02-11 05:10:33 UTC
-+++ Makefile.am
-@@ -1,4 +1,4 @@
--SUBDIRS = src doc test tools udev
-+SUBDIRS = src doc tools udev
- 
- ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
- 
diff --git a/x11/libinput/files/patch-include_linux_input.h b/x11/libinput/files/patch-include_linux_input.h
deleted file mode 100644
index c53abdf8dc32..000000000000
--- a/x11/libinput/files/patch-include_linux_input.h
+++ /dev/null
@@ -1,38 +0,0 @@
---- include/linux/input.h.orig	2016-12-05 05:15:21 UTC
-+++ include/linux/input.h
-@@ -11,7 +11,17 @@
- #include <sys/time.h>
- #include <sys/ioctl.h>
- #include <sys/types.h>
-+#ifdef __FreeBSD__
-+#define __u8 uint8_t
-+#define __u16 uint16_t
-+#define __u32 uint32_t
-+#define __s16 int16_t
-+#define __s32 int32_t
-+#define _IOC_READ IOC_OUT
-+#define _IOC_WRITE IOC_IN
-+#else
- #include <linux/types.h>
-+#endif
- 
- /*
-  * The event structure itself
-@@ -132,7 +142,7 @@ struct input_keymap_entry {
-  *
-  * If the request code is not an ABS_MT value, -EINVAL is returned.
-  */
--#define EVIOCGMTSLOTS(len)	_IOC(_IOC_READ, 'E', 0x0a, len)
-+#define EVIOCGMTSLOTS(len)	_IOC(IOC_INOUT, 'E', 0x0a, len)
- 
- #define EVIOCGKEY(len)		_IOC(_IOC_READ, 'E', 0x18, len)		/* get global key state */
- #define EVIOCGLED(len)		_IOC(_IOC_READ, 'E', 0x19, len)		/* get all LEDs */
-@@ -147,7 +157,7 @@ struct input_keymap_entry {
- #define EVIOCRMFF		_IOW('E', 0x81, int)			/* Erase a force effect */
- #define EVIOCGEFFECTS		_IOR('E', 0x84, int)			/* Report number of effects playable at the same time */
- 
--#define EVIOCGRAB		_IOW('E', 0x90, int)			/* Grab/Release device */
-+#define EVIOCGRAB		_IO('E', 0x90)				/* Grab/Release device */
- #define EVIOCREVOKE		_IOW('E', 0x91, int)			/* Revoke device access */
- 
- #define EVIOCSCLOCKID		_IOW('E', 0xa0, int)			/* Set clockid to be used for timestamps */
diff --git a/x11/libinput/files/patch-meson.build b/x11/libinput/files/patch-meson.build
new file mode 100644
index 000000000000..619d0ea17340
--- /dev/null
+++ b/x11/libinput/files/patch-meson.build
@@ -0,0 +1,59 @@
+--- meson.build.orig	2018-06-09 12:13:40 UTC
++++ meson.build
+@@ -59,6 +59,8 @@ pkgconfig = import('pkgconfig')
+ dep_udev = dependency('libudev')
+ dep_mtdev = dependency('mtdev', version : '>= 1.1.0')
+ dep_libevdev = dependency('libevdev', version : '>= 0.4')
++dep_libepoll = declare_dependency(link_args : ['-lepoll-shim'], include_directories : [
++     include_directories(join_paths(get_option('prefix'), 'include', 'libepoll-shim')) ])
+ dep_lm = cc.find_library('m', required : false)
+ dep_rt = cc.find_library('rt', required : false)
+ 
+@@ -96,6 +98,8 @@ endif
+ 
+ ############ udev bits ############
+ 
++if false
++
+ udev_dir = get_option('udev-dir')
+ if udev_dir == ''
+ 	udev_dir = join_paths(get_option('prefix'), 'lib', 'udev')
+@@ -152,6 +156,8 @@ litest_model_quirks_file = configure_file(input : 'ude
+ 	       install : false,
+ 	       configuration : litest_udev_rules_config)
+ 
++endif
++
+ ############ libinput-util.a ############
+ src_libinput_util = [
+ 		'src/libinput-util.c',
+@@ -217,6 +223,7 @@ deps_libinput = [
+ 	dep_mtdev,
+ 	dep_udev,
+ 	dep_libevdev,
++	dep_libepoll,
+ 	dep_lm,
+ 	dep_rt,
+ 	dep_libwacom,
+@@ -504,21 +511,6 @@ install_data('tools/libinput-measure-trackpoint-range'
+             install_dir : libinput_tool_path)
+ configure_file(input : 'tools/libinput-measure-trackpoint-range.man',
+ 	       output : 'libinput-measure-trackpoint-range.1',
+-	       configuration : man_config,
+-	       install : true,
+-	       install_dir : join_paths(get_option('mandir'), 'man1')
+-	       )
+-
+-libinput_record_sources = [ 'tools/libinput-record.c', git_version_h ]
+-executable('libinput-record',
+-	   libinput_record_sources,
+-	   dependencies : deps_tools + [dep_udev],
+-	   include_directories : [includes_src, includes_include],
+-	   install_dir : libinput_tool_path,
+-	   install : true,
+-	   )
+-configure_file(input : 'tools/libinput-record.man',
+-	       output : 'libinput-record.1',
+ 	       configuration : man_config,
+ 	       install : true,
+ 	       install_dir : join_paths(get_option('mandir'), 'man1')
diff --git a/x11/libinput/files/patch-src_Makefile.am b/x11/libinput/files/patch-src_Makefile.am
deleted file mode 100644
index 0ba6f7bbfaa2..000000000000
--- a/x11/libinput/files/patch-src_Makefile.am
+++ /dev/null
@@ -1,21 +0,0 @@
---- src/Makefile.am.orig	2017-02-11 05:10:33 UTC
-+++ src/Makefile.am
-@@ -38,6 +38,7 @@ libinput_la_LIBADD = $(MTDEV_LIBS) \
- 		     $(LIBUDEV_LIBS) \
- 		     $(LIBEVDEV_LIBS) \
- 		     $(LIBWACOM_LIBS) \
-+		     -lepoll-shim \
- 		     libinput-util.la
- 
- libinput_la_CFLAGS = -I$(top_srcdir)/include \
-@@ -61,8 +62,8 @@ libfilter_la_SOURCES = \
- 	filter.c \
- 	filter.h \
- 	filter-private.h
--libfilter_la_LIBADD =
--libfilter_la_CFLAGS =
-+libfilter_la_LIBADD = $(LIBUDEV_LIBS)
-+libfilter_la_CFLAGS = -I$(top_srcdir)/include $(LIBUDEV_CFLAGS)
- 
- libinput_la_LDFLAGS = -version-info $(LIBINPUT_LT_VERSION) -shared \
- 		      -Wl,--version-script=$(srcdir)/libinput.sym
diff --git a/x11/libinput/files/patch-src_evdev.c b/x11/libinput/files/patch-src_evdev.c
index 65fd54de6be3..79386c458c9e 100644
--- a/x11/libinput/files/patch-src_evdev.c
+++ b/x11/libinput/files/patch-src_evdev.c
@@ -1,11 +1,87 @@
---- src/evdev.c.orig	2017-01-19 21:36:55 UTC
+When a process without full /dev/input access enumerates devices via libudev-devd,
+the udev_device structs do not get udev properties that mark them as inputs, keyboards, etc,
+and get rejected as not being input devices.
+
+libinput reopens devices just to check path equality.
+The udev_devices from reopening do have the right properties,
+so we just use them instead of the original (enumerated) ones.
+
+--- src/evdev.c.orig	2018-06-09 12:13:43 UTC
 +++ src/evdev.c
-@@ -25,6 +25,8 @@
+@@ -895,7 +895,7 @@ evdev_sync_device(struct evdev_device *device)
+ 		evdev_device_dispatch_one(device, &ev);
+ 	} while (rc == LIBEVDEV_READ_STATUS_SYNC);
  
- #include "config.h"
+-	return rc == -EAGAIN ? 0 : rc;
++	return (rc == -EAGAIN || rc == -EINVAL)? 0 : rc;
+ }
  
-+#include <sys/stat.h>
-+
- #include <errno.h>
- #include <stdbool.h>
- #include <stdlib.h>
+ static void
+@@ -933,6 +933,17 @@ evdev_device_dispatch(void *data)
+ 
+ 	if (rc != -EAGAIN && rc != -EINTR) {
+ 		libinput_remove_source(libinput, device->source);
++		/*
++		 * Dirty hack to allow cuse-based evdev backends to release
++		 * character device file when device has been detached
++		 * but still have it descriptor opened.
++		 * Issuing evdev_device_suspend() here leads to SIGSEGV
++		 */
++		int dummy_fd = open("/dev/null", O_RDONLY | O_CLOEXEC);
++		if (dummy_fd >= 0) {
++			dup2(dummy_fd, device->fd);
++			close(dummy_fd);
++		}
+ 		device->source = NULL;
+ 	}
+ }
+@@ -1785,9 +1796,9 @@ evdev_notify_added_device(struct evdev_device *device)
+ }
+ 
+ static bool
+-evdev_device_have_same_syspath(struct udev_device *udev_device, int fd)
++evdev_device_have_same_syspath(struct udev_device **udev_device, int fd, bool reopen)
+ {
+-	struct udev *udev = udev_device_get_udev(udev_device);
++	struct udev *udev = udev_device_get_udev(*udev_device);
+ 	struct udev_device *udev_device_new = NULL;
+ 	struct stat st;
+ 	bool rc = false;
+@@ -1800,10 +1811,16 @@ evdev_device_have_same_syspath(struct udev_device *ude
+ 		goto out;
+ 
+ 	rc = streq(udev_device_get_syspath(udev_device_new),
+-		   udev_device_get_syspath(udev_device));
++		   udev_device_get_syspath(*udev_device));
+ out:
+-	if (udev_device_new)
+-		udev_device_unref(udev_device_new);
++	if (udev_device_new) {
++		if (reopen) {
++			udev_device_unref(*udev_device);
++			*udev_device = udev_device_new;
++		} else {
++			udev_device_unref(udev_device_new);
++		}
++	}
+ 	return rc;
+ }
+ 
+@@ -2003,7 +2020,7 @@ evdev_device_create(struct libinput_seat *seat,
+ 		return NULL;
+ 	}
+ 
+-	if (!evdev_device_have_same_syspath(udev_device, fd))
++	if (!evdev_device_have_same_syspath(&udev_device, fd, true))
+ 		goto err;
+ 
+ 	device = zalloc(sizeof *device);
+@@ -2559,7 +2576,7 @@ evdev_device_resume(struct evdev_device *device)
+ 	if (fd < 0)
+ 		return -errno;
+ 
+-	if (!evdev_device_have_same_syspath(device->udev_device, fd)) {
++	if (!evdev_device_have_same_syspath(&device->udev_device, fd, false)) {
+ 		close_restricted(libinput, fd);
+ 		return -ENODEV;
+ 	}
diff --git a/x11/libinput/files/patch-src_libinput-private.h b/x11/libinput/files/patch-src_libinput-private.h
deleted file mode 100644
index b79754ff6f7a..000000000000
--- a/x11/libinput/files/patch-src_libinput-private.h
+++ /dev/null
@@ -1,10 +0,0 @@
---- src/libinput-private.h.orig	2017-01-18 04:32:06 UTC
-+++ src/libinput-private.h
-@@ -29,6 +29,7 @@
- 
- #include <errno.h>
- #include <math.h>
-+#include <stdarg.h>
- 
- #include "linux/input.h"
- 
diff --git a/x11/libinput/files/patch-src_libinput-util.c b/x11/libinput/files/patch-src_libinput-util.c
deleted file mode 100644
index 5344b4b97325..000000000000
--- a/x11/libinput/files/patch-src_libinput-util.c
+++ /dev/null
@@ -1,12 +0,0 @@
---- src/libinput-util.c.orig	2017-01-17 04:53:51 UTC
-+++ src/libinput-util.c
-@@ -36,6 +36,9 @@
- #include <stdbool.h>
- #include <stdio.h>
- #include <stdlib.h>
-+#ifdef __FreeBSD__
-+#include <xlocale.h>
-+#endif
- 
- #include "libinput-util.h"
- #include "libinput-private.h"
diff --git a/x11/libinput/files/patch-src_libinput-util.h b/x11/libinput/files/patch-src_libinput-util.h
new file mode 100644
index 000000000000..cba5e6bb9164
--- /dev/null
+++ b/x11/libinput/files/patch-src_libinput-util.h
@@ -0,0 +1,12 @@
+--- src/libinput-util.h.orig	2017-11-28 05:13:06 UTC
++++ src/libinput-util.h
+@@ -39,6 +39,9 @@
+ #include <string.h>
+ #include <time.h>
+ #include <unistd.h>
++#ifdef __FreeBSD__
++#include <xlocale.h>
++#endif
+ 
+ #include "libinput.h"
+ 
diff --git a/x11/libinput/files/patch-src_libinput.h b/x11/libinput/files/patch-src_libinput.h
deleted file mode 100644
index 93d44ece6082..000000000000
--- a/x11/libinput/files/patch-src_libinput.h
+++ /dev/null
@@ -1,10 +0,0 @@
---- src/libinput.h.orig	2017-01-19 05:27:32 UTC
-+++ src/libinput.h
-@@ -29,6 +29,7 @@
- extern "C" {
- #endif
- 
-+#include <stdarg.h>
- #include <stdlib.h>
- #include <stdint.h>
- #include <libudev.h>
diff --git a/x11/libinput/files/patch-src_path-seat.c b/x11/libinput/files/patch-src_path-seat.c
deleted file mode 100644
index e4c6edc01c29..000000000000
--- a/x11/libinput/files/patch-src_path-seat.c
+++ /dev/null
@@ -1,15 +0,0 @@
---- src/path-seat.c.orig	2017-01-19 05:27:32 UTC
-+++ src/path-seat.c
-@@ -23,10 +23,11 @@
- 
- #include "config.h"
- 
-+#include <sys/stat.h>
-+
- #include <errno.h>
- #include <fcntl.h>
- #include <string.h>
--#include <sys/stat.h>
- #include <libudev.h>
- 
- #include "path-seat.h"
diff --git a/x11/libinput/files/patch-tools_Makefile.am b/x11/libinput/files/patch-tools_Makefile.am
deleted file mode 100644
index 65884b04fd3a..000000000000
--- a/x11/libinput/files/patch-tools_Makefile.am
+++ /dev/null
@@ -1,24 +0,0 @@
---- tools/Makefile.am.orig	2017-02-11 05:10:33 UTC
-+++ tools/Makefile.am
-@@ -11,8 +11,8 @@ AM_CXXFLAGS = $(GCC_CXXFLAGS)
- libshared_la_SOURCES = \
- 		       shared.c \
- 		       shared.h
--libshared_la_CFLAGS = $(AM_CFLAGS) $(LIBEVDEV_CFLAGS)
--libshared_la_LIBADD = $(LIBEVDEV_LIBS)
-+libshared_la_CFLAGS = $(AM_CFLAGS) $(LIBEVDEV_CFLAGS) $(LIBUDEV_CFLAGS)
-+libshared_la_LIBADD = $(LIBEVDEV_LIBS) $(LIBUDEV_LIBS)
- 
- event_debug_SOURCES = event-debug.c
- event_debug_LDADD = ../src/libinput.la libshared.la $(LIBUDEV_LIBS) $(LIBEVDEV_LIBS)
-@@ -20,8 +20,9 @@ event_debug_LDFLAGS = -no-install
- event_debug_CFLAGS = $(AM_CFLAGS) $(LIBUDEV_CFLAGS) $(LIBEVDEV_CFLAGS)
- 
- ptraccel_debug_SOURCES = ptraccel-debug.c
--ptraccel_debug_LDADD = ../src/libfilter.la ../src/libinput.la
-+ptraccel_debug_LDADD = ../src/libfilter.la ../src/libinput.la $(LIBUDEV_LIBS)
- ptraccel_debug_LDFLAGS = -no-install
-+ptraccel_debug_CFLAGS = $(LIBUDEV_CFLAGS)
- 
- libinput_list_devices_SOURCES = libinput-list-devices.c
- libinput_list_devices_LDADD = ../src/libinput.la libshared.la $(LIBUDEV_LIBS)
diff --git a/x11/libinput/files/patch-udev_Makefile.am b/x11/libinput/files/patch-udev_Makefile.am
deleted file mode 100644
index 6572e9447b43..000000000000
--- a/x11/libinput/files/patch-udev_Makefile.am
+++ /dev/null
@@ -1,10 +0,0 @@
---- udev/Makefile.am.orig	2017-02-11 05:10:33 UTC
-+++ udev/Makefile.am
-@@ -19,6 +19,7 @@ endif
- 
- libinput_model_quirks_SOURCES = libinput-model-quirks.c
- libinput_model_quirks_CFLAGS = \
-+			       -I$(top_srcdir)/include \
- 			       -I$(top_srcdir)/src \
- 			       $(LIBUDEV_CFLAGS) \
- 			       $(GCC_CFLAGS)
diff --git a/x11/libinput/pkg-descr b/x11/libinput/pkg-descr
index c49ab938858f..7b74c6f2a0c0 100644
--- a/x11/libinput/pkg-descr
+++ b/x11/libinput/pkg-descr
@@ -4,4 +4,4 @@ device handling, input device event processing and abstraction so
 minimize the amount of custom input code compositors need to provide
 the common set of functionality that users expect.
 
-WWW: http://www.freedesktop.org/wiki/Software/libinput/
+WWW: https://www.freedesktop.org/wiki/Software/libinput/
diff --git a/x11/libinput/pkg-plist b/x11/libinput/pkg-plist
index c1bccf3c871c..c3c712b3500e 100644
--- a/x11/libinput/pkg-plist
+++ b/x11/libinput/pkg-plist
@@ -1,14 +1,27 @@
-bin/libinput-debug-events
-bin/libinput-list-devices
+bin/libinput
 include/libinput.h
 lib/libinput.so
 lib/libinput.so.10
-lib/libinput.so.10.11.2
-lib/udev/hwdb.d/90-libinput-model-quirks.hwdb
-lib/udev/libinput-device-group
-lib/udev/libinput-model-quirks
-lib/udev/rules.d/80-libinput-device-groups.rules
-lib/udev/rules.d/90-libinput-model-quirks.rules
+lib/libinput.so.10.13.0
 libdata/pkgconfig/libinput.pc
+libexec/libinput/libinput-debug-events
+%%DEBUG_GUI%%libexec/libinput/libinput-debug-gui
+libexec/libinput/libinput-list-devices
+libexec/libinput/libinput-measure
+libexec/libinput/libinput-measure-fuzz
+libexec/libinput/libinput-measure-touch-size
+libexec/libinput/libinput-measure-touchpad-pressure
+libexec/libinput/libinput-measure-touchpad-tap
+libexec/libinput/libinput-measure-trackpoint-range
+libexec/libinput/libinput-replay
+man/man1/libinput.1.gz
 man/man1/libinput-debug-events.1.gz
+%%DEBUG_GUI%%man/man1/libinput-debug-gui.1.gz
 man/man1/libinput-list-devices.1.gz
+man/man1/libinput-measure.1.gz
+man/man1/libinput-measure-fuzz.1.gz
+man/man1/libinput-measure-touch-size.1.gz
+man/man1/libinput-measure-touchpad-pressure.1.gz
+man/man1/libinput-measure-touchpad-tap.1.gz
+man/man1/libinput-measure-trackpoint-range.1.gz
+man/man1/libinput-replay.1.gz
diff --git a/x11/libwacom/Makefile b/x11/libwacom/Makefile
index bc09daee54bc..f5a46c418d1a 100644
--- a/x11/libwacom/Makefile
+++ b/x11/libwacom/Makefile
@@ -2,10 +2,9 @@
 # $FreeBSD$
 
 PORTNAME=	libwacom
-PORTVERSION=	0.23
-PORTREVISION=	1
+PORTVERSION=	0.30
+DISTVERSIONPREFIX=libwacom-
 CATEGORIES=	x11
-MASTER_SITES=	https://sourceforge.net/projects/linuxwacom/files/libwacom/
 
 MAINTAINER=	x11@FreeBSD.org
 COMMENT=	Adds tablet support to libinput
@@ -13,9 +12,13 @@ COMMENT=	Adds tablet support to libinput
 LICENSE=	MIT
 LICENSE_FILE=	${WRKSRC}/COPYING
 
+BUILD_DEPENDS=	${LOCALBASE}/include/linux/input.h:devel/evdev-proto
 LIB_DEPENDS=	libgudev-1.0.so:devel/libgudev
 
-USES=		gettext-runtime gmake libtool localbase pkgconfig \
+USE_GITHUB=	yes
+GH_ACCOUNT=	linuxwacom
+
+USES=		autoreconf gettext-runtime gmake libtool localbase pkgconfig \
 		pathfix tar:bzip2
 USE_GNOME=	glib20
 GNU_CONFIGURE=	yes
@@ -23,6 +26,6 @@ USE_LDCONFIG=	yes
 INSTALL_TARGET=	install-strip
 
 post-patch:
-	@${REINPLACE_CMD} -e 's/-printf "%P\\n"/-print0 | xargs -0 basename/' ${WRKSRC}/data/Makefile.in
+	@${REINPLACE_CMD} -e 's/-printf "%P\\n"/-print0 | xargs -0 basename/' ${WRKSRC}/data/Makefile.am
 
 .include <bsd.port.mk>
diff --git a/x11/libwacom/distinfo b/x11/libwacom/distinfo
index a77d835989e7..af9228daeaaa 100644
--- a/x11/libwacom/distinfo
+++ b/x11/libwacom/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1486412570
-SHA256 (libwacom-0.23.tar.bz2) = a08ac59ff26dbdf5888a6ad7bd97a66741807cda6bb1c7e7f299a555129c3162
-SIZE (libwacom-0.23.tar.bz2) = 473700
+TIMESTAMP = 1528549792
+SHA256 (linuxwacom-libwacom-libwacom-0.30_GH0.tar.gz) = 6ffba2c77af7cdb49db5d5ddef6d4c2cad95eea225288bcc2e37d10245be6278
+SIZE (linuxwacom-libwacom-libwacom-0.30_GH0.tar.gz) = 119261
diff --git a/x11/libwacom/pkg-plist b/x11/libwacom/pkg-plist
index efea85c7b54f..3e93ea0e756b 100644
--- a/x11/libwacom/pkg-plist
+++ b/x11/libwacom/pkg-plist
@@ -3,7 +3,7 @@ include/libwacom-1.0/libwacom/libwacom.h
 lib/libwacom.a
 lib/libwacom.so
 lib/libwacom.so.2
-lib/libwacom.so.2.5.1
+lib/libwacom.so.2.6.1
 libdata/pkgconfig/libwacom.pc
 %%DATADIR%%/bamboo-0fg-s-p.tablet
 %%DATADIR%%/bamboo-16fg-m-pt.tablet
@@ -23,6 +23,8 @@ libdata/pkgconfig/libwacom.pc
 %%DATADIR%%/bamboo-4fg-se-m-pt.tablet
 %%DATADIR%%/bamboo-4fg-se-s-pt.tablet
 %%DATADIR%%/bamboo-one.tablet
+%%DATADIR%%/bamboo-pad-wireless.tablet
+%%DATADIR%%/bamboo-pad.tablet
 %%DATADIR%%/cintiq-12wx.tablet
 %%DATADIR%%/cintiq-13hd.tablet
 %%DATADIR%%/cintiq-13hdt.tablet
@@ -38,11 +40,20 @@ libdata/pkgconfig/libwacom.pc
 %%DATADIR%%/cintiq-companion-2.tablet
 %%DATADIR%%/cintiq-companion-hybrid.tablet
 %%DATADIR%%/cintiq-companion.tablet
+%%DATADIR%%/cintiq-pro-13.tablet
+%%DATADIR%%/cintiq-pro-16.tablet
+%%DATADIR%%/cintiq-pro-24-p.tablet
+%%DATADIR%%/cintiq-pro-24-pt.tablet
+%%DATADIR%%/cintiq-pro-32.tablet
+%%DATADIR%%/dell-canvas-27.tablet
 %%DATADIR%%/dtf-720.tablet
+%%DATADIR%%/dth-1152.tablet
 %%DATADIR%%/dth-2242.tablet
+%%DATADIR%%/dth-2452.tablet
 %%DATADIR%%/dti-520.tablet
 %%DATADIR%%/dtk-1651.tablet
 %%DATADIR%%/dtk-2241.tablet
+%%DATADIR%%/dtk-2451.tablet
 %%DATADIR%%/dtu-1031.tablet
 %%DATADIR%%/dtu-1031x.tablet
 %%DATADIR%%/dtu-1141.tablet
@@ -50,8 +61,13 @@ libdata/pkgconfig/libwacom.pc
 %%DATADIR%%/dtu-1931.tablet
 %%DATADIR%%/dtu-2231.tablet
 %%DATADIR%%/ek-remote.tablet
+%%DATADIR%%/elan-22e2.tablet
+%%DATADIR%%/elan-2537.tablet
 %%DATADIR%%/generic.tablet
+%%DATADIR%%/graphire-usb.tablet
 %%DATADIR%%/graphire-wireless-8x6.tablet
+%%DATADIR%%/graphire2-4x5.tablet
+%%DATADIR%%/graphire2-5x7.tablet
 %%DATADIR%%/graphire3-4x5.tablet
 %%DATADIR%%/graphire3-6x8.tablet
 %%DATADIR%%/graphire4-4x5.tablet
@@ -63,13 +79,21 @@ libdata/pkgconfig/libwacom.pc
 %%DATADIR%%/intuos-9x12.tablet
 %%DATADIR%%/intuos-m-p.tablet
 %%DATADIR%%/intuos-m-p2.tablet
+%%DATADIR%%/intuos-m-p3-wl.tablet
+%%DATADIR%%/intuos-m-p3.tablet
 %%DATADIR%%/intuos-m-pt.tablet
 %%DATADIR%%/intuos-m-pt2.tablet
+%%DATADIR%%/intuos-pro-2-l-wl.tablet
+%%DATADIR%%/intuos-pro-2-l.tablet
+%%DATADIR%%/intuos-pro-2-m-wl.tablet
+%%DATADIR%%/intuos-pro-2-m.tablet
 %%DATADIR%%/intuos-pro-l.tablet
 %%DATADIR%%/intuos-pro-m.tablet
 %%DATADIR%%/intuos-pro-s.tablet
 %%DATADIR%%/intuos-s-p.tablet
 %%DATADIR%%/intuos-s-p2.tablet
+%%DATADIR%%/intuos-s-p3-wl.tablet
+%%DATADIR%%/intuos-s-p3.tablet
 %%DATADIR%%/intuos-s-pt.tablet
 %%DATADIR%%/intuos-s-pt2.tablet
 %%DATADIR%%/intuos2-12x12.tablet
@@ -96,19 +120,49 @@ libdata/pkgconfig/libwacom.pc
 %%DATADIR%%/intuos5-touch-s.tablet
 %%DATADIR%%/isdv4-100.tablet
 %%DATADIR%%/isdv4-101.tablet
+%%DATADIR%%/isdv4-104.tablet
 %%DATADIR%%/isdv4-10d.tablet
+%%DATADIR%%/isdv4-10e.tablet
 %%DATADIR%%/isdv4-10f.tablet
 %%DATADIR%%/isdv4-114.tablet
 %%DATADIR%%/isdv4-116.tablet
+%%DATADIR%%/isdv4-117.tablet
+%%DATADIR%%/isdv4-124.tablet
 %%DATADIR%%/isdv4-12c.tablet
 %%DATADIR%%/isdv4-4004.tablet
 %%DATADIR%%/isdv4-4800.tablet
+%%DATADIR%%/isdv4-4809.tablet
+%%DATADIR%%/isdv4-4814.tablet
+%%DATADIR%%/isdv4-481a.tablet
+%%DATADIR%%/isdv4-4822.tablet
+%%DATADIR%%/isdv4-4824.tablet
+%%DATADIR%%/isdv4-4831.tablet
+%%DATADIR%%/isdv4-484c.tablet
+%%DATADIR%%/isdv4-485e.tablet
 %%DATADIR%%/isdv4-5000.tablet
 %%DATADIR%%/isdv4-5002.tablet
+%%DATADIR%%/isdv4-5010.tablet
+%%DATADIR%%/isdv4-5013.tablet
+%%DATADIR%%/isdv4-5014.tablet
+%%DATADIR%%/isdv4-503e.tablet
+%%DATADIR%%/isdv4-503f.tablet
 %%DATADIR%%/isdv4-5040.tablet
+%%DATADIR%%/isdv4-5044.tablet
+%%DATADIR%%/isdv4-5048.tablet
 %%DATADIR%%/isdv4-504a.tablet
+%%DATADIR%%/isdv4-5090.tablet
+%%DATADIR%%/isdv4-5099.tablet
+%%DATADIR%%/isdv4-509d.tablet
+%%DATADIR%%/isdv4-50b4.tablet
+%%DATADIR%%/isdv4-50b6.tablet
+%%DATADIR%%/isdv4-50b8.tablet
+%%DATADIR%%/isdv4-50f1.tablet
+%%DATADIR%%/isdv4-50f8.tablet
+%%DATADIR%%/isdv4-5110.tablet
+%%DATADIR%%/isdv4-5146.tablet
 %%DATADIR%%/isdv4-90.tablet
 %%DATADIR%%/isdv4-93.tablet
+%%DATADIR%%/isdv4-e2.tablet
 %%DATADIR%%/isdv4-e3.tablet
 %%DATADIR%%/isdv4-e5.tablet
 %%DATADIR%%/isdv4-e6.tablet
@@ -120,5 +174,8 @@ libdata/pkgconfig/libwacom.pc
 %%DATADIR%%/mobilestudio-pro-16.tablet
 %%DATADIR%%/n-trig-pen.tablet
 %%DATADIR%%/one-by-wacom-m-p.tablet
+%%DATADIR%%/one-by-wacom-m-p2.tablet
 %%DATADIR%%/one-by-wacom-s-p.tablet
+%%DATADIR%%/one-by-wacom-s-p2.tablet
 %%DATADIR%%/serial-wacf004.tablet
+%%DATADIR%%/xp-pen-star03.tablet

--------------28747E1BE58F66ACECC8BD0A--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?49a1235b-608d-aa98-c6da-b98f55e50e54>