[lvm-devel] master - configure: Warn if old thin_check tool found.

Alasdair Kergon agk at fedoraproject.org
Mon Apr 7 15:45:41 UTC 2014


Gitweb:        http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=eb1602406b8df5eeb01f3d4a05977878381638c7
Commit:        eb1602406b8df5eeb01f3d4a05977878381638c7
Parent:        2fd5c67f329159cfae29e2d0fe98fe2fbb6d9a8f
Author:        Alasdair G Kergon <agk at redhat.com>
AuthorDate:    Mon Apr 7 16:44:29 2014 +0100
Committer:     Alasdair G Kergon <agk at redhat.com>
CommitterDate: Mon Apr 7 16:44:29 2014 +0100

configure: Warn if old thin_check tool found.

If thin_check is auto-detected, issue a warning if the version is older
than 0.3.x.
---
 configure.in |   48 +++++++++++++++++++++++++++++++++---------------
 1 files changed, 33 insertions(+), 15 deletions(-)

diff --git a/configure.in b/configure.in
index d8cbe5c..6b84e47 100644
--- a/configure.in
+++ b/configure.in
@@ -433,6 +433,18 @@ case "$THIN" in
   *) AC_MSG_ERROR([--with-thin parameter invalid ($THIN)]) ;;
 esac
 
+dnl -- thin_check needs-check flag
+AC_MSG_CHECKING(whether thin_check supports the needs-check flag)
+AC_ARG_ENABLE(thin_check_needs_check,
+	      AC_HELP_STRING([--disable-thin_check_needs_check],
+			     [required if thin_check version is < 0.3.0]),
+	      THIN_CHECK_NEEDS_CHECK=$enableval, THIN_CHECK_NEEDS_CHECK=yes)
+AC_MSG_RESULT($THIN_CHECK_NEEDS_CHECK)
+
+if test x$THIN_CHECK_NEEDS_CHECK = xyes; then
+	AC_DEFINE([THIN_CHECK_NEEDS_CHECK], 1, [Define to 1 if the external 'thin_check' tool requires the --clear-needs-check-flag option])
+fi
+
 # Test if necessary thin tools are available
 # if not - use plain defaults and warn user
 case "$THIN" in
@@ -440,11 +452,27 @@ case "$THIN" in
 	# Empty means a config way to ignore thin checking
 	if test "$THIN_CHECK_CMD" = "autodetect"; then
 		AC_PATH_TOOL(THIN_CHECK_CMD, thin_check)
-		test -z "$THIN_CHECK_CMD" && {
+		if test -z "$THIN_CHECK_CMD"; then
 			AC_MSG_WARN([thin_check not found in path $PATH])
 			THIN_CHECK_CMD=/usr/sbin/thin_check
 			THIN_CONFIGURE_WARN=y
-		}
+		else
+			if test x$THIN_CHECK_NEEDS_CHECK = xyes; then
+				THIN_CHECK_VSN=`"$THIN_CHECK_CMD" -V 2>/dev/null`
+				THIN_CHECK_VSN_MAJOR=`echo "$THIN_CHECK_VSN" | $AWK -F '.' '{print $1}'`
+				THIN_CHECK_VSN_MINOR=`echo "$THIN_CHECK_VSN" | $AWK -F '.' '{print $2}'`
+
+				if test -z "$THIN_CHECK_VSN_MAJOR" -o -z "$THIN_CHECK_VSN_MINOR" ; then
+					AC_MSG_WARN(Found thin_check version "$THIN_CHECK_VSN")
+					THIN_CHECK_VERSION_WARN=y 
+				else
+					if test "$THIN_CHECK_VSN_MAJOR" -eq 0 -a "$THIN_CHECK_VSN_MINOR" -lt 3 ; then
+						AC_MSG_WARN(Found thin_check version "$THIN_CHECK_VSN")
+						THIN_CHECK_VERSION_WARN=y
+					fi
+				fi
+			fi
+		fi
 	fi
 	# Empty means a config way to ignore thin checking
 	if test "$THIN_DUMP_CMD" = "autodetect"; then
@@ -476,18 +504,6 @@ AC_DEFINE_UNQUOTED([THIN_DUMP_CMD], ["$THIN_DUMP_CMD"],
 AC_DEFINE_UNQUOTED([THIN_REPAIR_CMD], ["$THIN_REPAIR_CMD"],
 		   [The path to 'thin_repair', if available.])
 
-dnl -- thin_check needs-check flag
-AC_MSG_CHECKING(whether thin_check supports the needs-check flag)
-AC_ARG_ENABLE(thin_check_needs_check,
-	      AC_HELP_STRING([--disable-thin_check_needs_check],
-			     [required if thin_check version is < 0.3.0]),
-	      THIN_CHECK_NEEDS_CHECK=$enableval, THIN_CHECK_NEEDS_CHECK=yes)
-AC_MSG_RESULT($THIN_CHECK_NEEDS_CHECK)
-
-if test x$THIN_CHECK_NEEDS_CHECK = xyes; then
-	AC_DEFINE([THIN_CHECK_NEEDS_CHECK], 1, [Define to 1 if the external 'thin_check' tool requires the --clear-needs-check-flag option])
-fi
-
 ################################################################################
 dnl -- cache inclusion type
 AC_MSG_CHECKING(whether to include cache)
@@ -1825,6 +1841,8 @@ AC_OUTPUT
 
 test -n "$THIN_CONFIGURE_WARN" && AC_MSG_WARN([Support for thin provisioning is limited since some thin provisioning tools are missing!])
 
+test -n "$THIN_CHECK_VERSION_WARN" && AC_MSG_WARN(You should also install thin_check vsn 0.3.2 (or later) to use lvm2 thin provisioning)
+
 if test x$ODIRECT != xyes; then
-  AC_MSG_WARN(Warning: O_DIRECT disabled: low-memory pvmove may lock up)
+  AC_MSG_WARN(O_DIRECT disabled: low-memory pvmove may lock up)
 fi




More information about the lvm-devel mailing list