<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">I’ll offer my two cents. One overriding issue of package management is dependency resolution.<div class=""><br class=""></div><div class="">In the case of ruby, multiple versions of a gem happily co-exist globally with applications loading compatible subsets based on its Gemfile.lock, by virtue of package dependency resolver, bundler.</div><div class=""><div class=""><br class=""></div><div class="">This differs from node's npm and yarn, which install local copies (often multiple) of package dependencies under an application’s root directory. In this case, I’m not aware of a benefit to installing packages globally, unless those packages install commands like npm and yarn themselves.</div><div class=""><br class=""></div><div class="">With Haskell, all bets are off. Installing packages globally creates problems that neither of Haskell’s package managers cabal(1) nor stack(1) seem capable of dealing with. For example, I recently offered a recipe for installing pandoc(1) on older Intel systems. But subsequently, I found that I was unable to update to most the current version. I had to go back to Pandoc version 2.0.6 in order to build on my system under ideal conditions, i.e., installation of current Haskell Platform.</div><div class=""><br class=""></div><div class="">While I’m not familiar with Ocaml, from the website, opam appears to uses <a href="http://www.mancoosi.org/cudf/" class="">Debian CUDF dependency resolver</a>. Consequently, I would expect that Ocaml can handle multiple globally installed packages. There is a libCUDF to help with parsing CUDF files, so that might be worth looking at if you wanted to build an opam2port utility.</div><div class="">-AM</div><div class=""><br class=""></div><div class=""><br class=""><blockquote type="cite" class="">On Apr 18, 2018, at 11:35 AM, Clemens Lang <<a href="mailto:cal@macports.org" class="">cal@macports.org</a>> wrote:<br class=""><br class="">Hi,<br class=""><br class="">----- On 18 Apr, 2018, at 15:20, Perry E. Metzger <a href="mailto:perry@piermont.com" class="">perry@piermont.com</a> wrote:<br class=""><br class=""><blockquote type="cite" class="">Maybe I should ask this a bit differently. Are there other precedents<br class="">for using a "foreign" packaging or build system and tricking it into<br class="">building stuff for macports that I could study and possibly steal<br class="">pieces of?<br class=""></blockquote><br class="">You can take a look at the haskell portgroup, which uses cabal to build<br class="">and destroot things. The rust portgroup that uses cargo might also be<br class="">an interesting example.<br class=""><br class="">-- <br class="">Clemens Lang<br class=""></blockquote><br class=""></div></div></body></html>