News

  • 2013-11-09: 3.12.0.0 has been released (xz, bz2)
  • 2013-09-03: 3.11.0.0 has been released (xz, bz2)
  • 2013-07-04: 3.10.0.0 has been released (xz, bz2)
  • 2013-06-23: We're nearing the release of Linux 3.10, probably next week (rc7 was tagged just hours ago). I'm a bit excited, since there are a couple of interesting changes in this release, but even more excited since the merge window will then open, and more interesting changes will get in!
  • 2013-04-29: 3.9.0.0 has been released (xz, bz2)
  • 2013-02-19: 3.8.0.0 has been released (xz, bz2)
  • 2012-12-15: 3.7.0.0 has been released (xz, bz2)
  • 2012-11-18: The CIRCLEQ patch is now in kconfig-frontends :-)
  • 2012-11-13: The CIRCLEQ patch is now in Linus' tree! :-) It will naturally drip down to kconfig-frontends when either 3.7-rc6 (or final) is out.
  • 2012-10-25: We have a patch to get rid of CIRCLEQ! It's gonna be pushed soon to Linus, soit's gona be in 3.7. Hurray! Thanks to all involved in solving this issue! :-)
  • 2012-10-19: In fact, the CIRCLEQ are needed in the parser, so even if only mconf uses them, the parser does not even build, which completely breaks the build on Cygwin. :-( The proposed fix (using TAILQ instead of CIRCLEQ) looks like it's not the solution, because some other old systems do not even have (complete) TAILQ, see this thread on linux-kbuild. No proper fix in sight (although, to fix building on Cygwin, we could keep my proposed patch for kconfig-frontends only, but I'm not too fond of that).
  • 2012-10-18: A change in mconf.c (that introduces so-called jump-keys, which allows one to directly jump to the searched-for symbol), broke compilation of the mconf frontend on Cygwin, and possibly on *BSD systems, because those systems are missing the CIRCLEQ macros. :-( Hopefully, that will be fixed before 3.7 is out. See also this thread and a proposed fixed on the linux-kbuild mailing list.
  • 2012-10-06: 3.6.0-0 has been released (xz, bz2)
  • 2012-10-06: All frontends are now working on Cygwin! See docs/known-issues.txt
  • 2012-07-22: 3.5.0-0 has been released (xz, bz2)
  • 2012-05-28: Building on Cygwin is mostly functional (except for the nconf frontend); see docs/known-issues.txt
  • 2012-05-22: 3.4.0-0 has been released (xz, bz2)
  • 2012-03-22: 3.3.0-1 has been released (xz, bz2)
  • 2012-03-22: LWN published the 3.3.0-0 annoucement! :-)
  • 2012-03-19: first release ever: 3.3.0-1 has been released (xz, bz2)
  • 2012-03-19: this page has been created! :-)
  • 2012-01-25: this project announced on the linux-kbuild mailing list

Introduction

The configuration language used by the Linux kernel, known as kconfig, has gained some traction in the community, due to its advantages:

  • simple syntax and grammar
  • limited, yet adequate, option types: boolean and tristates, integers and strings
  • simple, yet efficient, organisation of options: indentation, sub-menus, radio-like choices
  • direct and reverse dependencies
  • L10n possible (although not much used in real life)

The kconfig language is increasingly used by third-party projects, to name a few of those I know of:

Up until now, when any such project wanted to use the kconfig language as their own configuration infrastructure, the usage was to copy-paste the code from any random Linux kernel snapshot (preferrably a dot-0 release) into the project's sources, and adapt the build system inherited from the Linux kernel to the project's own build system.

Although this has more-or-less been working so far, this has a few drawbacks:

  • not two projects based their copy from the same Linux kernel snapshot, so the behavior of kconfig can vary from project to project
  • whenever a bug is fixed in, or a new feature added to, the kconfig language and/or frontends, all projects must update their local copy
  • not all projects even upgrade their local copy, and some even did not update since their initial import of kconfig
  • some projects maintain their own set of bug-fixes and/or enhancements to their local copy, rather than contributing them back upstream

The kconfig-frontends package

This project aims at centralising the effort of keeping an up-to-date, out of the Linux source tree, packaging of the kconfig infrastructure, ready for use by third party projects.

This package provides the kconfig parser, as well as all the frontends (all five of them, as of 2012-03-19), packaged using the traditional autotools, so the kconfig infrastructure is easy to deploy, either locally or system-wide.

This kconfig-frontends package does not aim at replacing the in-tree kconfig of the linux kernel (at least in the foreseeable future!). Any fix or feature must still be pushed upstream to the Linux tree before it appears in this package.

Get the source!

You can:

The version numbering of kconfig-frontends follows the linux version number, followed by kconfig-frontends' own version digit. For example:

Linux kernel version kconfig-frontends
internal version
kconfig-frontends
release version
3.7 (aka 3.7.0) 0 3.7.0.0

Before the 3.7.0.0 release, the version string scheme was a bit different, and used a dash "-" between the third and fourth digit. This has been abandoned in favor of a dot "." so as not to confuse distributions, should they decide to package kconfig-frontends. This old scheme was valid up to, and including the 3.6.0-0 release.

Support

There is currently no mailing list dedicated to the kconfig-frontends package.

If you have kconfig issues, direct your inquiry to the linux-kbuild mailing list (archives).

If you have an issue with the packaging itself, just drop me a note.

Who's using kconfig-frontends?

Here is a list of projects I've heard use kconfig-frontends:

projects/kconfig-frontends.txt · Last modified: 20131109.143452 by ymorin
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki