[systemd-devel] udev database cross-version compatibility

Valentin David me at valentindavid.com
Tue Sep 26 17:22:30 UTC 2023


Hello,

Back in 2014 and again in 2020, there were discussions on the mailing-list related to udev database version safety. This was important to know if libudev from a container could access to /run/udev/data files safely. Given then libudev and systemd-udevd would be potentially different version.

The conclusion was that there was no guarantee. And based on that flatpak has not provided /run/udev/data to applications.

Later, the format changed in #16853 (udev: make uevents "sticky"). But this caused issue #17605 (Units with BindsTo=<device> are being killed on upgrade from v246 to v247).

This was fixed by #17622 (sd-device: make sd_device_has_current_tag() compatible with udev database generated by older udevd).

It seems to me, because udev needs to handle upgrade and downgrade, that it will continue to handle some compatibility across versions.

Is it safe now for flatpak to provide /run/udev/data to containers?

(Also, snapd does it, oops)

--
Valentin David
me at valentindavid.com


More information about the systemd-devel mailing list