Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp542707imu; Thu, 22 Nov 2018 01:28:10 -0800 (PST) X-Google-Smtp-Source: AFSGD/VK80MXNa4vIJb9ea2uEINOgX49U+vCzms1rr+HoPIxyO8w9PUBHn2dARz4wDTehetTnra4 X-Received: by 2002:a17:902:ba83:: with SMTP id k3-v6mr10166926pls.200.1542878890359; Thu, 22 Nov 2018 01:28:10 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1542878890; cv=none; d=google.com; s=arc-20160816; b=lzegMXjHPTZn1qVeU7upVtHFDMGeGMwtnQFbyjSDFlGBeIbiOWzB3JzyYVr0LTTUyU wq6W+t505iEO/GUtoQFEka9T/ryQtVxtOHS40fMmhgeG+AO8vRkxl3o41eFDJhfZJxlj tvIfN/OVLwwSLXulpwxiP5BWc5jyNgapGKrtJsDjY53sgGCVry9+rFu7sDYI92oVECBF r+rrn3HTeIfZ+1kcFSIsrqcKu52Vj+y3h7m98TylLUWm1o1b8o2smh9kSOaeHfMimuCO 9e0KEwKg7Gd5IJ6Jm8Szama99w0WOZObtqQXmSC/B0QIu+EtR2L0dpBlzSg9Tv0haeTH UXTA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=W3SLUllYhiDSE3+aA/Sq9gVZvgBvI7jP88VskiGrhPI=; b=g8s0+DB6YTQ4AnLOdWEOcD7xiwBZ9umpK3XqWDFqfEBTeAYv/rE7N57tO07IKPjq0q A4TUpqI1qc7ek2sMSqjzFEU8SPPKUeP1Wv2vcJPvqjwvaO+BydlQDcuyw0xm5TJN90DX InLdWr+lIpCiycrPJnSgpTsuNW6lzNYLpTdRD3NTtV6NzFl0PPlURGPy3h8m1GvjdNeZ B+R4o299OtnHihvddtQV9HXOazW5UDngXnYIaCbH6yEORR3m6fYQU8fkv/ID+G48suoY KWF2VttFn0KpNSDwYFXk/UcOducm8h6nnKiCIOPp3x4CDLX75iufe33VuyVuJc2SzXO3 q/hA== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z11si31033850pfg.107.2018.11.22.01.27.55; Thu, 22 Nov 2018 01:28:10 -0800 (PST) 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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2390402AbeKVJfV (ORCPT + 99 others); Thu, 22 Nov 2018 04:35:21 -0500 Received: from mail-pl1-f196.google.com ([209.85.214.196]:45725 "EHLO mail-pl1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387668AbeKVJfV (ORCPT ); Thu, 22 Nov 2018 04:35:21 -0500 Received: by mail-pl1-f196.google.com with SMTP id a14so7497755plm.12; Wed, 21 Nov 2018 14:58:53 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=W3SLUllYhiDSE3+aA/Sq9gVZvgBvI7jP88VskiGrhPI=; b=JU7GpA7ebAloU5SXY3cuvXVEuEX8K7rHAcgnhEcAgS5CEb+DinE8IUMRKKtdzr1H03 SOCGHQPITSKBmCdza5QZ69HhwFVzpE8YBrqvLFEv4imiECbGkrfhtFtcOIKb3/dTRSVw GAE47jpI4Tq7xO/l21wOfBJ/NY1yKhn0zcfO3QZa7E9cwOloIxVvm0cqgrT1a9FoVM6P qgXK/59htbFnZWVgxDPwOsw3hTIdqD8bPTcNZFKP45gvoqUIxry+0o6TY7QxtAANRP1G iSL0Nke2COVhpzElIBlXXu49j1MbauprjmAPJ+ph0AG90dVhh2fzvgVLsDM/b9t5Ui6u wa+w== X-Gm-Message-State: AA+aEWa0xhUhM6Om4zu17i30wlM9UjBZZJzIIOJbo1qW+pHmuT6pDNWr iYN+Q+r9XKMygFT1KRjQh8s= X-Received: by 2002:a63:a84a:: with SMTP id i10mr7838623pgp.263.1542841133145; Wed, 21 Nov 2018 14:58:53 -0800 (PST) Received: from garbanzo.do-not-panic.com (c-73-71-40-85.hsd1.ca.comcast.net. [73.71.40.85]) by smtp.gmail.com with ESMTPSA id h124sm21810539pfg.143.2018.11.21.14.58.50 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 21 Nov 2018 14:58:51 -0800 (PST) Received: by garbanzo.do-not-panic.com (sSMTP sendmail emulation); Wed, 21 Nov 2018 14:58:49 -0800 Date: Wed, 21 Nov 2018 14:58:49 -0800 From: Luis Chamberlain To: Masahiro Yamada Cc: Linux Kernel Mailing List , Linux Kbuild mailing list , Randy Dunlap , Sam Ravnborg , Petr Vorel , Steven Rostedt , Johannes Berg , Valentin Rothberg , Vegard Nossum , nbd@nbd.name, kconfig-sat@googlegroups.com Subject: Re: [kconfig-sat] Re: [ANN] init-kconfig - easy way to embrace Linux's kconfig Message-ID: <20181121225849.GC4922@garbanzo.do-not-panic.com> References: <20181004200249.GL5238@garbanzo.do-not-panic.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Oct 05, 2018 at 07:48:34PM +0900, Masahiro Yamada wrote: > Hi, > > > > On Fri, Oct 5, 2018 at 5:03 AM 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. > > > Syncing kconfig files is easy I disagree. Even as someone who has done this in the past and is an experience developer it hasn't been a swift process by any mean. > since the files are collected in the single place, scripts/kconfig/. That helps, but isn't enough. > It is true you need some efforts to introduce Kconfig in your project, > but once established, it is just a matter of copying files > under scripts/kconfig. Nope, there is other random subtle work needed, a few of things which I noted earlier before I forgot what things I had to do / change manually which we not obvious. > Copying stuff directly from Linux would be as easy as > doing so from your init-kconfig. Clearly I disagree, the idea with init-kconfig is the process of upkeeping is done centrally, and so users really do just take that and go. If we want to make the process smoother upstream, then great. > > 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 > > > Looks like init-kconfig is trying to build some objects as demo. > > obj-y = main.o > obj-$(CONFIG_FOO) += foo.o > obj-$(CONFIG_BAR) += bar.o > obj-$(CONFIG_BAZ) += baz.o > obj-$(CONFIG_ALPHA) += alpha/ Indeed, we are spoiled with our build process. Mimicing this was actually a separate effort, and so I didn't match on par, but just enough to demo a basic use. > FWIW, this is something I played with some time ago. > > Kbuild Skeleton > https://github.com/masahir0y/kbuild_skeleton > > It consists of some core Makefiles and Kconfig. > > > From the time-stamp, it is already 6 years too old. > > I am not sure if it is useful for people, > if so, it is pretty easy to sync up with the latest Linux. Groovy, indeed this is useful thanks. I still think this process can be improved to allow perhaps both kconfig and its object makefiles magic & dependency tracking thing be easily sharable. I however understand if we don't want that to be a goal, there would have to be obvious gains for it. I don't think we're there yet. Right now it would just make it easier for enhancements to trickle out to the community and/or fixes to bubble up, however I don't expect many people doing much kconfig hacking outside of Linux. Perhaps the best advantage I can think for this as a goal for us right now is to enable researchers with sandboxes, proof of concepts, so that we can eventually get the fruits of such work. Luis