diff mbox series

[Noble/Unstable] UBUNTU: [Packaging] Build linux-tools-{common, host} only for linux and linux-unstable

Message ID 20231123092930.27569-1-juerg.haefliger@canonical.com
State New
Headers show
Series [Noble/Unstable] UBUNTU: [Packaging] Build linux-tools-{common, host} only for linux and linux-unstable | expand

Commit Message

Juerg Haefliger Nov. 23, 2023, 9:29 a.m. UTC
The linux-tools-common and linux-tools-host packages are binary indep
packages and may only be built for the main linux and linux-unstable
source packages. Enforce this rule for the make variables
do_tools_common and do_tools_host which control the package builds.

Package builds are disabled by default, to enable them, the following
needs to be explicitly added to debian.master/rules.d/amd64.mk:
  do_tools_common = true
  do_tools_host   = true

Signed-off-by: Juerg Haefliger <juerg.haefliger@canonical.com>
---
 debian.master/rules.d/i386.mk    |  1 -
 debian.master/rules.d/riscv64.mk |  1 -
 debian/rules                     | 17 +++++++++++++----
 3 files changed, 13 insertions(+), 6 deletions(-)

Comments

Juerg Haefliger Nov. 24, 2023, 5:04 p.m. UTC | #1
Not sure if we should build it for linux-unstable.

...Juerg


> The linux-tools-common and linux-tools-host packages are binary indep
> packages and may only be built for the main linux and linux-unstable
> source packages. Enforce this rule for the make variables
> do_tools_common and do_tools_host which control the package builds.
> 
> Package builds are disabled by default, to enable them, the following
> needs to be explicitly added to debian.master/rules.d/amd64.mk:
>   do_tools_common = true
>   do_tools_host   = true
> 
> Signed-off-by: Juerg Haefliger <juerg.haefliger@canonical.com>
> ---
>  debian.master/rules.d/i386.mk    |  1 -
>  debian.master/rules.d/riscv64.mk |  1 -
>  debian/rules                     | 17 +++++++++++++----
>  3 files changed, 13 insertions(+), 6 deletions(-)
> 
> diff --git a/debian.master/rules.d/i386.mk b/debian.master/rules.d/i386.mk
> index a9327adb7052..77216b5a3594 100644
> --- a/debian.master/rules.d/i386.mk
> +++ b/debian.master/rules.d/i386.mk
> @@ -9,7 +9,6 @@ vdso		= vdso_install
>  no_dumpfile	= true
>  do_flavour_image_package = false
>  do_tools	= false
> -do_tools_common	= false
>  do_extras_package = false
>  do_source_package = false
>  do_doc_package	= false
> diff --git a/debian.master/rules.d/riscv64.mk b/debian.master/rules.d/riscv64.mk
> index 2fa468ae8c1e..5486912f7483 100644
> --- a/debian.master/rules.d/riscv64.mk
> +++ b/debian.master/rules.d/riscv64.mk
> @@ -11,7 +11,6 @@ no_dumpfile	= true
>  
>  do_flavour_image_package = false
>  do_tools	= false
> -do_tools_common	= false
>  do_extras_package = false
>  do_source_package = false
>  do_doc_package	= false
> diff --git a/debian/rules b/debian/rules
> index 70ad432a2e90..ce2fbc8978b0 100755
> --- a/debian/rules
> +++ b/debian/rules
> @@ -45,10 +45,19 @@ include $(DROOT)/rules.d/1-maintainer.mk
>  
>  do_linux_tools=$(sort $(filter-out false,$(do_tools_usbip) $(do_tools_cpupower) $(do_tools_perf) $(do_tools_bpftool) $(do_tools_x86)))
>  do_cloud_tools=$(sort $(filter-out false,$(do_tools_hyperv)))
> -do_tools_common?=true
> -do_tools_host?=false
>  do_tools_perf_jvmti?=false
>  
> +# linux-tools-{common,host} may only be built for the main linux and
> +# linux-unstable source packages and must be explicitly enabled
> +# in rules.d/amd64.mk.
> +ifneq ($(filter $(src_pkg_name),linux linux-unstable),)  # logical OR
> +	do_tools_common ?= false
> +	do_tools_host ?= false
> +else
> +	do_tools_common = false
> +	do_tools_host = false
> +endif
> +
>  # Default settings for DKMS modules.
>  $(foreach _m,$(all_dkms_modules), \
>    $(eval do_$(_m) ?= $(if $(filter $(_m),$(filter-out $(dkms_exclude),$(dkms_include) $(subst any,$(_m),$(subst $(arch),$(_m),$(dkms_$(_m)_archs))))),true,false)) \
> @@ -103,8 +112,8 @@ endif
>  ifneq ($(do_tools),true)
>  	do_linux_tools=
>  	do_cloud_tools=
> -	do_tools_common=
> -	do_tools_host=
> +	do_tools_common = false
> +	do_tools_host = false
>  endif
>  
>  $(foreach _m,$(all_built-in_dkms_modules), \
Juerg Haefliger Nov. 28, 2023, 3:06 p.m. UTC | #2
List of (public) broken kernels that would benefit from this change:

mantic/linux-lowlatency
lunar/linux-lowlatency
jammy/linux-lowlatency
jammy/linux-hwe-6.2
jammy/linux-lowlatency-hwe-6.2
jammy/linux-hwe-6.5
jammy/linux-lowlatency-hwe-6.5
jammy/linux-realtime
jammy/linux-ibm
jammy/linux-bluefield
jammy/linux-oem-6.1
jammy/linux-oem-6.5
jammy/linux-intel-iotg
jammy/linux-nvidia
jammy/linux-nvidia-6.2
focal/linux-hwe-5.15
focal/linux-lowlatency-hwe-5.15
focal/linux-ibm
focal/linux-iot
focal/linux-intel-iotg-5.15

...Juerg


On Thu, 23 Nov 2023 10:29:30 +0100
Juerg Haefliger <juerg.haefliger@canonical.com> wrote:

> The linux-tools-common and linux-tools-host packages are binary indep
> packages and may only be built for the main linux and linux-unstable
> source packages. Enforce this rule for the make variables
> do_tools_common and do_tools_host which control the package builds.
> 
> Package builds are disabled by default, to enable them, the following
> needs to be explicitly added to debian.master/rules.d/amd64.mk:
>   do_tools_common = true
>   do_tools_host   = true
> 
> Signed-off-by: Juerg Haefliger <juerg.haefliger@canonical.com>
> ---
>  debian.master/rules.d/i386.mk    |  1 -
>  debian.master/rules.d/riscv64.mk |  1 -
>  debian/rules                     | 17 +++++++++++++----
>  3 files changed, 13 insertions(+), 6 deletions(-)
> 
> diff --git a/debian.master/rules.d/i386.mk b/debian.master/rules.d/i386.mk
> index a9327adb7052..77216b5a3594 100644
> --- a/debian.master/rules.d/i386.mk
> +++ b/debian.master/rules.d/i386.mk
> @@ -9,7 +9,6 @@ vdso		= vdso_install
>  no_dumpfile	= true
>  do_flavour_image_package = false
>  do_tools	= false
> -do_tools_common	= false
>  do_extras_package = false
>  do_source_package = false
>  do_doc_package	= false
> diff --git a/debian.master/rules.d/riscv64.mk b/debian.master/rules.d/riscv64.mk
> index 2fa468ae8c1e..5486912f7483 100644
> --- a/debian.master/rules.d/riscv64.mk
> +++ b/debian.master/rules.d/riscv64.mk
> @@ -11,7 +11,6 @@ no_dumpfile	= true
>  
>  do_flavour_image_package = false
>  do_tools	= false
> -do_tools_common	= false
>  do_extras_package = false
>  do_source_package = false
>  do_doc_package	= false
> diff --git a/debian/rules b/debian/rules
> index 70ad432a2e90..ce2fbc8978b0 100755
> --- a/debian/rules
> +++ b/debian/rules
> @@ -45,10 +45,19 @@ include $(DROOT)/rules.d/1-maintainer.mk
>  
>  do_linux_tools=$(sort $(filter-out false,$(do_tools_usbip) $(do_tools_cpupower) $(do_tools_perf) $(do_tools_bpftool) $(do_tools_x86)))
>  do_cloud_tools=$(sort $(filter-out false,$(do_tools_hyperv)))
> -do_tools_common?=true
> -do_tools_host?=false
>  do_tools_perf_jvmti?=false
>  
> +# linux-tools-{common,host} may only be built for the main linux and
> +# linux-unstable source packages and must be explicitly enabled
> +# in rules.d/amd64.mk.
> +ifneq ($(filter $(src_pkg_name),linux linux-unstable),)  # logical OR
> +	do_tools_common ?= false
> +	do_tools_host ?= false
> +else
> +	do_tools_common = false
> +	do_tools_host = false
> +endif
> +
>  # Default settings for DKMS modules.
>  $(foreach _m,$(all_dkms_modules), \
>    $(eval do_$(_m) ?= $(if $(filter $(_m),$(filter-out $(dkms_exclude),$(dkms_include) $(subst any,$(_m),$(subst $(arch),$(_m),$(dkms_$(_m)_archs))))),true,false)) \
> @@ -103,8 +112,8 @@ endif
>  ifneq ($(do_tools),true)
>  	do_linux_tools=
>  	do_cloud_tools=
> -	do_tools_common=
> -	do_tools_host=
> +	do_tools_common = false
> +	do_tools_host = false
>  endif
>  
>  $(foreach _m,$(all_built-in_dkms_modules), \
diff mbox series

Patch

diff --git a/debian.master/rules.d/i386.mk b/debian.master/rules.d/i386.mk
index a9327adb7052..77216b5a3594 100644
--- a/debian.master/rules.d/i386.mk
+++ b/debian.master/rules.d/i386.mk
@@ -9,7 +9,6 @@  vdso		= vdso_install
 no_dumpfile	= true
 do_flavour_image_package = false
 do_tools	= false
-do_tools_common	= false
 do_extras_package = false
 do_source_package = false
 do_doc_package	= false
diff --git a/debian.master/rules.d/riscv64.mk b/debian.master/rules.d/riscv64.mk
index 2fa468ae8c1e..5486912f7483 100644
--- a/debian.master/rules.d/riscv64.mk
+++ b/debian.master/rules.d/riscv64.mk
@@ -11,7 +11,6 @@  no_dumpfile	= true
 
 do_flavour_image_package = false
 do_tools	= false
-do_tools_common	= false
 do_extras_package = false
 do_source_package = false
 do_doc_package	= false
diff --git a/debian/rules b/debian/rules
index 70ad432a2e90..ce2fbc8978b0 100755
--- a/debian/rules
+++ b/debian/rules
@@ -45,10 +45,19 @@  include $(DROOT)/rules.d/1-maintainer.mk
 
 do_linux_tools=$(sort $(filter-out false,$(do_tools_usbip) $(do_tools_cpupower) $(do_tools_perf) $(do_tools_bpftool) $(do_tools_x86)))
 do_cloud_tools=$(sort $(filter-out false,$(do_tools_hyperv)))
-do_tools_common?=true
-do_tools_host?=false
 do_tools_perf_jvmti?=false
 
+# linux-tools-{common,host} may only be built for the main linux and
+# linux-unstable source packages and must be explicitly enabled
+# in rules.d/amd64.mk.
+ifneq ($(filter $(src_pkg_name),linux linux-unstable),)  # logical OR
+	do_tools_common ?= false
+	do_tools_host ?= false
+else
+	do_tools_common = false
+	do_tools_host = false
+endif
+
 # Default settings for DKMS modules.
 $(foreach _m,$(all_dkms_modules), \
   $(eval do_$(_m) ?= $(if $(filter $(_m),$(filter-out $(dkms_exclude),$(dkms_include) $(subst any,$(_m),$(subst $(arch),$(_m),$(dkms_$(_m)_archs))))),true,false)) \
@@ -103,8 +112,8 @@  endif
 ifneq ($(do_tools),true)
 	do_linux_tools=
 	do_cloud_tools=
-	do_tools_common=
-	do_tools_host=
+	do_tools_common = false
+	do_tools_host = false
 endif
 
 $(foreach _m,$(all_built-in_dkms_modules), \