Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754140AbbFEDlT (ORCPT ); Thu, 4 Jun 2015 23:41:19 -0400 Received: from mail-oi0-f50.google.com ([209.85.218.50]:33406 "EHLO mail-oi0-f50.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753504AbbFEDlR (ORCPT ); Thu, 4 Jun 2015 23:41:17 -0400 MIME-Version: 1.0 In-Reply-To: References: Date: Fri, 5 Jun 2015 05:41:16 +0200 Message-ID: Subject: Re: Kconfiglib -- a flexible Kconfig parser -- now on GitHub From: Ulf Magnusson To: Rob Landley Cc: Kernel Mailing List , linux-kbuild@vger.kernel.org Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4237 Lines: 92 On Tue, Jun 2, 2015 at 5:29 PM, Ulf Magnusson wrote: > On Tue, Jun 2, 2015 at 1:16 PM, Ulf Magnusson wrote: >> On Tue, Jun 2, 2015 at 5:10 AM, Rob Landley wrote: >>> On Mon, Jun 1, 2015 at 6:58 PM, Ulf Magnusson 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 Just a small warning: The compatibility tests in the test suite overwrite .config in the kernel root. Sorry if that bit someone! /Ulf -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/