On Tue, Jun 2, 2015 at 1:16 PM, Ulf Magnusson <ulfalizer.lkml@xxxxxxxxx> wrote: > On Tue, Jun 2, 2015 at 5:10 AM, Rob Landley <rob@xxxxxxxxxxx> wrote: >> On Mon, Jun 1, 2015 at 6:58 PM, Ulf Magnusson <ulfalizer.lkml@xxxxxxxxx> wrote: >>> Hello, >>> >>> A few years ago I posted patches for a Python Kconfig parser and >>> library I was working on (https://lkml.org/lkml/2011/2/6/151). As not >>> many people are probably aware of it, an updated version of that >>> library has been at https://github.com/ulfalizer/Kconfiglib for a >>> while now, and is being used for some tasks in e.g. Buildroot and Das >>> U-Boot. >>> >>> As a concrete example, I just noticed scripts/checkkconfigsymbols.py >>> and remembered that I have an example script that does the same thing >>> (minus some functionality): >>> https://github.com/ulfalizer/Kconfiglib/blob/master/examples/print_undefined.py. >>> >>> I have no intention to get Kconfiglib into the kernel (unless there >>> would be a demand), and it's definitely not meant to replace the C >>> implementation or introduce a Python dependency for standard builds. >>> It's just an auxiliary helper library which some people might find >>> useful -- especially when doing "unusual" things with Kconfig-based >>> configuration systems. >> >> Huh, I have a todo item to write the old 2.6.12 snapshot of kconfig I >> have in http://landley.net/toybox (it's the only gpl code left in the >> build), but I just got finished _removing_ python as a bulid >> dependency last year and am reluctant to reintroduce it. > > One drawback of replacing the C implementation with Kconfiglib would > be that there's no graphical configuration interface like 'menuconfig' > built in. > > You probably already know this, but some of the menus you see in > 'menuconfig' rely on an "implicit menu" feature by the way, where a > menu is created automatically if you have a symbol S and a bunch > of symbols after it that 'depend on S'. That's just pure presentation > though. (Except that it leads to oddities within 'choice's sometimes > -- see the docstring for _determine_actual_symbols() in > kconfiglib.py.) > >> >> I gave up trying to patch upstream kconfig after a half-dozen rounds >> of https://lwn.net/Articles/161086/ and such were all ignored. (I just >> documented http://landley.net/aboriginal/FAQ.html#dev_miniconfig and >> went on with my life. Yes, still using miniconfig.sh a decade >> later...) >> > > I'm probably missing something in how miniconfig works, but loading up > a minimal .config file like that in one of the *conf utilites (or Kconfiglib) > and writing a new .config should already fill in all the derived stuff. > > I've never seen Roman Zippel post. Maybe he's tired of working on > Kconfig. > >> (I have rather elaborate kconfig parsing to extract help text, I use >> specially formatted menuconfig help entries to create command help, >> and merge the sub-options to create a unified usage: line and >> alphabetically sorted option description list. That's the stuff that >> used to be python, which I rewrote in C last year. Somebody submitted >> a kconfig parser written in awk to toybox a couple years ago, but I >> can't maintain awk...) > > For what it's worth, Kconfiglib can extract help texts. See > https://github.com/ulfalizer/Kconfiglib/blob/master/examples/help_grep.py > for example. > > /Ulf The safest way to reach me is at ulfalizer [a.t] [Google's email service] by the way. A few days ago I discovered that people had sent emails to this account asking about Kconfiglib well after I posted the original patches. I feel pretty bad about that. :/ I'll keep checking this address for a while too just in case. /Ulf -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html