Skip to content

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
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information