Hi, group,

There has been talk for years about the idea of creating a separate project out of apps/, extending it so that it is a real NuttX "Distribution," basically like OpenEmbedded, Buildroot, or Yocto for NuttX.  It would:

 *   Download and install the NuttX
 *   Select and build the custom firmware

I have always thought this was a novel idea, but I have not particularly been an advocate.  But I think that Apache licensing issues might drive us to reconsider this idea.  The nuttx/ repository is really pretty clean.  There is certainly some bits of third party code and certainly some ICLAs will be needed, but the code is really very clean.

You cannot say this about apps.  apps/ is a collection of code with a lot of third party code.  There are full ports of third party applications (like interprers/bas, or netutils/thttpd, or modbus, or wapi, or ...).  There are original applications (like NSH).  And there is all manner of things in between.   Mostlyare original applications with varying amounts of highly modified third party code.  NxWidgets contains some Whoopsi code, for example.

So perhaps we could simply things by pulling some or all of the apps/ out of the NuttX repositories.  There apps/ are NOT the OS. They are a hodge-podge collection of applications that runs on the OS.  The OS in the nuttx/repository stands alone and does not depend on the existence of apps/. So there is no imperative reason that we should retain apps/ in the nuttx/ respository.

Certainly doing so is a convenience.  But if licensing becomes an issue, then we should consider some options:

 * We could pull the entire apps/ repository out of the Apache
   repositories and manage it as a separate project outside of Apache. 
   This would be the cleanest way to deliver a complete NuttX
   distribution in the spririt of OpenEmbedded or Buildroot. But there
   are some cons:  The build system and PR checks depend on the
   existing configuration and such a change would potentially cause
   breakage or complexity.  Some of the applications such as NSH really
   are very connected to the OS. Finally, there is no project structure
   in place to manage such a NuttX distribution.
 * We could also just move any dubious components out of apps/ and into
   a separate repository/project.  As components that could be
   installed in apps/.  This use case would be awkward and there is
   really no way to develop a "Distribution" from this.
 * Finally, we can do nothing and deal with the third party software in
   apps/ as we encountered it.

Thoughts?

Greg


Reply via email to