-
Notifications
You must be signed in to change notification settings - Fork 211
xfree86: move the xf86-input-mouse driver in-tree #1709
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
|
I still disagree with this move. The FreeBSD/Dragonfly build system of these entire ports are dependent on them being separate. IDK, if it really does improve the developer experience to be worth it ,,, , |
|
I think we should first find an agreement on Incorporating drivers into Xserver tree · X11Libre · Discussion #207 before creating more pull requests. |
I somewhat doubt that this little change makes so much trouble. For transition, the xf86-input-mouse package could become just a empty/meta-package depending on the Xserver itself (with proper build flags). This isn't a new situation, actually pretty common. And for binary packaging: the driver .so file can still can be split out into separate binary package. I'm not going to merge this within 25.1 window (only few days left to release), deferring it to 25.2.
It does. See my comment at https://github.com/orgs/X11Libre/discussions/207: In order to move to a clean architecture and actually easily understandable architecture and API, as well as planned new features, we need to do a lot of changes that are currently API/ABI breaking, and so we would have to introduce lots of per-xserver-version specific hacks into the drivers again. When moving the drivers in-tree, we don't need that at all, and could trim down individual driver code even more (eg. move more common code to common places), w/o ever having to care about potential ABI breaks. (we only still need to be careful with those things needed by the proprietary nvidia driver - until we've got it replaced entirely). Another problem is the huge version matrix: right now each driver existing in many versions, and there might be subtle dependencies between individual drivers's and Xserver's version. The matrix has as much dimensions as we have drivers (plus 1 for the Xserver). Moving all drivers in-tree reduces this to just one. |
I'm not maintainer - it more to do with logistics and transition period, as maintainer wants to build that one driver and nothing more. After this move (moving driver to in-tree) the problem becomes: how to build it?, what configuration switches to use (it will be multiple PR's), how to separate only driver with it files (man, *.conf, etc..) for package. @metux I always wondering, why these drivers cannot be included as git submodules? There a lot of sharp corner cases with meson or it is too much maintenance burden? |
commit: 077703664048822ea1f98ed99b7b0007130ae20b Signed-off-by: Enrico Weigelt, metux IT consult <[email protected]>
…r.h> If we're in Xserver tree, we must not include <xorg-server.h>, but <xorg-config.h> instead. Signed-off-by: Enrico Weigelt, metux IT consult <[email protected]>
Signed-off-by: Enrico Weigelt, metux IT consult <[email protected]>
Signed-off-by: Enrico Weigelt, metux IT consult <[email protected]>
Since it's now in-tree, no need for the external one anymore. Signed-off-by: Enrico Weigelt, metux IT consult <[email protected]>
2251802 to
7def7ef
Compare
This already isn't the case with several drivers (eg. modesetting) and extra modules (vgahw, int10, glx, ....), since they've never been splitted out. I actually wonder why somebody insisting in compiling just this one driver separately, even though it already needs to be compiled against the matching Xserver version. It's pretty small (just 60kb on amd64).
Automatically built along with the Xserver, just like with already in-tree driver (eg modesetting) and various other modules.
enabled by default, to disable it pass -Dxf86-input-mouse=false ... standard meson options (see meson_options.txt)
not sure how exactly that's one on BSD, but in .deb or .rpm world, just putting the these file names into the corresponding binary-package's file list.
That would also be in-tree. But more complicated on our side as well as downstreams/distros (needs additionally care on clone/checkout, harder to mirror, extra commits in parent repo, etc, etc). Submodules only make sense if something's coming from another vendor and used inside several parent repos - neither one is the case here. |
|
I did a build from branch pr/mouse-intree. Then noticed what seems to be a discrepancy: |
Main complaint is about I tried experiment with this, even meson have almost necessary functionality ( You can install part of project with the problems i found (meson v1.8.1): I think if xserver gain functionality only install files for specific drivers only. @callmetango @b-aaz and other maintainers would keep complains to minimum? |
|
@cepelinas9000 All I had to do was adding the man page to the packaging; as file mouse_drv.so gets copied as part of the xorg/modules directory. |
|
Merge Conflict found |
10 similar comments
|
Merge Conflict found |
|
Merge Conflict found |
|
Merge Conflict found |
|
Merge Conflict found |
|
Merge Conflict found |
|
Merge Conflict found |
|
Merge Conflict found |
|
Merge Conflict found |
|
Merge Conflict found |
|
Merge Conflict found |
|
Note that about 1kLOC are only needed for the whole build stuff - and they'll be getting even much more when we're adding BSD driver builds to CI. For this particular driver it's about 1/8. For some other drivers, that ratio can even be much bigger. |
|
Merge Conflict found |
29 similar comments
|
Merge Conflict found |
|
Merge Conflict found |
|
Merge Conflict found |
|
Merge Conflict found |
|
Merge Conflict found |
|
Merge Conflict found |
|
Merge Conflict found |
|
Merge Conflict found |
|
Merge Conflict found |
|
Merge Conflict found |
|
Merge Conflict found |
|
Merge Conflict found |
|
Merge Conflict found |
|
Merge Conflict found |
|
Merge Conflict found |
|
Merge Conflict found |
|
Merge Conflict found |
|
Merge Conflict found |
|
Merge Conflict found |
|
Merge Conflict found |
|
Merge Conflict found |
|
Merge Conflict found |
|
Merge Conflict found |
|
Merge Conflict found |
|
Merge Conflict found |
|
Merge Conflict found |
|
Merge Conflict found |
|
Merge Conflict found |
|
Merge Conflict found |
The driver is relatively simple, unlikely that we're getting anything substantial from xorg, and it's much faster to build in-tree.
Thus dropping the hassle of maintaining it internally by just moving it in-tree.
It can be disabled at build time via meson.