Created attachment 180159 [details]
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
Created attachment 180160 [details]
devel/libevdev poudriere log
Created attachment 180161 [details]
devel/libevdev-headers poudriere log
Created attachment 180164 [details]
multimedia/v4l_compat poudriere log
Created attachment 180165 [details]
devel/py-evdev poudriere log
5. devel/py-evdev updated to v. 0.6.4
Created attachment 180172 [details]
devel/libevdev - add ability to run internal tests via "make test"
Created attachment 180178 [details]
Last patch appeared to be incomplete. Reuploaded.
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.
(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
Created attachment 188507 [details]
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
Created attachment 188508 [details]
Add forgotten patch for libevdev internal tests.
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.
(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.
Thanks for the explanation.
(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.
You should bump the revision in multimedia/v4l_compat and x11-servers/xwayland should probably build-depend on evdev-proto.
*** Bug 225343 has been marked as a duplicate of this bug. ***
Created attachment 190112 [details]
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.
(In reply to Vladimir Kondratyev from comment #17)
"version bumped" should be read as "revision bumped"
Created attachment 190113 [details]
One more revision bump:
devel/libudev-devd (unused dependency removed)
Created attachment 190115 [details]
And finally? revision bump for devel/libmtdev and x11-drivers/xf86-input-evdev due to RUN_DEPENDS removal
Created attachment 192306 [details]
Evdev headers -> 4.16
libevdev -> 1.5.9
py-evdev -> 0.8.1
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.
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:
It contains upates to libinput, libeevdev, libwacom, xf86-input-libinput and dependencies.
A commit references this bug:
Date: Wed Dec 19 09:09:21 UTC 2018
New revision: 487789
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
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.
A commit references this bug:
Date: Sun Dec 23 09:57:30 UTC 2018
New revision: 488181
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)
I believe I got everything from this set of patches.
Thanks for all the help!