#6486 Add side tag in rawhide for OCaml 4.03 rebuild
Closed: Fixed None Opened 7 years ago by rjones.

OCaml 4.03 has been out for a while. We should add it to Rawhide. This requires building every OCaml-dependent package (around 100 of them).

Amongst the new features which affect Fedora are new upstream s/390x and POWER code generators.

For this, I need a side tag, eg. "f26-ocaml"

(See also previous request in F24:
https://fedorahosted.org/rel-eng/ticket/6217)


Given the POWER code generator implications, would be possible to delay this until powerpc is merged into the primary koji instance? That would prevent even more shadow build catch up issues, limiting it to only s390x for that.

As I understand things, powerpc should be merged into the primary koji within the next few weeks.

Do you have a timescale for that? -- EDIT: Rereading I see "next few weeks".

My other worry is that I know the new POWER code gen is full of bugs and likely won't work sufficiently for us to build many packages, thus preventing the whole update. You might say that's a feature not a bug, and I'd sort of agree, but debugging the code gen is from past experience extremely time-consuming. I'd rather have the option to leave out POWER and let upstream/IBM fix it.

Replying to [comment:3 rjones]:

Do you have a timescale for that? -- EDIT: Rereading I see "next few weeks".

Correct on the Power64 merge, I would prefer that as well, I was hoping to do it this week but ATM it looks like it'll be next week.

My other worry is that I know the new POWER code gen is full of bugs and likely won't work sufficiently for us to build many packages, thus preventing the whole update. You might say that's a feature not a bug, and I'd sort of agree, but debugging the code gen is from past experience extremely time-consuming. I'd rather have the option to leave out POWER and let upstream/IBM fix it.

By "let upstream/IBM fix it" basically translates to "make a whole lot of extra work for the Alternate Arches team so they have to chase their tail to catch up. We can engage with IBM here and I'd sooner it's fixed upstream BEFORE is lands in Fedora so that it's less work overall for everyone involved.

Well we can add ExcludeArch: %{power} to packages that don't build/work on POWER. I don't know the full processes here, but I didn't think that involved any extra work for the altarches team, except maybe to monitor the excludearch tracker bug.

Replying to [comment:5 rjones]:

Well we can add ExcludeArch: %{power} to packages that don't build/work on POWER. I don't know the full processes here, but I didn't think that involved any extra work for the altarches team, except maybe to monitor the excludearch tracker bug.

That would depend on the dependency chains. It's now how it's meant to work. Can you please email the PowerPC list with details of what's broken to see if we can't get it fixed first. F-26 mass rebuild isn't due until early Feb so we still have a decent window to land all this.

I don't have those details at the moment. I just observed the compiler crashing on POWER when compiling some fundamental ocaml-* packages, last time I tried this.

If doing a "dry run" of builds outside koji would make sense, let me know and we will try to help.

Replying to [comment:7 rjones]:

I don't have those details at the moment. I just observed the compiler crashing on POWER when compiling some fundamental ocaml-* packages, last time I tried this.

So that basically equates with you then wanting to exclude Power64 from the entire ocaml stack. In a word, no that's not how this works.

I don't think that is a fair characterization. I have offered to fix the POWER backend, and indeed I have done that in the past ([1] [2] [3] [4]) so I'm capable of doing that. I'm saying that it's extremely time-consuming to fix these kinds of bugs, and in the interim to avoid blocking new OCaml on the main platform that most people use, we should use ExcludeArch if necessary.

[1] https://git.fedorahosted.org/cgit/fedora-ocaml.git/commit/?h=fedora-24-4.02&id=3f2be69df7fa930e0584abc217ef9d06b1155696

[2] https://git.fedorahosted.org/cgit/fedora-ocaml.git/commit/?h=fedora-24-4.02&id=3aff352bb01751cddeb2b18c26576337d1b46c90

[3] https://git.fedorahosted.org/cgit/fedora-ocaml.git/commit/?h=fedora-24-4.02&id=8f8713a113a218e7d7203c1575e8302f49821f41

[4] https://git.fedorahosted.org/cgit/fedora-ocaml.git/commit/?h=fedora-24-4.02&id=351e776744c56bf6c4afb75e8e9f510e89c15233

What is the status of this request?

{{{
$ koji add-tag f26-ocaml --parent=f26-build --arches=aarch64,armv7hl,i686,ppc64,ppc64le,x86_64
$ koji add-target f26-ocaml f26-ocaml
}}}

side target has been added, please let us know when we can merge the builds back in.

you can do your builds with
{{{
$ fedpkg build --target=f26-ocaml
}}}

Just two comments:

ocamlbuild was spun out of the ocaml package, so this depends on the following package review: https://bugzilla.redhat.com/show_bug.cgi?id=1391950

I've now built the core group of OCaml packages and so far I've not seen any of the POWER crashes that I saw before (I'm using a newer version of OCaml since I tried last time). So - touch wood - looks like the major problems are over. The core packages also compiled fine on aarch64.

I think we are ready to fold back the f26-ocaml tag into Rawhide now.

There were a very small number of packages that could not be built, but I have filed bugs against them. The only package that was a problem is ocaml-camlp5 -- I am waiting on upstream for fixes to work with OCaml 4.04.

There were no problems that we found with POWER, except in one library, and that turned out to
be a problem with undefined behaviour in C code.

rjones: did you see the query from Dan on s390x?

Yup. I don't think that prevents us moving these packages into Fedora, since
although we'd have to rebuild them all again with s390x enabled, crucially
that should not change any of the (non-s390x) dependencies.

Replying to [comment:16 rjones]:

Yup. I don't think that prevents us moving these packages into Fedora, since
although we'd have to rebuild them all again with s390x enabled, crucially
that should not change any of the (non-s390x) dependencies.

It makes it much harder for the secondary maintainers to do this with koji-shadow the standard automated way we deal with that so it's less work (like an order of magnitude) if we can get the s390x bits in the primary build in now before it's merged.

I have just compiled the core OCaml packages and several important libraries on s390x, and
there were zero issues.

if we can get the s390x bits in the primary build in now before it's merged.

Is there some way I can build these into the f26-ocaml tag now?

Replying to [comment:18 rjones]:

I have just compiled the core OCaml packages and several important libraries on s390x, and
there were zero issues.

if we can get the s390x bits in the primary build in now before it's merged.

Is there some way I can build these into the f26-ocaml tag now?

if you will build the s390-enabled packages in the primary f26-ocaml tag, I can then update koji-shadow config and let it build the whole f26-ocaml tag in s390 koji

I'm not clear where we are on this. I've added s390x as a native arch to:

http://pkgs.fedoraproject.org/cgit/rpms/ocaml-srpm-macros.git/commit/?id=37a3249779ef09b90eb491d13c1e23b69d11b9b5

and that package is also built in f26-ocaml.

I test-built the core OCaml SRPMS and a few libraries on the s390x machine. As far as
I know I cannot do a real s390x build in Koji.

Is that enough now?

Replying to [comment:20 rjones]:

I'm not clear where we are on this. I've added s390x as a native arch to:

http://pkgs.fedoraproject.org/cgit/rpms/ocaml-srpm-macros.git/commit/?id=37a3249779ef09b90eb491d13c1e23b69d11b9b5

and that package is also built in f26-ocaml.

I test-built the core OCaml SRPMS and a few libraries on the s390x machine. As far as
I know I cannot do a real s390x build in Koji.

Is that enough now?

It is, I've rebuilt all of the primary f26-ocaml tag in s390 koji, got 2 failures (bug reports will follow) and a number of skipped pkgs due ExcludeArch/ExclusiveArch that I'm going to review. Overall the result is good.

Done, target is removed

{{{
Checking 109 builds...
Tagging 0install-2.11-2.fc26 into f26
Tagging alt-ergo-1.01-3.fc26 into f26
Tagging apron-0.9.11-2.1096.svn20160531.fc26 into f26
Tagging bibtex2html-1.97-10.fc26 into f26
Tagging brltty-5.4-5.fc26 into f26
Tagging caml-crush-1.0.6-4.fc26 into f26
Tagging cduce-0.6.0-18.fc26 into f26
Tagging coccinelle-1.0.6-3.fc26 into f26
Tagging coq-8.5pl3-2.fc26 into f26
Tagging emacs-common-tuareg-2.0.10-1.fc26 into f26
Tagging flocq-2.5.2-3.fc26 into f26
Tagging frama-c-1.13-5.fc26 into f26
Tagging freetennis-0.4.8-37.fc26 into f26
Tagging gappalib-coq-1.3.1-4.fc26 into f26
Tagging graphviz-2.38.0-40.fc26 into f26
Tagging guestfs-browser-0.2.3-4.fc26 into f26
Tagging haxe-3.2.1-4.fc26 into f26
Tagging hevea-2.29-2.fc26 into f26
Tagging hivex-1.3.13-8.fc26 into f26
Tagging libguestfs-1.35.14-2.fc26 into f26
Tagging mldonkey-3.1.5-10.fc26 into f26
Tagging monotone-viz-1.0.2-17.fc26 into f26
Tagging nbdkit-1.1.12-3.fc26 into f26
Tagging ocaml-4.04.0-2.fc26 into f26
Tagging ocaml-SDL-0.9.1-16.fc26 into f26
Tagging ocaml-ancient-0.9.0-28.fc26 into f26
Tagging ocaml-augeas-0.5-20.fc26 into f26
Tagging ocaml-base64-2.1.2-1.fc26 into f26
Tagging ocaml-bin-prot-2.0.9-22.fc26 into f26
Tagging ocaml-biniou-1.0.9-19.fc26 into f26
Tagging ocaml-bisect-1.3-14.fc26 into f26
Tagging ocaml-bitstring-2.0.4-17.fc26 into f26
Tagging ocaml-cairo-0.4.7-0.10.gitbe5a298.fc26 into f26
Tagging ocaml-calendar-2.04-5.fc26 into f26
Tagging ocaml-camlidl-1.05-36.fc26 into f26
Tagging ocaml-camlimages-4.2.2-1.fc26 into f26
Tagging ocaml-camlp4-4.04.0-0.1.gitc32e8970.fc26 into f26
Tagging ocaml-camomile-0.8.5-18.fc26 into f26
Tagging ocaml-cil-1.7.3-27.fc26 into f26
Tagging ocaml-config-file-1.2-10.fc26 into f26
Tagging ocaml-cppo-1.4.0-1.fc26 into f26
Tagging ocaml-cryptokit-1.11-1.fc26 into f26
Tagging ocaml-csv-1.3.1-16.fc26 into f26
Tagging ocaml-curl-0.7.9-1.fc26 into f26
Tagging ocaml-curses-1.0.3-33.fc26 into f26
Tagging ocaml-dbus-0.30-5.fc26 into f26
Tagging ocaml-deriving-0.1.2-4.fc26 into f26
Tagging ocaml-easy-format-1.0.2-15.fc26 into f26
Tagging ocaml-expat-0.9.1-40.fc26 into f26
Tagging ocaml-extlib-1.7.0-1.fc26 into f26
Tagging ocaml-facile-1.1-38.fc26 into f26
Tagging ocaml-fileutils-0.5.1-1.fc26 into f26
Tagging ocaml-findlib-1.6.3-2.fc26 into f26
Tagging ocaml-gettext-0.3.5-9.fc26 into f26
Tagging ocaml-gsl-1.19.1-1.fc26 into f26
Tagging ocaml-json-static-0.9.8-25.fc26 into f26
Tagging ocaml-json-wheel-1.0.6-28.fc26 into f26
Tagging ocaml-lablgl-1.05-19.fc26 into f26
Tagging ocaml-lablgtk-2.18.5-1.fc26 into f26
Tagging ocaml-labltk-8.06.2-1.fc26 into f26
Tagging ocaml-lacaml-9.1.1-1.fc26 into f26
Tagging ocaml-libvirt-0.6.1.4-13.fc26 into f26
Tagging ocaml-lwt-2.5.0-6.fc26 into f26
Tagging ocaml-menhir-20160825-2.fc26 into f26
Tagging ocaml-mikmatch-1.0.9-0.1.git8a892254.fc26 into f26
Tagging ocaml-mlgmpidl-1.2.1-0.19.20150204.fc26 into f26
Tagging ocaml-mysql-1.2.1-1.fc26 into f26
Tagging ocaml-newt-0.9-30.fc26 into f26
Tagging ocaml-ocamlbuild-0.9.3-5.fc26 into f26
Tagging ocaml-ocamlgraph-1.8.7-2.fc26 into f26
Tagging ocaml-ocamlnet-4.1.2-1.fc26 into f26
Tagging ocaml-omake-0.9.8.6-0.rc1.fc26.23 into f26
Tagging ocaml-openin-20070524-34.fc26 into f26
Tagging ocaml-ounit-2.0.0-19.fc26 into f26
Tagging ocaml-p3l-2.03-30.fc26 into f26
Tagging ocaml-pa-monad-6.0-28.fc26 into f26
Tagging ocaml-pcre-7.2.3-1.fc26 into f26
Tagging ocaml-perl4caml-0.9.5-47.fc26 into f26
Tagging ocaml-pgocaml-1.6-19.fc26 into f26
Tagging ocaml-postgresql-4.0.1-1.fc26 into f26
Tagging ocaml-preludeml-0.1-0.38.20100314.fc26 into f26
Tagging ocaml-pxp-1.2.8-1.fc26 into f26
Tagging ocaml-react-1.2.0-3.fc26 into f26
Tagging ocaml-res-4.0.7-1.fc26 into f26
Tagging ocaml-sexplib-7.0.5-21.fc26 into f26
Tagging ocaml-sqlite-4.0.6-1.fc26 into f26
Tagging ocaml-srpm-macros-4-1.fc26 into f26
Tagging ocaml-ssl-0.5.2-4.fc26 into f26
Tagging ocaml-tplib-1.3-22.fc26 into f26
Tagging ocaml-type-conv-3.0.5-22.fc26 into f26
Tagging ocaml-ulex-1.1-31.fc26 into f26
Tagging ocaml-xml-light-2.3-0.19.svn234.fc26 into f26
Tagging ocaml-xmlm-1.2.0-17.fc26 into f26
Tagging ocaml-xmlrpc-light-0.6.1-33.fc26 into f26
Tagging ocaml-yojson-1.1.8-17.fc26 into f26
Tagging ocaml-zarith-1.4.1-3.fc26 into f26
Tagging ocaml-zip-1.06-2.fc26 into f26
Tagging ocamldsort-0.16.0-1.fc26 into f26
Tagging sks-1.1.6-2.fc26 into f26
Tagging supermin-5.1.17-2.fc26 into f26
Tagging unison213-2.13.16-29.fc26 into f26
Tagging unison227-2.27.157-5.fc26 into f26
Tagging virt-top-1.0.8-19.fc26 into f26
Tagging why-2.35-21.fc26 into f26
Tagging why3-0.87.2-4.fc26 into f26
Tagging wyrd-1.4.5-12.fc26 into f26
Tagging xen-4.7.1-1.fc26 into f26
Tagging z3-4.4.1-8.fc26 into f26
Tagging zenon-0.8.2-4.fc26 into f26
Tagging 109 builds.
Tagged 109 builds.
}}}

Metadata Update from @rjones:
- Issue set to the milestone: Fedora 25 Alpha

7 years ago

Login to comment on this ticket.

Metadata