Hilko Bengen
2013-May-28 18:44 UTC
[Libguestfs] hivex: revert much of " Build and test Perl bindings out-of-tree." (887466794a40f57b84ce32524e1a650d6674c7e6)?
While trying to build the official Debian packages for libguestfs 1.22,
I noticed that instead of working around ExtUtils::MakeMaker's
limitations, I had made quite a mess of building the Perl bindings. I
have tried from different sides to fix things, but could not get it
quite right:
- EU::MM expects Makefile.PL to be in the same directory as the generated
Makefile (We work around that using sed.)
- In principle, there seem to be two ways to do things:
1. Call make -f builddir/Makefile-pl from srcdir (that's what we do
now), override INST_*. Problems with this:
- XS is still built in srcdir.
- there is actually code in ExtUtils::Install which is used from the
generated Makefile-pl that bases its decisions where to install
*.pm files on whether there are any files within ./blib/arch/
(hard-coded)! I have found no way to override this.
2. Call make -f Makefile-pl from builddir. I tried that and thought
that I would be able to patch absolute paths for source files
(*.xs, lib/*) and generated files (*.c, *.xs, blib/*) into the
generated Makefile-pl. Much of a perfectly good weekend went to
waste over that attempt.
I realized that I was actively working against ExtUtils::MakeMaker's
design. Separating source and build trees has never been a concern. Even
if I got it right once, I'd expect things to break in interesting ways
in the future.
>From a look at the documentation, Module::Build does not seem to have a
solution, either.
I give up and propose that we go back to the hackish, yet simple
previous solution and adopt that for libguestfs as well:
-[ $(srcdir) != $(builddir) ] && cp -rsu $(abs_srcdir)/.
$(builddir)/.
I agree that this is ugly, but works and it won't hurt when building
libguestfs from within the source directory.
Cheers,
-Hilko
Richard W.M. Jones
2013-May-28 20:44 UTC
[Libguestfs] hivex: revert much of " Build and test Perl bindings out-of-tree." (887466794a40f57b84ce32524e1a650d6674c7e6)?
Is no patch attached or following this message? I don't seem to see it in my email nor on the mailing list archives on the web. Anyway, a straightforward 'git revert' is fine, ACKed. If the patch is more involved than that, I would prefer to see it first. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones virt-df lists disk usage of guests without needing to install any software inside the virtual machine. Supports Linux and Windows. http://people.redhat.com/~rjones/virt-df/
Hilko Bengen
2013-May-28 23:05 UTC
Re: [Libguestfs] hivex: revert much of " Build and test Perl bindings out-of-tree." (887466794a40f57b84ce32524e1a650d6674c7e6)?
* Richard W.M. Jones:> Is no patch attached or following this message? I don't seem to see it > in my email nor on the mailing list archives on the web. > > Anyway, a straightforward 'git revert' is fine, ACKed.No, other than expressing a bit of frustration, I just wanted to know if also using that symlink hack for libguestfs would be okay. Cheers, -Hilko
Apparently Analagous Threads
- hivex: revert much of " Build and test Perl bindings out-of-tree." (887466794a40f57b84ce32524e1a650d6674c7e6)?
- Re: hivex: revert much of " Build and test Perl bindings out-of-tree." (887466794a40f57b84ce32524e1a650d6674c7e6)?
- [PATCH 1/3] hivex: Use OCaml bytecode compiler for caml_raise_with_args check
- hivex: Test failure for Perl, OCaml, Python bindings on sparc
- [PATCH 1/3] out of tree build: erlang