On Thu, Apr 30, 2020, 6:18 PM Chris Johns <chr...@rtems.org> wrote: > Hi Joel, > > This looks good, thanks. > > I am wondering about references to the wiki and to a "To Be Reviewed" > (TBR) page being placed in the documentation.
I copied that and didn't notice that. There should be a permanent link. And the TBD should be gone. A released PDF may not > have access to the web. For license links should a copy be added to the > document therefore held and maintained across releases of the > documentation? I am OK with references to the tickets, we need to > maintain these. > If the text is ok, I'll fix the links > > Chris > > On 1/5/20 7:50 am, Joel Sherrill 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 > > +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 > > + > > +* 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 > > >
_______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel