[GHC] #8919: Why is xhtml library installed but not exported to users?

GHC ghc-devs at haskell.org
Sat Jun 7 11:52:59 UTC 2014


#8919: Why is xhtml library installed but not exported to users?
-------------------------------------+------------------------------------
        Reporter:  simons            |            Owner:
            Type:  bug               |           Status:  new
        Priority:  normal            |        Milestone:  7.8.3
       Component:  Build System      |          Version:  7.8.2
      Resolution:                    |         Keywords:
Operating System:  Unknown/Multiple  |     Architecture:  Unknown/Multiple
 Type of failure:  Other             |       Difficulty:  Unknown
       Test Case:                    |       Blocked By:
        Blocking:                    |  Related Tickets:
-------------------------------------+------------------------------------

Comment (by errge):

 I've been asked to briefly summarize the issue, since simons didn't write
 too much about it in the ticket itself.

 GHC 7.8 uses the xhtml, terminfo and haskeline packages internally.
 Because of the dynamic ghci transition, the related .so files have to be
 shipped with the build.  By not shipping the devel files (not making the
 cabal packages visible), we force the distribution vendors to package up
 these libraries separately and make them available in their repos.
 Nothing wrong with that of course (they do this for all the other
 important libraries, like lens and pipes too).  The problem is that they
 can't ship the .so files in the respective packages, because it's usually
 not allowed for packages to overwrite each other's files in an adhoc
 manner.  So when they build e.g. the xhtml deb or rpm package, they have
 to make sure that if the resulting .so files have the same name as the ghc
 shipped ones, then they don't include it in the package.  These kind of
 workarounds seem extremely kludgy and fragile to me.  This
 naming/overwrite issue causes some headaches for NixOS too, just in a
 slightly different setting.

 I see two solutions going forward.

 As nomeata said in comment 16, we can simply ship our .so files in a
 private directory and make our dynamic programs search there (via RPATH or
 some other trick).

 Or we can simply ship these packages with GHC as we ship base, time and so
 many others.  juhpetersen posted a patch for that in comment 14.

 Alternatively, we can ignore it and just force people to go with the
 workarounds.  I'd prefer not doing that.  There were also some discussion
 on the mailing list about discontinuing the dynamic change after 7.10 and
 going back to static, which would of course make this go away.

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/8919#comment:17>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list