[PATCH 5/9] UBUNTU: [Packaging] parameterise ancillary packages
Andy Whitcroft
apw at canonical.com
Wed Sep 14 13:54:51 UTC 2022
Now that our ancillaries are "direct" ancillaries we need to ensure they
are full source packages at our version. Copy in anything common at
clean time. Generate an appropriate changelog with matching versions.
Signed-off-by: Andy Whitcroft <apw at canonical.com>
---
debian/rules.in | 1 +
debian/scripts/gen-rules.lrm | 4 ++
debian/scripts/parameterise-ancillaries | 54 +++++++++++++++++++++++++
3 files changed, 59 insertions(+)
create mode 100755 debian/scripts/parameterise-ancillaries
diff --git a/debian/rules.in b/debian/rules.in
index ef03657..7888a14 100755
--- a/debian/rules.in
+++ b/debian/rules.in
@@ -67,6 +67,7 @@ debian/scripts/fix-filenames: debian/scripts/fix-filenames.c
clean:: pre-clean
rm -f debian/scripts/fix-filenames
rm -rf $(dkms_dir)
+ ./debian/scripts/parameterise-ancillaries $(src_genr_package) $(src_sigs_package)
dh_clean
%:
diff --git a/debian/scripts/gen-rules.lrm b/debian/scripts/gen-rules.lrm
index 60be0a8..f9f5eca 100755
--- a/debian/scripts/gen-rules.lrm
+++ b/debian/scripts/gen-rules.lrm
@@ -23,6 +23,8 @@ src_main_package=$(echo "${src_package}" | sed -e 's/-restricted-modules//')
src_main_version=$(echo ${src_version} | sed -e 's/+[0-9][0-9\.]*$//')
# linux-restricted-generate/5.8.0-41.46[+1]
+src_genr_package=$(echo "${src_package}" | sed -e 's/-restricted-modules/-restricted-generate/')
+src_genr_version=${src_version}
# linux-restricted-signatures/5.8.0-41.46[+1]
src_sigs_package=$(echo "${src_package}" | sed -e 's/-restricted-modules/-restricted-signatures/')
@@ -47,6 +49,8 @@ src_abi = ${src_abi}
src_series = ${src_series}
src_main_package = ${src_main_package}
src_main_version = ${src_main_version}
+src_genr_package = ${src_genr_package}
+src_genr_version = ${src_genr_version}
src_sigs_package = ${src_sigs_package}
src_sigs_version = ${src_sigs_version}
diff --git a/debian/scripts/parameterise-ancillaries b/debian/scripts/parameterise-ancillaries
new file mode 100755
index 0000000..7175688
--- /dev/null
+++ b/debian/scripts/parameterise-ancillaries
@@ -0,0 +1,54 @@
+#!/usr/bin/python3
+
+import os
+import sys
+import json
+from shutil import copy
+from textwrap import dedent, indent
+
+
+def build_changelog(outd, source_name):
+ # Convert debian/changelog: fix the package name in the first stanza.
+ in_changelog = os.path.join("debian", "changelog")
+ out_changelog = os.path.join(outd, "debian", "changelog")
+ with open(in_changelog) as ifd, open(out_changelog, "w") as ofd:
+ first = True
+ stanza = 0
+ for line in ifd:
+ if line[0] not in (" ", "\n"):
+ stanza += 1
+ first = True
+ if stanza == 3:
+ break
+ if first:
+ bits = line.split()
+ bits[0] = source_name
+ print(" ".join(bits), file=ofd)
+ first = False
+ else:
+ print(line, end="", file=ofd)
+
+# Build one of the ancillaries.
+def build_ancillary(package):
+ outd = os.path.join("debian", "ancillary", package)
+
+ os.makedirs(os.path.join(outd, "debian"), exist_ok=True)
+ build_changelog(outd, package)
+ for file in (
+ os.path.join("debian", "rules"),
+ os.path.join("debian", "compat"),
+ os.path.join("debian", "control.common"),
+ os.path.join("debian", "copyright"),
+ os.path.join("debian", "source", "format"),
+ os.path.join("debian", "source", "options"),
+ os.path.join("debian", "dkms-versions"),
+ os.path.join("debian", "package.config"),
+ ):
+ os.makedirs(os.path.dirname(os.path.join(outd, file)), exist_ok=True)
+ copy(file, os.path.join(outd, file))
+
+
+(gen_pkg, sig_pkg) = sys.argv[1:]
+
+build_ancillary(gen_pkg)
+build_ancillary(sig_pkg)
--
2.36.1
More information about the kernel-team
mailing list