Happy holidays, OCaml packagers!
I've had new versions of various packages piling up for awhile now. I've finally got time to deal with them, and have played the usual game of "if I have to rebuild this anyway, I may as well update it to its latest upstream version". I would like to do the following builds some time this week, for Rawhide only. Let me know if that will interfere with anything you have planned. You can see the planned builds in this COPR repo:
https://copr.fedorainfracloud.org/coprs/jjames/OCaml/
Builds with existing pull requests: - ocaml-biniou (https://src.fedoraproject.org/rpms/ocaml-biniou/pull-request/1) - ocaml-cppo (https://src.fedoraproject.org/rpms/ocaml-cppo/pull-request/2) - ocaml-yojson (https://src.fedoraproject.org/rpms/ocaml-yojson/pull-request/1)
Updates for packages that I maintain or comaintain: - alt-ergo 2.3.0 - ocaml-atd (same version, but extensive updates; also, claim this package) - ocaml-bin-prot 0.15.0 - ocaml-lablgtk 2.18.12 - ocaml-lablgtk3 3.1.2 - ocaml-menhir 20211223 - ocaml-ppx-fields-conv 0.15.0 - ocaml-ppx-inline-test 0.15.0 - ocaml-ppx-variants-conv 0.15.0 - ocaml-ppxlib 0.24.0 - ocaml-psmt2-frontend 0.4.0
Updates for packages that I do not maintain: - coccinelle (same version, but some spec file upgrades) - ocaml-migrate-parsetree 2.3.0 - ocaml-mlgmpidl 1.2.14 - ocaml-pcre 7.5.0 - ocaml-sedlex 2.5 - ocaml-xml-light 2.4 - ocaml-xmlm 1.3.0 - ocaml-zip 1.11
Simple rebuilds for packages that I maintain or comaintain: - apron - coq - frama-c - ocaml-bisect-ppx - ocaml-ocamlgraph - ocaml-ppx-assert - ocaml-ppx-base - ocaml-ppx-cold - ocaml-ppx-compare - ocaml-ppx-custom-printf - ocaml-ppx-deriving - ocaml-ppx-deriving-yojson - ocaml-ppx-enumerate - ocaml-ppx-hash - ocaml-ppx-here - ocaml-ppx-js-style - ocaml-ppx-optcomp - ocaml-ppx-sexp-conv - ocaml-time-now - ocaml-tplib - ocaml-tyxml (fixes FTI in Rawhide) - why3
Simple rebuilds for packages that I do not maintain: - ocaml-camlimages - ocaml-dose3 - ocaml-lwt - ocaml-ocamlnet - opam
Regards,
On Mon, Dec 27, 2021 at 3:42 PM Jerry James loganjerry@gmail.com wrote:
I've had new versions of various packages piling up for awhile now. I've finally got time to deal with them, and have played the usual game of "if I have to rebuild this anyway, I may as well update it to its latest upstream version". I would like to do the following builds some time this week, for Rawhide only. Let me know if that will interfere with anything you have planned. You can see the planned builds in this COPR repo:
I have filed pull requests for updates other than simple rebuilds on packages I do not maintain:
- https://src.fedoraproject.org/rpms/coccinelle/pull-request/2 - https://src.fedoraproject.org/rpms/ocaml-atd/pull-request/1 - https://src.fedoraproject.org/rpms/ocaml-biniou/pull-request/1 - https://src.fedoraproject.org/rpms/ocaml-cppo/pull-request/2 - https://src.fedoraproject.org/rpms/ocaml-migrate-parsetree/pull-request/1 - https://src.fedoraproject.org/rpms/ocaml-mlgmpidl/pull-request/2 - https://src.fedoraproject.org/rpms/ocaml-pcre/pull-request/1 - https://src.fedoraproject.org/rpms/ocaml-sedlex/pull-request/1 - https://src.fedoraproject.org/rpms/ocaml-xml-light/pull-request/1 - https://src.fedoraproject.org/rpms/ocaml-xmlm/pull-request/1 - https://src.fedoraproject.org/rpms/ocaml-yojson/pull-request/1 - https://src.fedoraproject.org/rpms/ocaml-zip/pull-request/1
Regards,
On Tue, Dec 28, 2021 at 2:29 PM Jerry James loganjerry@gmail.com wrote:
I have filed pull requests for updates other than simple rebuilds on packages I do not maintain:
- https://src.fedoraproject.org/rpms/coccinelle/pull-request/2
- https://src.fedoraproject.org/rpms/ocaml-atd/pull-request/1
- https://src.fedoraproject.org/rpms/ocaml-biniou/pull-request/1
- https://src.fedoraproject.org/rpms/ocaml-cppo/pull-request/2
- https://src.fedoraproject.org/rpms/ocaml-migrate-parsetree/pull-request/1
- https://src.fedoraproject.org/rpms/ocaml-mlgmpidl/pull-request/2
- https://src.fedoraproject.org/rpms/ocaml-pcre/pull-request/1
- https://src.fedoraproject.org/rpms/ocaml-sedlex/pull-request/1
- https://src.fedoraproject.org/rpms/ocaml-xml-light/pull-request/1
- https://src.fedoraproject.org/rpms/ocaml-xmlm/pull-request/1
- https://src.fedoraproject.org/rpms/ocaml-yojson/pull-request/1
- https://src.fedoraproject.org/rpms/ocaml-zip/pull-request/1
All of these have been merged, the builds have been done, and the side tag is merging into Rawhide. If you see any FTBFS or FTI issues due to these builds, ping me and I will take care of them. Regards,
On Thu, Dec 30, 2021 at 9:25 PM Jerry James loganjerry@gmail.com wrote:
All of these have been merged, the builds have been done, and the side tag is merging into Rawhide. If you see any FTBFS or FTI issues due to these builds, ping me and I will take care of them. Regards,
I did not notice that the hash for ocamlx(Lwt_io) changed due to these builds, so several packages fail to install today. I will rebuild them if the maintainers don't beat me to it.
Hi Jerry,
On Mon, Dec 27, 2021 at 03:42:12PM -0700, Jerry James wrote:
Happy holidays, OCaml packagers!
Hope you had a good holiday!
Updates for packages that I maintain or comaintain:
- alt-ergo 2.3.0
- ocaml-atd (same version, but extensive updates; also, claim this package)
I reclaimed this, but I'll add you to the ACL.
Looking forward to the updates! I plan on resuming work packaging the Infer dependencies, but likely won't have time to get back to Ocaml packaging until after getting some work done for my CentOS Dojo talk next month.
Best regards,
On Sat, Jan 15, 2022 at 10:13 PM Michel Alexandre Salim salimma@fedoraproject.org wrote:
I reclaimed this, but I'll add you to the ACL.
Okay.
Looking forward to the updates! I plan on resuming work packaging the Infer dependencies, but likely won't have time to get back to Ocaml packaging until after getting some work done for my CentOS Dojo talk next month.
The updates are all in Rawhide. I've been working on the Infer dependencies in a local repo, with the idea of working out all of the kinks. I was thinking I would then create a COPR, and we could all actually *use* Infer as an rpm installation from there while we work on moving packages into Fedora a bit at a time.
Sadly, I've gotten stuck on core_kernel. It is not compatible with OCaml 4.13. I've been trying to work out how to fix it, but haven't succeeded yet.
I think the ocaml-octavius and ocaml-ppx-js-style packages are no longer needed. If I confirm that, I will give them to anybody who wants them, or retire them if nobody does.
Also, there is so much copied boilerplate between spec files that I think it is time to make a few rpm macros. I'm thinking:
- %dune_build: analogous to %make_build, %cmake_build, etc. This macro would: - Build the package with default flags. I suggest `%{?_smp_mflags} --verbose`. Also pass `--release` if the user does not give any `-p` arguments. - Build @install by default, but allow the user to substitute other targets. - If any stublibs are created, relink them with %{build_ldflags}. It would be better to make ocamlmklib link with Fedora linker flags in the first place.
- %dune_install: analogous to %make_install, %cmake_install, etc. This macro would: - Run `dune install --destdir=%{buildroot}` - Remove any odoc markers (files named `.dune-keep` below `_build/default/_doc/_html`) - Remove the directory named `/usr/doc` in the buildroot - Remove any `*.ml` files that have a matching `*.mli` file in the buildroot - Write out a file containing the names of all installed files, so we can write `%files -f <filename>`.
- %dune_check or %dune_test: analogous to %tox, etc.. This macro would: - Run `dune runtest` (maybe `--verbose`) - Pass `--release` if no `-p` arguments are given
We probably also want something that can parse ocamlbuild `*.install` files, which we could use to make `%files -f` work for (some) non-dune builds as well.
Finally, I believe I have discovered 2 rules for handling dependencies between OCaml packages. They are: - The BuildRequires match 1-to-1 with dependencies listed in the package's opam file. (OCaml dependencies only, of course. Those that interface with C libraries, for example, will have additional dependencies.) - The devel subpackage should have a Requires for each element of each "requires =" field in the generated META file.
I've been able to follow those 2 rules all the way up to core_kernel without needing to add any transitive OCaml BuildRequires to the spec files.
On Mon, Jan 17, 2022 at 5:20 PM Jerry James loganjerry@gmail.com wrote:
Sadly, I've gotten stuck on core_kernel. It is not compatible with OCaml 4.13. I've been trying to work out how to fix it, but haven't succeeded yet.
Just thought I would note that I got past this, and a couple more problems with incompatible versions. I am now wrestling with the Infer build itself, which really, really wants to compile llvm and clang from source. I think I will wait until the mass rebuild results are tagged into Rawhide (to avoid Release field conflicts), and then I will create the COPR I mentioned.
I think the ocaml-octavius and ocaml-ppx-js-style packages are no longer needed. If I confirm that, I will give them to anybody who wants them, or retire them if nobody does.
They are not needed by anything currently in Fedora, but turn out to be needed by another dependency of Infer, so we should keep them for now.
Also, there is so much copied boilerplate between spec files that I think it is time to make a few rpm macros. I'm thinking:
I'm going to work on this while the mass rebuild is going on. If anybody is interested in lending a hand, I would appreciate help. I have never delved into RPM macros very deeply before. Regards,
ocaml-devel@lists.fedoraproject.org