[PATCH v2] Rework RTEMS licensing discussions.

Joel Sherrill joel at rtems.org
Fri May 1 00:11:55 UTC 2020


On Thu, Apr 30, 2020, 6:18 PM Chris Johns <chrisj at 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
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20200430/8c28f998/attachment-0001.html>


More information about the devel mailing list