* [PATCH 0/2] diffconfig: add verification mode
@ 2025-01-08 12:34 Thomas Weißschuh
2025-01-08 12:34 ` [PATCH 1/2] MAINTAINERS: Add kconfig utility scripts Thomas Weißschuh
2025-01-08 12:34 ` [PATCH 2/2] diffconfig: add verification mode Thomas Weißschuh
0 siblings, 2 replies; 9+ messages in thread
From: Thomas Weißschuh @ 2025-01-08 12:34 UTC (permalink / raw)
To: Masahiro Yamada; +Cc: linux-kernel, linux-kbuild, Thomas Weißschuh
Also add MAINTAINERS for some kconfig utility scripts.
Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
---
Thomas Weißschuh (2):
MAINTAINERS: Add kconfig utility scripts
diffconfig: add verification mode
MAINTAINERS | 3 +++
scripts/diffconfig | 23 ++++++++++++++++++-----
2 files changed, 21 insertions(+), 5 deletions(-)
---
base-commit: fbfd64d25c7af3b8695201ebc85efe90be28c5a3
change-id: 20250108-diffconfig-validate-23b57b985e14
Best regards,
--
Thomas Weißschuh <thomas.weissschuh@linutronix.de>
^ permalink raw reply [flat|nested] 9+ messages in thread* [PATCH 1/2] MAINTAINERS: Add kconfig utility scripts 2025-01-08 12:34 [PATCH 0/2] diffconfig: add verification mode Thomas Weißschuh @ 2025-01-08 12:34 ` Thomas Weißschuh 2025-01-15 12:11 ` Nicolas Schier 2025-02-10 5:23 ` Masahiro Yamada 2025-01-08 12:34 ` [PATCH 2/2] diffconfig: add verification mode Thomas Weißschuh 1 sibling, 2 replies; 9+ messages in thread From: Thomas Weißschuh @ 2025-01-08 12:34 UTC (permalink / raw) To: Masahiro Yamada; +Cc: linux-kernel, linux-kbuild, Thomas Weißschuh There are various utilities in scripts/ which work with kconfig files. These have currently no maintainer. As most patches for them are applied through kconfig/kbuild anyways, add an explicit maintainership entry. Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de> --- MAINTAINERS | 3 +++ 1 file changed, 3 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index 30cbc3d44cd53e6b1a81d56161004d7ab825d7a9..2bd414fb3e6d6515b57a57a5f3d4d735137edcce 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -12385,6 +12385,9 @@ Q: https://patchwork.kernel.org/project/linux-kbuild/list/ T: git git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git kbuild F: Documentation/kbuild/kconfig* F: scripts/Kconfig.include +F: scripts/checkkconfigsymbols.py +F: scripts/config +F: scripts/diffconfig F: scripts/kconfig/ KCOV -- 2.47.1 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 1/2] MAINTAINERS: Add kconfig utility scripts 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 1 sibling, 1 reply; 9+ messages in thread From: Nicolas Schier @ 2025-01-15 12:11 UTC (permalink / raw) To: Thomas Weißschuh; +Cc: Masahiro Yamada, linux-kernel, linux-kbuild [-- Attachment #1: Type: text/plain, Size: 1223 bytes --] On Wed 08 Jan 2025 13:34:28 GMT, Thomas Weißschuh wrote: > There are various utilities in scripts/ which work with kconfig > files. > These have currently no maintainer. > As most patches for them are applied through kconfig/kbuild anyways, > add an explicit maintainership entry. > > Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de> > --- > MAINTAINERS | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/MAINTAINERS b/MAINTAINERS > index 30cbc3d44cd53e6b1a81d56161004d7ab825d7a9..2bd414fb3e6d6515b57a57a5f3d4d735137edcce 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -12385,6 +12385,9 @@ Q: https://patchwork.kernel.org/project/linux-kbuild/list/ > T: git git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git kbuild > F: Documentation/kbuild/kconfig* > F: scripts/Kconfig.include > +F: scripts/checkkconfigsymbols.py > +F: scripts/config > +F: scripts/diffconfig Thanks! Does it make sense to add scripts/extract-ikconfig also? It does not handle kconfig language at all, but linux-kbuild would probably still a good place for review. Nevertheless, Reviewed-by: Nicolas Schier <nicolas@fjasle.eu> Kind regards, Nicolas [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/2] MAINTAINERS: Add kconfig utility scripts 2025-01-15 12:11 ` Nicolas Schier @ 2025-01-15 12:26 ` Thomas Weißschuh 0 siblings, 0 replies; 9+ messages in thread From: Thomas Weißschuh @ 2025-01-15 12:26 UTC (permalink / raw) To: Nicolas Schier; +Cc: Masahiro Yamada, linux-kernel, linux-kbuild On Wed, Jan 15, 2025 at 01:11:06PM +0100, Nicolas Schier wrote: > On Wed 08 Jan 2025 13:34:28 GMT, Thomas Weißschuh wrote: > > There are various utilities in scripts/ which work with kconfig > > files. > > These have currently no maintainer. > > As most patches for them are applied through kconfig/kbuild anyways, > > add an explicit maintainership entry. > > > > Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de> > > --- > > MAINTAINERS | 3 +++ > > 1 file changed, 3 insertions(+) > > > > diff --git a/MAINTAINERS b/MAINTAINERS > > index 30cbc3d44cd53e6b1a81d56161004d7ab825d7a9..2bd414fb3e6d6515b57a57a5f3d4d735137edcce 100644 > > --- a/MAINTAINERS > > +++ b/MAINTAINERS > > @@ -12385,6 +12385,9 @@ Q: https://patchwork.kernel.org/project/linux-kbuild/list/ > > T: git git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git kbuild > > F: Documentation/kbuild/kconfig* > > F: scripts/Kconfig.include > > +F: scripts/checkkconfigsymbols.py > > +F: scripts/config > > +F: scripts/diffconfig > > Thanks! > > Does it make sense to add scripts/extract-ikconfig also? It does not > handle kconfig language at all, but linux-kbuild would probably still a > good place for review. scripts/extract-ikconfig should be maintained together with kernel/configs.c. Today both are formally unmaintained. linux-kbuild picking up both looks reasonable to me. > Nevertheless, > > Reviewed-by: Nicolas Schier <nicolas@fjasle.eu> Thanks! ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/2] MAINTAINERS: Add kconfig utility scripts 2025-01-08 12:34 ` [PATCH 1/2] MAINTAINERS: Add kconfig utility scripts Thomas Weißschuh 2025-01-15 12:11 ` Nicolas Schier @ 2025-02-10 5:23 ` Masahiro Yamada 2025-02-10 10:35 ` Thomas Weißschuh 1 sibling, 1 reply; 9+ messages in thread From: Masahiro Yamada @ 2025-02-10 5:23 UTC (permalink / raw) To: Thomas Weißschuh; +Cc: linux-kernel, linux-kbuild On Wed, Jan 8, 2025 at 9:34 PM Thomas Weißschuh <thomas.weissschuh@linutronix.de> wrote: > > There are various utilities in scripts/ which work with kconfig files. > These have currently no maintainer. > As most patches for them are applied through kconfig/kbuild anyways, > add an explicit maintainership entry. > > Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de> > --- > MAINTAINERS | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/MAINTAINERS b/MAINTAINERS > index 30cbc3d44cd53e6b1a81d56161004d7ab825d7a9..2bd414fb3e6d6515b57a57a5f3d4d735137edcce 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -12385,6 +12385,9 @@ Q: https://patchwork.kernel.org/project/linux-kbuild/list/ > T: git git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git kbuild > F: Documentation/kbuild/kconfig* > F: scripts/Kconfig.include > +F: scripts/checkkconfigsymbols.py > +F: scripts/config > +F: scripts/diffconfig > F: scripts/kconfig/ There are a number of random scripts I am unfamiliar with. I have never used checkkconfigsymbols.py I may happen to check patches for such tools very reluctantly and very lazily, but it is daunting to endlessly extend my obligations, especially to the point where I lost interest. -- Best Regards Masahiro Yamada ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/2] MAINTAINERS: Add kconfig utility scripts 2025-02-10 5:23 ` Masahiro Yamada @ 2025-02-10 10:35 ` Thomas Weißschuh 0 siblings, 0 replies; 9+ messages in thread From: Thomas Weißschuh @ 2025-02-10 10:35 UTC (permalink / raw) To: Masahiro Yamada; +Cc: linux-kernel, linux-kbuild On Mon, Feb 10, 2025 at 02:23:41PM +0900, Masahiro Yamada wrote: > On Wed, Jan 8, 2025 at 9:34 PM Thomas Weißschuh > <thomas.weissschuh@linutronix.de> wrote: > > > > There are various utilities in scripts/ which work with kconfig files. > > These have currently no maintainer. > > As most patches for them are applied through kconfig/kbuild anyways, > > add an explicit maintainership entry. > > > > Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de> > > --- > > MAINTAINERS | 3 +++ > > 1 file changed, 3 insertions(+) > > > > diff --git a/MAINTAINERS b/MAINTAINERS > > index 30cbc3d44cd53e6b1a81d56161004d7ab825d7a9..2bd414fb3e6d6515b57a57a5f3d4d735137edcce 100644 > > --- a/MAINTAINERS > > +++ b/MAINTAINERS > > @@ -12385,6 +12385,9 @@ Q: https://patchwork.kernel.org/project/linux-kbuild/list/ > > T: git git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git kbuild > > F: Documentation/kbuild/kconfig* > > F: scripts/Kconfig.include > > +F: scripts/checkkconfigsymbols.py > > +F: scripts/config > > +F: scripts/diffconfig > > F: scripts/kconfig/ > > > There are a number of random scripts I am unfamiliar with. > > I have never used checkkconfigsymbols.py > > I may happen to check patches for such tools very reluctantly > and very lazily, but it is daunting to endlessly extend > my obligations, especially to the point where I lost interest. Understood. My intention is not to extend your obligations beyond your interest. However I am not entirely sure from your message if this holds for all three of the added scripts or only checkkconfigsymbols.py. Until further notice I'll assume it affects all of them and the whole patch should be dropped. Thomas ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 2/2] diffconfig: add verification mode 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-08 12:34 ` Thomas Weißschuh 2025-01-15 12:35 ` Nicolas Schier 2025-02-10 5:23 ` Masahiro Yamada 1 sibling, 2 replies; 9+ messages in thread From: Thomas Weißschuh @ 2025-01-08 12:34 UTC (permalink / raw) To: Masahiro Yamada; +Cc: linux-kernel, linux-kbuild, Thomas Weißschuh 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] - # 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 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 2/2] diffconfig: add verification mode 2025-01-08 12:34 ` [PATCH 2/2] diffconfig: add verification mode Thomas Weißschuh @ 2025-01-15 12:35 ` Nicolas Schier 2025-02-10 5:23 ` Masahiro Yamada 1 sibling, 0 replies; 9+ messages in thread From: Nicolas Schier @ 2025-01-15 12:35 UTC (permalink / raw) To: Thomas Weißschuh; +Cc: Masahiro Yamada, linux-kernel, linux-kbuild [-- 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 --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 2/2] diffconfig: add verification mode 2025-01-08 12:34 ` [PATCH 2/2] diffconfig: add verification mode Thomas Weißschuh 2025-01-15 12:35 ` Nicolas Schier @ 2025-02-10 5:23 ` Masahiro Yamada 1 sibling, 0 replies; 9+ messages in thread From: Masahiro Yamada @ 2025-02-10 5:23 UTC (permalink / raw) To: Thomas Weißschuh; +Cc: linux-kernel, linux-kbuild On Wed, Jan 8, 2025 at 9:34 PM Thomas Weißschuh <thomas.weissschuh@linutronix.de> 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. This is a niche solution and is not worthwhile for upstream inclusion. -- Best Regards Masahiro Yamada ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2025-02-10 10:35 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 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 2025-02-10 5:23 ` Masahiro Yamada
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox