[PATCH 1/2] UBUNTU: [Packaging] Add support to build-depend on modules-extra

Dimitri John Ledkov dimitri.ledkov at canonical.com
Thu Aug 24 20:15:32 UTC 2023


On Thu, 24 Aug 2023 at 15:31, Dimitri John Ledkov
<dimitri.ledkov at canonical.com> wrote:
>
> linux-generate for kernel.efi builds may require modules-extra for
> some flavours and arches. Add support to request such build-depends
> for linux-generate.
>
> BugLink: https://launchpad.net/bugs/2032760
>
> Signed-off-by: Dimitri John Ledkov <dimitri.ledkov at canonical.com>
> ---
>  debian/scripts/config.py        | 6 +++++-
>  debian/scripts/generate-control | 9 ++++++++-
>  2 files changed, 13 insertions(+), 2 deletions(-)
>
> diff --git a/debian/scripts/config.py b/debian/scripts/config.py
> index 0fc94c1676..9ef880c773 100644
> --- a/debian/scripts/config.py
> +++ b/debian/scripts/config.py
> @@ -9,10 +9,14 @@ class Signing:
>          for flavour in flavours:
>              self._arch_flavour_data.setdefault((arch, flavour), set()).add((stype, binary))
>              self._flavour_to_arch.setdefault(flavour, set()).add(arch)
> -            # cvm is an exclusive option: no image paragraph, no further option flags
> +            if "extra" in options:
> +                # cvm & uc sometimes need modules-extra
> +                self._package_to_flavour_to_arch.setdefault("extra", {}).setdefault(flavour, set()).add(arch)
> +            # cvm is an exclusive option: no image paragraph
>              if "cvm" in options:
>                  self._package_to_flavour_to_arch.setdefault("cvm", {}).setdefault(flavour, set()).add(arch)
>                  continue
> +            # uc is an exclusive option: no image paragraph
>              if "uc" in options:
>                  self._package_to_flavour_to_arch.setdefault("uc", {}).setdefault(flavour, set()).add(arch)
>                  continue
> diff --git a/debian/scripts/generate-control b/debian/scripts/generate-control
> index 5945d9c965..0661b61e34 100755
> --- a/debian/scripts/generate-control
> +++ b/debian/scripts/generate-control
> @@ -26,6 +26,9 @@ with open("debian/control.stub") as tfd, open("debian/control", "w") as cfd:
>                  uci_archs.update(archs)
>              if uci_archs:
>                  print(f' ubuntu-core-initramfs [{" ".join(uci_archs)}] <generate>,', file=cfd)
> +            for flavour, archs in signing.package_flavour_archs("extra"):
> +                # ubuntu-core-initramfs sometime needs extra modules https://bugs.launchpad.net/bugs/2032760
> +                print(f' linux-modules-extra-{abi_version}-{flavour} (= {unsigned_version}) [{" ".join(archs)}]  <generate>,', file=cfd)

Upon rebase to latest unstable, this got tweaked to be
pkg.linux-generate instead of just <generate>

>              print(f" {generate_name} (= {source_version}),", file=cfd)
>              efi_archs = set()
>              for (arch, flavour), (stype, binary) in signing.arch_flavour_data:
> @@ -99,12 +102,16 @@ with open("debian/control.stub") as tfd, open("debian/control", "w") as cfd:
>               Canonical's signing key.
>              """).rstrip(), file=cfd)
>      for flavour, archs in signing.package_flavour_archs("uc"):
> +        depends = "linux-modules-{abi_version}-{flavour}"

this obviously had to be f"linux-modules..." to ensure format string
substitutions are done.

> +        for extra_flavour, extra_archs in signing.package_flavour_archs("extra"):
> +            if extra_flavour == flavour:
> +                depends += f", linux-modules-extra-{abi_version}-{flavour} [{' '.join(extra_archs)}]"
>          # Mostly similar to image, but we don't have recommands nor conflicts
>          print(dedent(f"""\
>
>              Package: linux-image-uc-{abi_version}-{flavour}
>              Architecture: {" ".join(archs)}
> -            Depends: linux-modules-{abi_version}-{flavour}
> +            Depends: {depends}
>              Built-Using: {unsigned_name} (= {unsigned_version})
>              Description: Signed kernel image {flavour} for Ubuntu Core
>               A kernel image for {flavour}.  This version of it is signed with
> --
> 2.34.1
>


-- 
okurrr,

Dimitri



More information about the kernel-team mailing list