[PATCH 1/1][SRU][Unstable/Mantic] UBUNTU: [Packaging] support modaliases for standalone dkms packages
You-Sheng Yang
vicamo.yang at canonical.com
Fri Oct 13 04:37:26 UTC 2023
BugLink: https://bugs.launchpad.net/bugs/2021740
Signed-off-by: You-Sheng Yang <vicamo.yang at canonical.com>
---
debian.master/control.stub.in | 1 +
debian/control.d/flavour-module.stub | 1 +
debian/rules | 1 +
debian/rules.d/2-binary-arch.mk | 10 +++++++++-
debian/scripts/dkms-build | 9 +++++++++
5 files changed, 21 insertions(+), 1 deletion(-)
diff --git a/debian.master/control.stub.in b/debian.master/control.stub.in
index 589488cc9a22..5038e5b2ae02 100644
--- a/debian.master/control.stub.in
+++ b/debian.master/control.stub.in
@@ -36,6 +36,7 @@ Build-Depends:
uuid-dev <!stage1>,
libnuma-dev [amd64 arm64 ppc64el s390x] <!stage1>,
dkms <!stage1>,
+ dh-modaliases <!stage1>,
curl <!stage1>,
zstd <!stage1>,
pahole [amd64 arm64 armhf ppc64el s390x riscv64] | dwarves (>= 1.21) [amd64 arm64 armhf ppc64el s390x riscv64] <!stage1>,
diff --git a/debian/control.d/flavour-module.stub b/debian/control.d/flavour-module.stub
index 2810f83bb361..d3a7b2ca1030 100644
--- a/debian/control.d/flavour-module.stub
+++ b/debian/control.d/flavour-module.stub
@@ -7,6 +7,7 @@ Priority: optional
Depends:
${misc:Depends},
linux-image-PKGVER-ABINUM-FLAVOUR | linux-image-unsigned-PKGVER-ABINUM-FLAVOUR,
+XB-Modaliases: ${modaliases}
Built-Using: ${linux:BuiltUsing}
Description: Linux kernel MODULE modules for version PKGVER-ABINUM
This package provides the Linux kernel MODULE modules for version
diff --git a/debian/rules b/debian/rules
index b78aff60ce24..00ae0797c3ba 100755
--- a/debian/rules
+++ b/debian/rules
@@ -154,6 +154,7 @@ clean: debian/control debian/canonical-certs.pem debian/canonical-revoked-certs.
# Remove generated intermediate files
rm -f $(DROOT)/control.stub $(DEBIAN)/control.stub
rm -f $(DROOT)/scripts/fix-filenames
+ rm -f $(DROOT)/*.modaliases
.PHONY: distclean
distclean: clean
diff --git a/debian/rules.d/2-binary-arch.mk b/debian/rules.d/2-binary-arch.mk
index 72652b876592..77a4ee9f6ca0 100644
--- a/debian/rules.d/2-binary-arch.mk
+++ b/debian/rules.d/2-binary-arch.mk
@@ -425,6 +425,9 @@ endif
$(foreach _m,$(all_dkms_modules), \
$(if $(enable_$(_m)), \
$(call build_dkms,$(dkms_$(_m)_pkg_name)-$*,$(dkms_$(_m)_pkgdir)/lib/modules/$(abi_release)-$*/$(dkms_$(_m)_subdir),$(dbgpkgdir_dkms),$(_m),$(dkms_$(_m)_debpath)); \
+ $(if $(filter $(_m),$(all_standalone_dkms_modules)), \
+ if [ -f "$(dkms_dir)/$(_m).modaliases" ]; then cp "$(dkms_dir)/$(_m).modaliases" "$(CURDIR)/debian/$(dkms_$(_m)_pkg_name)-$*.modaliases"; fi; \
+ ) \
) \
)
@@ -639,7 +642,12 @@ ifeq ($(do_extras_package),true)
endif
$(foreach _m,$(all_standalone_dkms_modules), \
- $(if $(enable_$(_m)),$(call dh_all,$(dkms_$(_m)_pkg_name)-$*) -- -Znone;)\
+ $(if $(enable_$(_m)), \
+ if [ -f "$(CURDIR)/debian/$(dkms_$(_m)_pkg_name)-$*.modaliases" ]; then \
+ dh_modaliases -p$(dkms_$(_m)_pkg_name)-$*; \
+ fi; \
+ $(call dh_all,$(dkms_$(_m)_pkg_name)-$*) -- -Znone; \
+ )\
)
$(call dh_all,$(pkgbldinfo))
diff --git a/debian/scripts/dkms-build b/debian/scripts/dkms-build
index f85a6557a8e0..0b9c3df3fde3 100755
--- a/debian/scripts/dkms-build
+++ b/debian/scripts/dkms-build
@@ -91,6 +91,15 @@ do
fi
dpkg -x "$lpackage"_*.deb "$package"
+ if [ -n "$(dpkg-deb -f "$lpackage"_*.deb Modaliases)" ]; then
+ echo "II: dkms-build $package modaliases:"
+ dpkg-deb -f "$lpackage"_*.deb Modaliases | \
+ sed -e 's/\([^(]\+\)(\([^)]\+\))\(, \)\?/\1 \2\n/g' | \
+ sed -e '/,/bx' -e 's/\([^ ]\+\) \([^ ]\+\)/alias \2 \1/' \
+ -e 'bend' -e ':x' -e 's/\([^ ]\+\) \([^ ]\+\), \(.*\)/alias \2 \1\n\1 \3/' -e 'P;D' -e ':end' | \
+ grep -v '^$' | \
+ sort | tee "$package".modaliases
+ fi
lversion=$( echo "$lpackage_path" | sed -e 's at .*/@@' -e 's at _[^_]*$@@' -e 's at .*_@@')
#built_using_record "$srcdir/debian/$pkgname.substvars" "$built_using$lpackage (= $lversion)"
--
2.40.1
More information about the kernel-team
mailing list