[PATCH v2] Rework RTEMS licensing discussions.

Gedare Bloom gedare at rtems.org
Fri May 1 05:38:39 UTC 2020


On Thu, Apr 30, 2020 at 3:57 PM Joel Sherrill <joel at rtems.org> wrote:
>
> This now captures historical rationale alone with cross-linking
> code templates with license guidelines.
>
> Closes #3962.
> ---
>  eng/coding-conventions.rst   | 19 ++++++-----
>  eng/license-requirements.rst | 81 +++++++++++++++++++++++++++++++++++++++++---
>  2 files changed, 86 insertions(+), 14 deletions(-)
>
> diff --git a/eng/coding-conventions.rst b/eng/coding-conventions.rst
> index 488ee26..10034df 100644
> --- a/eng/coding-conventions.rst
> +++ b/eng/coding-conventions.rst
> @@ -33,15 +33,16 @@ Source Documentation
>  Licenses
>  --------
>
> -* The RTEMS `License <https://devel.rtems.org/wiki/TBR/Website/License>`_. is the typical
> -  and preferred license.
> -  * 2- and 3-clause BSD, MIT, and other OSI-approved non-copyleft licenses
> -    that permit statically linking with the code of different licenses
> -    are acceptable.
> -  * GPL licensed code is NOT acceptable, neither is LGPL.
> -    See `this blog post explanation <http://gedare-csphd.blogspot.com/2013/05/software-licenses-with-rtems.html>`_.
> -    for more information.
> -  * Advertising obligations are NOT acceptable, but restrictions are permissible.
> +The RTEMS Project has strict requirements on the types of software licenses
> +that apply to software it includes and distributes. Submissions will be
> +summarily rejected that do not follow the correct license or file header
> +requirements.
> +
> +* Refer to :ref:`LicensingRequirements` for a discussion of the acceptable
> +  licenses and the rationale.
> +
> +* Refer to :ref:`FileHeaderCopyright` for example copyright/license comment
> +  blocks for various languages.
>
>  Language and Compiler
>  ---------------------
> diff --git a/eng/license-requirements.rst b/eng/license-requirements.rst
> index 44814b1..0349ca6 100644
> --- a/eng/license-requirements.rst
> +++ b/eng/license-requirements.rst
> @@ -9,8 +9,10 @@ Licensing Requirements
>  **********************
>
>  All artifacts shall adhere to RTEMS Project licensing
> -requirements. Currently, the preferred licenses are CC-BY-SA-4.0 license
> -for documentation and "Two Paragraph BSD" for source code.
> +requirements. Currently, the preferred licenses are:
> +
> +* "Two Paragraph BSD" for source code, and
> +* CC-BY-SA-4.0 license for documentation
>
>  Historically, RTEMS has been licensed under the GPL v2 with linking
>  exception (https://www.rtems.org/license). It is preferred that new
> @@ -19,7 +21,76 @@ previously submitted code to RTEMS under a historical license, please
>  grant the project permission to relicense. See
>  https://devel.rtems.org/ticket/3053 for details.
>
> -TBD - Convert the following to Rest and insert into this file
> -TBD - https://devel.rtems.org/wiki/Developer/Coding/Conventions#Licenses
> +For example templates for what to include in source code and
> +documentation, see :ref:`FileHeaderCopyright`.
> +
> +
> +Rationale
> +---------
> +RTEMS is intended for use in real-time embedded systems in which the
> +application is statically linked with the operating system and all
> +support libraries. Given this use case, the RTEMS development team
> +evaluated a variety of licenses with with the goal of promoting use
> +while protecting both users and the developers.
> +
> +Using the GNU General Public License Version 2 (GPLv2) unmodified
> +was considered but discarded because the GPL can only be linked statically
> +with other GPL code. Put simply, linking your application code statically
> +with GPL code would cause your code to become GPL code. This would force
> +both licensing and redistribution requirements onto RTEMS users. This
> +was completely unacceptable.
> +
> +The GNU Lesser General Public License Version 2 (LGPLv2) was also
> +considered and deemed to not be a suitable license for RTEMS. This is
> +because it either requires use of a shared library that can be re-linked,
> +or release of the linked (application) code. This would require an
> +RTEMS-based embedded system to provide a "relinking kit." Again, this
> +license would force an unacceptable requirement on RTEMS users and deemed
> +unacceptable.
> +
> +Newer versions of the GPL (i.e. version 3) are completely unsuitable
> +for embedded systems due to the additions which add further restrictions
> +on end user applications.
> +
> +The historical RTEMS `License
> +<https://devel.rtems.org/wiki/TBR/Website/License>`_ is a modified version
> +of the GPL version 2 that includes an exception to permit including
> +headers and linking against RTEMS object files statically. This was based
> +on the license used by GCC language runtime libraries at that time. This
> +license allows the static linking of RTEMS with applications without
> +forcing obligations and restrictions on users.
> +
> +A problem for RTEMS is there are no copyleft licenses that are compatible
> +with the deployment model of RTEMS. Thus, RTEMS Project has to reject any
> +code that uses the GPL or LGPL, even though RTEMS has historically appeared
> +to use the GPL itself -- but with the exception for static linking, and also
> +because an upstream GPL version 2 project could at any time switch to
> +GPL version 3 and become totally unusable. In practice, RTEMS can only
> +accept original code contributed under the RTEMS License and code that
> +has a permissive license.
> +
> +
> +As stated above, the RTEMS Project has defined its preferred licenses.
> +These allow generation of documentation and software from specification
> +as well as allow end users to staticly link with RTEMS and not incur
minor nit: statically

> +obligations.
> +
> +In some cases, RTEMS includes software from third-party projects. In those
> +cases, the license is carefully evaluated to meet the project licensing
> +goals.  The RTEMS Project can only include software under licenses which follow
> +the following guidelin
"follow the following" :(

typo: guidelines

maybe use: which follow these guidelines


> +
> +* The RTEMS `License <https://devel.rtems.org/wiki/TBR/Website/License>`_. is the typical
> +  and preferred license.
> +
> +* 2- and 3-clause BSD, MIT, and other OSI-approved non-copyleft licenses
> +  that permit statically linking with the code of different licenses
> +  are acceptable.
> +
> +* GPL licensed code is NOT acceptable, neither is LGPL.
> +
> +* Advertising obligations are NOT acceptable.
> +
> +* Some license restrictions may be permissible. These will be considered
> +  on a case-by-case basis.
>
> -TBD - Review and make sure this includes info on BSD variants
> --
> 1.8.3.1
>
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel


More information about the devel mailing list