ghc fails to parse versioned GPL and LGPL license from package configuration
I used this shell script to reproduce the problem:
{{{ #! /bin/sh
DIR=$(mktemp -d); cd ${DIR}; trap "cd /; rm -r ${DIR}" EXIT
echo "[]" > P ghc-pkg -f P register - > /dev/null <<EOF name: dummy-gpl license: GPL EOF ghc-pkg -f P register - > /dev/null <<EOF name: dummy-lgpl license: LGPL-3 EOF ghc -package-conf P -e 'putStrLn "success"' || echo fail }}}
which fails like this:
ghc-stage2: P:1:163: parse error on input `Nothing'
fail
It turns out that ghc-pkg uses Cabal's code to manipulate the package configuration, while ghc comes with its own parser in ParsePkgConf.y - possible reasons include: historic reasons, better error messages, better performance.
See also this recent thread: http://www.haskell.org/pipermail/glasgow-haskell-users/2009-July/017600.html
Trac metadata
| Trac field | Value |
|---|---|
| Version | 6.11 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture |