From: Petr Vorel <petr.vorel@gmail.com>
To: Titouan Christophe <titouan.christophe@mind.be>
Cc: ps.report@gmx.net, yann.morin@orange.com,
thomas.petazzoni@bootlin.com, buildroot@buildroot.org
Subject: Re: [Buildroot] [PATCH 7/7] Makefile: add new target "yellowconfig" based on kconfiglib
Date: Fri, 16 Oct 2026 23:44:19 +0200 [thread overview]
Message-ID: <20261016214419.GC331129@pevik> (raw)
In-Reply-To: <20261010151121.876133-8-titouan.christophe@mind.be>
Hi Titouan,
> As informally proposed during the February 2026 Buildroot dev meeting,
> this introduces a new kconfig user interface based on Zephyr's kconfiglib.
> The name "yellowconfig" is inspired by the yellow-themed curses interface,
> as opposed to the classical blue "menuconfig".
> Read more about kconfiglib: https://github.com/zephyrproject-rtos/Kconfiglib
Interesting.
> To run that target, one has to install kconfiglib beforehand,
> for example by issuing the following command:
> > pip install kconfiglib
> In terms of user interface differences, Zephyr's kconfig brings:
> - searching symbols as you type, and more symbols are visible in a single
> page of search results [1]
> - symbols that aren't selectable (because of unmet dependencies) can be
> viewed (toggling them on or off with the key "A") [2]
> - symbols y/n dependencies are displayed more clearly, each one on a newline.
> This is especially appreciable when there are many of them, whereas in the
> classical menuconfig one has to scroll left/right to view them [3]
> Having this as a new make target allow for Buildroot users to try it out
> and forge their opinion on this different interface without breaking
> habits and usual workflows. However, in the longer run, this could possibly
> allow to replace the custom-patched kconfig programs we ship in Buildroot
> with an unmodified upstream supported codebase. If this proves to be useful,
> an appropriate distribution strategy for kconfiglib must be determined,
> such that it doesn't need to be installed externally by users.
> Moreover, as unselectable symbols can be displayed in the interface, this
> would remove the need for comments in the like "<pkg> needs <condition>",
> where we need to invert and maintain conditional dependencies.
> As a final nice addition, having a Python based kconfiglib allows for
> programmatic access to kconfig symbols and settings in scripts, which
> could be useful in testing scenarios.
> [1] https://gitlab.com/-/project/2648174/uploads/8ae29a772927e7e555f85f6d31876bb4/2026-02-04-105501_958x1015_scrot.png
> [2] https://gitlab.com/-/project/2648174/uploads/8d27510cf738cab9fd95ffdd81f75bc9/2026-02-04-105514_958x1015_scrot.png
> [3] https://gitlab.com/-/project/2648174/uploads/6d51a4b608fce076ac8c0c84623531f2/2026-02-04-105522_958x1015_scrot.png
> Signed-off-by: Titouan Christophe <titouan.christophe@mind.be>
> ---
> Makefile | 6 +++++-
> docs/manual/quickstart.adoc | 7 +++++++
> 2 files changed, 12 insertions(+), 1 deletion(-)
> diff --git a/Makefile b/Makefile
> index 7fa3ce4890..8fa95a86a6 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -122,7 +122,7 @@ export BR2_VERSION_FULL := $(BR2_LOCALVERSION)
> endif
> # List of targets and target patterns for which .config doesn't need to be read in
> -noconfig_targets := menuconfig nconfig gconfig xconfig config oldconfig randconfig \
> +noconfig_targets := menuconfig yellowconfig nconfig gconfig xconfig config oldconfig randconfig \
> defconfig %_defconfig allyesconfig allnoconfig alldefconfig syncconfig release \
> randpackageconfig allyespackageconfig allnopackageconfig \
> print-version olddefconfig distclean manual manual-% check-package \
> @@ -1017,6 +1017,9 @@ gconfig: $(BUILD_DIR)/buildroot-config/gconf outputmakefile
> menuconfig: $(BUILD_DIR)/buildroot-config/mconf outputmakefile
> @$(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN)
> +yellowconfig: outputmakefile
> + @$(COMMON_CONFIG_ENV) CONFIG_= python -m menuconfig $(CONFIG_CONFIG_IN)
Please python means usually the old 2.x.
$ make yellowconfig
/bin/bash: line 1: python: command not found
make[1]: *** [Makefile:1021: yellowconfig] Error 127
make: *** [Makefile:83: _all] Error 2
Could we please have python3? Ideally allowing to overwrite it the same way
Linux kernel Makefile have:
PYTHON3 = python3
...
yellowconfig: outputmakefile
@$(COMMON_CONFIG_ENV) CONFIG_= $(PYTHON3) -m menuconfig $(CONFIG_CONFIG_IN)
(I haven't found where Buildroot stores the default tools, I don't thing there
is any file).
With manually fixed:
$ make yellowconfig
/usr/bin/python3: No module named menuconfig
make[1]: *** [Makefile:1021: yellowconfig] Error 1
make: *** [Makefile:83: _all] Error 2
@@ -1164,6 +1167,7 @@ help:
@echo 'Configuration:'
@echo ' menuconfig - interactive curses-based configurator'
@echo ' nconfig - interactive ncurses-based configurator'
+ @echo ' yellowconfig - interactive kconfiglib-based configurator'
=> could we mention https://pypi.org/project/kconfiglib/ at the docs?
And/or in a fallback of $(PYTHON3) -m menuconfig $(CONFIG_CONFIG_IN) (if not too
complicated)?
Kind regards,
Petr
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
next prev parent reply other threads:[~2026-10-16 21:44 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-10 15:11 [Buildroot] [PATCH 0/7] Update kconfig inrastructure to Linux 7.2.9 Titouan Christophe via buildroot
2026-10-10 15:11 ` [Buildroot] [PATCH 1/7] Makefile: always use a base config file for defconfig Titouan Christophe via buildroot
2026-10-16 21:30 ` Petr Vorel
2026-10-10 15:11 ` [Buildroot] [PATCH 2/7] */Config.in: use the new $(VAR) syntax Titouan Christophe via buildroot
2026-10-16 22:17 ` Petr Vorel
2026-10-10 15:11 ` [Buildroot] [PATCH 3/7] */Config.in: replace bool entries with prompt within all choices Titouan Christophe via buildroot
2026-10-16 22:25 ` Petr Vorel
2026-10-10 15:11 ` [Buildroot] [PATCH 5/7] package/openssl: move libopenssl/libressl options out of the choice Titouan Christophe via buildroot
2026-10-16 22:51 ` Petr Vorel
2026-10-10 15:11 ` [Buildroot] [PATCH 6/7] docs/manual: add migration notes for changes in the kconfig syntax Titouan Christophe via buildroot
2026-10-16 22:53 ` Petr Vorel
2026-10-10 15:11 ` [Buildroot] [PATCH 7/7] Makefile: add new target "yellowconfig" based on kconfiglib Titouan Christophe via buildroot
2026-10-16 21:44 ` Petr Vorel [this message]
2026-10-11 19:12 ` [Buildroot] [PATCH 0/7] Update kconfig inrastructure to Linux 7.2.9 Petr Vorel
2026-10-11 19:30 ` Titouan Christophe via buildroot
2026-10-16 21:29 ` Petr Vorel
[not found] ` <20261010151121.876133-5-titouan.christophe@mind.be>
2026-10-16 22:47 ` [Buildroot] [PATCH 4/7] support/kconfig: update to kconfig from " Petr Vorel
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=20261016214419.GC331129@pevik \
--to=petr.vorel@gmail.com \
--cc=buildroot@buildroot.org \
--cc=ps.report@gmx.net \
--cc=thomas.petazzoni@bootlin.com \
--cc=titouan.christophe@mind.be \
--cc=yann.morin@orange.com \
/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.