When using bash-3.1, the init scripts report a syntax error at line 328 of /lib/rcscripts/sh/rc-daemon.sh : syntax error near unexpected token '('. The same error appear in /etc/init.d/net.lo. Reverting to bash-3.0-r14 solves the problem Reproducible: Always Steps to Reproduce: 1. Emerging bash-3.1 2. /etc/init.d/net.lo restart Actual Results: /lib/rcscripts/sh/rc-daemon.sh : line 328: syntax error near unexpected token '(' /lib/rcscripts/sh/rc-daemon.sh : line 328: ` local -a RC_DAEMONS=() RC_PIDFILES=()' /etc/init.d/net.lo: line 286: syntax error near unexpected token '(' /etc/init.d/net.lo: line 286: `local -a provide=() provide_list=() after=() dead=() sorted=() sortedp=()' * ERROR: "/etc/init.d/net.lo" has syntax errors in it; aborting ... Expected Results: * Stopping lo * Bringing down lo * Shutting down lo [ok] * Starting lo * Bringing up lo * 127.0.0.1/8 [ok] * Adding routes * 127.0.0.0/8 [ok]
Same errors in many, if not most init scripts. Agreed that bash 3.1 breaks it, and a downgrade to bash 3.0 fixes it.
It isn't fun when an update makes your system nearly unbootable, why did bash-3.1 change the syntax in such a broken way?
It sounds like bash-3.1 should be hard-masked, since it breaks baselayout. This is discussed at http://forums.gentoo.org/viewtopic-t-411479.html
*** This bug has been marked as a duplicate of 115142 ***