<div dir="auto"><div><br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Apr 30, 2020, 6:18 PM Chris Johns <<a href="mailto:chrisj@rtems.org">chrisj@rtems.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Joel,<br>
<br>
This looks good, thanks.<br>
<br>
I am wondering about references to the wiki and to a "To Be Reviewed" <br>
(TBR) page being placed in the documentation.</blockquote></div></div><div dir="auto"><br></div><div dir="auto">I copied that and didn't notice that. There should be a permanent link.</div><div dir="auto"><br></div><div dir="auto">And the TBD should be gone.</div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> A released PDF may not <br>
have access to the web. For license links should a copy be added to the <br>
document therefore held and maintained across releases of the <br>
documentation? I am OK with references to the tickets, we need to <br>
maintain these.<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">If the text is ok, I'll fix the links</div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Chris<br>
<br>
On 1/5/20 7:50 am, Joel Sherrill wrote:<br>
> This now captures historical rationale alone with cross-linking<br>
> code templates with license guidelines.<br>
> <br>
> Closes #3962.<br>
> ---<br>
>   eng/coding-conventions.rst   | 19 ++++++-----<br>
>   eng/license-requirements.rst | 81 +++++++++++++++++++++++++++++++++++++++++---<br>
>   2 files changed, 86 insertions(+), 14 deletions(-)<br>
> <br>
> diff --git a/eng/coding-conventions.rst b/eng/coding-conventions.rst<br>
> index 488ee26..10034df 100644<br>
> --- a/eng/coding-conventions.rst<br>
> +++ b/eng/coding-conventions.rst<br>
> @@ -33,15 +33,16 @@ Source Documentation<br>
>   Licenses<br>
>   --------<br>
>   <br>
> -* The RTEMS `License <<a href="https://devel.rtems.org/wiki/TBR/Website/License" rel="noreferrer noreferrer" target="_blank">https://devel.rtems.org/wiki/TBR/Website/License</a>>`_. is the typical<br>
> -  and preferred license.<br>
> -  * 2- and 3-clause BSD, MIT, and other OSI-approved non-copyleft licenses<br>
> -    that permit statically linking with the code of different licenses<br>
> -    are acceptable.<br>
> -  * GPL licensed code is NOT acceptable, neither is LGPL.<br>
> -    See `this blog post explanation <<a href="http://gedare-csphd.blogspot.com/2013/05/software-licenses-with-rtems.html" rel="noreferrer noreferrer" target="_blank">http://gedare-csphd.blogspot.com/2013/05/software-licenses-with-rtems.html</a>>`_.<br>
> -    for more information.<br>
> -  * Advertising obligations are NOT acceptable, but restrictions are permissible.<br>
> +The RTEMS Project has strict requirements on the types of software licenses<br>
> +that apply to software it includes and distributes. Submissions will be<br>
> +summarily rejected that do not follow the correct license or file header<br>
> +requirements.<br>
> +<br>
> +* Refer to :ref:`LicensingRequirements` for a discussion of the acceptable<br>
> +  licenses and the rationale.<br>
> +<br>
> +* Refer to :ref:`FileHeaderCopyright` for example copyright/license comment<br>
> +  blocks for various languages.<br>
>   <br>
>   Language and Compiler<br>
>   ---------------------<br>
> diff --git a/eng/license-requirements.rst b/eng/license-requirements.rst<br>
> index 44814b1..0349ca6 100644<br>
> --- a/eng/license-requirements.rst<br>
> +++ b/eng/license-requirements.rst<br>
> @@ -9,8 +9,10 @@ Licensing Requirements<br>
>   **********************<br>
>   <br>
>   All artifacts shall adhere to RTEMS Project licensing<br>
> -requirements. Currently, the preferred licenses are CC-BY-SA-4.0 license<br>
> -for documentation and "Two Paragraph BSD" for source code.<br>
> +requirements. Currently, the preferred licenses are:<br>
> +<br>
> +* "Two Paragraph BSD" for source code, and<br>
> +* CC-BY-SA-4.0 license for documentation<br>
>   <br>
>   Historically, RTEMS has been licensed under the GPL v2 with linking<br>
>   exception (<a href="https://www.rtems.org/license" rel="noreferrer noreferrer" target="_blank">https://www.rtems.org/license</a>). It is preferred that new<br>
> @@ -19,7 +21,76 @@ previously submitted code to RTEMS under a historical license, please<br>
>   grant the project permission to relicense. See<br>
>   <a href="https://devel.rtems.org/ticket/3053" rel="noreferrer noreferrer" target="_blank">https://devel.rtems.org/ticket/3053</a> for details.<br>
>   <br>
> -TBD - Convert the following to Rest and insert into this file<br>
> -TBD - <a href="https://devel.rtems.org/wiki/Developer/Coding/Conventions#Licenses" rel="noreferrer noreferrer" target="_blank">https://devel.rtems.org/wiki/Developer/Coding/Conventions#Licenses</a><br>
> +For example templates for what to include in source code and<br>
> +documentation, see :ref:`FileHeaderCopyright`.<br>
> +<br>
> +<br>
> +Rationale<br>
> +---------<br>
> +RTEMS is intended for use in real-time embedded systems in which the<br>
> +application is statically linked with the operating system and all<br>
> +support libraries. Given this use case, the RTEMS development team<br>
> +evaluated a variety of licenses with with the goal of promoting use<br>
> +while protecting both users and the developers.<br>
> +<br>
> +Using the GNU General Public License Version 2 (GPLv2) unmodified<br>
> +was considered but discarded because the GPL can only be linked statically<br>
> +with other GPL code. Put simply, linking your application code statically<br>
> +with GPL code would cause your code to become GPL code. This would force<br>
> +both licensing and redistribution requirements onto RTEMS users. This<br>
> +was completely unacceptable.<br>
> +<br>
> +The GNU Lesser General Public License Version 2 (LGPLv2) was also<br>
> +considered and deemed to not be a suitable license for RTEMS. This is<br>
> +because it either requires use of a shared library that can be re-linked,<br>
> +or release of the linked (application) code. This would require an<br>
> +RTEMS-based embedded system to provide a "relinking kit." Again, this<br>
> +license would force an unacceptable requirement on RTEMS users and deemed<br>
> +unacceptable.<br>
> +<br>
> +Newer versions of the GPL (i.e. version 3) are completely unsuitable<br>
> +for embedded systems due to the additions which add further restrictions<br>
> +on end user applications.<br>
> +<br>
> +The historical RTEMS `License<br>
> +<<a href="https://devel.rtems.org/wiki/TBR/Website/License" rel="noreferrer noreferrer" target="_blank">https://devel.rtems.org/wiki/TBR/Website/License</a>>`_ is a modified version<br>
> +of the GPL version 2 that includes an exception to permit including<br>
> +headers and linking against RTEMS object files statically. This was based<br>
> +on the license used by GCC language runtime libraries at that time. This<br>
> +license allows the static linking of RTEMS with applications without<br>
> +forcing obligations and restrictions on users.<br>
> +<br>
> +A problem for RTEMS is there are no copyleft licenses that are compatible<br>
> +with the deployment model of RTEMS. Thus, RTEMS Project has to reject any<br>
> +code that uses the GPL or LGPL, even though RTEMS has historically appeared<br>
> +to use the GPL itself -- but with the exception for static linking, and also<br>
> +because an upstream GPL version 2 project could at any time switch to<br>
> +GPL version 3 and become totally unusable. In practice, RTEMS can only<br>
> +accept original code contributed under the RTEMS License and code that<br>
> +has a permissive license.<br>
> +<br>
> +<br>
> +As stated above, the RTEMS Project has defined its preferred licenses.<br>
> +These allow generation of documentation and software from specification<br>
> +as well as allow end users to staticly link with RTEMS and not incur<br>
> +obligations.<br>
> +<br>
> +In some cases, RTEMS includes software from third-party projects. In those<br>
> +cases, the license is carefully evaluated to meet the project licensing<br>
> +goals.  The RTEMS Project can only include software under licenses which follow<br>
> +the following guidelin<br>
> +<br>
> +* The RTEMS `License <<a href="https://devel.rtems.org/wiki/TBR/Website/License" rel="noreferrer noreferrer" target="_blank">https://devel.rtems.org/wiki/TBR/Website/License</a>>`_. is the typical<br>
> +  and preferred license.<br>
> +<br>
> +* 2- and 3-clause BSD, MIT, and other OSI-approved non-copyleft licenses<br>
> +  that permit statically linking with the code of different licenses<br>
> +  are acceptable.<br>
> +<br>
> +* GPL licensed code is NOT acceptable, neither is LGPL.<br>
> +<br>
> +* Advertising obligations are NOT acceptable.<br>
> +<br>
> +* Some license restrictions may be permissible. These will be considered<br>
> +  on a case-by-case basis.<br>
>   <br>
> -TBD - Review and make sure this includes info on BSD variants<br>
> <br>
</blockquote></div></div></div>