libguestfs fails to build with Python 3.9.0a4: Error: Files /usr/lib64/ocaml/hivex/mlhivex.cmxa and /usr/lib64/ocaml/stdlib.cmxa make inconsistent assumptions over interface Stdlib (I have no idea what does this mean or how/if it is related to Python 3.9, most likely it isn't.) For the build logs, see: https://copr-be.cloud.fedoraproject.org/results/@python/python3.9/fedora-rawhide-x86_64/01258766-libguestfs/ For all our attempts to build libguestfs with Python 3.9, see: https://copr.fedorainfracloud.org/coprs/g/python/python3.9/package/libguestfs/ Testing and mass rebuild of packages is happening in copr. You can follow these instructions to test locally in mock if your package builds with Python 3.9: https://copr.fedorainfracloud.org/coprs/g/python/python3.9/ Let us know here if you have any questions. Python 3.9 will be included in Fedora 33. To make that update smoother, we're building Fedora packages with early pre-releases of Python 3.9. A build failure prevents us from testing all dependent packages (transitive [Build]Requires), so if this package is required a lot, it's important for us to get it fixed soon. We'd appreciate help from the people who know this package best, but if you don't want to work on this now, let us know so we can try to work around it on our side.
I think this happened because by chance your build happened while the ongoing OCaml 4.10.0 update was in progress. This would mean that you pick up OCaml packages compiled for different versions of the compiler, and you would see this error. (https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/FDK44345CTIHGCQ4BMVSG3AAFK5NRNR4/#R33NZS2XSYLSJSPX4Z7BB7DMVTRDNP5P) However what's strange is I cannot reproduce the problem myself even with identical package versions installed: $ rpm -qf /usr/lib64/ocaml/hivex/mlhivex.cmxa ocaml-hivex-devel-1.3.18-21.fc33.x86_64 $ rpm -qf /usr/lib64/ocaml/stdlib.cmxa ocaml-4.10.0-2.fc33.x86_64 $ make clean $ make # libguestfs build succeeds Does copr rebuild the Fedora packages (ie. not use the ones that we build in Fedora)? That's the only reason I can think why this might happen. Could you kick off another build now, since Fedora 33 should be completely consistent right now.
By the way in relation to Python 3.9, we have already tested libguestfs with the alpha versions upstream and don't anticipate any problems.
> Does copr rebuild the Fedora packages? Anything that runtime depends on a specific Python version is rebuilt in the copr. I can try another rebuild but we might need to rebuild the entire stack. > By the way in relation to Python 3.9, we have already tested libguestfs > with the alpha versions upstream and don't anticipate any problems. \o/ Thanks.
I'm pretty sure nothing in OCaml should depend on Python, but I guess the dependency might be indirect. If those packages did get rebuilt, the rebuilding them in alphabetical order wouldn't have worked (as you are a Red Hat associate, see my Engineering Tech Talk from Feb 24th about "goals" for the brutal details of rebuilding OCaml).
We rebuild them in pretty random order. OK, let's see, from the build.log, this comes from our copr, anything else comes from the Koji repo: createrepo_c x86_64 0.15.5-2.fc33 file-devel x86_64 5.38-2.fc33 gobject-introspection-devel x86_64 1.63.2-2.fc33 hivex x86_64 1.3.18-21.fc33 hivex-devel x86_64 1.3.18-21.fc33 libselinux-devel x86_64 3.0-3.fc33 libselinux-utils x86_64 3.0-3.fc33 libxml2-devel x86_64 2.9.10-4.fc33 lvm2 x86_64 2.03.07-2.fc33 ocaml-hivex-devel x86_64 1.3.18-21.fc33 perl-hivex x86_64 1.3.18-21.fc33 policycoreutils x86_64 3.0-2.fc33 python3-devel x86_64 3.9.0~a4-1.fc33 python3-libvirt x86_64 6.0.0-2.fc33 vim-minimal x86_64 2:8.2.236-2.fc33 afflib x86_64 3.7.18-8.fc33 brlapi x86_64 0.7.0-13.fc33 brltty x86_64 6.0-13.fc33 capstone x86_64 4.0.1-11.fc33 createrepo_c-libs x86_64 0.15.5-2.fc33 device-mapper x86_64 1.02.167-2.fc33 device-mapper-devel x86_64 1.02.167-2.fc33 device-mapper-event x86_64 1.02.167-2.fc33 device-mapper-event-libs x86_64 1.02.167-2.fc33 device-mapper-libs x86_64 1.02.167-2.fc33 dnf noarch 4.2.19-1.fc33 dnf-data noarch 4.2.19-1.fc33 dnf-plugins-core noarch 4.0.14-1.fc33 glusterfs x86_64 7.3-1.fc33 glusterfs-api x86_64 7.3-1.fc33 glusterfs-cli x86_64 7.3-1.fc33 glusterfs-client-xlators x86_64 7.3-1.fc33 glusterfs-fuse x86_64 7.3-1.fc33 glusterfs-libs x86_64 7.3-1.fc33 gobject-introspection x86_64 1.63.2-2.fc33 gpgme x86_64 1.13.1-6.fc33 iscsi-initiator-utils x86_64 6.2.1.0-1.git4440e57.fc33 iscsi-initiator-utils-iscsiuio x86_64 6.2.1.0-1.git4440e57.fc33 libblkid-devel x86_64 2.35.1-5.fc33 libcomps x86_64 0.1.14-4.fc33 libdnf x86_64 0.45.0-1.fc33 libfdt x86_64 1.5.1-4.fc33 libibumad x86_64 28.0-1.fc33 libibverbs x86_64 28.0-1.fc33 libmodulemd x86_64 2.9.1-1.fc33 libmount-devel x86_64 2.35.1-5.fc33 libnl3 x86_64 3.5.0-2.fc33 libproxy x86_64 0.4.15-18.fc33 librados2 x86_64 2:15.1.0-2.fc33 librbd1 x86_64 2:15.1.0-2.fc33 librdmacm x86_64 28.0-1.fc33 librepo x86_64 1.11.1-4.fc33 libreport-filesystem noarch 2.12.0-2.fc33 libsolv x86_64 0.7.11-2.fc33 libwsman1 x86_64 2.6.8-12.fc33 lttng-ust x86_64 2.11.0-4.fc33 lvm2-libs x86_64 2.03.07-2.fc33 ocaml-hivex x86_64 1.3.18-21.fc33 python-pip-wheel noarch 19.3.1-2.fc33 python-setuptools-wheel noarch 45.2.0-1.fc33 python3 x86_64 3.9.0~a4-1.fc33 python3-dateutil noarch 1:2.8.0-8.fc33 python3-distro noarch 1.4.0-5.fc33 python3-dnf noarch 4.2.19-1.fc33 python3-dnf-plugins-core noarch 4.0.14-1.fc33 python3-gpg x86_64 1.13.1-6.fc33 python3-hawkey x86_64 0.45.0-1.fc33 python3-libcomps x86_64 0.1.14-4.fc33 python3-libdnf x86_64 0.45.0-1.fc33 python3-libs x86_64 3.9.0~a4-1.fc33 python3-mako noarch 1.1.1-1.fc33 python3-markupsafe x86_64 1.1.1-5.fc33 python3-pyparsing noarch 2.4.6-2.fc33 python3-rpm x86_64 4.15.1-2.fc33.1 python3-rpm-generators noarch 10-4.fc32 python3-setuptools noarch 45.2.0-1.fc33 python3-six noarch 1.14.0-2.fc33 rdma-core x86_64 28.0-1.fc33 rpm-sign-libs x86_64 4.15.1-2.fc33.1 systemtap-sdt-devel x86_64 4.3-0.20200211git91ffb97ad335.fc33 xen-libs x86_64 4.13.0-4.fc33 xen-licenses x86_64 4.13.0-4.fc33 Anything you recognize as problematic? I can repoquery those to their source names and/or cross reference it with some other query (or provided list).
(In reply to Miro Hrončok from comment #5) > hivex x86_64 1.3.18-21.fc33 > hivex-devel x86_64 1.3.18-21.fc33 > ocaml-hivex-devel x86_64 1.3.18-21.fc33 While I haven't seen the build logs, it would certainly be a problem if this package had been built in the time between I updated ocaml and rebuilt the Fedora hivex pkg. You would certainly see errors such as the one above. It's a bit of special case because hivex provides both ocaml and python bindings, and you wanted to test new Python 3.9. So I don't honestly think anyone is wrong here, I think it was just very unfortunate that the timings happened to be bad w.r.t. OCaml. IOW there's nothing we need to do here about the process, but if it was possible for you to rebuild hivex and then libguestfs you should find this error goes away, but if you don't have time to do that then I recommend just closing the bug.
(In reply to Richard W.M. Jones from comment #6) > (In reply to Miro Hrončok from comment #5) > > hivex x86_64 1.3.18-21.fc33 > > hivex-devel x86_64 1.3.18-21.fc33 > > ocaml-hivex-devel x86_64 1.3.18-21.fc33 > > While I haven't seen the build logs, it would certainly be a problem if this > package had been built in the time between I updated ocaml and rebuilt > the Fedora hivex pkg. You would certainly see errors such as the one above. > > It's a bit of special case because hivex provides both ocaml and python > bindings, and you wanted to test new Python 3.9. So I don't honestly think > anyone is wrong here, I think it was just very unfortunate that the > timings happened to be bad w.r.t. OCaml. Rebuilding hivex. Thanks for the hint. > IOW there's nothing we need to do here about the process, but if > it was possible for you to rebuild hivex and then libguestfs you should > find this error goes away, but if you don't have time to do that then I > recommend just closing the bug. It's important for us to have real data in copr (especially since we have just now updated from a3 to a4).
Indeed, rebuilding hivex first and then libguestfs solved the problem. Thank you for your help!