[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 6.12.0.20091010-2.fc13, 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
libraries.

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