Retire Synaptics Driver
Retire the xorg-x11-drv-synaptics driver and remove it from user's install.
xorg-x11-drv-synaptics has been the main X.Org touchpad driver for over a decade. Since Fedora 22, it has been superseded by xorg-x11-drv-libinput which aims to provide a better touchpad experience.
The only way to assign X.Org drivers is via the xorg.conf.d configuration system which is based on config file sort order. e.g. evdev sorts as 10-evdev.conf, synaptics as 70-synaptics.conf, etc. Whichever sorts last is assigned as driver for a device. Fedora 22 and later shipped with libinput's config file sorting higher than all other drivers to overwrite any previous matches.
Some users prefer the synaptics driver over libinput. This requires the users to install the driver and then place a custom config snippet or, more commonly, symlink to the synaptics config snippets with a name that has a higher sort order than xorg-x11-drv-libinput.
The aim of this change is to ensure that the synaptics driver can simply be installed when required without any further user configuration. When installed, it should be assigned as the preferred driver over xorg-x11-drv-libinput.
For historical reasons, a vast majority of users have the synaptics driver installed, especially those updating from older releases.
We want to a) remove the xorg-x11-drv-synaptics driver from a user's machine but b) make it possible to install where required.
Benefit to Fedora
Users that don't need xorg-x11-drv-synaptics don't even install the package. Users who do need it merely need to install the package without the need for extra configuration.
- Proposal owners:
- xorg-x11-drv-synaptics must be removed from comps (complete as of F25)
- xorg-x11-drivers must not include xorg-x11-drv-synaptics (complete as of F25)
- the X server needs to support a fallback input driver. This ensures that when an xorg.conf snippet assigns the synaptics driver but that driver is missing, the user still has a working touchpad. Complete as of xorg-x11-server-1.18.4-5
- xorg-x11-drv-synaptics will get a subpackage xorg-x11-drv-synaptics-legacy containing the actual driver (completed as of xorg-x11-drv-synaptics-1.9.0-2)
- xorg-x11-drv-libinput will obsolete/provide the current xorg-x11-drv-synaptics version (completed as of xorg-x11-drv-libinput-0.22.0-3)
- Other developers:
- packages that currently require xorg-x11-drv-synaptics need to revisit and either require the new subpackage or drop the requirement
- Affected packages: mate-desktop, cinnamon-desktop
- Release engineering: Nothing required, the RE changes are complete as of F25
- Policies and guidelines: No update needed
- Trademark approval: N/A (not needed for this Change)
Users updating from F25 will see the xorg-x11-drv-synaptics package removed and replaced by xorg-x11-drv-libinput. A manual step of installing the replacement package is required afterwards for those users that require this driver.
How To Test
- Update from F25 to F26. xorg-x11-drv-synaptics should not be installed after update
- restart X, log into any X session
- xinput list-props "insert touchpad name" should show properties prefixed with "libinput"
- dnf install xorg-x11-drv-synaptics-legacy
- restart X, log into any X session
- xinput list-props "insert touchpad name" should show properties prefixed with "Synaptics"
- dnf remove xorg-x11-drv-synaptics-legacy
- goto 2
There is no change for users of a new install of F26
For the majority of users upgrading from F25 to F26 there is no change as libinput overrides synaptics in F25.
Users who explicitly enabled the synaptics driver in F25 (via custom config snippets, as explained above) will have the package removed on upgrade. On X server restart, the X server will fall back to libinput (as the synaptics module is missing). This may cause a different touchpad behaviour than the users expect. To get the real synaptics driver back, they will have to install the replacement package.
- Contingency mechanism: leave xorg-x11-drv-synaptics as-is and leave libinput to sort higher than synaptics (as in F25)
- Contingency deadline: Before alpha
- Blocks release? No
- Blocks product? None