'ocamlfind install' doesn't like to install the same package if it is
already installed.  It will give errors like:

  ocamlfind: Package guestfs is already installed

or:

  ocamlfind: Conflict with file: /usr/lib64/ocaml/guestfs/mlguestfs.cmxa

Fix this by removing the old installed files before running
'ocamlfind install'.  An alternative would be to use
'ocamlfind uninstall', but this seems more direct.
---
 ocaml/Makefile.am            | 6 +++++-
 v2v/test-harness/Makefile.am | 6 +++++-
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/ocaml/Makefile.am b/ocaml/Makefile.am
index ea41377..ec190e4 100644
--- a/ocaml/Makefile.am
+++ b/ocaml/Makefile.am
@@ -190,7 +190,9 @@ depend: .depend
 
 SUFFIXES = .cmo .cmi .cmx .ml .mli .mll .mly
 
-# Do the installation by hand, because we want to run ocamlfind.
+# Run ocamlfind to perform the install.  ocamlfind refuses to install
+# the package if it is already installed, so remove the old package
+# first.
 data_hook_files = META *.so *.a *.cma *.cmi $(srcdir)/*.mli
 if HAVE_OCAMLOPT
 data_hook_files += *.cmx *.cmxa
@@ -199,6 +201,8 @@ endif
 install-data-hook:
        mkdir -p $(DESTDIR)$(OCAMLLIB)
        mkdir -p $(DESTDIR)$(OCAMLLIB)/stublibs
+       rm -rf $(DESTDIR)$(OCAMLLIB)/guestfs
+       rm -rf $(DESTDIR)$(OCAMLLIB)/stublibs/dllmlguestfs.so*
        $(OCAMLFIND) install \
          -ldconf ignore -destdir $(DESTDIR)$(OCAMLLIB) \
          guestfs \
diff --git a/v2v/test-harness/Makefile.am b/v2v/test-harness/Makefile.am
index c0723fd..7bba689 100644
--- a/v2v/test-harness/Makefile.am
+++ b/v2v/test-harness/Makefile.am
@@ -100,7 +100,9 @@ endif
 
 v2v_test_harness.cmi: $(top_builddir)/ocaml/guestfs.cmi
 
-# Do the installation by hand, because we want to run ocamlfind.
+# Run ocamlfind to perform the install.  ocamlfind refuses to install
+# the package if it is already installed, so remove the old package
+# first.
 data_hook_files = META *.so *.a *.cmi $(srcdir)/*.mli
 if !HAVE_OCAMLOPT
 data_hook_files += *.cmo *.cma
@@ -111,6 +113,8 @@ endif
 install-data-hook:
        mkdir -p $(DESTDIR)$(OCAMLLIB)
        mkdir -p $(DESTDIR)$(OCAMLLIB)/stublibs
+       rm -rf $(DESTDIR)$(OCAMLLIB)/v2v_test_harness
+       rm -rf $(DESTDIR)$(OCAMLLIB)/stublibs/dllv2v_test_harness.so*
        $(OCAMLFIND) install \
          -ldconf ignore -destdir $(DESTDIR)$(OCAMLLIB) \
          v2v_test_harness \
-- 
2.5.0

_______________________________________________
Libguestfs mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/libguestfs

Reply via email to