[netctl] Makefile: specify the correct shell to use

Message ID 20190127015951.27536-1-eschwartz@archlinux.org
State New
Headers show
Series [netctl] Makefile: specify the correct shell to use | expand

Commit Message

Emil Velikov via arch-projects Jan. 27, 2019, 1:59 a.m. UTC
The Makefile commands in use include bash-specific features like brace
expansion, and thus cannot run under the default /bin/sh shell as that
may or may not be GNU bash (bash supports brace expansion even in posix
mode).

Consequently, the Makefile failed to execute correctly when the system
/bin/sh was a different sh implementation, such as dash or busybox ash.

Fix this by declaring the SHELL which will be used when running all
commands.
---
 Makefile | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Emil Velikov via arch-projects Jan. 27, 2019, 9:34 p.m. UTC | #1
On Sun, Jan 27, 2019 at 3:00 AM Eli Schwartz via arch-projects
<arch-projects@archlinux.org> wrote:
>
> The Makefile commands in use include bash-specific features like brace
> expansion, and thus cannot run under the default /bin/sh shell as that
> may or may not be GNU bash (bash supports brace expansion even in posix
> mode).
>
> Consequently, the Makefile failed to execute correctly when the system
> /bin/sh was a different sh implementation, such as dash or busybox ash.
>
> Fix this by declaring the SHELL which will be used when running all
> commands.

Thanks!
I'm traveling at the moment and will apply this when back home.

- Jouke

Patch

diff --git a/Makefile b/Makefile
index 716bb15..60af032 100644
--- a/Makefile
+++ b/Makefile
@@ -2,6 +2,8 @@  export VERSION = 1.19
 
 PKG_CONFIG ?= pkg-config
 
+SHELL=/bin/bash
+
 sd_var = $(shell $(PKG_CONFIG) --variable=systemd$(1) systemd)
 systemdsystemconfdir = $(call sd_var,systemconfdir)
 systemdsystemunitdir = $(call sd_var,systemunitdir)
@@ -64,4 +66,3 @@  upload: netctl-$(VERSION).tar.xz
 clean:
 	$(MAKE) -C docs clean
 	-@rm -vf netctl-*.tar.xz{,.sig} PKGBUILD netctl.install
-