Subject: This might actually be a compatibility issue in the eudev code

From: Guenther Brunthaler <[email-masked]>
Date: Fri, 14 Jun 2019 00:39:44 +0200

I have just compared the functionality of

/lib/systemd/systemd-udevd --daemon

on Raspbian with that of

/sbin/udevd --daemon

on Devuan.

The result is that both installations of the rule file from bug #333 are
identical:

$ cksum /lib/udev/rules.d/40-usb_modeswitch.rules
194757299 40499 /lib/udev/rules.d/40-usb_modeswitch.rules

and neither does Raspbian add /lib/udev to the front of PATH, which I
verified by temporarily modifying /lib/udev/usb_modeswitch so that it
logs its PATH setting, which showed:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

You see, no /lib/udev.

Yet systemd-udevd correctly invokes /lib/udev/usb_modeswitch rather than
/usr/sbin/usb_modeswitch when the udev rule just says

$ grep symlink-name /lib/udev/rules.d/40-usb_modeswitch.rules
KERNEL=="ttyUSB*", ATTRS{bNumConfigurations}=="*",
PROGRAM="usb_modeswitch --symlink-name %p %s{idVendor} %s{idProduct}
%E{PRODUCT}", SYMLINK+="%c"

It follows, that systemd-udevd seems to use an augmented PATH for
exec'ing its PROGRAM, but does not "export" that augmented PATH to the
invoked program.

Therefore, to remain compatible with systemd-udevd, eudev should do the
same.

One might even suspect this was a subtle change deliberately introduced
by some people who wanted to make eudev look bad, but it does not really
matter and just needs to be fixed.

I suppose this is an upstream bug and not Devuan-specific, and should be
escalated to upstream.

Im I supposed to do that, or will you Devuan guys do it?