On 2 Apr 2019, at 18:26, Cyril Roelandt <tipec...@gmail.com> wrote: > > (I'm the author of upt. Please keep me CCed) > > On 2019-04-02 12:58, Daniel Jakots wrote: >> You can look at sysutils/upt. It's not something specific for OpenBSD. >> It works with "frontends" (language-specific packages systems, cpan pip >> etc) and "backends" (OS-specific packages systems). There's already an >> OpenBSD backend so you need to only add a ocaml frontend. > > That is a good summary of how upt works. The idea is that every time a > new frontend is added (for Hackage or NPM, for instance), minimal effort > is required to add support for it on the OpenBSD side. Support for PyPI > is just one simple class[1] and one short Jinja2 template[2]. > > Instead of writing a new backend for PortGen, you could write a new > frontend for upt :) It would also help package managers who use other > operating systems (hey, nobody's perfect!). > > I'm willing to help with this if you're interested in using upt.
This also looks very cool! How does it deal with mapping system dependencies that a package needs into the ports Makefile? opam has something called a 'depexts' field (see https://github.com/ocaml/opam-depext <https://github.com/ocaml/opam-depext>) which records a mapping of system OS package name that can be installed by that package manager to satisfying C libraries that are needed. That needs to be mapped into the OpenBSD Makefile as well. Anil