Richard W.M. Jones
2015-Oct-24 11:55 UTC
[Libguestfs] [PATCH 0/2] Allow 'make install' to be run twice.
Still don't recommend you use 'make install', but here we go. Rich.
Richard W.M. Jones
2015-Oct-24 11:55 UTC
[Libguestfs] [PATCH 1/2] builder: Allow 'make install' to be run twice.
The error is: ln -s xdg/virt-builder /tmp/p/etc/virt-builder ln: failed to create symbolic link '/etc/virt-builder/virt-builder': File exists There is no 'LN_SF' macro, but according to the documentation at least, it should be safe to add a '-f' flag since it will work for both the 'ln' and 'cp' variants of the macro. --- builder/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/builder/Makefile.am b/builder/Makefile.am index 0d5ce3b..68b7176 100644 --- a/builder/Makefile.am +++ b/builder/Makefile.am @@ -320,7 +320,7 @@ repoconf_DATA = libguestfs.conf libguestfs.gpg \ opensuse.conf opensuse.gpg install-exec-hook: - $(LN_S) xdg/virt-builder $(DESTDIR)$(sysconfdir)/virt-builder + $(LN_S) -f xdg/virt-builder $(DESTDIR)$(sysconfdir)/virt-builder # Build a small C index validator program. bin_PROGRAMS += virt-index-validate -- 2.5.0
Richard W.M. Jones
2015-Oct-24 11:55 UTC
[Libguestfs] [PATCH 2/2] ocaml: Allow 'make install' to be run twice.
'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
Reasonably Related Threads
- [PATCH 0/1] v2v: Add the test-harness used by external tests.
- "make distcheck" failure
- [PATCH 1/4] More fixes for situations where ocamlopt is not available
- [PATCH] Fix building on architectures where ocamlopt is not available
- enable build for ocaml bytecode