On Fri, May 22, 2020 at 9:18 AM Alan Carvalho de Assis <acas...@gmail.com>
wrote:

> Hi Daniel,
>
> Yes, I think an option is to create an apps/thirdparty folder to
> follow with Xiang idea.


I like the idea of glue code.

There are many libraries out there which people may want to use with NuttX,
and we can't/shouldn't fork them all and stick them in our codebase. Not
only would that be a problem for Apache (because Apache doesn't make
"hostile forks" and licensing) but from a technical/management point it
creates a bigger maintenance burden on us to manually track upstream and
bring updates into NuttX.

It is better to work with upstream libraries as-is, and make only the
custom glue code that consists of Kconfig, Make.defs, etc. The glue code
will belong to us and will be Apache licensed. The 3rd party library stays
separate and is not in our repository. Only if the user activates a 3rd
party library, the glue code will (1) download or clone it, if needed, and
(2) integrate it into the NuttX build system.

If a port to NuttX requires patching the 3rd party code, whoever does the
porting should upstream the changes back to the 3rd party project. If the
3rd party project doesn't accept the changes, the patch can be part of our
glue code.

In any case, we will only need to maintain the glue, not the whole project,
and the glue will be Apache licensed so we aren't stepping on anyone's toes.

I think it's a good general solution for integrating 3rd party code.

I think glue code will even allow to make GNU licensed 3rd party code
integrations, because the glue code is ours, and the GNU code is not
downloaded or used unless the user specifically wants it.

One more thing: I think the glue code should provide a way to customize the
download location of the 3rd party code. So if a NuttX user is worried that
the 3rd party code will disappear from the Internet, or if they want to
customize the 3rd party code, they can keep their own local clone and
provide that link to Kconfig.

> Cheers,
Nathan

Reply via email to