From: Nicolas Schier <nicolas@fjasle.eu>
To: "Thomas Weißschuh" <thomas.weissschuh@linutronix.de>
Cc: Masahiro Yamada <masahiroy@kernel.org>,
linux-kernel@vger.kernel.org, linux-kbuild@vger.kernel.org
Subject: Re: [PATCH 2/2] diffconfig: add verification mode
Date: Wed, 15 Jan 2025 13:35:17 +0100 [thread overview]
Message-ID: <Z4erhR6TSGMrq4cs@bergen> (raw)
In-Reply-To: <20250108-diffconfig-validate-v1-2-4b3d8ee489da@linutronix.de>
[-- Attachment #1: Type: text/plain, Size: 3063 bytes --]
On Wed 08 Jan 2025 13:34:29 GMT, Thomas Weißschuh wrote:
> When creating kconfig files from defconfig files or snippets some items
> from the reference config may be silently omitted when dependency
> constraints are not met.
> Manual validation is necessary to make sure that the expected items are
> present in the new configuration. As the constraints can change over
> time, this validation has to be repeated.
> Extend the diffconfig script with a validation mode that can be used to
> perform those validation easily and in an automated manner.
>
> Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
> ---
> scripts/diffconfig | 23 ++++++++++++++++++-----
> 1 file changed, 18 insertions(+), 5 deletions(-)
>
> diff --git a/scripts/diffconfig b/scripts/diffconfig
> index 43f0f3d273ae7178086f03038780ba103fd9970b..95cb0282f6db2873ef32804d361ef6db8a7bc8ce 100755
> --- a/scripts/diffconfig
> +++ b/scripts/diffconfig
> @@ -24,6 +24,10 @@ Changed items show the old and new values on a single line.
> If -m is specified, then output will be in "merge" style, which has the
> changed and new values in kernel config option format.
>
> +If -v is specified, then diffconfig will validate that config2 is a superset of
> +of config1. Only items from config1 not in config2 are printed.
> +If items are missing from config2 diffconfig will exit with code 2.
> +
> If no config files are specified, .config and .config.old are used.
>
> Example usage:
> @@ -77,6 +81,11 @@ def show_diff():
> merge_style = 1
> sys.argv.remove("-m")
>
> + validate = 0
> + if "-v" in sys.argv:
> + validate = 1
> + sys.argv.remove("-v")
> +
> argc = len(sys.argv)
> if not (argc==1 or argc == 3):
> print("Error: incorrect number of arguments or unrecognized option")
> @@ -123,11 +132,15 @@ def show_diff():
> print_config("->", config, a[config], b[config])
> del b[config]
I think I'd move the early-exit for validate=1 here, and would leave the rest
as is. But this is only personal preference.
Thanks for the nice idea!
Reviewed-by: Nicolas Schier <nicolas@fjasle.eu>
Kind regards,
Nicolas
>
> - # now print items in b but not in a
> - # (items from b that were in a were removed above)
> - new = sorted(b.keys())
> - for config in new:
> - print_config("+", config, None, b[config])
> + if not validate:
> + # now print items in b but not in a
> + # (items from b that were in a were removed above)
> + new = sorted(b.keys())
> + for config in new:
> + print_config("+", config, None, b[config])
> +
> + if validate and (old or changed):
> + sys.exit(2)
>
> def main():
> try:
>
> --
> 2.47.1
>
>
--
Nicolas Schier
epost|xmpp: nicolas@fjasle.eu irc://oftc.net/nsc
↳ gpg: 18ed 52db e34f 860e e9fb c82b 7d97 0932 55a0 ce7f
-- frykten for herren er opphav til kunnskap --
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2025-01-15 12:35 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-08 12:34 [PATCH 0/2] diffconfig: add verification mode Thomas Weißschuh
2025-01-08 12:34 ` [PATCH 1/2] MAINTAINERS: Add kconfig utility scripts Thomas Weißschuh
2025-01-15 12:11 ` Nicolas Schier
2025-01-15 12:26 ` Thomas Weißschuh
2025-02-10 5:23 ` Masahiro Yamada
2025-02-10 10:35 ` Thomas Weißschuh
2025-01-08 12:34 ` [PATCH 2/2] diffconfig: add verification mode Thomas Weißschuh
2025-01-15 12:35 ` Nicolas Schier [this message]
2025-02-10 5:23 ` Masahiro Yamada
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Z4erhR6TSGMrq4cs@bergen \
--to=nicolas@fjasle.eu \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=masahiroy@kernel.org \
--cc=thomas.weissschuh@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.