[Libguestfs] "make distcheck" failure

Jim Meyering jim at meyering.net
Tue Aug 28 16:33:34 UTC 2012


Richard W.M. Jones wrote:
> On Tue, Aug 28, 2012 at 05:46:49PM +0200, Jim Meyering wrote:
>> In Makefile.am files, installation-related rules
>> must honor the $(prefix) Makefile variable.  For example,
>> in many Makefiles you'll find files being installed to
>> $(DESTDIR)$(bindir), with these definitions:
>>
>>     bindir = ${exec_prefix}/bin
>>     exec_prefix = ${prefix}
>>
>> Currently, $(OCAMLLIB) (set from m4/ocaml.m4 by running $OCAMLC) is set
>> to /usr/lib64/ocaml for me.  If we could make it include $(exec_prefix),
>> that would solve this problem.
>
> I see.  Not an easy one to solve however.  The OCaml library path
> comes from running:
>
>   $OCAMLC -where

A slightly kludgey (pragmatic?) fix would be to transform the
current $OCAMLLIB by these in ocaml.m4:

  s,/usr/lib64/,$(exec_prefix)/lib64,
  s,/usr/lib/,$(exec_prefix)/lib,

However, that would work only if ocamlc is installed in the normal
system-wide location.  It would not work if you are using a version of
ocamlc that you installed using --prefix=$HOME/ocaml.  For cases like that
(where the above substitutions make no change), the easiest/safest would be
to abort the configure script.  Perhaps easier still, but not safe, would
be to allow the configure/build to proceed, but then "make distcheck"
could end up modifying files under $HOME/ocaml for those whose ocamlc
has a writable OCAMLLIB directory.

Currently, if root runs "make distcheck", I suspect it would put things in
$OCAMLLIB.  That would be rather antisocial, but maybe you have something
to abort a "make distcheck" when it's run by root?  I haven't tried that.

> This is not an (especially) peculiar OCaml thing.  For example we
> detect the Python library path using:
>
>   $PYTHON -c "import distutils.sysconfig; \
>               print (distutils.sysconfig.get_python_inc ());"
>
> This allows multiple parallel Python installations to get along on
> Debian.  The user just specifies the $PYTHON binary and everything
> works off that.  So I'm fairly sure the same bug exists in some
> Python, Perl and Ruby code in libguestfs too.
>
> Rich.




More information about the Libguestfs mailing list