Jim Meyering
2009-Nov-10 13:34 UTC
[Libguestfs] [PATCH libguestfs] build: die early if we lack ocaml, ocamlfind or ocaml-xml-light
It was a pain to diagnose a build failure due to the lack of ocaml-xml-light. With this change, autogen.sh will diagnose it for you. If there end up being more than that one required ocaml package, I'd change things to factor out the literal string in the diagnostic.>From abc8363ef71809bd0986b752465ca6f65660ca4c Mon Sep 17 00:00:00 2001From: Jim Meyering <meyering at redhat.com> Date: Tue, 10 Nov 2009 14:31:42 +0100 Subject: [PATCH libguestfs] build: die early if we lack ocaml, ocamlfind or ocaml-xml-light * autogen.sh: Ensure that we fail very early when not building from a tarball and when one of those is not installed. --- autogen.sh | 19 +++++++++++++++++++ 1 files changed, 19 insertions(+), 0 deletions(-) diff --git a/autogen.sh b/autogen.sh index 9c73a2d..aff17f9 100755 --- a/autogen.sh +++ b/autogen.sh @@ -42,6 +42,25 @@ if [ ! -z "$BUILDDIR" ]; then CONFIGUREDIR=.. fi +# Ensure that an ocaml package is present for build-from sources. +# This is *not* for anything that is required at configure-time +# when configure is run from a distribution tarball. From those, +# nothing ocaml-related is required. +require_ocaml_pkg() +{ + pkg=$1 + test -d .git || return 1 + url=$(git config remote.origin.url) || return 1 + case $url in + *git.et.redhat.com/libguestfs.git) ;; + *) return 1;; esac + ocamlfind query "$pkg" || return 1 + return 0 +} + +require_ocaml_pkg xml-light \ + || { echo "you must have ocaml, ocamlfind and ocaml-xml-light"; exit 1; } + # If no arguments were specified and configure has run before, use the previous # arguments if [ $# == 0 -a -x ./config.status ]; then -- 1.6.5.2.351.g0943
Richard W.M. Jones
2009-Nov-10 13:59 UTC
[Libguestfs] [PATCH libguestfs] build: die early if we lack ocaml, ocamlfind or ocaml-xml-light
On Tue, Nov 10, 2009 at 02:34:25PM +0100, Jim Meyering wrote:> + case $url in > + *git.et.redhat.com/libguestfs.git) ;; > + *) return 1;; esacACK, but what's the reason to check the git URL? Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones virt-p2v converts physical machines to virtual machines. Boot with a live CD or over the network (PXE) and turn machines into Xen guests. http://et.redhat.com/~rjones/virt-p2v