/lib/udev/rules.d/50-udev-default.rules mostly only applies its rules for 'add' events. However, /lib/udev/rules.d/40-gentoo.rules applies its rules unconditionally. These rules overlap with those in 50-udev-default.rules. This means that on 'add' events the values in 50-udev-default.rules take precedence, but revert to those in 40-gentoo.rules when a 'change' event happens. This breaks USB printers after a 'change' event. The rule in 50-udev-default.rules sets the group to 'lp', but the rule in 40-gentoo.rules sets it to 'usb'. Reproducible: Always Steps to Reproduce: 1. Connect a USB printer 2. Either a 'change' event happens as a side-effect of something else, or trigger it manually, on the printer device (path is an example): # udevadm trigger -v -c change /dev/bus/usb/001/003 3. Check the device group Actual Results: Device file has group 'usb' Expected Results: Device file has group 'lp' You can flip flop between the two groups by alternately using udevadm trigger -c [add|change].
In udev-229-r1, 40-gentoo.rules was modified so the rules only apply during add events. Please re-open if there is still an issue. Thanks, William
Re-opening and assigning to systemd; we need to fix sys-apps/gentoo-systemd-integration, which has the same 40-gentoo.rules.
Fixed in gentoo-systemd-integration-5.