Re: Kconfiglib -- a flexible Kconfig parser -- now on GitHub

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux&nblp;USB Development]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite Secrets]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux