Hello OCaml packagers!
There is now a COPR repo showing off what the new OCaml macros can do:
https://copr.fedorainfracloud.org/coprs/jjames/Infer/
Yes, that's the same COPR repo I just mentioned on fedora-devel-list.
I'm interested in feedback. Things to note:
1. I basically did a full review on each package. This has taken a
few months. In the process, I have identified lots of incorrect
License tags and found other ways the spec files could be improved or
simplified. If your OCaml package isn't in the COPR repo, that means
I didn't see anything in the spec file that ought to be changed.
2. I've abandoned the use of odoc to build documentation. Richard
Jones pointed out that odoc has been a big source of dependency loops,
for one thing. For another, we can't really take advantage of odoc's
crosslinking capabilities without doing bootstrap builds for dozens of
packages until we can build odoc, then building everything a second
time to generate the documentation. Finally, the documentation is
generally available online anyway. Does anybody object to discarding
the odoc-generated documentation?
3. I've moved away from using %srcname or %libname macros. As Miro
has been pointing out on fedora-devel-list for some time, those macros
seem to obscure more than they help.
4. If you want to see how all of these OCaml packages are related to
each other, take a look at one of these:
https://jamezone.org/pleasure/software/Fedora/infer.dot
https://jamezone.org/pleasure/software/Fedora/infer.pdf
This graph shows the "build before" order. That is, if there is an
arrow from A to B, then A must be built before B.
Legend:
Black node: package is in Fedora
Green node: package has been submitted for review
Red node: package is not in Fedora
Solid black line: Mandatory build requirement
Dashed black line: Optional build requirement
Solid blue line: Test requirement
Solid green line: Documentation requirement
5. Packages that are no longer used after the changes in the repo are
made. We can retire these unless someone has another need for them:
- ocaml-migrate-parsetree
- ocaml-seq
- ocaml-uuidm
6. Many leaf packages contain useful binaries in their own right, or
are used by non-OCaml parts of Fedora. These are the leaf packages
whose usefulness is unknown to me. If nobody is actively using these,
we can think about retiring them:
- ocaml-ancient
- ocaml-augeas
- ocaml-calendar
- ocaml-camlimages
- ocaml-cil
- ocaml-csv
- ocaml-curl
- ocaml-curses
- ocaml-dbus
- ocaml-expat
- ocaml-facile
- ocaml-gsl
- ocaml-lacaml
- ocaml-mysql
- ocaml-newt
- ocaml-obuild
- ocaml-omake
- ocaml-perl4caml
- ocaml-postgresql
- ocaml-res
- ocaml-SDL, and ocaml-lablgl too
- ocaml-ssl
- ocaml-xmlrpc-light
- ocamlify
- ocamlmod
If this looks good, then I will start making pull requests, starting
from the top of that graph in #4 and work my way downward. Be warned
that some of the proposed changes require coordination between
multiple packages.
Regards,
--
Jerry James
http://www.jamezone.org/