I would like to solicit some feedback from the rest of the Gentoo systemd team on an issue that is coming our way. It looks like systemd upstream is going to migrate from autotools to meson. https://github.com/systemd/systemd/pull/5704 This means that a few autoconf/make hacks we use will stop working. One of these hacks is our handling of rootprefx and udevlibexecdir. Normally, udevlibexecdir is derived from rootprefix. Therefore, upstream only really supports two configs: Config 1 (merged /usr): rootprefix=/usr udevlibexecdir=/usr/lib/udev or Config 2 (separate /usr): rootprefix=/ udevlibexecdir=/lib/udev Through the use of some make variable hackery, Gentoo currently does this: rootprefix=/usr udevlibexecdir=/lib/udev I do not see an obvious way to make this work with the new meson build system without patching. Possible solutions: Solution 1: Migrate to either of upstream's supported configs Config 1 would break udev rules, and upstream does not recommend using it unless the /usr merge has taken place. Config 2 is the more natural fit for Gentoo, but it will require users to update their boot loader configs since the systemd[1] binary would move. Solution 2: Ask upstream to add an independent "udevlibexecdir" meson option This would be the simplest option, but I'm not sure I like asking for it and I'm not sure upstream wants to support it. Solution 3: Patch meson.build at the distro level perpetually
IMO Solution 1, config 2. Yes, this will cause people to have to change their boot loader configs, but once it is done, even if the /usr merge takes place, they won't have to change them again unless they want to.
(In reply to William Hubbs from comment #1) > IMO Solution 1, config 2. > Yes, this will cause people to have to change their boot loader configs, but > once it is done, even if the /usr merge takes place [...] ...which is never.
I have implemented the rootprefix change (solution 1, config 2) in systemd-9999. I also added compatibility symlinks for /usr/lib/systemd/systemd and /usr/lib/systemd/systemd-shutdown so systems do not break.