diff mbox series

[Unstable/Noble,1/1] UBUNTU: [Packaging] remove debian/scripts/misc/arch-has-odm-enabled.sh

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

Commit Message

Masahiro Yamada March 1, 2024, 9:16 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.

While it is trivial to fix, I wonder if we need this script in the
first place. Its purpose is to make CONFIG_UBUNTU_ODM_DRIVERS a
user-unconfigurable option.

Given debian.*/config/annotations specifying the CONFIG set for each
arch/flavour, why not handle CONFIG_UBUNTU_ODM_DRIVERS just like
other normal CONFIG options? Users are still allow to toggle it from
menuconfig etc., but I do not see a significant issue, as any trouble
comes to users' responsibility when they change CONFIG options by
themselves.

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

 debian.master/config/annotations            |  2 +-
 debian.master/rules.d/amd64.mk              |  1 -
 debian/rules.d/0-common-vars.mk             |  4 ----
 debian/rules.d/1-maintainer.mk              |  1 -
 debian/rules.d/2-binary-arch.mk             |  3 ---
 debian/scripts/misc/arch-has-odm-enabled.sh | 26 ---------------------
 ubuntu/Kconfig                              |  2 +-
 7 files changed, 2 insertions(+), 37 deletions(-)
 delete mode 100755 debian/scripts/misc/arch-has-odm-enabled.sh
diff mbox series

Patch

diff --git a/debian.master/config/annotations b/debian.master/config/annotations
index b887d9ade5d9..16b884dfca73 100644
--- a/debian.master/config/annotations
+++ b/debian.master/config/annotations
@@ -14122,7 +14122,7 @@  CONFIG_UBSAN_SHIFT                              policy<{'amd64': 'y', 'arm64': '
 CONFIG_UBSAN_TRAP                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 's390x': 'n'}>
 CONFIG_UBSAN_UNREACHABLE                        policy<{'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 's390x': 'n'}>
 CONFIG_UBUNTU_HOST                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}>
-CONFIG_UBUNTU_ODM_DRIVERS                       policy<{'amd64': 'y'}>
+CONFIG_UBUNTU_ODM_DRIVERS                       policy<{'amd64': 'y', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}>
 CONFIG_UCC                                      policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
 CONFIG_UCC_FAST                                 policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
 CONFIG_UCC_SLOW                                 policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
diff --git a/debian.master/rules.d/amd64.mk b/debian.master/rules.d/amd64.mk
index a005382134aa..26af61cf7c91 100644
--- a/debian.master/rules.d/amd64.mk
+++ b/debian.master/rules.d/amd64.mk
@@ -19,5 +19,4 @@  do_tools_host = true
 do_extras_package = true
 do_tools_common = true
 do_tools_acpidbg = true
-do_odm_drivers  = true
 do_lib_rust     = true
diff --git a/debian/rules.d/0-common-vars.mk b/debian/rules.d/0-common-vars.mk
index 9bbd412fb4f7..ab91b4c53a20 100644
--- a/debian/rules.d/0-common-vars.mk
+++ b/debian/rules.d/0-common-vars.mk
@@ -124,10 +124,6 @@  endif
 # common headers normally is built as an indep package, but may be arch
 do_common_headers_indep=true
 
-# Add an option to enable special drivers which should only be build when
-# explicitly enabled.
-do_odm_drivers=false
-
 # build tools
 ifneq ($(wildcard $(CURDIR)/tools),)
 	ifeq ($(do_tools),)
diff --git a/debian/rules.d/1-maintainer.mk b/debian/rules.d/1-maintainer.mk
index dfcd814e2d0f..928343e3f7e0 100644
--- a/debian/rules.d/1-maintainer.mk
+++ b/debian/rules.d/1-maintainer.mk
@@ -72,7 +72,6 @@  printenv:
 	@echo "do_flavour_image_package  = $(do_flavour_image_package)"
 	@echo "do_flavour_header_package = $(do_flavour_header_package)"
 	@echo "do_common_headers_indep   = $(do_common_headers_indep)"
-	@echo "do_odm_drivers            = $(do_odm_drivers)"
 	@echo "do_lib_rust               = $(do_lib_rust)"
 	@echo "do_tools                  = $(do_tools)"
 	@echo "do_tools_common           = $(do_tools_common)"
diff --git a/debian/rules.d/2-binary-arch.mk b/debian/rules.d/2-binary-arch.mk
index 9191fc0e3508..c03a76a391e8 100644
--- a/debian/rules.d/2-binary-arch.mk
+++ b/debian/rules.d/2-binary-arch.mk
@@ -18,9 +18,6 @@  $(stampdir)/stamp-prepare-tree-%: debian/scripts/fix-filenames
 	touch $(builddir)/build-$*/ubuntu-build
 	python3 debian/scripts/misc/annotations --export --arch $(arch) --flavour $(target_flavour) > $(builddir)/build-$*/.config
 	sed -i 's/.*CONFIG_VERSION_SIGNATURE.*/CONFIG_VERSION_SIGNATURE="Ubuntu $(release)-$(revision)-$* $(raw_kernelversion)"/' $(builddir)/build-$*/.config
-	[ "$(do_odm_drivers)" = 'true' ] && true || \
-		sed -ie 's/.*CONFIG_UBUNTU_ODM_DRIVERS.*/# CONFIG_UBUNTU_ODM_DRIVERS is not set/' \
-		    $(builddir)/build-$*/.config
 	find $(builddir)/build-$* -name "*.ko" | xargs rm -f
 	$(kmake) O=$(builddir)/build-$* $(conc_level) rustavailable || true
 	$(kmake) O=$(builddir)/build-$* $(conc_level) olddefconfig
diff --git a/debian/scripts/misc/arch-has-odm-enabled.sh b/debian/scripts/misc/arch-has-odm-enabled.sh
deleted file mode 100755
index b812cc091983..000000000000
--- a/debian/scripts/misc/arch-has-odm-enabled.sh
+++ /dev/null
@@ -1,26 +0,0 @@ 
-#!/bin/sh
-# Evaluate whether arch ($1) will be built with do_odm_drivers set to true.
-set -e
-
-if [ "$1" = "" ]; then
-	case $ARCH in
-	x86)	ARCH=amd64;;
-	*)	;;
-	esac
-else
-	ARCH=$1
-fi
-
-TOPDIR=$(dirname $0)/../../..
-. $TOPDIR/debian/debian.env
-RULESDIR=$TOPDIR/$DEBIAN/rules.d
-
-do_odm_drivers=false
-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
-fi
-
-return 0
diff --git a/ubuntu/Kconfig b/ubuntu/Kconfig
index 6b6b5495c942..6be41b4644e1 100644
--- a/ubuntu/Kconfig
+++ b/ubuntu/Kconfig
@@ -2,7 +2,7 @@  menu "Ubuntu Supplied Third-Party Device Drivers"
 
 
 config UBUNTU_ODM_DRIVERS
-	def_bool $(success,$(srctree)/debian/scripts/misc/arch-has-odm-enabled.sh $(DEB_ARCH))
+	bool "Ubuntu ODM supplied drivers"
 	help
 	  Turn on support for Ubuntu ODM supplied drivers