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.
Rich.
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming blog: http://rwmj.wordpress.com
Fedora now supports 80 OCaml packages (the OPEN alternative to F#)
http://cocan.org/getting_started_with_ocaml_on_red_hat_and_fedora