APPLIED: [Unstable/Lunar][PATCH] UBUNTU: [Packaging] annotations: Check validity of FLAVOUR_DEP
Andrea Righi
andrea.righi at canonical.com
Wed Feb 8 07:54:48 UTC 2023
On Tue, Feb 07, 2023 at 11:08:17AM +0100, Juerg Haefliger wrote:
> FLAVOUR_DEP is used to map flavors from the main annotations file to
> flavors from includes. Currently, there is no check that any of the
> listed flavors exists or is valid so the resulting behavior is
> (probably) undefined/unexpected. Add a sanity check to verify the
> FLAVOUR_DEP flavors.
>
> Signed-off-by: Juerg Haefliger <juerg.haefliger at canonical.com>
Makes sense. Applied to lunar/linux and lunar/linux-unstable.
Thanks,
-Andrea
> ---
> debian/scripts/misc/kconfig/annotations.py | 21 +++++++++++++++++++--
> 1 file changed, 19 insertions(+), 2 deletions(-)
>
> diff --git a/debian/scripts/misc/kconfig/annotations.py b/debian/scripts/misc/kconfig/annotations.py
> index 113ce53eb4e0..1711257bd7ab 100644
> --- a/debian/scripts/misc/kconfig/annotations.py
> +++ b/debian/scripts/misc/kconfig/annotations.py
> @@ -57,8 +57,17 @@ class Annotation(Config):
> line = re.sub(r' +', ' ', line)
> line = line.strip()
>
> - # Ignore empty lines and comments
> - if not line or line.startswith('#'):
> + # Ignore empty lines
> + if not line:
> + continue
> +
> + # Catpure flavors of included files
> + if line.startswith('# FLAVOUR: '):
> + self.include_flavour += line.split(' ')[2:]
> + continue
> +
> + # Ignore comments
> + if line.startswith('#'):
> continue
>
> # Handle includes (recursively)
> @@ -112,6 +121,7 @@ class Annotation(Config):
> self.flavour_dep = {}
> self.include = []
> self.header = ''
> + self.include_flavour = []
>
> # Parse header (only main header will considered, headers in includes
> # will be treated as comments)
> @@ -133,6 +143,13 @@ class Annotation(Config):
> # Parse body (handle includes recursively)
> self._parse_body(data)
>
> + # Sanity check: Verify that all FLAVOUR_DEP flavors are valid
> + for src, tgt in self.flavour_dep.items():
> + if src not in self.flavour:
> + raise Exception(f'Invalid source flavour in FLAVOUR_DEP: {src}')
> + if tgt not in self.include_flavour:
> + raise Exception(f'Invalid target flavour in FLAVOUR_DEP: {tgt}')
> +
> def _remove_entry(self, config: str):
> if self.config[config]:
> del self.config[config]
> --
> 2.34.1
>
>
> --
> kernel-team mailing list
> kernel-team at lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team
More information about the kernel-team
mailing list