ghc module and Haskell static linked executables
by Jens-Ulrik Petersen
Hi,
A heads-up that I am planning to move Haskell executables to static linking
in F30.
This to improve the experience with the new ghc module: currently most of
the Haskell executables (except hscolour and hedgewars I believe) are
dynamically linked which conflicts
with modular ghc, making it painful to use.
Switching to Haskell static linking means that cabal-install, pandoc,
ShellCheck, git-annex, etc will continue to work even if one installs a ghc
module.
https://fedoraproject.org/wiki/Packaging:Haskell is to be updated to
reflect this.
Jens
5 years, 6 months
ghc module and static linking for executable packages
by Jens-Ulrik Petersen
Hi, I am pleased to announce there is now a ghc module in
updates-testing-modular for F28 and F29: it provides ghc-8.4.3 (the module
stream is called 8.4). I am planning to add a 8.6 stream too. (The Rawhide
module has not appeared yet - not sure why.)
In conjunction with this, I am planning to disable executable dynamic
linking in fedora Haskell packages to make them portable with modules. For
example currently if one uses the ghc:8.4 module it is not possible to
install any Haskell executable packages (cabal-install, pandoc, hlint,
xmonad, gitit, git-annex, ShellCheck, hledger, cabal-rpm, alex, happy,
etc), which seems not a good thing: more an annoyance not a pleasing thing
for users. So starting in Rawhide I am going to change ghc-rpm-macros to do
static link of executables (as cabal-install also does by default).
Currently the only package with a static executable is hscolour - to reduce
ghc rebase pain, but not having cabal-install and most of the other
packages mentioned available for modules is pretty pointless really. I
believe Rust and golang executable packages don't use dynamic linking
either (in fact they don't even ship static library;). So anyway I feel
this not so unreasonable approach and will cause less pain when updating
ghc. Note that for executable packages that include a library there will
still be a dynamic shared library produced, the executable will be
statically linked to Haskell libraries).
Jens
5 years, 6 months