Problems with ash-20040127-3 (Attn: bash maintainer)

Eric Blake ericblake@comcast.net
Fri Jul 8 21:35:00 GMT 2005


> > Yep.  The new /bin/sh is bash.  Apparently, bash doesn't like the
> > following line:
> > 
> > if [ "`echo $dllname | sed 's{^lib/.*\.dll${{'`" != "$dllname" ]; then
> > 
> Downgrading a package at time, I have seen that reinstalling
> ash-20040127-1 (and using Bash-3.0-7, coreutils-5.3.0-7) all works fine.

Of course, because downgrading to ash-20040127-1 (re)installed ash
as /bin/sh, and ash does not have the parsing bug (for once! usually,
it is ash that is buggy and bash that is POSIX compliant).

> 
> All works fine also if one uses the new versions of those pkgs. and
> changes '/bin/sh' in '/bin/ash' in 'wingcc_ld.sh' (/bin/bash does not
> help)

You could also follow the advice already given in this thread, so that
using bash as /bin/sh will work - change the culprit line to not trigger
bash's parsing bug.  Also, I would advise you to report the bug to the
upstream maintainers of ROOT, so they know how to work around
the bash bug triggered by their wingcc_ld.sh script:

if [ "$(echo $dllname | sed 's{^lib/.*\.dll${{')" != "$dllname" ]; then

or

if [ "`echo $dllname | sed 's#^lib/.*\.dll$##'`" != "$dllname" ]; then


Meanwhile, you will have to wait patiently until the upstream
maintainer releases a patch (because I haven't the faintest clue
where in the lexer to look for fixing his parse error).  Repeated
pinging on the cygwin list will not help speed up the situation.

--
Eric Blake
volunteer cygwin bash maintainer



--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



More information about the Cygwin mailing list