Bug 217248 - devel/libevdev: update to 1.5.9, fix outdated and broken evdev headers and sync them with Linux kernel 4.16
Summary: devel/libevdev: update to 1.5.9, fix outdated and broken evdev headers and sy...
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: freebsd-x11 (Nobody)
URL:
Keywords:
: 225343 (view as bug list)
Depends on: 234240
Blocks: 222905
  Show dependency treegraph
 
Reported: 2017-02-20 11:23 UTC by Vladimir Kondratyev
Modified: 2018-12-31 15:22 UTC (History)
4 users (show)

See Also:
bugzilla: maintainer-feedback? (hselasky)


Attachments
devel.libevdev.patch (33.21 KB, patch)
2017-02-20 11:23 UTC, Vladimir Kondratyev
no flags Details | Diff
devel/libevdev poudriere log (32.58 KB, text/plain)
2017-02-20 11:27 UTC, Vladimir Kondratyev
no flags Details
devel/libevdev-headers poudriere log (10.41 KB, text/plain)
2017-02-20 11:29 UTC, Vladimir Kondratyev
no flags Details
multimedia/v4l_compat poudriere log (10.74 KB, text/plain)
2017-02-20 11:33 UTC, Vladimir Kondratyev
no flags Details
devel/py-evdev poudriere log (21.10 KB, text/plain)
2017-02-20 11:40 UTC, Vladimir Kondratyev
no flags Details
devel.libevdev.patch (33.29 KB, patch)
2017-02-20 19:40 UTC, Vladimir Kondratyev
no flags Details | Diff
devel.libevdev.patch (34.35 KB, patch)
2017-02-21 07:39 UTC, Vladimir Kondratyev
no flags Details | Diff
devel.libevdev.patch (30.41 KB, patch)
2017-12-03 23:39 UTC, Vladimir Kondratyev
no flags Details | Diff
devel.libevdev.patch (31.47 KB, patch)
2017-12-03 23:51 UTC, Vladimir Kondratyev
no flags Details | Diff
devel.libevdev.patch (32.28 KB, patch)
2018-01-27 14:17 UTC, Vladimir Kondratyev
no flags Details | Diff
devel.libevdev.patch (32.40 KB, patch)
2018-01-27 14:30 UTC, Vladimir Kondratyev
no flags Details | Diff
devel.libevdev.patch (32.70 KB, patch)
2018-01-27 14:51 UTC, Vladimir Kondratyev
no flags Details | Diff
devel.libevdev.patch (31.73 KB, patch)
2018-04-07 13:05 UTC, Vladimir Kondratyev
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Vladimir Kondratyev freebsd_committer 2017-02-20 11:23:44 UTC
Created attachment 180159 [details]
devel.libevdev.patch

1. update devel/libevdev to 1.5.6
2. drop evdev headers from multimedia/vl4_compat. They are too old to allow modern libevdev to compile and contains wrong (Linux-specific) ioctl defines
3. Add slave devel/libevdev-headers port with updated versions of evdev headers derived from libevdev and patched to be FreeBSD-compatible
4. Update dependencies from multimedia/vl4_compat to devel/libevdev-headers for dependent ports

This PR is subset of https://reviews.freebsd.org/D7588
Comment 1 Vladimir Kondratyev freebsd_committer 2017-02-20 11:27:16 UTC
Created attachment 180160 [details]
devel/libevdev poudriere log
Comment 2 Vladimir Kondratyev freebsd_committer 2017-02-20 11:29:09 UTC
Created attachment 180161 [details]
devel/libevdev-headers poudriere log
Comment 3 Vladimir Kondratyev freebsd_committer 2017-02-20 11:33:07 UTC
Created attachment 180164 [details]
multimedia/v4l_compat poudriere log
Comment 4 Vladimir Kondratyev freebsd_committer 2017-02-20 11:40:26 UTC
Created attachment 180165 [details]
devel/py-evdev poudriere log

5. devel/py-evdev updated to v. 0.6.4
Comment 5 Vladimir Kondratyev freebsd_committer 2017-02-20 19:40:44 UTC
Created attachment 180172 [details]
devel.libevdev.patch

devel/libevdev - add ability to run internal tests via "make test"
Comment 6 Vladimir Kondratyev freebsd_committer 2017-02-21 07:39:18 UTC
Created attachment 180178 [details]
devel.libevdev.patch

Last patch appeared to be incomplete. Reuploaded.
Comment 7 Greg V 2017-12-02 18:17:11 UTC
Just encountered an issue: current libevdev in ports uses wrong ioctl numbers for uinput. This patch fixes it. Merge it please!

Also, please look at my libinput port update: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=222905 which x11@ is ignoring because they ignore everything these days :(

+ I've sent patches to libinput upstream, a couple changes were merged already.
Comment 8 Vladimir Kondratyev freebsd_committer 2017-12-02 21:47:16 UTC
(In reply to Greg V from comment #7)
> Just encountered an issue: current libevdev in ports uses wrong ioctl numbers for uinput. This patch fixes it. Merge it please!
Unfortunately, I can't as I am not a ports committer. I (and any other src committer) need an approval from unmentored port committer to make changes to a ports tree.

> Also, please look at my libinput port update: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=222905
I`ll take a look, but as I said before, I can't handle it.

> which x11@ is ignoring because they ignore everything these days :(
Heh. I am waiting for 'x11@ renamed to no-reply@' announcement somewhere in a project's start page. The mesa/libdrm looks to be the only X11 parts that produce any updates/feedback since last February.

> + I've sent patches to libinput upstream, a couple changes were merged already.
That is nice! Thanks!

P.S. This PR is outdated now. More up to date version can be found here: https://reviews.freebsd.org/D7588
Comment 9 Vladimir Kondratyev freebsd_committer 2017-12-03 23:39:05 UTC
Created attachment 188507 [details]
devel.libevdev.patch

Up to date version of the patch.

1. Drop evdev headers from multimedia/vl4_compat. They are too old to allow modern libevdev to compile and contains wrong (Linux-specific) ioctl defines
2. Add devel/evdev-proto port with modern versions of evdev headers taken from Linux VCS (github) and patched to be FreeBSD-compatible
3. Update devel/libevdev to 1.5.7 and devel/py-evdev to 0.7.0. Current versions staying in a port tree do not handle linux/input.h header split properly.
4. Update dependencies from multimedia/vl4_compat to devel/evdev-proto for dependent ports
Comment 10 Vladimir Kondratyev freebsd_committer 2017-12-03 23:51:29 UTC
Created attachment 188508 [details]
devel.libevdev.patch

Add forgotten patch for libevdev internal tests.
Comment 11 Niclas Zeising freebsd_committer 2017-12-16 19:45:39 UTC
Hi!
I'm looking at this now, since it blocks a x11@ PR.

Can you, as submitter, please explain why the headers are pulled into a new port, instead of updating v4l-compat?  I'm just trying to understand what's going on here.
Comment 12 Vladimir Kondratyev freebsd_committer 2017-12-16 21:42:39 UTC
(In reply to Niclas Zeising from comment #11)
> Can you, as submitter, please explain why the headers are pulled into a new port, instead of updating v4l-compat

That is done to to make version chase easy. Evdev headers are the fast moving target and some software like libevdev and libinput depends on very recent versions of it. E.g. current libinput wants headers from 4.11+ kernel. In Linuх world such a software just includes required files in distribution source bundle, but we can not use them as is as they are not fully FreeBSD-compatible. Proposed patch solves this problem with providing easy to update system-wide headers. Updating of evdev-proto port with this patch applied is as easy as keeping of PORTVERSION in sync with current Linux kernel version.
Comment 13 Niclas Zeising freebsd_committer 2017-12-16 21:53:36 UTC
Thanks for the explanation.
Comment 14 Vladimir Kondratyev freebsd_committer 2017-12-16 22:34:17 UTC
(In reply to Vladimir Kondratyev from comment #12)
I think the whole multimedia/vl4_compat port can be changed to fetch all headers from Torvald's VCS rather than provide bundled. That would eliminate need in split off of evdev headers. But I can handle only evdev part of such a change.
Comment 15 Tobias C. Berner freebsd_committer 2018-01-21 18:52:10 UTC
Hi there 

You should bump the revision in multimedia/v4l_compat and x11-servers/xwayland should probably build-depend on evdev-proto.

mfg Tobias
Comment 16 Jean-Sébastien Pédron freebsd_committer 2018-01-26 10:15:08 UTC
*** Bug 225343 has been marked as a duplicate of this bug. ***
Comment 17 Vladimir Kondratyev freebsd_committer 2018-01-27 14:17:44 UTC
Created attachment 190112 [details]
devel.libevdev.patch

Changes compared to prior version:
multimedia/v4l_compat version bumped (plist change).
x11/libinput version bumped (uses fixed ioctl).
x11-servers/xwayland build-depency on evdev-proto added.
Comment 18 Vladimir Kondratyev freebsd_committer 2018-01-27 14:18:59 UTC
(In reply to Vladimir Kondratyev from comment #17)
"version bumped" should be read as "revision bumped"
Comment 19 Vladimir Kondratyev freebsd_committer 2018-01-27 14:30:02 UTC
Created attachment 190113 [details]
devel.libevdev.patch

One more revision bump:
devel/libudev-devd (unused dependency removed)
Comment 20 Vladimir Kondratyev freebsd_committer 2018-01-27 14:51:44 UTC
Created attachment 190115 [details]
devel.libevdev.patch

And finally? revision bump for devel/libmtdev and x11-drivers/xf86-input-evdev due to RUN_DEPENDS removal
Comment 21 Vladimir Kondratyev freebsd_committer 2018-04-07 13:05:08 UTC
Created attachment 192306 [details]
devel.libevdev.patch

Updates:
Evdev headers -> 4.16
libevdev -> 1.5.9
py-evdev -> 0.8.1
Comment 22 Tobias C. Berner freebsd_committer 2018-04-29 20:11:33 UTC
Hi there

Is there an ETA on this? It would be great to have it in the ports tree, as we need it for the KDE CI systems.


mfg Tobias
Comment 23 Niclas Zeising freebsd_committer 2018-06-10 06:57:26 UTC
Hi!
I've added this update, as well as a whole bunch of other updates to a branch in our development Github tree.  The branch updates a whole lot of ports that has to do with input devices and similar.  Please help me test it.
The branch can be found here:

https://github.com/FreeBSDDesktop/freebsd-ports/tree/feature/input

It contains upates to libinput, libeevdev, libwacom, xf86-input-libinput and dependencies.
Comment 24 commit-hook freebsd_committer 2018-12-19 09:10:09 UTC
A commit references this bug:

Author: zeising
Date: Wed Dec 19 09:09:21 UTC 2018
New revision: 487789
URL: https://svnweb.freebsd.org/changeset/ports/487789

Log:
  Split out evdev headers from multimedia/v4l_compat

  Split out evdev headers (input.h, input-event-codes.h, uinput.h) into their
  own port, devel/evdev-proto, and update those to be current with the Linux
  4.19 kernel.  This is done in order to be able to update the rest of the
  FreeBSD input stack, which is forthcoming.

  By splititng out the evdev headers we can update them independent of other
  updates in v4l_compat, which makes it easier for the graphics team to keep
  track of them and keep them updated as needed.

  Update devel/libevdev from 1.4.4 to 1.5.9 instead of trying to make it work
  with the updated headers.  This will be further updated.

  Update devel/py-evdev from 0.5.0 to 0.8.1 instead of trying to make it work
  with the updated evdev headers.

  Update consumers to use devel/evdev-proto rather than multimedia/v4l_compat
  as needed, and bump portrevisions.

  This is the first step in getting the FreeBSD input stack (libevdev,
  libinput and so on) updated to newer versions.

  Many thanks to all who have helped out with testing, code and exp-runs.
  Apologies if I've forgotten to add any names.

  PR:		222905, 217248, (based on, in part), 233787 (exp-run)
  Submitted by:	Greg V, wulf
  Tested by:	tcberner, kde
  Exp-run by:	antoine
  Approved by:	portmgr (antoine)
  Obtained from:	FreeBSDDesktop development repo
  		https://github.com/FreeBSDDesktop/freebsd-ports/tree/feature/input
  		https://github.com/FreeBSDDesktop/freebsd-ports/tree/feature/input-ports

Changes:
  head/audio/ardour/Makefile
  head/comms/lirc/Makefile
  head/comms/svxlink/Makefile
  head/devel/Makefile
  head/devel/evdev-proto/
  head/devel/evdev-proto/Makefile
  head/devel/evdev-proto/distinfo
  head/devel/evdev-proto/pkg-descr
  head/devel/evemu/Makefile
  head/devel/evemu/files/patch-tools_evemu-record.c
  head/devel/libevdev/Makefile
  head/devel/libevdev/distinfo
  head/devel/libevdev/files/
  head/devel/libevdev/files/patch-libevdev_libevdev-uinput.c
  head/devel/libevdev/files/patch-test_test-libevdev-events.c
  head/devel/libevdev/files/patch-test_test-libevdev-has-event.c
  head/devel/libevdev/files/patch-test_test-libevdev-init.c
  head/devel/libevdev/files/patch-test_test-main.c
  head/devel/libevdev/pkg-plist
  head/devel/libmtdev/Makefile
  head/devel/libmtdev/files/patch-test_mtdev-test.c
  head/devel/libudev-devd/Makefile
  head/devel/py-evdev/Makefile
  head/devel/py-evdev/distinfo
  head/devel/sdl20/Makefile
  head/games/flightgear/Makefile
  head/multimedia/dvb-apps/Makefile
  head/multimedia/gstreamer1-plugins/Makefile.common
  head/multimedia/kdenlive/Makefile
  head/multimedia/lives/Makefile
  head/multimedia/mpv/Makefile
  head/multimedia/v4l_compat/Makefile
  head/multimedia/v4l_compat/pkg-plist
  head/net/freerdp/Makefile
  head/x11/kde-workspace-kde4/Makefile
  head/x11/kf5-kwayland/Makefile
  head/x11/libinput/Makefile
  head/x11/libinput/files/patch-include_linux_input.h
  head/x11/plasma5-kwayland-integration/Makefile
  head/x11-drivers/xf86-input-evdev/Makefile
  head/x11-drivers/xf86-input-libinput/Makefile
  head/x11-drivers/xf86-input-synaptics/Makefile
  head/x11-drivers/xf86-input-wacom/Makefile
  head/x11-drivers/xf86-input-wacom/files/patch-src-wcmConfig.c
  head/x11-drivers/xf86-input-wacom/files/patch-src-wcmISDV4.c
  head/x11-drivers/xf86-input-wacom/files/patch-src-wcmUSB.c
  head/x11-drivers/xf86-input-wacom/files/patch-src-wcmValidateDevice.c
  head/x11-drivers/xf86-video-qxl/Makefile
  head/x11-servers/xwayland/Makefile
  head/x11-toolkits/wlc/Makefile
  head/x11-wm/plasma5-kwin/Makefile
Comment 25 Niclas Zeising freebsd_committer 2018-12-19 09:16:15 UTC
All changes in this PR are supposed to be committed now, but I might have missed something.  Leave this open for a while longer in case of fallout or in case of missed things.
Comment 26 commit-hook freebsd_committer 2018-12-23 09:58:01 UTC
A commit references this bug:

Author: zeising
Date: Sun Dec 23 09:57:30 UTC 2018
New revision: 488181
URL: https://svnweb.freebsd.org/changeset/ports/488181

Log:
  x11-servers/xwayland: Fix portrevision

  Fix portrevision, it accidentally went backwards when comitting r487789.
  Bump it to 11 to ensure xwayland is rebuild after the evdev-proto changes.

  Add a big note about this, so I might remember next time.

  PR:		222905, 217248, 233787 (original commit), 234240 (fix)
  Submitted by:	Stefan Ehmann (fix)

Changes:
  head/x11-servers/xwayland/Makefile
Comment 27 Niclas Zeising freebsd_committer 2018-12-31 15:22:48 UTC
I believe I got everything from this set of patches.

Thanks for all the help!