All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christian Hesse <list@eworm.de>
To: LVM general discussion and development <linux-lvm@redhat.com>
Cc: Christian Hesse <mail@eworm.de>, Zdenek Kabelac <zkabelac@redhat.com>
Subject: [linux-lvm] [PATCH 1/1] build: force to use bash (was: Re: bashism in tools/Makefile.in)
Date: Mon,  6 Jan 2020 13:54:37 +0100	[thread overview]
Message-ID: <20200106125437.192844-1-list@eworm.de> (raw)
In-Reply-To: <ab1f9091-3711-5e6c-e989-17f4fa144d25@redhat.com>

From: Christian Hesse <mail@eworm.de>

> Unfortunately whole lvm2 project is mostly 'bash' based and all developers
> mostly use bash - so we would welcome patches if they would provide
> equivalently working code without bashism...
>
> Fixing couple things while the whole rest of project is still requiring bash
> doesn't make it any better - ATM  all scripts/tests/Makefiles mostly expect
> presence of bash.

Fine with me. So how about forcing the build system to use bash?

-- >8 --
From: Christian Hesse <mail@eworm.de>
Subject: build: force to use bash

The build system expects bash, so force to use it. This mitigates issues
where other shells are fed with bashism.

Signed-off-by: Christian Hesse <mail@eworm.de>
---
 configure    | 15 +++++++++++++++
 configure.ac | 15 +++++++++++++++
 2 files changed, 30 insertions(+)

diff --git a/configure b/configure
index 6dd7edac3..190d13c77 100755
--- a/configure
+++ b/configure
@@ -2960,6 +2960,21 @@ ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
 
 
 
+################################################################################
+if test -z "$BASH_VERSION$CONFIG_SHELL"
+then
+    CONFIG_SHELL=bash
+    export CONFIG_SHELL
+    if $CONFIG_SHELL -c "exit 0"
+    then
+        exec $CONFIG_SHELL $0 "$@"
+    else
+        { $as_echo "$as_me:${as_lineno-$LINENO}: The 'bash' shell is needed to build lvm2" >&5
+$as_echo "$as_me: The 'bash' shell is needed to build lvm2" >&6;}
+        as_fn_error $? "'bash' not found" "$LINENO" 5
+    fi
+fi
+
 ################################################################################
 # Make sure we can run config.sub.
 $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
diff --git a/configure.ac b/configure.ac
index 74ca20191..f8d0abdfb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,6 +23,21 @@ AC_CONFIG_HEADERS([include/configure.h])
 dnl -- Setup the directory where autoconf has auxilary files
 AC_CONFIG_AUX_DIR(autoconf)
 
+################################################################################
+dnl -- We need to run the build system with bash.
+if test -z "$BASH_VERSION$CONFIG_SHELL"
+then
+    CONFIG_SHELL=bash
+    export CONFIG_SHELL
+    if $CONFIG_SHELL -c "exit 0"
+    then
+        exec $CONFIG_SHELL $0 "$@"
+    else
+        AC_MSG_NOTICE([The 'bash' shell is needed to build lvm2])
+        AC_MSG_ERROR(['bash' not found])
+    fi
+fi
+
 ################################################################################
 dnl -- Get system type
 AC_CANONICAL_TARGET([])

      reply	other threads:[~2020-01-06 13:04 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-06  9:48 [linux-lvm] bashism in tools/Makefile.in Christian Hesse
2020-01-06 11:24 ` Zdenek Kabelac
2020-01-06 12:54   ` Christian Hesse [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200106125437.192844-1-list@eworm.de \
    --to=list@eworm.de \
    --cc=linux-lvm@redhat.com \
    --cc=mail@eworm.de \
    --cc=zkabelac@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.