From c3b416c49253bcf3223d2aec8c5ca06f0c78e6f9 Mon Sep 17 00:00:00 2001 From: Tom Jones Date: Thu, 18 Jan 2024 14:51:44 +0000 Subject: [PATCH] build: Explicitly use bash for shell scripts VPP requires bash for all shell scripts. Align shebang lines in build and test scripts to look up the location of bash rather than hard coding '/bin/bash'. Look up the location of bash for makefiles. Type: improvement Change-Id: I23b705d81d60389fa8af61c680cf0abd74f0ea24 Signed-off-by: Tom Jones --- Makefile | 2 +- build-root/Makefile | 6 +++--- build-root/scripts/set-rpath | 2 +- build/external/Makefile | 2 +- extras/vagrant/build.sh | 2 +- extras/vagrant/clearinterfaces.sh | 2 +- extras/vagrant/install.sh | 2 +- extras/vagrant/run.sh | 2 +- extras/vagrant/update.sh | 2 +- extras/vagrant/vcl_test.sh | 2 +- src/scripts/generate_version_h | 2 +- src/scripts/remove-rpath | 2 +- src/scripts/vnet/dhcp/left-ping-target.sh | 2 +- test/scripts/compress_failed.sh | 2 +- test/scripts/run.sh | 2 +- test/scripts/run_in_venv_with_cleanup.sh | 2 +- test/scripts/setsid_wrapper.sh | 2 +- test/scripts/socket_test.sh | 2 +- test/scripts/test-loop.sh | 2 +- 19 files changed, 21 insertions(+), 21 deletions(-) diff --git a/Makefile b/Makefile index ccfc2a50531..d82a625436b 100644 --- a/Makefile +++ b/Makefile @@ -14,7 +14,7 @@ export WS_ROOT=$(CURDIR) export BR=$(WS_ROOT)/build-root CCACHE_DIR?=$(BR)/.ccache -SHELL:=/bin/bash +SHELL:=$(shell which bash) GDB?=gdb PLATFORM?=vpp SAMPLE_PLUGIN?=no diff --git a/build-root/Makefile b/build-root/Makefile index d35b7a10aeb..6416de27336 100644 --- a/build-root/Makefile +++ b/build-root/Makefile @@ -39,7 +39,7 @@ ###################################################################### # Scripts require non-POSIX parts of bash -SHELL := /bin/bash +SHELL := $(shell which bash) # Where this makefile lives MU_BUILD_ROOT_DIR = $(shell pwd) @@ -962,7 +962,7 @@ $(PLATFORM_IMAGE_DIR)/ro.img ro-image: $(patsubst %,%-find-source,$(ROOT_PACKAGE chmod 0755 $${tmp_dir} ; \ cd $${tmp_dir} ; \ trap "rm -rf $${tmp_dir}" err ; \ - fakeroot /bin/bash -c "{ \ + fakeroot $(SHELL) -c "{ \ set -eu$(BUILD_DEBUG) ; \ $(MAKE) -C $(MU_BUILD_ROOT_DIR) IMAGE_INSTALL_DIR=$${tmp_dir} \ $(patsubst %,%-image_install, \ @@ -1054,7 +1054,7 @@ rw-image: rw-image-check-type ro-image chmod 0755 $${tmp_dir} ; \ cd $${tmp_dir} ; \ trap "rm -rf $${tmp_dir}" err ; \ - fakeroot /bin/bash -c "{ \ + fakeroot $(SHELL) -c "{ \ set -eu$(BUILD_DEBUG) ; \ $(linuxrc_makedev) ; \ $(call rw_image_embed_ro_image_fn,$${ro_image}) ; \ diff --git a/build-root/scripts/set-rpath b/build-root/scripts/set-rpath index f20ff3f6f40..805f11d66e6 100755 --- a/build-root/scripts/set-rpath +++ b/build-root/scripts/set-rpath @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright (c) 2015 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/build/external/Makefile b/build/external/Makefile index 1e1f5da1d1f..a445d7b21ee 100644 --- a/build/external/Makefile +++ b/build/external/Makefile @@ -12,7 +12,7 @@ # limitations under the License. # Scripts require non-POSIX parts of bash -SHELL := /bin/bash +SHELL := $(shell which bash) DL_CACHE_DIR = $(HOME)/Downloads MAKE ?= make diff --git a/extras/vagrant/build.sh b/extras/vagrant/build.sh index 0e63947a8b5..631b9909d3e 100755 --- a/extras/vagrant/build.sh +++ b/extras/vagrant/build.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Get Command Line arguements if present VPP_DIR=$1 diff --git a/extras/vagrant/clearinterfaces.sh b/extras/vagrant/clearinterfaces.sh index 31a63098e87..50b96f0d8b0 100755 --- a/extras/vagrant/clearinterfaces.sh +++ b/extras/vagrant/clearinterfaces.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Capture all the interface IPs, in case we need them later ip -o addr show > ~vagrant/ifconfiga diff --git a/extras/vagrant/install.sh b/extras/vagrant/install.sh index cfe5fe5b2d0..67a2e4fb990 100755 --- a/extras/vagrant/install.sh +++ b/extras/vagrant/install.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Get Command Line arguements if present VPP_DIR=$1 diff --git a/extras/vagrant/run.sh b/extras/vagrant/run.sh index 3e87e259442..be2d8425903 100755 --- a/extras/vagrant/run.sh +++ b/extras/vagrant/run.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Figure out what system we are running on if [ "$(uname)" <> "Darwin" ] ; then diff --git a/extras/vagrant/update.sh b/extras/vagrant/update.sh index 3fb456b26eb..e56e6ba004e 100755 --- a/extras/vagrant/update.sh +++ b/extras/vagrant/update.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Make sure that we get the hugepages we need on provision boot # Note: The package install should take care of this at the end diff --git a/extras/vagrant/vcl_test.sh b/extras/vagrant/vcl_test.sh index 5d58d73745f..2bad0f6e14f 100755 --- a/extras/vagrant/vcl_test.sh +++ b/extras/vagrant/vcl_test.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash if [ -n "$1" ]; then VPP_DIR=$1 diff --git a/src/scripts/generate_version_h b/src/scripts/generate_version_h index 59123684d8d..cdcdf5dd42a 100755 --- a/src/scripts/generate_version_h +++ b/src/scripts/generate_version_h @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash : ${VPP_BUILD_USER:=$(whoami)} : ${VPP_BUILD_HOST:=$(hostname)} DATE_FMT="+%Y-%m-%dT%H:%M:%S" diff --git a/src/scripts/remove-rpath b/src/scripts/remove-rpath index 3e20b06dbfa..b6df461e464 100755 --- a/src/scripts/remove-rpath +++ b/src/scripts/remove-rpath @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright (c) 2015 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/scripts/vnet/dhcp/left-ping-target.sh b/src/scripts/vnet/dhcp/left-ping-target.sh index 2edc2a50eaa..4dab842b819 100644 --- a/src/scripts/vnet/dhcp/left-ping-target.sh +++ b/src/scripts/vnet/dhcp/left-ping-target.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # to obtain dhcp address from leftpeer dhclient -d -v eth1 diff --git a/test/scripts/compress_failed.sh b/test/scripts/compress_failed.sh index ff17d244629..7e2cd9c5512 100755 --- a/test/scripts/compress_failed.sh +++ b/test/scripts/compress_failed.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash if [ "$(ls -A ${FAILED_DIR})" ] then diff --git a/test/scripts/run.sh b/test/scripts/run.sh index 51c1c62df9d..504edd677cc 100755 --- a/test/scripts/run.sh +++ b/test/scripts/run.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash ff="0" items= diff --git a/test/scripts/run_in_venv_with_cleanup.sh b/test/scripts/run_in_venv_with_cleanup.sh index af32f87ea5d..3f9d44ff4b5 100755 --- a/test/scripts/run_in_venv_with_cleanup.sh +++ b/test/scripts/run_in_venv_with_cleanup.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash rv=0 diff --git a/test/scripts/setsid_wrapper.sh b/test/scripts/setsid_wrapper.sh index 030c3b079de..550c7b94778 100755 --- a/test/scripts/setsid_wrapper.sh +++ b/test/scripts/setsid_wrapper.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash cmd=$1 force_foreground=$2 diff --git a/test/scripts/socket_test.sh b/test/scripts/socket_test.sh index b94a2f344b7..3ba739a8083 100755 --- a/test/scripts/socket_test.sh +++ b/test/scripts/socket_test.sh @@ -1,4 +1,4 @@ -#! /bin/bash +#!/usr/bin/env bash # # socket_test.sh -- script to run socket tests. # diff --git a/test/scripts/test-loop.sh b/test/scripts/test-loop.sh index 51f5d5cef58..b825f2b4cc8 100755 --- a/test/scripts/test-loop.sh +++ b/test/scripts/test-loop.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash function usage() { echo "$0" 1>&2