[MacPorts] #48899: ghc & haskell-platform update?

MacPorts noreply at macports.org
Fri Jan 4 04:09:41 UTC 2019

#48899: ghc & haskell-platform update?
  Reporter:  J.Gilbey@…            |      Owner:  neverpanic
      Type:  update                |     Status:  assigned
  Priority:  Normal                |  Milestone:
 Component:  ports                 |    Version:
Resolution:                        |   Keywords:
      Port:  haskell-platform ghc  |

Comment (by mouse07410):

 > I think the current approach is supposed to be "package everything that
 needs native dependencies". The question of native dependencies is where
 the whole approach of "don't package any of the libraries" falls apart

 Respectfully disagree. One reason - it proved to because infeasible to
 provide Macports clones of all the packages maintained by other env-
 specific ecosystems. Python is the best example of that.

 For example, I use Macports not because I can't do {{{pip install
 pycryptodome}}}, but because it's convenient for me to, e.g., install a
 reasonable version of OpenSSL via {{{sudo port install openssl}}}
 (actually, a bad example - as one of the contributors, I do keep source
 tree of OpenSSL, and regularly rebuild master and stable branches ;).

 I see absolutely nothing wrong for the user to do {{{sudo port install
 gcc8 && pip-3.7 install numpy}}}. It does not seem much harder than
 {{{sudo port install py37-numpy}}}.

 >  Approaching this as "if you want pandoc, install cabal/stack and...

 Why would a Haskell user want to install {{{pandoc}}} via Macports??? Any
 more than installing {{{Haskell-libsodium}}} via Macports? Or <put your
 favorite Haskell package here>?

 Macports cannot and shouldn't become a substitute for ecosystem-specific
 package managers.

 >  Even just building stack with the current approach probably needs some
 kind of automation...

 Yes, non-trivial - which is why I'd be perfectly content packaging pre-
 built {{{stack}}} binary and keeping it. For example, my system uses pre-
 built {{{stack}}} - I did not rebuilt it, not do I want to. It works. I
 don't need Macports to provide it to me, nor do I feel like I'm obligated
 to rebuild it from sources.

 > It's the platform vs. no platform and libraries vs. not packaging
 libraries discussion that makes things complicated

 There already is {{{Haskell Platform}}}. The main reason I don't use it in
 its entirety is because it's GHC conflicts with Macports {{{libiconv}}}.
 So I had to rebuild GHC myself. But {{{stack}}} from {{{Haskell
 Platform}}} is perfectly usable as is. Whatever Haskell libraries I need -
 {{{stack}}} or {{{cabal}}} will install for me, and would do that the
 right way. No reason for Macports to try emulating that.

 > Back when we originally packaged GHC, we were told by the Haskell
 community that we should really be providing GHC "batteries included" by
 packaging the haskell platform. Maybe it is time to revisit this decision.

 **Yes**!! I strongly urge to revisit. Haskell ecosystem is very strong.
 It's neither needed nor possible to replicate it. The only reason I'm
 suggesting refreshing the port is because the default GHC provided by
 Haskel ecosystem conflicts with Macports. Everything else from Haskell eco
 coexists with Macports just fine, so no need to re-do it.

 > Maybe a good approach would also be to build all tools (such as pandoc)
 using stack from a Portfile, so that they all ship their dependencies in a
 private folder. We've recently adopted a similar approach for ports using
 rust's cargo

 Now, **that** is an idea. But I'm getting concerned when I hear "to build
 ***all** tools" from you. My question is - since those tools are trivially
 installed by {{{stack}}}, what benefit is there in offering what
 essentially is a Macports wrapper for it? And is it worth the cost (time
 and efforts)? Is {{{sudo port install pandoc}}} really that much simpler
 than {{{stack install pandoc}}}, especially for somebody who presumably
 got GHC (with cabal and stack) because that somebody is developing within
 the Haskell ecosystem?

Ticket URL: <https://trac.macports.org/ticket/48899#comment:44>
MacPorts <https://www.macports.org/>
Ports system for macOS

More information about the macports-tickets mailing list