systemd/rules.d
Zbigniew Jędrzejewski-Szmek 953c928c24 udev: rework 60-evdev.rules to be "additive"
We would execute up to four hwdb match patterns (+ the keyboard builtin):
After the first hit, we would skip the other patterns, because of the GOTO="evdev_end"
action.

57bb707d48 (rules: Add extended evdev/input match
rules for event nodes with the same name), added an additional match with
":phys:<phys>:ev:<ev>" inserted. This breaks backwards compatibility for user
hwdb patterns, because we quit after the first match.

In general hwdb properties are "additive". We often have a general rule that
matches a wider class and then some specific overrides. E.g. in this particular
case, we have a match for all trackpoints, and then a bunch of model-specific
settings.

So let's change the rules to try all the match patterns and combine the
received properties. We execute builtin-keyboard once at the end, if there was
at least one match.

Fixes #25698. Fixes https://bugzilla.redhat.com/show_bug.cgi?id=2152226.

This also impacts other cases which I think would be very confusing for users.
Since we quit after a first successful match, if we had e.g. a match for
'evdev:input:b*v*p*' in out database, and the user added a match using
'evdev:name:*', which is the approach we document in the .hwdb files and which
users quite often use, it would be silently ignored. What's worse, if we added
our 'evdev:input:b*v*p*' match at a later point, user's match would stop
working. If we combine all the properties, we get more stable behaviour.
2022-12-12 13:44:33 +01:00
..
50-udev-default.rules.in udev/rules,hwdb: filter out mostly meaningless default strings 2022-09-06 03:38:09 +09:00
60-autosuspend.rules Add support to set autosuspend delay via hwdb 2022-05-09 21:14:12 -05:00
60-block.rules Rename udev's rules/ to rules.d/ 2019-10-10 00:53:09 +01:00
60-cdrom_id.rules Rename udev's rules/ to rules.d/ 2019-10-10 00:53:09 +01:00
60-drm.rules Rename udev's rules/ to rules.d/ 2019-10-10 00:53:09 +01:00
60-evdev.rules udev: rework 60-evdev.rules to be "additive" 2022-12-12 13:44:33 +01:00
60-fido-id.rules rules: Move ID_SMARTCARD_READER definition to a <70 configuration. 2021-03-03 15:18:55 +01:00
60-infiniband.rules udev/rules: add by-path and by-ibdev links to infiniband verbs 2022-10-14 12:18:08 +09:00
60-input-id.rules Rename udev's rules/ to rules.d/ 2019-10-10 00:53:09 +01:00
60-persistent-alsa.rules Rename udev's rules/ to rules.d/ 2019-10-10 00:53:09 +01:00
60-persistent-input.rules udev: add i2c to 60-persistent-input.rules for by-path (#18808) 2021-03-02 19:56:06 +10:00
60-persistent-storage-tape.rules udev: 60-persistent-storage-tape.rules: handle duplicate device ID 2022-03-08 23:12:10 +09:00
60-persistent-storage.rules udev: always create device symlinks for USB disks 2022-10-30 12:02:02 +01:00
60-persistent-v4l.rules Rename udev's rules/ to rules.d/ 2019-10-10 00:53:09 +01:00
60-sensor.rules udev: hwdb: Add rules to match cros-ec-accel by 'location' sysfs file 2022-08-18 21:17:19 +03:00
60-serial.rules udev: add safe guard for setting by-id symlink 2022-11-03 09:59:54 +09:00
64-btrfs.rules.in meson: use jinja2 for rules.d templates 2021-05-19 10:24:43 +09:00
70-camera.rules hwdb: Tag IR cameras as such 2021-10-27 00:14:41 +02:00
70-joystick.rules Rename udev's rules/ to rules.d/ 2019-10-10 00:53:09 +01:00
70-memory.rules udev: Extract RAM properties from DMI information 2020-12-16 18:32:29 +01:00
70-mouse.rules Rename udev's rules/ to rules.d/ 2019-10-10 00:53:09 +01:00
70-power-switch.rules meson: move udev rules to rules.d/ 2022-05-05 11:51:44 +02:00
70-touchpad.rules Rename udev's rules/ to rules.d/ 2019-10-10 00:53:09 +01:00
70-uaccess.rules.in hwdb: Allow users access to USB serial for analysers 2022-08-09 18:12:19 +02:00
71-seat.rules.in meson: move udev rules to rules.d/ 2022-05-05 11:51:44 +02:00
73-seat-late.rules.in meson: move udev rules to rules.d/ 2022-05-05 11:51:44 +02:00
75-net-description.rules Rename udev's rules/ to rules.d/ 2019-10-10 00:53:09 +01:00
75-probe_mtd.rules Rename udev's rules/ to rules.d/ 2019-10-10 00:53:09 +01:00
78-sound-card.rules Rename udev's rules/ to rules.d/ 2019-10-10 00:53:09 +01:00
80-drivers.rules udev-builtin-kmod: support to run without arguments 2022-10-14 21:32:24 +09:00
80-net-setup-link.rules udev: re-assign ID_NET_DRIVER=, ID_NET_LINK_FILE=, ID_NET_NAME= properties on non-'add' uevent 2020-09-15 11:29:35 +09:00
81-net-dhcp.rules network: enable DHCP broadcast flag if required by interface 2021-04-21 18:11:18 +02:00
90-vconsole.rules.in meson: move vconsole rules to rules.d/ 2022-05-05 11:51:44 +02:00
99-systemd.rules.in rules: import previous SYSTEMD_READY state for suspended DM devices and skip other rules 2022-08-19 20:13:47 +01:00
meson.build meson: install 70-power-switch.rules 2022-05-19 05:04:58 +09:00
README docs: Fixing typo in systemd.device man page and README. 2021-09-29 22:18:38 +01:00

Files in this directory contain configuration for systemd-udevd.service, a
daemon that manages symlinks to device nodes, permissions of devices nodes,
emits device events for userspace, and renames network interfaces.

See man:udev(7) for an overview of the configuration file format, and
man:systemd-udevd.service(8) for a description of service itself.

Use 'systemd-analyze cat-config udev/rules.d' to display the effective config.