Okay, thanks for the info.

I'm a little leery of the alternatives framework.  I've had to deal with that with java, and it's complicated because there are several implementations of java that don't get packaged consistently with each other.  As in some alternatives provide X, Y, and Z, and some provide W, X, and Y, and figuring all that out has been frustrating.  What your proposing probably wouldn't be as bad since the alternative Haskell packages would be coming from the same source and would presumably be exactly consistent with each other.

But, if the dynamic executable packages are working, are parallel static packages necessary?

Another issue is the experimental nature of a lot of Haskell packages: I recently had to make a lot of minor updates to my simulation because of a change in the aeson package, which is itself under fairly heavy development.  We can probably link dynamically to well-established Haskell libraries with no problem, but the more experimental ones could result in the usual trap that executable foo requires the new features in libbar-5 but executable baz hasn't been updated yet and requires libbar-4 ...  From what I can tell, GHC and Cabal are better at dealing with multiple coexisting versions of packages than RPM and Yum are.

Just thinking out loud here...



On Thu, Feb 27, 2014 at 8:36 PM, Jens Petersen <petersen@redhat.com> wrote:
Thanks for your reply.
There's something in the Fedora packaging guidelines about not packaging static libraries.
There is...
There is also something about it being ok for Haskell packages
in the Haskell Packaging Guidelines we made. :)

Current ghc stable releases only support Linux shared libs on ia32 arch's.
ie all Haskell executables on other archs are statically linked to Haskell libs anyway.
I believe ocaml also links its executables statically to ocaml libs.

I don't think we can drop Haskell static libraries any time soon,
but for ghc-7.8 (Fedora 21) I am thinking to subpackage them
since ghc-pkg no longer screams about missing static libs.
(ghc-7.8 uses dynmically linking internally by default though
which somewhat complicates its use of non-exported libs.)
 I don't know how well it would work to link with Haskell libraries statically and others dynamically -- I'm not even sure how to tell ghc to do that.
It works just fine - it is what ghc does by default and has been doing forever. :)
To link dynamically you have to give the -dynamic option to ghc.

As I wrote, afaik other distros do not distribute dynamically linked Hasklell executables.

Anyway my question was more about providing both for some packages in an optimal way.

Jens


$ cat > Main.hs
main = putStrLn "hi"
$ ghc Main
:
$ ldd Main | grep libHS
$ ghc Main -dynamic
:
$ ldd Main | grep libHS | wc -l
4


_______________________________________________
haskell mailing list
haskell@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/haskell