[slime-devel] BUG + PATCH: doc/Makefile uses Bash extensions without setting SHELL=/bin/bash

The "clean" target in doc/Makefile uses features of Bash shell, namely brace expansions: rm -f slime.{info,pdf,dvi,ps,html} This feature does not work with POSIX sh shell which the /bin/sh implements and which is the default shell used by "make". In some systems /bin/sh is a symlink to /bin/bash but not in all. For example, in Ubuntu GNU/Linux systems /bin/sh link points to /bin/dash which is very close to POSIX sh. Debian GNU/Linux will switch to /bin/sh -> /bin/dash in their next release. So, to fix the bug you should either do this: --8<---------------cut here---------------start------------->8--- diff --git i/doc/Makefile w/doc/Makefile index 9ea9ebf..38ff658 100644 --- i/doc/Makefile +++ w/doc/Makefile @@ -14,6 +14,9 @@ INSTALL_CMD=install -m 644 # Info files generated here. infofiles=slime.info +# Use Bash shell +SHELL=/bin/bash + TEXI = slime.texi contributors.texi all: slime.info slime.pdf html/index.html --8<---------------cut here---------------end--------------->8--- Or you should stop using Bash extensions in the Makefile: --8<---------------cut here---------------start------------->8--- diff --git i/doc/Makefile w/doc/Makefile index 9ea9ebf..1e68cf5 100644 --- i/doc/Makefile +++ w/doc/Makefile @@ -95,6 +95,8 @@ uninstall-info: clean: rm -f contributors.texi - rm -f slime.{aux,cp,cps,fn,fns,ky,kys,log,pg,tmp,toc,tp,vr,vrs} - rm -f slime.{info,pdf,dvi,ps,html} - rm -rf html{,.tgz} + rm -f slime.aux slime.cp slime.cps slime.fn slime.fns slime.ky + rm -f slime.kys slime.log slime.pg slime.tmp slime.toc slime.tp + rm -f slime.vr slime.vrs + rm -f slime.info slime.pdf slime.dvi slime.ps slime.html + rm -rf html html.tgz --8<---------------cut here---------------end--------------->8--- I suggest doing the latter.

Teemu Likonen <tlikonen@iki.fi> writes:
The "clean" target in doc/Makefile uses features of Bash shell, namely brace expansions:
rm -f slime.{info,pdf,dvi,ps,html}
This feature does not work with POSIX sh shell which the /bin/sh implements and which is the default shell used by "make". In some systems /bin/sh is a symlink to /bin/bash but not in all. For example, in Ubuntu GNU/Linux systems /bin/sh link points to /bin/dash which is very close to POSIX sh. Debian GNU/Linux will switch to /bin/sh -> /bin/dash in their next release.
So, to fix the bug you should either do this:
The second patch is applied, thanks. -- With best regards, Stas.
participants (2)
-
Stas Boukarev
-
Teemu Likonen