>>> In my environments, autoconf does not raise such error. >>> Do you set the "set -u" or "set -o nounset" somewhere? >>> If so, would you remove the setting? >> The set -u (or to be complete set -ux) I discovered inside >> >> /home/gub/gub/target/freebsd-x86/src/lilypond-git.sv.gnu.org--lilypond.git-master/smart-configure.sh >> >> which was the command that was called when the error was signalled > > I've noticed that smart-autogen.sh has "set -ux" and it is invoked from GUB. > If I understand correctly, "set -u" and "set -x" etc. do not carry over > into child processes. > > However, at least in your log file, > "set -x" seems to be carried over to the child process. > From smart-autogen.sh through autogen.sh to autoconf, > all scripts are setted trace mode. > [...snip...] > > Perhaps, also "set -u" is carried over in your environment > and it is not carried over in my environment. > > I have no idea. > But, in CentOS, /bin/sh is symbolic link to bash, > whereas in Ubuntu, /bin/sh is dash. > I think that this difference is influenced.
Anyway, I've noticed that if the environment variable SHELLOPTS exists, "set -ux" and "set -e" carry over to the child processes. There may be other conditions that it carries over. In order to avoid this issue, there is a way to "set +ux" before invoking the child process. So I've created a patch for LilyPond's smart-autogen.sh and smart-configure.sh. https://sourceforge.net/p/testlilyissues/issues/5013/ https://codereview.appspot.com/319870043/ _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel