/etc/X11/startDM.sh (part of sys-apps/xinit) uses /etc/init.d/functions.sh, which depends on bash syntax, but startDM.sh uses #!/bin/sh. Therefore, if #!/bin/sh is linked to something else (e.g. dash) then running startDM.sh will fail. Reproducible: Always Steps to Reproduce: 1. Link /bin/sh to /bin/dash (install dash first) 2. Run /etc/init.d/xdm start 3. Actual Results: /etc/init.d/functions.sh: 7: [[: not found /etc/init.d/functions.sh: 10: declare: not found /etc/init.d/functions.sh: 11: declare: not found /etc/init.d/functions.sh: 87: [[: not found /etc/init.d/functions.sh: 87: [[: not found /etc/init.d/functions.sh: 96: [[: not found /etc/init.d/functions.sh: 104: [[: not found /etc/init.d/functions.sh: 306: Syntax error: Bad substitution xinit-1.0.3-r3, regression from at least 1.0.2-r6
The URL you reference compares cvs versions 1.2 vs 1.3 1.2 enforces bash, 1.3 uses /bin/sh and has no bash specific code. However, it does require bash if you're using baselayout-1 as the scripts referenced are bash. baselayout-2 has no bash specific scripts.
baselayout-2 is still in alpha and hard-masked, but using a non-bash shell for /bin/sh is currently at-your-own risk anyhow.
*** Bug 190525 has been marked as a duplicate of this bug. ***
Oh please, I really don't like to rant. It's clear that I am on unsupported grounds when I use dash as my /bin/sh, but well, I was up to report and debug the bugs I find. But now I see that you are reluctant to do the one-line fix in stable just because "baselayout-2" will fix it magically, which is even hardmasked.