From 056f4386aa0487b145f7cdd6d80c56fe022963ef Mon Sep 17 00:00:00 2001 From: Masahiro Yamada Date: Fri, 1 Mar 2024 18:16:35 +0900 Subject: [PATCH] UBUNTU: [Packaging] remove debian/scripts/misc/arch-has-odm-enabled.sh 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 Signed-off-by: Andrea Righi --- 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 --git a/debian.master/config/annotations b/debian.master/config/annotations index 90a5cda8f1150..34cea5a6ffc7f 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 06ebb024c6460..5e2c7cb1182be 100644 --- a/debian.master/rules.d/amd64.mk +++ b/debian.master/rules.d/amd64.mk @@ -17,5 +17,4 @@ do_tools_x86 = true do_tools_hyperv = true do_extras_package = 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 c3c794214dabd..2f032cfc3d59d 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 dfcd814e2d0fc..928343e3f7e03 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 9191fc0e3508f..c03a76a391e85 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 b812cc0919834..0000000000000 --- 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 6b6b5495c942e..6be41b4644e10 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