Does the BSD license,and maybe others too, allow re-licensing?
  Certainly one way to solve this if true is to simply change the license.


On 3/17/2023 10:05 AM, Nathan Hartman wrote:
On Fri, Mar 17, 2023 at 12:07 PM Alan C. Assis <acas...@gmail.com> wrote:

On 3/17/23, Nathan Hartman <hartman.nat...@gmail.com> wrote:
On Wed, Mar 15, 2023 at 6:16 AM raiden00pl <raiden0...@gmail.com> wrote:
NVMC support for NRF52 chips was ported from Nordic SDK which was
released
on the BSD license (old times), so these features should depend on
CONFIG_ALLOW_BSD_COMPONENTS=y. Users must manually enable support for
the
BSD components to continue using the mentioned features.

Related PR: https://github.com/apache/nuttx/pull/8827

Thanks for posting about it to the list. I just added my review there,
but it got me thinking:

We have many files listed in LICENSE which are non-Apache-2.0-License
and I haven't had a chance to check but I have a feeling that there
could be more files that should be protected by ALLOW_BSD_COMPONENTS /
ALLOW_MIT_COMPONENTS / ALLOW_GPL_COMPONENTS / ALLOW_*_COMPONENTS that
are not currently protected.

For each file that has a non-Apache-2.0-License at the top, should we
wrap the entire file contents with:

#ifdef ALLOW_*_COMPONENTS
.
.
.
#endif /* ALLOW_*_COMPONENTS */

(for the appropriate value of * of course)?

Yes, doing that will cause compiler errors when a build tries to use
those files and doesn't have the required ALLOW_*_COMPONENTS enabled,
but that will help us find all those cases relatively quickly and fix
them by adding "depends on ALLOW_*_COMPONENTS" in Kconfig.

It will ensure that when someone doesn't choose ALLOW_BSD_COMPONENTS /
ALLOW_MIT_COMPONENTS / ALLOW_GPL_COMPONENTS then their build will
actually be licensed as advertised.

If we want to do it then obviously it should be separate PRs, maybe
one for each component we find...

Thoughts?

Nathan, the downsize of adding "depends on ALLOW_*_COMPONENTS" in
Kconfig is it will hide the feature, so a new user will never know
that NuttX supports such feature.

There is an "awful" workaround that people uses to show comments in
the Kconfig, they just use "depends on !ALLOW_*_COMPONENTS" to display
a comment saying that the user needs to enable that LICENSE to use
that feature.

Sometime ago I suggested the option of adding a "tainted" symbol (like
that used on Linux kernel) that indicates if the final binary has some
license different from Apache and warn the user.

That should be a better approach because make users' live easier (and
our as well because we don't need to worry about Kconfig workarounds).
BTW, few days ago a colleague of mine that works here at Espressif,
but on Zephyr team, added it into mainline.

BR,

Alan


Yes I agree that hiding the existence of the feature is Bad.

We really should have a community discussion about what is the method we
use for the non-Apache license choice and then we should be consistent
throughout the source tree.

Cheers
Nathan


Reply via email to