From 7ef98b9c2549185b1ee2e758eb2cf0da261d75b5 Mon Sep 17 00:00:00 2001 From: "Brian J. Murrell" Date: Mon, 24 Jan 2011 15:53:53 -0500 Subject: [PATCH] b=21581 too long file / path names for old tar Instruct automake to use tar's ustar format to prevent errors when pathnames are longer than 99 chars. - this requires automake >= 1.9, so adjust accordingly - including dealing with multiple versions of automake installed Per andreas' inspection, provide a hint to the user on how to install a missing automake or autoconf. Per mjmac's inspection, give Debian users help on how to install software. - note that I am *assuming" that Debian's lsb distribution id is "Debian" i=adilger i=mjmac Issue: LU-47 Signed-off-by: Brian J. Murrell Change-Id: Ica6419196d2a6910824e8f2326537d9b46612c15 --- build/autogen.sh | 70 +++++++++++++++++++++++-------------------------- configure.ac | 2 +- ldiskfs/configure.ac | 2 +- libsysio/autogen.sh | 4 +-- libsysio/configure.in | 2 +- lustre-iokit/autogen.sh | 4 +-- 6 files changed, 40 insertions(+), 44 deletions(-) diff --git a/build/autogen.sh b/build/autogen.sh index 775e6dd..0308024 100644 --- a/build/autogen.sh +++ b/build/autogen.sh @@ -19,41 +19,25 @@ compare_versions() { } error_msg() { - echo "$cmd is $1. version $required is required to build Lustre." + echo "$cmd is $1. Version $required (or higher) is required to build Lustre." - if [ -e /usr/lib/autolustre/bin/$cmd ]; then - cat >&2 <<-EOF - You apparently already have Lustre-specific autoconf/make RPMs - installed on your system at /usr/lib/autolustre/share/$cmd. - Please set your PATH to point to those versions: - - export PATH="/usr/lib/autolustre/bin:\$PATH" - EOF - else - cat >&2 <<-EOF - Sun provides RPMs which can be installed alongside your - existing autoconf/make RPMs, if you are nervous about - upgrading. See - - http://downloads.lustre.org/public/tools/autolustre/README.autolustre - - You may be able to download newer version from: - - http://ftp.gnu.org/gnu/$tool/$tool-$required.tar.gz - EOF + if [ ! -x /usr/bin/lsb_release ]; then + echo "lsb_release could not be found. If it were available more help on how to resolve this\nsituation would be available." + exit 1 fi - [ "$cmd" = "autoconf" -a "$required" = "2.57" ] && cat >&2 <&2 <= $required... " if ! $cmd --version >/dev/null ; then error_msg "missing" fi @@ -105,13 +89,22 @@ for dir in $OPTIONAL_DIRS; do fi done -for AMVER in 1.7 1.8 1.9 1.10 1.11; do - [ "$(which automake-$AMVER 2> /dev/null)" ] && break +found=false +for AMVER in 1.9 1.10 1.11; do + if which automake-$AMVER 2> /dev/null; then + found=true + break + fi done +if ! $found; then + cmd=automake required="1.9" error_msg "not found" + exit 1 +fi + [ "${AMVER#1.}" -ge "10" ] && AMOPT="-W no-portability" -check_version automake automake-$AMVER "1.7.8" +check_version automake automake-$AMVER "1.9" check_version autoconf autoconf "2.57" run_cmd() @@ -128,9 +121,12 @@ run_cmd() echo } -run_cmd "aclocal-$AMVER $ACLOCAL_FLAGS" +export ACLOCAL="aclocal-$AMVER" +export AUTOMAKE="automake-$AMVER" + +run_cmd "$ACLOCAL $ACLOCAL_FLAGS" run_cmd "autoheader" -run_cmd "automake-$AMVER -a -c $AMOPT" +run_cmd "$AUTOMAKE -a -c $AMOPT" run_cmd autoconf # Run autogen.sh in these directories diff --git a/configure.ac b/configure.ac index 102257d..1fc11c9 100644 --- a/configure.ac +++ b/configure.ac @@ -11,7 +11,7 @@ LC_CONFIG_SRCDIR AC_CANONICAL_SYSTEM -AM_INIT_AUTOMAKE +AM_INIT_AUTOMAKE([1.9 tar-ustar]) # AM_MAINTAINER_MODE AC_PROG_CC diff --git a/ldiskfs/configure.ac b/ldiskfs/configure.ac index 010bf6fb..959bc11 100644 --- a/ldiskfs/configure.ac +++ b/ldiskfs/configure.ac @@ -9,7 +9,7 @@ AC_CONFIG_AUX_DIR([.]) AC_CANONICAL_SYSTEM -AM_INIT_AUTOMAKE +AM_INIT_AUTOMAKE([1.9 tar-ustar]) AC_PROG_CC diff --git a/libsysio/autogen.sh b/libsysio/autogen.sh index 81ad5b6..fb2b383 100755 --- a/libsysio/autogen.sh +++ b/libsysio/autogen.sh @@ -1,5 +1,5 @@ #!/bin/sh -aclocal && -automake --add-missing --copy && +${ACLOCAL:-aclocal} && +${AUTOMAKE:-automake} --add-missing --copy && ${AUTOCONF:-autoconf} diff --git a/libsysio/configure.in b/libsysio/configure.in index 510ce21..1487c60 100644 --- a/libsysio/configure.in +++ b/libsysio/configure.in @@ -12,7 +12,7 @@ case "$host_os" in ;; esac -AM_INIT_AUTOMAKE([subdir-objects]) +AM_INIT_AUTOMAKE([subdir-objects 1.9 tar-ustar]) AC_PROG_CC AM_PROG_CC_C_O diff --git a/lustre-iokit/autogen.sh b/lustre-iokit/autogen.sh index 37f4a15..b491fce 100644 --- a/lustre-iokit/autogen.sh +++ b/lustre-iokit/autogen.sh @@ -14,8 +14,8 @@ run_cmd() { $cmd || fatal "$cmd failed!" } -run_cmd aclocal -run_cmd "automake -a -c" +run_cmd ${ACLOCAL:-aclocal} +run_cmd "${AUTOMAKE:-automake} -a -c" run_cmd autoconf echo "Finished. Ready for ./configure ..." -- 1.8.3.1