Discussion:
[linux-lvm] [PATCH 1/2] Move AC_PYTHON_MODULE() macro definition to m4/ac_python_module.m4
Bart Van Assche
2016-11-18 22:00:01 UTC
Permalink
Adding m4 macros in aclocal.m4 is wrong because the file aclocal.m4
gets overwritten when running e.g. "autoreconf -ivf". Hence move the
AC_PYTHON_MODULE() macro definition into a separate file.

Fixes: commit 5987562cf924 ("lvmdbus: Add new daemon")
Signed-off-by: Bart Van Assche <***@sandisk.com>
Cc: Alasdair G Kergon <***@redhat.com>
---
aclocal.m4 | 57 --------------------------------------------------
configure.in | 1 +
m4/ac_python_module.m4 | 56 +++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 57 insertions(+), 57 deletions(-)
create mode 100755 m4/ac_python_module.m4

diff --git a/aclocal.m4 b/aclocal.m4
index 35107ac..b1d71d7 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -12,63 +12,6 @@
# PARTICULAR PURPOSE.

m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
-# ===========================================================================
-# http://www.gnu.org/software/autoconf-archive/ax_python_module.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-# AX_PYTHON_MODULE(modname[, fatal, python])
-#
-# DESCRIPTION
-#
-# Checks for Python module.
-#
-# If fatal is non-empty then absence of a module will trigger an error.
-# The third parameter can either be "python" for Python 2 or "python3" for
-# Python 3; defaults to Python 3.
-#
-# LICENSE
-#
-# Copyright (c) 2008 Andrew Collier
-#
-# Copying and distribution of this file, with or without modification, are
-# permitted in any medium without royalty provided the copyright notice
-# and this notice are preserved. This file is offered as-is, without any
-# warranty.
-
-#serial 8
-
-AU_ALIAS([AC_PYTHON_MODULE], [AX_PYTHON_MODULE])
-AC_DEFUN([AX_PYTHON_MODULE],[
- if test -z $PYTHON;
- then
- if test -z "$3";
- then
- PYTHON="python3"
- else
- PYTHON="$3"
- fi
- fi
- PYTHON_NAME=`basename $PYTHON`
- AC_MSG_CHECKING($PYTHON_NAME module: $1)
- $PYTHON -c "import $1" 2>/dev/null
- if test $? -eq 0;
- then
- AC_MSG_RESULT(yes)
- eval AS_TR_CPP(HAVE_PYMOD_$1)=yes
- else
- AC_MSG_RESULT(no)
- eval AS_TR_CPP(HAVE_PYMOD_$1)=no
- #
- if test -n "$2"
- then
- AC_MSG_ERROR(failed to find required module $1)
- exit 1
- fi
- fi
-])
-
# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
# serial 1 (pkg-config-0.24)
#
diff --git a/configure.in b/configure.in
index cc77aab..b75c950 100644
--- a/configure.in
+++ b/configure.in
@@ -21,6 +21,7 @@ AC_CONFIG_HEADERS([include/configure.h])
################################################################################
dnl -- Setup the directory where autoconf has auxilary files
AC_CONFIG_AUX_DIR(autoconf)
+AC_CONFIG_MACRO_DIR(m4)

################################################################################
dnl -- Get system type
diff --git a/m4/ac_python_module.m4 b/m4/ac_python_module.m4
new file mode 100755
index 0000000..f182c48
--- /dev/null
+++ b/m4/ac_python_module.m4
@@ -0,0 +1,56 @@
+# ===========================================================================
+# http://www.gnu.org/software/autoconf-archive/ax_python_module.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+# AX_PYTHON_MODULE(modname[, fatal, python])
+#
+# DESCRIPTION
+#
+# Checks for Python module.
+#
+# If fatal is non-empty then absence of a module will trigger an error.
+# The third parameter can either be "python" for Python 2 or "python3" for
+# Python 3; defaults to Python 3.
+#
+# LICENSE
+#
+# Copyright (c) 2008 Andrew Collier
+#
+# Copying and distribution of this file, with or without modification, are
+# permitted in any medium without royalty provided the copyright notice
+# and this notice are preserved. This file is offered as-is, without any
+# warranty.
+
+#serial 8
+
+AU_ALIAS([AC_PYTHON_MODULE], [AX_PYTHON_MODULE])
+AC_DEFUN([AX_PYTHON_MODULE],[
+ if test -z $PYTHON;
+ then
+ if test -z "$3";
+ then
+ PYTHON="python3"
+ else
+ PYTHON="$3"
+ fi
+ fi
+ PYTHON_NAME=`basename $PYTHON`
+ AC_MSG_CHECKING($PYTHON_NAME module: $1)
+ $PYTHON -c "import $1" 2>/dev/null
+ if test $? -eq 0;
+ then
+ AC_MSG_RESULT(yes)
+ eval AS_TR_CPP(HAVE_PYMOD_$1)=yes
+ else
+ AC_MSG_RESULT(no)
+ eval AS_TR_CPP(HAVE_PYMOD_$1)=no
+ #
+ if test -n "$2"
+ then
+ AC_MSG_ERROR(failed to find required module $1)
+ exit 1
+ fi
+ fi
+])
--
2.10.1
Bart Van Assche
2016-11-18 22:02:29 UTC
Permalink
Ensure that the shell code generated by AC_PYTHON_MODULE() does not fail if
$PYTHON contains spaces or other separator or metacharacters. Use $() instead
of the obsolete ``. Surround expansion of macro arguments with "" before
passing these to the shell.

Signed-off-by: Bart Van Assche <***@sandisk.com>
---
configure | 42 ++++++++++++++++--------------------------
m4/ac_python_module.m4 | 19 +++++++------------
2 files changed, 23 insertions(+), 38 deletions(-)

diff --git a/configure b/configure
index c82a19b..0eef3a5 100755
--- a/configure
+++ b/configure
@@ -13419,21 +13419,17 @@ fi
if test "$BUILD_LVMDBUSD" = yes; then
# To get this macro, install autoconf-archive package then run autoreconf

- if test -z $PYTHON;
- then
- if test -z "python3";
- then
+ if test -z "$PYTHON"; then
+ if test -z "python3"; then
PYTHON="python3"
else
PYTHON="python3"
fi
fi
- PYTHON_NAME=`basename $PYTHON`
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking $PYTHON_NAME module: pyudev" >&5
-$as_echo_n "checking $PYTHON_NAME module: pyudev... " >&6; }
- $PYTHON -c "import pyudev" 2>/dev/null
- if test $? -eq 0;
- then
+ PYTHON_NAME=$(basename "$PYTHON")
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking \"$PYTHON_NAME module: pyudev\"" >&5
+$as_echo_n "checking \"$PYTHON_NAME module: pyudev\"... " >&6; }
+ if "$PYTHON" -c "import pyudev" 2>/dev/null; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
eval HAVE_PYMOD_PYUDEV=yes
@@ -13442,29 +13438,24 @@ $as_echo "yes" >&6; }
$as_echo "no" >&6; }
eval HAVE_PYMOD_PYUDEV=no
#
- if test -n "Required"
- then
- as_fn_error $? "failed to find required module pyudev" "$LINENO" 5
+ if test -n "Required"; then
+ as_fn_error $? "\"failed to find required module pyudev\"" "$LINENO" 5
exit 1
fi
fi


- if test -z $PYTHON;
- then
- if test -z "python3";
- then
+ if test -z "$PYTHON"; then
+ if test -z "python3"; then
PYTHON="python3"
else
PYTHON="python3"
fi
fi
- PYTHON_NAME=`basename $PYTHON`
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking $PYTHON_NAME module: dbus" >&5
-$as_echo_n "checking $PYTHON_NAME module: dbus... " >&6; }
- $PYTHON -c "import dbus" 2>/dev/null
- if test $? -eq 0;
- then
+ PYTHON_NAME=$(basename "$PYTHON")
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking \"$PYTHON_NAME module: dbus\"" >&5
+$as_echo_n "checking \"$PYTHON_NAME module: dbus\"... " >&6; }
+ if "$PYTHON" -c "import dbus" 2>/dev/null; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
eval HAVE_PYMOD_DBUS=yes
@@ -13473,9 +13464,8 @@ $as_echo "yes" >&6; }
$as_echo "no" >&6; }
eval HAVE_PYMOD_DBUS=no
#
- if test -n "Required"
- then
- as_fn_error $? "failed to find required module dbus" "$LINENO" 5
+ if test -n "Required"; then
+ as_fn_error $? "\"failed to find required module dbus\"" "$LINENO" 5
exit 1
fi
fi
diff --git a/m4/ac_python_module.m4 b/m4/ac_python_module.m4
index f182c48..9ed4eae 100755
--- a/m4/ac_python_module.m4
+++ b/m4/ac_python_module.m4
@@ -27,29 +27,24 @@

AU_ALIAS([AC_PYTHON_MODULE], [AX_PYTHON_MODULE])
AC_DEFUN([AX_PYTHON_MODULE],[
- if test -z $PYTHON;
- then
- if test -z "$3";
- then
+ if test -z "$PYTHON"; then
+ if test -z "$3"; then
PYTHON="python3"
else
PYTHON="$3"
fi
fi
- PYTHON_NAME=`basename $PYTHON`
- AC_MSG_CHECKING($PYTHON_NAME module: $1)
- $PYTHON -c "import $1" 2>/dev/null
- if test $? -eq 0;
- then
+ PYTHON_NAME=$(basename "$PYTHON")
+ AC_MSG_CHECKING(["$PYTHON_NAME module: $1"])
+ if "$PYTHON" -c "import $1" 2>/dev/null; then
AC_MSG_RESULT(yes)
eval AS_TR_CPP(HAVE_PYMOD_$1)=yes
else
AC_MSG_RESULT(no)
eval AS_TR_CPP(HAVE_PYMOD_$1)=no
#
- if test -n "$2"
- then
- AC_MSG_ERROR(failed to find required module $1)
+ if test -n "$2"; then
+ AC_MSG_ERROR(["failed to find required module $1"])
exit 1
fi
fi
--
2.10.1
Loading...