[Libguestfs] "make distcheck" failure

Jim Meyering jim at meyering.net
Tue Aug 28 15:46:49 UTC 2012


Richard W.M. Jones wrote:

> On Tue, Aug 28, 2012 at 11:59:11AM +0200, Jim Meyering wrote:
>> Hi Rich,
>>
>> I ran these commands as non-root:
>>
>>     ./autogen.sh && make && make distcheck
>>
>> It got most of the way through, but failed in the VPATH part
>> while rebuilding from a ./_build subdir, like this:
>>
>>     make[4]: Entering directory `/h/j/w/co/hivex/hivex-1.3.6/_build/ocaml'
>>     mkdir -p /usr/lib64/ocaml
>>     mkdir -p /usr/lib64/ocaml/stublibs
>>     ocamlfind install \
>>       -ldconf ignore -destdir /usr/lib64/ocaml \
>>       hivex \
>>       META *.so *.a *.cma *.cmi ../../ocaml/*.mli *.cmx *.cmxa
>>     ocamlfind: Cannot mkdir /usr/lib64/ocaml/hivex: Permission denied
>>     make[4]: *** [install-data-hook] Error 2
>>     make[4]: Leaving directory `/h/j/w/co/hivex/hivex-1.3.6/_build/ocaml'
>>     make[3]: *** [install-data-am] Error 2
>>     make[3]: Leaving directory `/h/j/w/co/hivex/hivex-1.3.6/_build/ocaml'
>>     make[2]: *** [install-am] Error 2
>>     make[2]: Leaving directory `/h/j/w/co/hivex/hivex-1.3.6/_build/ocaml'
>>     make[1]: *** [install-recursive] Error 1
>>     make[1]: Leaving directory `/h/j/w/co/hivex/hivex-1.3.6/_build'
>>     make: *** [distcheck] Error 1
>>
>> Obviously, it should not be trying to create directories under /usr.
>
> The rule in the Makefile.am is:
>
> install-data-hook:
>         mkdir -p $(DESTDIR)$(OCAMLLIB)
>         mkdir -p $(DESTDIR)$(OCAMLLIB)/stublibs
>         $(OCAMLFIND) install \
>           -ldconf ignore -destdir $(DESTDIR)$(OCAMLLIB) \
>           $(PACKAGE_NAME) \
>           $(install_files)
>
> So that must mean that DESTDIR is not being set.
>
> There are also environment variables that ocamlfind itself will use
> (see findlib.conf(5)).  Although they don't appear to be relevant here
> it may be worth looking at that man page.

Hi Rich,

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.




More information about the Libguestfs mailing list