[Haskell-cafe] Re: Building error Gtk2Hs under GHC 6.6.1 on Solaris 10 x86

Christian Maeder maeder at tzi.de
Thu May 31 07:48:57 EDT 2007


How about switching from sed to perl, then?

Cheers Christian

Duncan Coutts schrieb:
> This is a bug in mk/chsDepend(.in) probably due to some difference in
> how sed works in Solaris compared to Linux.
> 
> the mk/chsDepend shell script looks at a .chs file and tries to find all
> the lines that look like:
> 
> {#import Some.Module.Name#}
> 
> and then find the .chi files corresponding to those import lines. It
> looks from the error message that it's picking up "{#import" as if it
> were a module.
> 
> The shell/sed code that is probably going wrong is:
> 
>   DEPS=`$GREP "{#import" $FULLNAME 2> /dev/null \
>        | $SED 'y/./\//;s/^{#import \(qualified \)*\([a-zA-Z1-9/]*\)#}.*/\2/'`;
> 
> testing this with standard solaris sed (on Solaris 9) reveals the
> problem, standard Solaris sed is terrible! :-)
> 
> The problem is that standard Solaris /usr/bin/sed does not allow * on
> sub-expressions, for example this sed regexp "\(bar\)*" does not match
> the string "bar bar". The other Solaris sed that is not on the path by
> default works fine (/usr/xpg4/bin/sed). Well actually it needs a minor
> patch too, it doesn't like the escape in "y/./\//", but if we change it
> to "y|.|/|" then it's happy.
> 
> So the solution I think is for me to change the configure script to look
> for /usr/xpg4/bin/sed in preference to /usr/bin/sed on Solaris and also
> to make that other minor syntax fix.
> 
> The workaround you can try is to edit mk/chsDepend and set SED to either
> gnu sed or to /usr/xpg4/bin/sed though in the latter case you'll also
> need to fix the "y|.|/|" bit. Then you'll need to make clean and make
> again.
> 
> Duncan


More information about the Haskell-Cafe mailing list