[PATCH 5/9] UBUNTU: [Packaging] parameterise ancillary packages
Stefan Bader
stefan.bader at canonical.com
Fri Sep 23 13:20:13 UTC 2022
On 14.09.22 15:54, Andy Whitcroft wrote:
> 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
To me this reads as if not converting the changelog but stopping after the first
section. So the target changelog consists only of one section.
-Stefan
> + 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)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20220923/bf33b509/attachment.sig>
More information about the kernel-team
mailing list