I just checked in a big update to the opam front end for depict
(https://pagure.io/depict). It now handles complex boolean
dependencies much better. Try this to see a dependency graph for
Facebook's Infer, assuming you have a git checkout of opam-repository
python3 -m depict --input=json examples/opam.js --input=opam --exclude
mirage-xen:mirage-xen-ocaml:ocamlfind-secondary --stop ocaml
--repository ~/src/opam-repository async ANSITerminal apron atdgen
base64 cmdliner core conf-autoconf conf-gmp conf-mpfr conf-sqlite3
conf-zlib ctypes dune elina javalib mlgmpidl mtime ocamlfind
ocamlgraph ounit parmap ppx_deriving ppx_fields_conv ppx_let sawja
sqlite3 utop xmlm yojson zarith --graph=dag --output=dot infer.dot
On Thu, 2021-04-08 at 19:18 -0600, Jerry James wrote:
> I am currently traveling, with only my phone for accessing email, so
> please pardon top posting, HTML, etc. I also have the goal of
> bringing Infer to Fedora, so I am happy to make common cause with
> Are you aware of my efforts to build an OCaml spec generator? See
> https://pagure.io/opam2rpm. It isn't finished, but it is useful for
> getting started.
That looks handy, thanks! I'm halfway through packaging the next
package Infer needs (camlzip) so I already wrote a manual spec file for
it too, but I'll check out opam2rpm for the next dependency in line.
> I can be more helpful next week when I am home & have my beloved
> Fedora desktop in front of me. :-)
Hope to have a set of review requests by then!
Michel Alexandre Salim
It's been a while since I work on an OCaml spec, so I'm asking the
ocaml-devel list (and because it seems inactive, cc:ing rjones and
jjames since they maintain a lot of OCaml packages.
I'm working through the missing dependencies to eventually package
Infer, Facebook's static analysis tool -- https://fbinfer.com/ -- which
is written in OCaml.
The first such dependency is atdgen, which is part of atd:
Review request: https://bugzilla.redhat.com/show_bug.cgi?id=1947685
This is a single project that ends up generating several related OPAM
packages. The automatic requires/provides seem to identify the modules
it provides correctly, so... do I need to split the packaging to
individual modules, or is it fine to ship only ocaml-atd and ocaml-atd-
(My infer package can then depend on ocaml(Atdgen) instead of
hardcoding the specific RPM name, so if I end up splitting the package
later it is not affected)
On a related note, the packaging guidelines is rather out of date:
I have a minor PR for fixing the link back to the main guidelines:
but found the example spec there really obsolete; I ended up basing my
spec on jjames' ocaml-menhir.
Likewise, the spec generated by `rpmdev-newspec -t ocaml` is out of
date and roughly corresponds with the spec in the packaging guidelines.
Is there an interest in revamping the documentation and template? Maybe
ship a separate template for ocaml-dune for projects that use dune as
as its build system?
Michel Alexandre Salim