[PATCH V2 1/6][SRU][Jammy/OEM-5.17] UBUNTU: [Packaging] refactor dkms-versions to carry modulename
You-Sheng Yang
vicamo.yang at canonical.com
Fri Apr 22 17:10:05 UTC 2022
From: "You-Sheng Yang (vicamo)" <vicamo.yang at canonical.com>
BugLink: https://bugs.launchpad.net/bugs/1969434
Signed-off-by: You-Sheng Yang (vicamo) <vicamo.yang at canonical.com>
---
debian/dkms-versions | 4 ++--
debian/rules | 19 ++++++-------------
debian/rules.d/0-common-vars.mk | 16 ++++++++++++++++
debian/rules.d/2-binary-arch.mk | 16 ++++++++++------
4 files changed, 34 insertions(+), 21 deletions(-)
diff --git a/debian/dkms-versions b/debian/dkms-versions
index 30760d9d7c01..4b1e7a794514 100644
--- a/debian/dkms-versions
+++ b/debian/dkms-versions
@@ -1,2 +1,2 @@
-v4l2loopback 0.12.5-1ubuntu3
-zfs-linux 2.1.2-1ubuntu3
+v4l2loopback 0.12.5-1ubuntu3 modulename=v4l2loopback
+zfs-linux 2.1.2-1ubuntu3 modulename=zfs
diff --git a/debian/rules b/debian/rules
index eca69cdc98a3..894bb5960437 100755
--- a/debian/rules
+++ b/debian/rules
@@ -74,8 +74,7 @@ endif
# - disable dkms builds as the versions used may have been deleted
ifneq ($(filter autopkgtest,$(DEB_BUILD_PROFILES)),)
flavours := $(firstword $(flavours))
- do_zfs=false
- do_v4l2loopback=false
+ $(foreach _m,$(all_dkms_modules),$(eval do_$(_m) = false))
endif
# Being used to build a mainline build -- turn off things which do not work.
@@ -97,13 +96,11 @@ ifneq ($(do_tools),true)
do_tools_host=
endif
-ifeq ($(do_zfs),false)
- do_zfs_disable:=$(shell for m in $$(cat $(DROOT)/zfs-modules.ignore); do grep -qxF $$m $(prev_abidir)/../modules.ignore 2>/dev/null || echo $$m >> $(prev_abidir)/../modules.ignore; done)
-endif
-
-ifeq ($(do_v4l2loopback),false)
- do_v4l2loopback_disable:=$(shell for m in $$(cat $(DROOT)/v4l2loopback-modules.ignore); do grep -qxF $$m $(prev_abidir)/../modules.ignore 2>/dev/null || echo $$m >> $(prev_abidir)/../modules.ignore; done)
-endif
+$(foreach _m,$(all_dkms_modules), \
+ $(if $(filter true,$(do_$(_m))),, \
+ $(eval do_$(_m)_disable := $$(shell for m in $$$$(cat $(DROOT)/$(_m)-modules.ignore); do grep -qxF $$$$m $(prev_abidir)/../modules.ignore 2>/dev/null || echo $$$$m >> $(prev_abidir)/../modules.ignore; done)) \
+ ) \
+)
ifeq ($(do_dkms_wireguard),false)
do_wireguard_disable:=$(shell for m in $$(cat $(DROOT)/wireguard-modules.ignore); do grep -qxF $$m $(prev_abidir)/../modules.ignore 2>/dev/null || echo $$m >> $(prev_abidir)/../modules.ignore; done)
@@ -112,10 +109,6 @@ endif
# Either tools package needs the common source preparation
do_any_tools=$(sort $(filter-out false,$(do_linux_tools) $(do_cloud_tools)))
-# Versions of dkms packages.
-dkms_zfs_linux_version=$(shell gawk '/^zfs-linux / { print $$2; }' debian/dkms-versions)
-dkms_v4l2loopback_version=$(shell gawk '/^v4l2loopback / { print $$2; }' debian/dkms-versions)
-
# NVIDIA DKMS package gross series split into desktop and server.
nvidia_desktop_series=$(shell sed -n -e 's/^nvidia-graphics-drivers-\([0-9][0-9]*\) .*/\1/p' debian/dkms-versions)
nvidia_server_series=$(shell sed -n -e 's/^nvidia-graphics-drivers-\([0-9][0-9]*-server\) .*/\1/p' debian/dkms-versions)
diff --git a/debian/rules.d/0-common-vars.mk b/debian/rules.d/0-common-vars.mk
index 78f8a0f16e3a..c617317fb54d 100644
--- a/debian/rules.d/0-common-vars.mk
+++ b/debian/rules.d/0-common-vars.mk
@@ -285,3 +285,19 @@ custom_override = \
# selftests that Ubuntu cares about
ubuntu_selftests = breakpoints cpu-hotplug efivarfs memfd memory-hotplug mount net ptrace seccomp timers powerpc user ftrace
+
+# DKMS
+all_dkms_modules =
+$(foreach _line,$(shell gawk '{ OFS = "!"; $$1 = $$1; print }' $(DROOT)/dkms-versions), \
+ $(eval _params = $(subst !, ,$(_line))) \
+ $(eval _deb_pkgname = $(firstword $(_params))) \
+ $(eval _deb_version = $(word 2,$(_params))) \
+ $(if $(filter modulename=%,$(_params)), \
+ $(eval _m = $(word 2,$(subst =, ,$(filter modulename=%,$(_params))))) \
+ , \
+ $(info modulename for $(_deb_pkgname) not specified in dkms-versions. Assume $(_deb_pkgname).) \
+ $(eval _m = $(_deb_pkgname)) \
+ ) \
+ $(eval all_dkms_modules += $(_m)) \
+ $(eval dkms_$(_m)_version = $(_deb_version)) \
+)
diff --git a/debian/rules.d/2-binary-arch.mk b/debian/rules.d/2-binary-arch.mk
index c4906036ceb8..3bfc6abcdf35 100644
--- a/debian/rules.d/2-binary-arch.mk
+++ b/debian/rules.d/2-binary-arch.mk
@@ -117,8 +117,9 @@ $(stampdir)/stamp-install-%: MODSECKEY=$(builddir)/build-$*/certs/signing_key.pe
$(stampdir)/stamp-install-%: MODPUBKEY=$(builddir)/build-$*/certs/signing_key.x509
$(stampdir)/stamp-install-%: build_dir=$(builddir)/build-$*
$(stampdir)/stamp-install-%: dkms_dir=$(call dkms_dir_prefix,$(builddir)/build-$*)
-$(stampdir)/stamp-install-%: enable_zfs = $(call custom_override,do_zfs,$*)
-$(stampdir)/stamp-install-%: enable_v4l2loopback = $(call custom_override,do_v4l2loopback,$*)
+$(foreach _m,$(all_dkms_modules), \
+ $(eval $$(stampdir)/stamp-install-%: enable_$(_m) = $$(filter true,$$(call custom_override,do_$(_m),$$*))) \
+)
$(stampdir)/stamp-install-%: dbgpkgdir_dkms = $(if $(filter true,$(skipdbg)),"",$(dbgpkgdir)/usr/lib/debug/lib/modules/$(abi_release)-$*/kernel)
$(stampdir)/stamp-install-%: $(stampdir)/stamp-build-% $(stampdir)/stamp-install-headers
@echo Debug: $@ kernel_file $(kernel_file) kernfile $(kernfile) install_file $(install_file) instfile $(instfile)
@@ -412,8 +413,8 @@ endif
install -d $(dkms_dir) $(dkms_dir)/headers $(dkms_dir)/build $(dkms_dir)/source
cp -rp "$(hdrdir)" "$(indep_hdrdir)" "$(dkms_dir)/headers"
- $(if $(filter true,$(enable_zfs)),$(call build_dkms, $(mods_pkg_name)-$*, $(pkgdir)/lib/modules/$(abi_release)-$*/kernel, $(dbgpkgdir_dkms), zfs, pool/universe/z/zfs-linux/zfs-dkms_$(dkms_zfs_linux_version)_all.deb))
- $(if $(filter true,$(enable_v4l2loopback)),$(call build_dkms, $(mods_pkg_name)-$*, $(pkgdir)/lib/modules/$(abi_release)-$*/kernel, $(dbgpkgdir_dkms), v4l2loopback, pool/universe/v/v4l2loopback/v4l2loopback-dkms_$(dkms_v4l2loopback_version)_all.deb))
+ $(if $(enable_zfs),$(call build_dkms, $(mods_pkg_name)-$*, $(pkgdir)/lib/modules/$(abi_release)-$*/kernel, $(dbgpkgdir_dkms), zfs, pool/universe/z/zfs-linux/zfs-dkms_$(dkms_zfs_version)_all.deb))
+ $(if $(enable_v4l2loopback),$(call build_dkms, $(mods_pkg_name)-$*, $(pkgdir)/lib/modules/$(abi_release)-$*/kernel, $(dbgpkgdir_dkms), v4l2loopback, pool/universe/v/v4l2loopback/v4l2loopback-dkms_$(dkms_v4l2loopback_version)_all.deb))
ifneq ($(skipdbg),true)
@@ -597,8 +598,11 @@ binary-%: dbgpkg = $(bin_pkg_name)-$*-dbgsym
binary-%: dbgpkgdir = $(CURDIR)/debian/$(bin_pkg_name)-$*-dbgsym
binary-%: pkgtools = $(tools_flavour_pkg_name)-$*
binary-%: pkgcloud = $(cloud_flavour_pkg_name)-$*
-binary-%: rprovides = $(if $(filter true,$(call custom_override,do_zfs,$*)),spl-modules$(comma) spl-dkms$(comma) zfs-modules$(comma) zfs-dkms$(comma)) \
- $(if $(filter true,$(call custom_override,do_v4l2loopback,$*)),v4l2loopback-modules$(comma) v4l2loopback-dkms$(comma))
+$(foreach _m,$(all_dkms_modules), \
+ $(eval binary-%: enable_$(_m) = $$(filter true,$$(call custom_override,do_$(_m),$$*))) \
+)
+binary-%: rprovides = $(if $(enable_zfs),spl-modules$(comma) spl-dkms$(comma) zfs-modules$(comma) zfs-dkms$(comma)) \
+ $(if $(enable_v4l2loopback),v4l2loopback-modules$(comma) v4l2loopback-dkms$(comma))
binary-%: target_flavour = $*
binary-%: checks-%
@echo Debug: $@
--
2.34.1
More information about the kernel-team
mailing list