From 60b1cef84b6a6b615aa15edffc13dd3b4fa5fb48 Mon Sep 17 00:00:00 2001 From: makejian Date: Mon, 19 Jan 2026 20:40:07 +0800 Subject: [PATCH] Kconfig: Add ALLOW_CUSTOM_PERMISSIVE_COMPONENTS option Add a new license configuration option for components that have custom permissive licenses which are not covered by the standard license options (BSD, MIT, GPL, etc.). This option allows projects to explicitly opt-in to using components with custom permissive licenses that allow free use, modification, and distribution but may have specific attribution or notice requirements. Also update the License Setup documentation section to include this new option. Signed-off-by: makejian --- Documentation/quickstart/configuring.rst | 19 +++++++++++++++++++ Kconfig | 16 ++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/Documentation/quickstart/configuring.rst b/Documentation/quickstart/configuring.rst index af75223b52d..b612dec7090 100644 --- a/Documentation/quickstart/configuring.rst +++ b/Documentation/quickstart/configuring.rst @@ -151,3 +151,22 @@ Multiple config fragments can be merged manually using the tools/merge_config.py $ cd nuttx $ ./tools/merge_config.py -o defconfig .config1 .config2 + +License Setup +============= + +NuttX includes components with various open source licenses. To use these components, +you must explicitly enable the corresponding license configuration option in the +:menuselection:`License Setup` menu: + +* ``CONFIG_ALLOW_BSD_COMPONENTS`` - BSD licensed components (NFS, SPIFFS, Bluetooth LE, etc.) +* ``CONFIG_ALLOW_GPL_COMPONENTS`` - GPL/LGPL licensed components +* ``CONFIG_ALLOW_MIT_COMPONENTS`` - MIT licensed components +* ``CONFIG_ALLOW_BSDNORDIC_COMPONENTS`` - 5-Clause Nordic licensed components (NRF chips only) +* ``CONFIG_ALLOW_ECLIPSE_COMPONENTS`` - Eclipse Public License components +* ``CONFIG_ALLOW_ICS_COMPONENTS`` - ICS licensed components +* ``CONFIG_ALLOW_CUSTOM_PERMISSIVE_COMPONENTS`` - Custom permissive licensed components + +.. warning:: + Please carefully review the license terms for each enabled component to ensure + compliance with your project's licensing requirements. diff --git a/Kconfig b/Kconfig index 8fbca17e70b..f87d144c90a 100644 --- a/Kconfig +++ b/Kconfig @@ -97,6 +97,22 @@ config ALLOW_ICS_COMPONENTS NOTE: Please check that the license for each enabled component matches your project license. +config ALLOW_CUSTOM_PERMISSIVE_COMPONENTS + bool "Use components that have custom permissive licenses" + default n + ---help--- + When this option is enabled the project will allow the use + of components that have custom permissive licenses which + are not covered by the standard license options above. + + This includes components with custom permissive licenses + that allow free use, modification, and distribution but + may have specific attribution or notice requirements. + + NOTE: Please carefully review the license terms for each + enabled component to ensure compliance with your project + requirements. + endmenu # License Setup menu "Build Setup"