Received: by 2002:ac0:a582:0:0:0:0:0 with SMTP id m2-v6csp1249529imm; Fri, 5 Oct 2018 22:53:34 -0700 (PDT) X-Google-Smtp-Source: ACcGV602dIbi2oPhDcgU2AEuGAW08qf1aJfxLxTnZz73X3UUeGtW9Jxc/mY8J2rYCYFqRgoeZh3R X-Received: by 2002:a17:902:509:: with SMTP id 9-v6mr14723368plf.155.1538805214460; Fri, 05 Oct 2018 22:53:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1538805214; cv=none; d=google.com; s=arc-20160816; b=oRjjjKQu7uKhBAvyTpdfxhlA7PjopRuBxcbhozhYLl9SbdVWIgChPpIjP2mngrOzRN gxsUu0B/sl9UwDru4Hh6+O6qsjaHASVhjWp1S9bhkPNUKXHuwkSsP1+/mRulChnKOhZ2 v90uMCk48bWEq2nsbjuFia87Li5EQAYwFwoqbM20DK6yjPHpiBNcIY/YySLI3wy8Ny0a LYbh3sVjIcx7Qnr5NfSS+Qh23v7+utZpDw+2d1+dLJGpu20CBEHLU5KvuBs24Dbnj7pc IOv0rQYEyGOOoIxgfw2JMcWR9MsWOjAt7qednnfLbHbzN0zELgIVXMeO2y6Ym4PUMj0h Am/Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=WCseJAA0rNXiW8azI+VZDlgB494Cr/VqyESt1C6Gm/Y=; b=bQyZxTpWutESwhWBJNkeYitvlv1KETeHjvdhTO39Q2FP+W/a7cQrsRBkRVRGDtwuD5 vABTOaehXwYaFbwuFCPnsVOo250tpJX5fLNIo5PUi0FCmCGH3irBL3Lnd82jAExg+oPQ AN1xO4rW0dtthtVHPk2JEdn+k/Kblbk6eI4ZkYJFsdcx3Pjd6u74LKlCOPq8zPUVa1rk LJahiumcAswe2zRswbOQdAbi2LYHejWDlGkSKOpVuLCJ2Jc/6R9iH5EhdMozgSQ4mvap 2gAVrexhif9fUSLBZKuQTIZrSMnldOzXhoZua+Quc94qs8C78N3r4be16w4xHwt4y9pL 0lVg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=cy6qTeZT; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 31-v6si851204plc.423.2018.10.05.22.53.18; Fri, 05 Oct 2018 22:53:34 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=cy6qTeZT; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727709AbeJFMzN (ORCPT + 99 others); Sat, 6 Oct 2018 08:55:13 -0400 Received: from mail-oi1-f171.google.com ([209.85.167.171]:45978 "EHLO mail-oi1-f171.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726792AbeJFMzN (ORCPT ); Sat, 6 Oct 2018 08:55:13 -0400 Received: by mail-oi1-f171.google.com with SMTP id e17-v6so12067793oig.12; Fri, 05 Oct 2018 22:53:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=WCseJAA0rNXiW8azI+VZDlgB494Cr/VqyESt1C6Gm/Y=; b=cy6qTeZT5jz3P4d1Xfz9H8LmNjU7mn+nGRiPbTWcXZmxsBRPdVC3X80qZbalq1dYL4 zTKb8ePP347RTXEgsrLYHLCcDGCCojqPasFKwnpr1t0jkXkVSVx/Y5bg2LLmSrkBYrgA zSAwJlqz2u2LceyydSci+YZvPFVf8ow4dv/E6RLmTP+HxIiVcNFYo+i6f5e6zhlUhiQ9 E63kkP9URUjGk8Tv1F53MJibwspaLdWuL9nLbNbwGiIVE6FHui4H93nVoSsOX646mVmz z8Sh157iifNGhPo00o1e0MOt41+ZhrVA4SqmcLHp7uPZP7mmWE6HIU4F20YHWXU2FABm FEqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=WCseJAA0rNXiW8azI+VZDlgB494Cr/VqyESt1C6Gm/Y=; b=Z3nZZWiVZrZne51988wp3zBy5TqGPgdySBsjVwxdtyX0qBiYg9F3DsZ8+69a350AjH 4dGqyHj3RUdKthSElTzp35jLqmDlACdzZ1JFgxHN83JkJvCDJsfkvKUePg41dXDkadQN D2Rkh6HwbZbv/bMNIAsSkfwkBTneIJZu9nq0jDm+CsJ37KVwHJy0Gfwy1iIXREhzRJpE bXc8VvjxMSq8dp9yN7cKNFM+q2Or+9FYIR+PhKWGmt9kMrnqjGZOz83VNxNI6r2XBDzz XUXTmAbAnn78jnd9uzYBl5Ym4ofivIckfuVwH5vVYv5bwCms2tY0eLG4cbUhFH4z5riP 5f6w== X-Gm-Message-State: ABuFfoiXCYUpKGz0T2zYvcuFs4yr8m4n66fGE5KmAMRvqMO6Pf8ohv61 36QgCf0eAPgOf8tt4WLwkCSqxe1DxgzmeeY158A= X-Received: by 2002:a54:4f89:: with SMTP id g9-v6mr989325oiy.214.1538805193595; Fri, 05 Oct 2018 22:53:13 -0700 (PDT) MIME-Version: 1.0 References: <20181004200249.GL5238@garbanzo.do-not-panic.com> In-Reply-To: <20181004200249.GL5238@garbanzo.do-not-panic.com> From: Ulf Magnusson Date: Sat, 6 Oct 2018 07:53:02 +0200 Message-ID: Subject: Re: [ANN] init-kconfig - easy way to embrace Linux's kconfig To: "Luis R . Rodriguez" Cc: Linux Kernel Mailing List , Linux Kbuild mailing list , Masahiro Yamada , Randy Dunlap , Sam Ravnborg , pvorel@suse.cz, rostedt@goodmis.org, johannes@sipsolutions.net, valentinrothberg@gmail.com, vegard.nossum@oracle.com, nbd@nbd.name, kconfig-sat@googlegroups.com Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Oct 4, 2018 at 10:03 PM Luis Chamberlain wrote: > > Every now and then a project is born, and they decide to use Linux's > kconfig to enable configuration of their project. As it stands we *know* > kconfig is now used in at least over 12 different projects [0]. I myself > added kconfig to one as well years ago. Even research reveals that > kconfig has become one of the leading industrial variability modeling > languages [1] [2]. > > What is often difficult to do though is to start off using kconfig and > integrating it into a project. Or updating / syncing to the latest > kconfig from upstream Linux. > > I had yet another need to use kconfig for another small project so > decided to make a clean template others can use and help keep it in sync. > This is a passive fork which aims to keep in sync with the Linux > kernel's latest kconfig to make it easier to keep up to date and to > enable new projects to use and embrace kconfig on their own. The goal > is *not* to fork kconfig and evolve it separately, but rather keep in > sync with the evolution of kconfig on Linux to make it easier for > projects to use kconfig and also update their own kconfig when needed. > > This may also be useful if folks want to test R&D code on a smaller > compartamentalized codebase. > > If you find this useful and you'd like to help keep it in sync, send > patches my way as the kernel's kconfig evolves. The code is up on > gitlab).) [3]. > > Do we want to document this option on Linux in case folks want to try > and embrace kconfig on their own for other projects? > > [0] http://www.eng.uwaterloo.ca/~shshe/kconfig_semantics.pdf > [1] http://gsd.uwaterloo.ca/sites/default/files/vm-2013-berger.pdf > [2] http://gsd.uwaterloo.ca/sites/default/files/ase241-berger_0.pdf > [3] https://gitlab.com/mcgrof/init-kconfig > > Luis Shameless self-plug: There's also a Python Kconfig implementation that's starting to get picked up by several projects: https://github.com/ulfalizer/kconfiglib It has a terminal menuconfig interface with a lot more features than mconf (a demonstration is available at https://raw.githubusercontent.com/ulfalizer/Kconfiglib/screenshots/screenshots/menuconfig.gif), and can also be used e.g. to generate cross-referenced Kconfig documentation that includes propagated dependencies: https://docs.zephyrproject.org/latest/reference/kconfig/index.html (note: heavy page). Kconfiglib is based around a library (an old version appears in e.g. U-Boot and Yocto, and a newer version in e.g. Espressif). The documentation generation is just a script (https://github.com/zephyrproject-rtos/zephyr/blob/master/doc/scripts/genrest.py), and the same goes for the menuconfig and the other tools. The core library takes part of all the trickiness related to evaluating symbols. I realize there would probably be massive opposition to adding a Python dependency to a core part of the kernel, so I'm not going for that. For most other projects, I think it's a good fit though. Cheers, Ulf