[Fedora-haskell-list] RFE: GHC packaging improvement proposal

Jens Petersen petersen at redhat.com
Fri Dec 11 07:57:05 UTC 2009

Hi Lorenzo,

and welcome to the SIG! :)  Just noticed your mail.

> I am a newcomer to Haskell (thanks to xmonad) and I plan to do some
> serious things with it (as soon as I get proficient with this elegant FP
> language).

Great (BTW I just pushed xmonad-0.9 into f12-testing - should appear soon.)

> During the last two-three weeks I've been secretly working on the GHC
> package (6.12). As you know, GHC can now create shared libraries so I deemed
> that a little change in the .spec file was necessary.

Okay cool - better not to work in secret though :) -
I think the current ghc.spec in pkg cvs already supports shared libs
quite a bit now but look forward to looking at your ideas. :)

>  * ghc: contains only the compiler, tools (such as ghc-pkg, etc) and 
> libHSrts.a which seems to be (statically) linked in every application.
> In general: stuff needed only at compile time.

Yeah but I have seen ghc package install errors when static libs
are not around - probably something that upstream needs to fix.

>  * ghc-libs (and ghc-libs-static): contains the dynamic version of
> libHSghc 
> which is *HUGE* (and I guess it's needed only by programs which want
> to access 
> GHC internals -- I don't have it installed and xmonad, xmobar and such
> things work).

Cool - guess we could have done that long ago...

>  * ghc-common: This subpackage contains packages.d/*.config files and
> owns core library directories, it is (mostly) empty and is required by
> ghc-runtime and ghc-runtime-static.

>  * ghc-runtime (and ghc-runtime-static): nothing to say, it contains
> just the  core libraries and their interface files (.hi/.dyn_hi)

I think shared libs and interfaces should be separated.

>  + cabal-install 0.7.5 (from darcs) seems to work decently with this

That's right.

>  + I decided to take libHSghc off the runtime package(s) because of
> its huge  size and because it is not generally needed by other
> libraries/applications, thus making the runtime package small:

Aha good idea.

> I still can't get Cabal to link shared libraries instead of static

Pass the option "--ghc-option=-dynamic" to cabal configure.

> http://gitorious.org/lvillani/specs/blobs/master/haskell/ghc/ghc.spec
> + I'm 101% sure that there are errors in that .spec file.

It is shame you branched off, Bryan and
I committed quite few changes in cvs since then.  I know cvs is not
a DVCS - fedora pkg cvs may be moving to git next year... :)
The current spec file works for rc2 anyway and provides shared

Going to look through your spec file now.
In future it would be helpfil if you could send us a patch or
put it into bugzilla if you like and I can review and integrate
to cvs.

And join us on freenode #fedora-haskell if you care for irc.

Thanks, Jens

More information about the Fedora-haskell-list mailing list