>>> 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

Reply via email to