lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Tue, 2 Jun 2015 13:16:21 +0200
From:	Ulf Magnusson <ulfalizer.lkml@...il.com>
To:	Rob Landley <rob@...dley.net>
Cc:	Kernel Mailing List <linux-kernel@...r.kernel.org>,
	linux-kbuild@...r.kernel.org
Subject: Re: Kconfiglib -- a flexible Kconfig parser -- now on GitHub

On Tue, Jun 2, 2015 at 5:10 AM, Rob Landley <rob@...dley.net> wrote:
> On Mon, Jun 1, 2015 at 6:58 PM, Ulf Magnusson <ulfalizer.lkml@...il.com> 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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ