diff mbox series

[Unstable/Noble,1/2] UBUNTU: [packaging] do not use 'return' outside functions of shell script

Message ID 20240301082553.1138917-2-masahiro.yamada@canonical.com
State New
Headers show
Series Fix annotation mismatch when bash is used (plan-A: keep arch-has-odm-enabled.sh) | expand

Commit Message

Masahiro Yamada March 1, 2024, 8:25 a.m. UTC
On Ubuntu, /bin/sh is a symlink to /bin/dash by default.

While this is a rare use case, when /bin/sh is a symlink to /bin/bash,
the annotation check fails due to a mismatch of CONFIG_UBUNTU_ODM_DRIVERS.

debian/scripts/misc/arch-has-odm-enabled.sh always fails with bash.

You can see it if you directly execute it.

[with dash]

  $ dash debian/scripts/misc/arch-has-odm-enabled.sh amd64
  cat: debian/scripts/misc/../../../debian.master/rules.d/hooks.mk: No such file or directory
  $ echo $?
  0

[with bash]

  $ bash debian/scripts/misc/arch-has-odm-enabled.sh amd64
  cat: debian/scripts/misc/../../../debian.master/rules.d/hooks.mk: No such file or directory
  debian/scripts/misc/arch-has-odm-enabled.sh: line 26: return: can only `return' from a function or sourced script
  $ echo $?
  2

Bash provides stricter checks, hence the 'return' statement outside
a function leads to an error.

Replace or remove inappropriate 'return'.

Signed-off-by: Masahiro Yamada <masahiro.yamada@canonical.com>
---

 debian/scripts/misc/arch-has-odm-enabled.sh | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)
diff mbox series

Patch

diff --git a/debian/scripts/misc/arch-has-odm-enabled.sh b/debian/scripts/misc/arch-has-odm-enabled.sh
index b812cc091983..b71e55620963 100755
--- a/debian/scripts/misc/arch-has-odm-enabled.sh
+++ b/debian/scripts/misc/arch-has-odm-enabled.sh
@@ -20,7 +20,5 @@  for f in $ARCH.mk hooks.mk; do
 	eval $(cat $RULESDIR/$f | sed -n -e '/do_odm_drivers/s/ \+//gp')
 done
 if [ "$do_odm_drivers" != "true" ]; then
-	return 1
+	exit 1
 fi
-
-return 0