sys-process/runit provides the following symlink: /sbin/runsvdir-start -> ../etc/runit/2 This symlink is intended for use with inittab to launch runit as a secondary service manager ( https://wiki.gentoo.org/wiki/Runit#From_sysvinit ), i.e. SV:12345:respawn:/sbin/runsvdir-start With split-usr this works as intended, and resolves to /etc/runit/2 when ROOT=/. With merged-usr, /sbin is a symlink to /usr/bin. So this link resolves to /usr/etc/runit/2, breaking the link. Reproducible: Always
forgot to mention- version 2.1.2-r2
Created attachment 897254 [details, diff] patch to change `../etc` to `/etc` for the runsvdir-start symlink Changing the symlink to be an absolute link instead of relative might be the right fix for this. It does mean the link would point to the wrong file when viewed with the rootfs mounted somewhere other than `/`. i.e. outside a chroot, in a prefix or crossdev. However, it's unlikely that someone would want to execute this file in those contexts. If we want to keep the symlink relative, I think we would need to add an IUSE=split-usr I don't feel strongly about either solution. I've attached a patch that implements the absolute link change, which is what I'm using on my system right now.