On Thu, Dec 12, 2019 at 11:01:02AM +0100, Vincent Danjean wrote: > [resend to the good (cloned) bug, sorry for the message in the original bug, > it was a mistake] > > Hi, > > On Thu, 5 Dec 2019 11:12:56 +0000 "Richard W.M. Jones" <rjo...@redhat.com> > wrote: > > I believe this is a new bug and nothing much to do with: > > https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=775761 > > So I just cloned the bug into #946594 in order to manage the bug reported > by Pierre Neyron. > > > However about this new bug, what is supposed to happen is that > > common/mlstdutils/guestfs_config.ml is generated by ./configure with > > the correct @host_cpu@ substituted. If that's not happening then it's > > a build issue on Debian of some kind. > > I closely look at the build system with him. It occurs that : > - the Debian package use an 'out-of-source' build (ie the build is > *not* done into the source directories) > - Debian applies some patches to archive this > - but the current rules about guestfs_config.ml especially target > the source directory (whereas ./configure generates it in the > build directory, as for all other configure generated files) > > Easy test : > - remove common/mlstdutils/guestfs_config.ml in the source directory > - build the Debian package (dpkg-buildpackage -us -uc) > => the build fails with: > ocamlfind ocamlopt -g -annot -safe-string -warn-error CDEFLMPSUVYZX+52-3 > -ccopt '-g -O2 > -fdebug-prefix-map=/home/polaris/danjean/libguestfs/libguestfs=. > -fstack-protector-strong -Wformat -Werror=format-security > -fno-strict-overflow -Wno-strict-overflow' -package str,unix -I . -c > ../../../../common/mlstdutils/std_utils.ml -o std_utils.cmx > File "_none_", line 1: > Warning 58: no cmx file was found in path for module Guestfs_config, and its > interface was not compiled with -opaque > > => the guestfs_config.ml generated in the build directory is not > taken into account. > => the Debian package is currently using the provided (x86-64) > guestfs_config.ml in the source directory and ignore the generated > one (in the build directory) on all architectures > => the Debian package is correctly built only on x86-64... > > The root of the problem is in subdir-rules.mk at the root of the > package. I found a fix the seems to work: > ============= > --- subdir-rules.mk 2019-12-11 15:45:01.274572831 +0100 > +++ subdir-rules.mk.fixed 2019-12-11 15:44:23.738419530 +0100 > @@ -79,12 +79,12 @@ > guestfs_am_v_jar_ = $(guestfs_am_v_jar_@AM_DEFAULT_V@) > guestfs_am_v_jar_0 = @echo " JAR " $@; > > -%.cmi: $(srcdir)/%.mli > +%.cmi: %.mli > $(guestfs_am_v_ocamlcmi)$(OCAMLFIND) ocamlc $(OCAMLFLAGS) > $(OCAMLPACKAGES) -c $< -o $@ > -%.cmo: $(srcdir)/%.ml > +%.cmo: %.ml > $(guestfs_am_v_ocamlc)$(OCAMLFIND) ocamlc $(OCAMLFLAGS) > $(OCAMLPACKAGES) -c $< -o $@ > if HAVE_OCAMLOPT > -%.cmx: $(srcdir)/%.ml > +%.cmx: %.ml > $(guestfs_am_v_ocamlopt)$(OCAMLFIND) ocamlopt $(OCAMLFLAGS) > $(OCAMLPACKAGES) -c $< -o $@ > endif > ============= > > The idea is to let "make" to check itself in the build directory and then > in the source directory by not forcing a path and using the VPATH feature > (as for all internal automake rules)
Pino, Hillu, what do you think? Rich. > Looking at the ChangeLog, I saw that the build rules about cmi/cmo/cmx/... > seems tricky, so I would prefer that someone that know ocaml builds checks > my patch. > In any case, the Debian build is broken. > As upstream does not seem to support out-of-source build, this problem > should > not appear for it. So the fix can go into a debian patch (even if I think that > my patch is a no-op for a 'in-source' build) > > Regards, > Vincent > > > > Rich. > > > > -- > > Richard Jones, Virtualization Group, Red Hat > > http://people.redhat.com/~rjones > > Read my programming and virtualization blog: http://rwmj.wordpress.com > > Fedora Windows cross-compiler. Compile Windows programs, test, and > > build Windows installers. Over 100 libraries supported. > > http://fedoraproject.org/wiki/MinGW > > > > > > > > -- > Vincent Danjean GPG key ID 0xD17897FA vdanj...@debian.org > GPG key fingerprint: 621E 3509 654D D77C 43F5 CA4A F6AE F2AF D178 97FA > Unofficial pkgs: http://moais.imag.fr/membres/vincent.danjean/deb.html > APT repo: deb http://people.debian.org/~vdanjean/debian unstable main > > -- > Vincent Danjean GPG key ID 0xD17897FA vdanj...@debian.org > GPG key fingerprint: 621E 3509 654D D77C 43F5 CA4A F6AE F2AF D178 97FA > Unofficial pkgs: http://moais.imag.fr/membres/vincent.danjean/deb.html > APT repo: deb http://people.debian.org/~vdanjean/debian unstable main > > -- > Vincent Danjean GPG key ID 0xD17897FA vdanj...@debian.org > GPG key fingerprint: 621E 3509 654D D77C 43F5 CA4A F6AE F2AF D178 97FA > Unofficial pkgs: http://moais.imag.fr/membres/vincent.danjean/deb.html > APT repo: deb http://people.debian.org/~vdanjean/debian unstable main > > -- > Vincent Danjean GPG key ID 0xD17897FA vdanj...@debian.org > GPG key fingerprint: 621E 3509 654D D77C 43F5 CA4A F6AE F2AF D178 97FA > Unofficial pkgs: http://moais.imag.fr/membres/vincent.danjean/deb.html > APT repo: deb http://people.debian.org/~vdanjean/debian unstable main > > -- > Vincent Danjean GPG key ID 0xD17897FA vdanj...@debian.org > GPG key fingerprint: 621E 3509 654D D77C 43F5 CA4A F6AE F2AF D178 97FA > Unofficial pkgs: http://moais.imag.fr/membres/vincent.danjean/deb.html > APT repo: deb http://people.debian.org/~vdanjean/debian unstable main > > -- > Vincent Danjean GPG key ID 0xD17897FA vdanj...@debian.org > GPG key fingerprint: 621E 3509 654D D77C 43F5 CA4A F6AE F2AF D178 97FA > Unofficial pkgs: http://moais.imag.fr/membres/vincent.danjean/deb.html > APT repo: deb http://people.debian.org/~vdanjean/debian unstable main > > -- > Vincent Danjean GPG key ID 0xD17897FA vdanj...@debian.org > GPG key fingerprint: 621E 3509 654D D77C 43F5 CA4A F6AE F2AF D178 97FA > Unofficial pkgs: http://moais.imag.fr/membres/vincent.danjean/deb.html > APT repo: deb http://people.debian.org/~vdanjean/debian unstable main > > -- > Vincent Danjean GPG key ID 0xD17897FA vdanj...@debian.org > GPG key fingerprint: 621E 3509 654D D77C 43F5 CA4A F6AE F2AF D178 97FA > Unofficial pkgs: http://moais.imag.fr/membres/vincent.danjean/deb.html > APT repo: deb http://people.debian.org/~vdanjean/debian unstable main > > -- > Vincent Danjean GPG key ID 0xD17897FA vdanj...@debian.org > GPG key fingerprint: 621E 3509 654D D77C 43F5 CA4A F6AE F2AF D178 97FA > Unofficial pkgs: http://moais.imag.fr/membres/vincent.danjean/deb.html > APT repo: deb http://people.debian.org/~vdanjean/debian unstable main > > -- > Vincent Danjean GPG key ID 0xD17897FA vdanj...@debian.org > GPG key fingerprint: 621E 3509 654D D77C 43F5 CA4A F6AE F2AF D178 97FA > Unofficial pkgs: http://moais.imag.fr/membres/vincent.danjean/deb.html > APT repo: deb http://people.debian.org/~vdanjean/debian unstable main -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-p2v converts physical machines to virtual machines. Boot with a live CD or over the network (PXE) and turn machines into KVM guests. http://libguestfs.org/virt-v2v