RE: kconfig (Re: mbedtls)

2020-05-25 Thread Xiang Xiao



> -Original Message-
> From: Gregory Nutt 
> Sent: Tuesday, May 26, 2020 2:13 AM
> To: dev@nuttx.apache.org
> Subject: Re: kconfig (Re: mbedtls)
> 
> 
> > I agree, and all the more reason we should ensure that our project has
> > a controlled snapshot of this tool -- and to ensure the longevity of
> > that snapshot so that it will not be lost suddenly!
> 
> There is also a snapshot of genromfs in the tools repository. This is a 
> snapshot of the tool from the time I wrote the ROMFS file system.
> People have been using "willy-nilly" versions of genromfs, I believe. 
> However, so far that has not caused any problems.
> 

For genromfs, Ubuntu and WSL can be installed directly by "sudo apt-get install 
genromfs". kconfig-frontend also get supported in the recent Debian/Ubuntu 
release:
https://packages.debian.org/sid/kconfig-frontends
https://manpages.debian.org/testing/kconfig-frontends/index.html
But, anyway we need take a snapshot for other platform.

> There is other interesting stuff in the tools directory that people are not 
> well aware of.  For example, nxfuse:
> 
>  A Linux FUSE implementation that enables native mounting of NuttX 
> filesystems
>  in Linux.  Currently supports SmartFS and NXFFS (within the limitations 
> of
>  the NXFFS architecture).  See the nxfuse/README.txt file for further 
> information.




Re: kconfig (Re: mbedtls)

2020-05-25 Thread Takashi Yamamoto
On Tue, May 26, 2020 at 10:16 AM spudaneco  wrote:
>
> Don't forget, you are not a user anymore.  You are a maintainer and you are 
> responsible for keeping a stable environment for all users.Sent from Samsung 
> tablet.

yes. i guess we share the goal. just having different opinions.

>  Original message From: Takashi Yamamoto 
>  Date: 5/25/20  6:41 PM  (GMT-06:00) To: 
> dev@nuttx.apache.org Subject: Re: kconfig (Re: mbedtls) On Tue, May 26, 2020 
> at 12:48 AM Gregory Nutt  wrote:>> We should all be 
> using a consistent, common version of> kconfig-frontends.  A snapshot was 
> taken and has never disappeared from> internet contrary to other statements 
> it is always been here and will> always be here: 
> https://bitbucket.org/nuttx/tools/src/master/>> We do not accept any  
> Python-based tools in the critical build path.> There are some secondary 
> Python scripts under tools/ but we cannot> permit the introduction of any new 
> user tool requirements in the basic> build.  That is simply off-limits.>> 
> Think of the NuttX user first! Technologies and tools are much further> down 
> the list.i can understand you don't like to have python dependency.but i 
> don't think the "user first" argument is not a good reason.for some users 
> (like me) python is definitely easier to deal withthan the current state of 
> kconfig-frontends.>> Greg>> On 5/25/2020 9:38 AM, Nathan Hartman wrote:> > On 
> Mon, May 25, 2020 at 12:36 AM Takashi Yamamoto> > 
>  wrote:> >> On Mon, May 25, 2020 at 1:00 AM 
> Nathan Hartman  wrote:> >>> We do have to solve the 
> issue of Kconfig. That has disappeared from> >>> the Internet and we depend 
> on it. We were told, before we joined> >> do we have some reasons not to 
> switch to kconfiglib?> > Does kconfiglib depend on Python? Currently we do 
> not have a> > dependency on Python. That would introduce Python as a pretty 
> big> > dependency, which I would rather avoid.> >> > Also, that project could 
> disappear from the Internet, just like> > Kconfig, and we'd be back at square 
> one.> >> > I think we should solve the kconfig licensing / hosting question.> 
> > Early in our ASF efforts we were told that exceptions are sometimes> > made 
> so that a project can host "well-known" third party tools that it> > depends 
> on. We depend on kconfig as a central piece of our build> > system, just as 
> we depend on 3rd party compiler toolchains etc. It> > runs on the developer's 
> host machine. It does NOT get compiled into> > the user's NuttX build. 
> Kconfig as a project has come and gone from> > the Internet so for the time 
> being Greg is hosting a mirror at his> > BitBucket along with other build 
> tools.> >> > We need some guidance from our mentors on how to ensure the 
> longevity> > of the tools, like Kconfig, that are needed for NuttX, at 
> Apache> > NuttX, not at some third party location that can disappear 
> suddenly.> >> > Thanks,> > Nathan>>


Re: kconfig (Re: mbedtls)

2020-05-25 Thread Takashi Yamamoto
On Tue, May 26, 2020 at 10:11 AM Nathan Hartman
 wrote:
>
> On Mon, May 25, 2020 at 8:41 PM Takashi Yamamoto
>  wrote:
>
> > On Tue, May 26, 2020 at 12:48 AM Gregory Nutt  wrote:
> > >
> > > We should all be using a consistent, common version of
> > > kconfig-frontends.  A snapshot was taken and has never disappeared from
> > > internet contrary to other statements it is always been here and will
> > > always be here: https://bitbucket.org/nuttx/tools/src/master/
> > >
> > > We do not accept any  Python-based tools in the critical build path.
> > > There are some secondary Python scripts under tools/ but we cannot
> > > permit the introduction of any new user tool requirements in the basic
> > > build.  That is simply off-limits.
> > >
> > > Think of the NuttX user first! Technologies and tools are much further
> > > down the list.
> >
> > i can understand you don't like to have python dependency.
> > but i don't think the "user first" argument is not a good reason.
> > for some users (like me) python is definitely easier to deal with
> > than the current state of kconfig-frontends.
> >
> What don't you like about the current state of kconfig-frontends?

having to build and install a tool from source is already cumbersome.
especially when you need to apply patches manually.

it isn't a problem for me anymore because i already get used to it.
but i guess it's a hurdle for new users.

>
> Nathan


Re: kconfig (Re: mbedtls)

2020-05-25 Thread spudaneco
Don't forget, you are not a user anymore.  You are a maintainer and you are 
responsible for keeping a stable environment for all users.Sent from Samsung 
tablet.
 Original message From: Takashi Yamamoto 
 Date: 5/25/20  6:41 PM  (GMT-06:00) To: 
dev@nuttx.apache.org Subject: Re: kconfig (Re: mbedtls) On Tue, May 26, 2020 at 
12:48 AM Gregory Nutt  wrote:>> We should all be using a 
consistent, common version of> kconfig-frontends.  A snapshot was taken and has 
never disappeared from> internet contrary to other statements it is always been 
here and will> always be here: https://bitbucket.org/nuttx/tools/src/master/>> 
We do not accept any  Python-based tools in the critical build path.> There are 
some secondary Python scripts under tools/ but we cannot> permit the 
introduction of any new user tool requirements in the basic> build.  That is 
simply off-limits.>> Think of the NuttX user first! Technologies and tools are 
much further> down the list.i can understand you don't like to have python 
dependency.but i don't think the "user first" argument is not a good reason.for 
some users (like me) python is definitely easier to deal withthan the current 
state of kconfig-frontends.>> Greg>> On 5/25/2020 9:38 AM, Nathan Hartman 
wrote:> > On Mon, May 25, 2020 at 12:36 AM Takashi Yamamoto> > 
 wrote:> >> On Mon, May 25, 2020 at 1:00 AM 
Nathan Hartman  wrote:> >>> We do have to solve the 
issue of Kconfig. That has disappeared from> >>> the Internet and we depend on 
it. We were told, before we joined> >> do we have some reasons not to switch to 
kconfiglib?> > Does kconfiglib depend on Python? Currently we do not have a> > 
dependency on Python. That would introduce Python as a pretty big> > 
dependency, which I would rather avoid.> >> > Also, that project could 
disappear from the Internet, just like> > Kconfig, and we'd be back at square 
one.> >> > I think we should solve the kconfig licensing / hosting question.> > 
Early in our ASF efforts we were told that exceptions are sometimes> > made so 
that a project can host "well-known" third party tools that it> > depends on. 
We depend on kconfig as a central piece of our build> > system, just as we 
depend on 3rd party compiler toolchains etc. It> > runs on the developer's host 
machine. It does NOT get compiled into> > the user's NuttX build. Kconfig as a 
project has come and gone from> > the Internet so for the time being Greg is 
hosting a mirror at his> > BitBucket along with other build tools.> >> > We 
need some guidance from our mentors on how to ensure the longevity> > of the 
tools, like Kconfig, that are needed for NuttX, at Apache> > NuttX, not at some 
third party location that can disappear suddenly.> >> > Thanks,> > Nathan>>

Re: kconfig (Re: mbedtls)

2020-05-25 Thread Nathan Hartman
On Mon, May 25, 2020 at 8:41 PM Takashi Yamamoto
 wrote:

> On Tue, May 26, 2020 at 12:48 AM Gregory Nutt  wrote:
> >
> > We should all be using a consistent, common version of
> > kconfig-frontends.  A snapshot was taken and has never disappeared from
> > internet contrary to other statements it is always been here and will
> > always be here: https://bitbucket.org/nuttx/tools/src/master/
> >
> > We do not accept any  Python-based tools in the critical build path.
> > There are some secondary Python scripts under tools/ but we cannot
> > permit the introduction of any new user tool requirements in the basic
> > build.  That is simply off-limits.
> >
> > Think of the NuttX user first! Technologies and tools are much further
> > down the list.
>
> i can understand you don't like to have python dependency.
> but i don't think the "user first" argument is not a good reason.
> for some users (like me) python is definitely easier to deal with
> than the current state of kconfig-frontends.
>
What don't you like about the current state of kconfig-frontends?

Nathan


Re: kconfig (Re: mbedtls)

2020-05-25 Thread Takashi Yamamoto
On Tue, May 26, 2020 at 12:48 AM Gregory Nutt  wrote:
>
> We should all be using a consistent, common version of
> kconfig-frontends.  A snapshot was taken and has never disappeared from
> internet contrary to other statements it is always been here and will
> always be here: https://bitbucket.org/nuttx/tools/src/master/
>
> We do not accept any  Python-based tools in the critical build path.
> There are some secondary Python scripts under tools/ but we cannot
> permit the introduction of any new user tool requirements in the basic
> build.  That is simply off-limits.
>
> Think of the NuttX user first! Technologies and tools are much further
> down the list.

i can understand you don't like to have python dependency.
but i don't think the "user first" argument is not a good reason.
for some users (like me) python is definitely easier to deal with
than the current state of kconfig-frontends.

>
> Greg
>
> On 5/25/2020 9:38 AM, Nathan Hartman wrote:
> > On Mon, May 25, 2020 at 12:36 AM Takashi Yamamoto
> >  wrote:
> >> On Mon, May 25, 2020 at 1:00 AM Nathan Hartman  
> >> wrote:
> >>> We do have to solve the issue of Kconfig. That has disappeared from
> >>> the Internet and we depend on it. We were told, before we joined
> >> do we have some reasons not to switch to kconfiglib?
> > Does kconfiglib depend on Python? Currently we do not have a
> > dependency on Python. That would introduce Python as a pretty big
> > dependency, which I would rather avoid.
> >
> > Also, that project could disappear from the Internet, just like
> > Kconfig, and we'd be back at square one.
> >
> > I think we should solve the kconfig licensing / hosting question.
> > Early in our ASF efforts we were told that exceptions are sometimes
> > made so that a project can host "well-known" third party tools that it
> > depends on. We depend on kconfig as a central piece of our build
> > system, just as we depend on 3rd party compiler toolchains etc. It
> > runs on the developer's host machine. It does NOT get compiled into
> > the user's NuttX build. Kconfig as a project has come and gone from
> > the Internet so for the time being Greg is hosting a mirror at his
> > BitBucket along with other build tools.
> >
> > We need some guidance from our mentors on how to ensure the longevity
> > of the tools, like Kconfig, that are needed for NuttX, at Apache
> > NuttX, not at some third party location that can disappear suddenly.
> >
> > Thanks,
> > Nathan
>
>


Re: kconfig (Re: mbedtls)

2020-05-25 Thread Gregory Nutt




I agree, and all the more reason we should ensure that our project has
a controlled snapshot of this tool -- and to ensure the longevity of
that snapshot so that it will not be lost suddenly!


There is also a snapshot of genromfs in the tools repository. This is a 
snapshot of the tool from the time I wrote the ROMFS file system.  
People have been using "willy-nilly" versions of genromfs, I believe.  
However, so far that has not caused any problems.


There is other interesting stuff in the tools directory that people are 
not well aware of.  For example, nxfuse:


    A Linux FUSE implementation that enables native mounting of NuttX 
filesystems
    in Linux.  Currently supports SmartFS and NXFFS (within the 
limitations of
    the NXFFS architecture).  See the nxfuse/README.txt file for 
further information.




Re: kconfig (Re: mbedtls)

2020-05-25 Thread Nathan Hartman
On Mon, May 25, 2020 at 12:28 PM Gregory Nutt  wrote:
> Most projects that use kconfig-frontends use a snapshot version that is
> built into the codebase.  We cannot do that because kconfig-frontends is
> GPL.  However, I still argue that we should use a fixed, common version
> of kconfig-frontends... no matter what is available in some bleeding
> edge repository.
>
> That is important because if new and/or incompatible features are added
> to the bleeding edge kconfig-frontends then are exploited in NuttX, this
> will cause problems for the rest of the world who do not have those
> features.  That is best solved by everyone using a common version of
> kconfig-frontends, that being the one at
> https://bitbucket.org/nuttx/tools/src/master/
>
> If, for some reason, we want to have some features that are available
> only in some newer release, then we should carefully integrate a new
> snapshot at https://bitbucket.org/nuttx/tools/src/master/, make an
> announcement to all NuttX users indicating our intent to upgrade to a
> new version, and after some time then, and only then. we can exploit any
> new features.  Any willy-nilly uncontrolled use of kconfig-frontends
> versions will not have a good result.  It will break user's builds!  We
> need to be be careful, measured, and slow when considering any updates
> to this tool.

I agree, and all the more reason we should ensure that our project has
a controlled snapshot of this tool -- and to ensure the longevity of
that snapshot so that it will not be lost suddenly!

Nathan


Re: kconfig (Re: mbedtls)

2020-05-25 Thread Gregory Nutt




On Mon, May 25, 2020 at 11:48 AM Gregory Nutt  wrote:

A snapshot was taken and has never disappeared from
internet contrary to other statements it is always been here and will
always be here: https://bitbucket.org/nuttx/tools/src/master/

Correct. I meant that the original (from Yann Morin) disappeared.
Eventually Morin did put it back online and IIRC said that the server
had been disconnected from the Internet for some weeks due to moving
to a new apartment. Thanks to you having the foresight to keep a
snapshot, our community didn't suffer any disruption.

Nathan


Most projects that use kconfig-frontends use a snapshot version that is 
built into the codebase.  We cannot do that because kconfig-frontends is 
GPL.  However, I still argue that we should use a fixed, common version 
of kconfig-frontends... no matter what is available in some bleeding 
edge repository.


That is important because if new and/or incompatible features are added 
to the bleeding edge kconfig-frontends then are exploited in NuttX, this 
will cause problems for the rest of the world who do not have those 
features.  That is best solved by everyone using a common version of 
kconfig-frontends, that being the one at 
https://bitbucket.org/nuttx/tools/src/master/


If, for some reason, we want to have some features that are available 
only in some newer release, then we should carefully integrate a new 
snapshot at https://bitbucket.org/nuttx/tools/src/master/, make an 
announcement to all NuttX users indicating our intent to upgrade to a 
new version, and after some time then, and only then. we can exploit any 
new features.  Any willy-nilly uncontrolled use of kconfig-frontends 
versions will not have a good result.  It will break user's builds!  We 
need to be be careful, measured, and slow when considering any updates 
to this tool.





Re: kconfig (Re: mbedtls)

2020-05-25 Thread Gregory Nutt

On 5/25/2020 10:03 AM, Nathan Hartman wrote:

On Mon, May 25, 2020 at 11:48 AM Gregory Nutt  wrote:

A snapshot was taken and has never disappeared from
internet contrary to other statements it is always been here and will
always be here: https://bitbucket.org/nuttx/tools/src/master/

Correct. I meant that the original (from Yann Morin) disappeared.
Eventually Morin did put it back online and IIRC said that the server
had been disconnected from the Internet for some weeks due to moving
to a new apartment. Thanks to you having the foresight to keep a
snapshot, our community didn't suffer any disruption.

Nathan





Re: kconfig (Re: mbedtls)

2020-05-25 Thread Nathan Hartman
On Mon, May 25, 2020 at 11:48 AM Gregory Nutt  wrote:
> A snapshot was taken and has never disappeared from
> internet contrary to other statements it is always been here and will
> always be here: https://bitbucket.org/nuttx/tools/src/master/

Correct. I meant that the original (from Yann Morin) disappeared.
Eventually Morin did put it back online and IIRC said that the server
had been disconnected from the Internet for some weeks due to moving
to a new apartment. Thanks to you having the foresight to keep a
snapshot, our community didn't suffer any disruption.

Nathan


Re: kconfig (Re: mbedtls)

2020-05-25 Thread Gregory Nutt



We should all be using a consistent, common version of 
kconfig-frontends.  A snapshot was taken and has never disappeared 
from internet contrary to other statements it is always been here and 
will always be here: https://bitbucket.org/nuttx/tools/src/master/ 


Since the kconfig-frontends project is dead, we can consider that the 
authoritative source for the tools for our purposes.  There we can 
accept any changes that may be necessary and do not have to be concerned 
with upstream compatibility.





Re: kconfig (Re: mbedtls)

2020-05-25 Thread Gregory Nutt
We should all be using a consistent, common version of 
kconfig-frontends.  A snapshot was taken and has never disappeared from 
internet contrary to other statements it is always been here and will 
always be here: https://bitbucket.org/nuttx/tools/src/master/


We do not accept any  Python-based tools in the critical build path.  
There are some secondary Python scripts under tools/ but we cannot 
permit the introduction of any new user tool requirements in the basic 
build.  That is simply off-limits.


Think of the NuttX user first! Technologies and tools are much further 
down the list.


Greg

On 5/25/2020 9:38 AM, Nathan Hartman wrote:

On Mon, May 25, 2020 at 12:36 AM Takashi Yamamoto
 wrote:

On Mon, May 25, 2020 at 1:00 AM Nathan Hartman  wrote:

We do have to solve the issue of Kconfig. That has disappeared from
the Internet and we depend on it. We were told, before we joined

do we have some reasons not to switch to kconfiglib?

Does kconfiglib depend on Python? Currently we do not have a
dependency on Python. That would introduce Python as a pretty big
dependency, which I would rather avoid.

Also, that project could disappear from the Internet, just like
Kconfig, and we'd be back at square one.

I think we should solve the kconfig licensing / hosting question.
Early in our ASF efforts we were told that exceptions are sometimes
made so that a project can host "well-known" third party tools that it
depends on. We depend on kconfig as a central piece of our build
system, just as we depend on 3rd party compiler toolchains etc. It
runs on the developer's host machine. It does NOT get compiled into
the user's NuttX build. Kconfig as a project has come and gone from
the Internet so for the time being Greg is hosting a mirror at his
BitBucket along with other build tools.

We need some guidance from our mentors on how to ensure the longevity
of the tools, like Kconfig, that are needed for NuttX, at Apache
NuttX, not at some third party location that can disappear suddenly.

Thanks,
Nathan





Re: kconfig (Re: mbedtls)

2020-05-25 Thread Nathan Hartman
On Mon, May 25, 2020 at 12:36 AM Takashi Yamamoto
 wrote:
> On Mon, May 25, 2020 at 1:00 AM Nathan Hartman  
> wrote:
> > We do have to solve the issue of Kconfig. That has disappeared from
> > the Internet and we depend on it. We were told, before we joined
>
> do we have some reasons not to switch to kconfiglib?

Does kconfiglib depend on Python? Currently we do not have a
dependency on Python. That would introduce Python as a pretty big
dependency, which I would rather avoid.

Also, that project could disappear from the Internet, just like
Kconfig, and we'd be back at square one.

I think we should solve the kconfig licensing / hosting question.
Early in our ASF efforts we were told that exceptions are sometimes
made so that a project can host "well-known" third party tools that it
depends on. We depend on kconfig as a central piece of our build
system, just as we depend on 3rd party compiler toolchains etc. It
runs on the developer's host machine. It does NOT get compiled into
the user's NuttX build. Kconfig as a project has come and gone from
the Internet so for the time being Greg is hosting a mirror at his
BitBucket along with other build tools.

We need some guidance from our mentors on how to ensure the longevity
of the tools, like Kconfig, that are needed for NuttX, at Apache
NuttX, not at some third party location that can disappear suddenly.

Thanks,
Nathan


kconfig (Re: mbedtls)

2020-05-24 Thread Takashi Yamamoto
On Mon, May 25, 2020 at 1:00 AM Nathan Hartman  wrote:
>
> On Sun, May 24, 2020 at 7:58 AM Alan Carvalho de Assis
>  wrote:
> > Some months ago I suggested that NuttX could focus only in the kernel
> > and we could create an external distribution using some build system
> > like buildroot, yocto, etc. But as some people pointed, maybe a great
> > strength of NuttX is to have everything integrated.
>
> That is a strength of NuttX, and it would be a shame to ruin it for no
> technical reason and only because we can't find an acceptable way to
> deal with licenses and where to keep code...
>
> ...which is why I think the "glue code" idea is best for 3rd party
> code that we want to integrate.
>
> With "glue code":
> * We do not have to copy 3rd party projects into our repository.
> * We do not need external non-Apache-project repositories.
> * We do not have to copy 3rd party projects into external
> non-Apache-project repositories.
>
> All we do is develop "glue code" which comprises Kconfig files,
> Make.defs files, and possibly patch files. Those would be developed by
> us. Those would be part of Apache NuttX. Those would have the Apache
> license. We would NOT copy any 3rd party projects into our
> repositories.
>
> When users select those items in Kconfig, our build system will invoke
> the "glue code" which will download/clone (if not already present) the
> 3rd party project onto the user's machine and build that code as part
> of their NuttX build.
>
> Our glue code could be smart: For example if a 3rd party library is
> GPL, in our glue code, it would depend on "CONFIG_ALLOW_GPL_LICENSE"
> or something like that. So the end user will have to decide if GPL is
> suitable, and if yes, select to allow it, and then select whatever GPL
> 3rd party code they want to have it built and included in their image.
>
> There is no problem with licensing with this approach.
>
> There are no hostile forks.
>
> There is no need to ask permission, SGAs, etc. because we are not
> copying 3rd party code into our repositories.
>
> And you can integrate every FOSS project in the world with NuttX.
>
> Because: We are only developing glue code and we own the glue code.
>
> People can choose to activate it if they want to, or not. If they want
> to, they accept the licenses of the 3rd party code that they will
> download.
>
> The only concern I can see with this is: What happens if I, as a user
> of NuttX, depend on external projects, and those external projects
> disappear from the Internet. Well, the answer is that our glue code
> should allow you to customize the download/clone location. So, as a
> user of NuttX, you can create your own local clone of 3rd party code,
> so that if the original disappears from the Internet, you have a copy.
> That becomes the user's responsibility. We don't copy any 3rd party
> code into our repositories.
>
> We do have to solve the issue of Kconfig. That has disappeared from
> the Internet and we depend on it. We were told, before we joined

do we have some reasons not to switch to kconfiglib?

> Apache, that sometimes ASF does allow to mirror well-known FOSS tools.
> So we'll have to look at that.
>
> Nathan