Open source software grants users many things. The key ones are: the ability to use, change, and distribute a software library or project, with or without its source code, for any purpose, anywhere in the world. However, it’s important to also understand the fundamental idea behind open source software – which is that you’re free to modify, change, and share it with the world.
It’s about making software accessible to all.
However, while many view open source software as allowing free and limitless access to reusable software, that's not always the case. It depends on which open source licence the software is distributed under.
Open source licensing also benefits communities supporting developers – by providing useful libraries and content to many different audiences.
This article briefly outlines what you need to know about open source licensing and the TinyMCE 5 WYSIWYG HTML editor.
Types of open source licensing
Many types of open source licenses exist, but the following are some of the most well known ones. The publicly available definitions are listed below:
Public Domain: The most permissive or "freeing" of all software licenses.
Public domain software can be modified and used by anyone with no restrictions whatsoever. Many people assume that all open source software is in the public domain, but that's not the case. Additionally, just because code lacks an explicit license, that doesn’t automatically make it public domain.
Permissive: Often called "Apache style" or "BSD style," permissive licenses have minimal restrictions on how a user can modify or redistribute the software.
Permissive licenses are the most common in open source software. If you’re using the BSD style licence, always follow the list of requirements for redistribution. The MIT Licence is another example of a more permissive open source license – it allows the right to modify and distribute projects freely or for sale.
Copyleft: A copyleft license is a restrictive license that allows users to modify and distribute new software based on the code. However, the code that you distribute must always be free to use and only licensed for personal use.
Another requirement is that you must share the source code of your own software, allowing users to modify and build upon it as a base.
LGPL: The name stands for "Lesser General Public License", and the restrictions of a LGPL can be complicated.
The GNU developed this license as a compromise between the freedom of permissive licenses and the stronger limitations of a copyleft license. The LGPL licence contrasts with the more restrictive GNU General Public Licence (GPL).
Out of the above licenses, public domain is often considered to be the least restrictive. Following this, permissive is the second-least restrictive, and LGPL falls in between permissive and copyleft licenses.
Of course, the other type of licensing we haven’t mentioned is commercial licensing. This is where most software falls – where it’s not part of the open source domain, but proprietary software and you must pay in order to access and use its code.
TinyMCE 5 - an open source rich text editor
As part of the ongoing development of TinyMCE 5, we carefully considered all the common license types. Ultimately, the licence we selected was based on our belief that it would be the least restrictive to our users, while also protecting the integrity of the software as an open source rich text editor.
The result was that TinyMCE 5 is licensed under the Lesser General Public license – to empower creativity, and support development in the most effective way possible.
As part of our commitment to open source, it’s important to always keep up-to-date, and assess both the needs of the community as well as the various licenses available at the time.
Therefore, future development of our code – TinyMCE 6 and beyond – could potentially use a different licence. However, that decision would only ever be made in response to changing requirements and standards.
GNU lesser General Public License 2.1
TinyMCE 5 utilizes a LGPL license. More specifically, it uses the GNU lesser General Public License 2.1, which you can view on GitHub. Since the implications of this license can sometimes be complicated to understand, here’s what the Free Software Foundation defines as a middle ground between permissive licenses.
Understanding open source licensing restrictions
Under the LGPL, the passing of rights is a consideration:
“...if you distribute copies of the library, whether gratisor for a fee, you must give the recipients all the rights that we gave you.”
Further, the LGPL goes on to explain information about source code and integration: “You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty…”.
How the GNU license benefits users
The GNU organisation explains, when describing the limits of a pure, proprietary licence, that, "the licenses for most software are designed to take away your freedom to share and change it."
In contrast, the GNU General Public Licenses, and in this case, the GNU lesser General Public License, helps protect user freedoms.
This contrast between proprietary and GNU General Public License is a significant reason why selecting the appropriate software license is not a decision to be taken lightly. Restricting user freedoms and protecting intellectual property, as well as the value of creating new works from existing libraries are all key considerations.
It's imperative to identify if you are creating a combined work or an application. As the GNU explains: "When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary, General Public License therefore permits such linking only if the entire combination fits its criteria of freedom...[meanwhile]...the Lesser General Public License permits more lax criteria for linking other code with the library."
In other words, LGPL gives users more freedom than a standard GNU license when it comes to a solution. The option to create a combined work exists with an LGPL. Using a GNU licence would prevent this sharing of the rich text editor into a new, combined work.
Where to go next?
What do you think of the different open source licences? Let us know @jointiny. And if you have any questions about how using TinyMCE 5 with the GNU licence works, you can contact us to find out more.