tech-userlevel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: sh -e changes broke pkgsrc



On Mon, May 26, 2008 at 02:52:51PM +0100, Matthias Scheler wrote:
> I diasgree. Please have a look this change:
> 
> http://mail-index.netbsd.org/pkgsrc-changes/2008/05/26/msg005942.html
> 
> It is an example of bad shell programming that got exposed by the "sh"  
> fixes.

As I suspected it was a case of broken shell code in "pkgsrc". It used
this construct with "set -e":

        while read type pattern dir; do                                 \
                ${TEST} "$$type" != "bootstrap" && continue;            \
                ${_DEPENDS_INSTALL_CMD};                                \
        done

If "$$type" is "bootstrap" the whole ".. && ..." expression will evaluate
to false and the shell should terminate evaluation. The correct shell
code is:

        while read type pattern dir; do                                 \
                ${TEST} "$$type" = "bootstrap" || continue;             \
                ${_DEPENDS_INSTALL_CMD};                                \
        done

> So please fix "pkgsrc" instead.

I did that:

http://mail-index.netbsd.org/pkgsrc-changes/2008/05/26/msg005964.html

I've test deinstalling, building and tar-ing a package. It works without
problems now.

I cannot tell for sure whether there are more examples of broken
shell code in "pkgsrc". But I would appreciate if people help me
fixing these instead of reverting the bug-fixes to "/bin/sh".

        Thanks in advance

-- 
Matthias Scheler                                  http://zhadum.org.uk/


Home | Main Index | Thread Index | Old Index