[PATCH 1/2][Hirsute] UBUNTU: [Packaging] rules -- filter out udebs when not needed
Dimitri John Ledkov
xnox at ubuntu.com
Tue Feb 9 12:23:38 UTC 2021
Filter out all udebs, when not needed. This should allow changing the
default to building without udebs, and yet build with udebs in hwe
backports via disable_d_i variable.
Signed-off-by: Dimitri John Ledkov <xnox at ubuntu.com>
---
debian.master/control.stub.in | 1 +
debian.master/rules.d/riscv64.mk | 1 +
debian/rules | 17 +++++++++++++---
debian/rules.d/5-udebs.mk | 2 +-
debian/scripts/misc/kernel-wedge-arch.pl | 26 ------------------------
5 files changed, 17 insertions(+), 30 deletions(-)
delete mode 100755 debian/scripts/misc/kernel-wedge-arch.pl
diff --git a/debian.master/control.stub.in b/debian.master/control.stub.in
index 9c1e956092bf..cae6f6783105 100644
--- a/debian.master/control.stub.in
+++ b/debian.master/control.stub.in
@@ -8,6 +8,7 @@ Build-Depends:
dh-systemd,
cpio,
kernel-wedge,
+ dctrl-tools,
kmod <!stage1>,
makedumpfile [amd64] <!stage1>,
libcap-dev <!stage1>,
diff --git a/debian.master/rules.d/riscv64.mk b/debian.master/rules.d/riscv64.mk
index 66c75adf329e..b63f36a4078a 100644
--- a/debian.master/rules.d/riscv64.mk
+++ b/debian.master/rules.d/riscv64.mk
@@ -13,6 +13,7 @@ no_dumpfile = true
do_flavour_image_package = false
do_tools = false
+do_di = false
do_tools_common = false
do_extras_package = false
do_source_package = false
diff --git a/debian/rules b/debian/rules
index 4f64f55b8d8f..a2323c184837 100755
--- a/debian/rules
+++ b/debian/rules
@@ -39,11 +39,12 @@ do_tools_common?=true
do_tools_host?=false
do_tools_perf_jvmti?=false
do_enforce_all?=false
+do_di?=true
# Don't build tools or udebs in a cross compile environment.
ifneq ($(DEB_HOST_ARCH),$(DEB_BUILD_ARCH))
do_tools=false
- disable_d_i=true
+ do_di=false
do_zfs=false
do_dkms_nvidia=false
do_dkms_nvidia_server=false
@@ -77,7 +78,7 @@ endif
# - disable dkms builds as the versions used may have been deleted
ifneq ($(filter autopkgtest,$(DEB_BUILD_PROFILES)),)
flavours := $(firstword $(flavours))
- disable_d_i=true
+ do_di=false
do_zfs=false
do_dkms_nvidia=false
do_dkms_nvidia_server=false
@@ -215,13 +216,23 @@ $(DEBIAN)/control.stub: \
-e 's/=SERIES=/$(series)/g' \
>> $(DEBIAN)/control.stub; \
done
+ifeq ($(do_di),false)
+ # Building without d-i, excluding udebs from $(DEBIAN)/control.stub
+ grep-dctrl -v -FPackage-Type,XC-Package-Type udeb $(DEBIAN)/control.stub > $(DEBIAN)/control.stub.no-d-i
+ mv $(DEBIAN)/control.stub.no-d-i $(DEBIAN)/control.stub
+ # Drop kernel-wedge build-dependency
+ sed -i '/kernel-wedge/d' $(DEBIAN)/control.stub
+endif
.PHONY: debian/control
debian/control: $(DEBIAN)/control.stub
echo "# placebo control.stub for kernel-wedge flow change" >debian/control.stub
cp $(DEBIAN)/control.stub debian/control
+ifeq ($(do_di),true)
+ echo >> debian/control
export KW_DEFCONFIG_DIR=$(DEBIAN)/d-i && \
export KW_CONFIG_DIR=$(DEBIAN)/d-i && \
LANG=C kernel-wedge gen-control $(release)-$(abinum) | \
- perl -f $(DROOT)/scripts/misc/kernel-wedge-arch.pl $(arch) \
+ grep-dctrl -FArchitecture $(arch) \
>>$(CURDIR)/debian/control
+endif
diff --git a/debian/rules.d/5-udebs.mk b/debian/rules.d/5-udebs.mk
index e642fe69b4f7..7c400b91dae7 100644
--- a/debian/rules.d/5-udebs.mk
+++ b/debian/rules.d/5-udebs.mk
@@ -1,7 +1,7 @@
# Do udebs if not disabled in the arch-specific makefile
binary-udebs: binary-debs
@echo Debug: $@
-ifeq ($(disable_d_i),)
+ifeq ($(do_di),true)
@$(MAKE) --no-print-directory -f $(DROOT)/rules DEBIAN=$(DEBIAN) \
do-binary-udebs
endif
diff --git a/debian/scripts/misc/kernel-wedge-arch.pl b/debian/scripts/misc/kernel-wedge-arch.pl
deleted file mode 100755
index 4b4fefe67c7b..000000000000
--- a/debian/scripts/misc/kernel-wedge-arch.pl
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/usr/bin/perl
-#
-# kernel-wedge-arch.pl -- select only specifiers for the supplied arch.
-#
-use strict;
-
-require Dpkg::Control;
-require Dpkg::Deps;
-
-my $fh = \*STDIN;
-
-my @entries;
-
-my $wanted = $ARGV[0];
-
-my $entry;
-while (!eof($fh)) {
- $entry = Dpkg::Control->new();
- $entry->parse($fh, '???');
-
- if ($entry->{'Architecture'} eq $wanted) {
- print("\n" . $entry);
- }
-}
-
-close($fh);
--
2.27.0
More information about the kernel-team
mailing list