Open Source licensing which allows linking

OSL 3.0 (Open Source License) - Good GPL alternative, that it allows linking, as linked code isn't considered a derivative work. Contributed code must be reciprocated, while linked code doesn't have to be. It has a patent retaliation clause. Oddly, this license has a similarity to the AGPL, which is that license terms must be kept together even on intranet networks. This license is FSF approved, yet GPL incompatible. It is stewarded by OSI. OSL is the file-based license version of AFL. It was created by Lawrence Rosen who has been affiliated with the OSI (Open Source Initiative).

AFL 3.0 (Academic Free License) - This is for Academic software. Contributed code doesn't have to be reciprocated, but code not under this license must be marked. It contains a patent retaliation clause. This license is OSI approved. It was also created by Lawrence Rosen. Is like OSL, except it's permissive instead of file-based. AFL is considered redundant with Apache 2.0, while some may want to use this license for its name.

Apache 2.0 - Permissive license, where code not under license must be marked. Contains patent termination clause. Similar to ASL. Apache 2.0 is one of the most widely used open source licenses, even more widely used for code than GPL.

MPL 2.0 - File-based copyleft license. Has patent clause, can be used alongside other code. Similar functions as OSL, except more complex. Also includes how to use with GPL through combo licensing.

OFL 1.1 (Open Font License) - Sil license for fonts. For fonts, consider this license, as well as commonly known permissive licenses. For use, this has a wide catalog of fonts. See the ports category: x11-fonts.

CDDL 1.0 & CDDL 1.1 - A few copyleft licenses are based on the CDDL 1.0. CDDL 1.0 was widely used. CDDL 1.1 isn't widely used, mostly limited to a few products by Oracle. CDDL 1.1 contains a patent retaliation clause which goes by California state law. The other difference between these two licenses is the named steward.

EPL 2.0 (Eclipse Public License) - File-based copyleft. Uses patent clause.

Ms-PL (Microsoft Public License) - You may not believe this, but Ms-PL is less stringent than the GPL.

EUPL 1.2 (European Union Public License) - Complex license, but allows dynamic linking.

I consider a few in the list above, including OSL, to be optimal or near optimal open source licenses, because they allow the use of dynamic linking to and/or from, and have patent retaliation clauses. It's also good that they're file-based, or the ones which are permissive, that code not included under license terms must be marked. See: https://opensource.org/license/.

Pertaining to GPL
LGPL allows dynamic linking from it. This license is suitable for libraries.

There's the GNU class path exception which allows dynamic linking, according to certain GPL rules. GPLv2 can be used with this. GPLv3 has more stringent rules, which make class path exception difficult to use with.

I see it as, GPL2.1 needs an identical GPL2.2 with a standard GNU class path exception, which allows it to use dynamic linking from other code, including LGPL3, other file-based copyleft licenses, and permissive licenses with different patent clauses. Perhaps, a patent retaliation clause can be added on to it as well, which is waived when used with previous GPL2 minor versions and perhaps GPL3. This is for the sake of improved compatibility with other GPL license terms. Other than that, a proposed GPL2.2 doesn't need any more changes.

GPL can also have a GPL3.1, to allow it to use dynamically linked code. While GPLv3 has more stringent rules for linking exceptions, they're the steward which has the authority to make a such a standard linking exception.

Seeing how the FSF approves of OSL, despite it not being compatible with GPL, they might be open to terms of allowing use of other code through dynamic linking for newer minor GPL versions. This would benefit GPL/GNU plus the rest of opensource. It's good to see the realization of FSF approving of OSL.

In this, I argued for GPL to be adjusted to be able to use other libraries through dynamic linking. I didn't make a case for other code to use GPL through dynamic linking.
 
Seeing how the FSF approves of OSL, despite it not being compatible with GPL, they might be open to terms of allowing use of other code through dynamic linking for newer minor GPL versions. This would benefit GPL/GNU plus the rest of opensource. It's good to see the realization of FSF approving of OSL.
I wouldn’t hold my breath over it, just check GNU article “Why you shouldn't use the Lesser GPL for your next library” where they are “crying” because they “have to” use LGPL for glibc, otherwise no one sane will use it.
 
After collaboration between Eclipse Foundation and IBM, EPL since 1.0 has superseded IBM's CPL license https://eclipse-foundation.blog/2009/04/16/one-small-step-towards-reducing-license-proliferation/. Code under the CPL can be upgrade into the EPL, as the EPL is considered a newer version, even when they started out as the same version numbers under different names, since IBM and Eclipse agreed on it.

MPL was re-added as an accepted license to the Google Summer of Code. EPL was also added https://opensource.googleblog.com/2008/08/mozilla-and-eclipse-licenses-now.html.

The sites for OSL3.0: https://rosenlaw.com/OSL3.0-explained.htm & https://opensource.org/license/osl-3-0-php.

CDDL 1.1 is actually an approved OSI license as of this year! https://opensource.org/license/cddl-1-1.

A few approved open source licenses including CDDL-1.1 are non-reusable. Don't fully understand what that means.

Apache relating to AFL, permissive and GPL
The ASF (Academic Software Foundation) not AFL (Academic Freedom License) allows Apache 2.0 and certain BSD licenses: https://www.apache.org/legal/resolved.html. The Academic Software Foundation is a Linux Foundation Project: https://www.aswf.io/.

The AFL (Academic Freedom License) is different, which was by Rosen Law, and affiliated with OSI. This license was superseded by Apache 2.0.

For libraries, meant to be included for all projects, I'm unsure if there's a permissive license which requires modification to be disclosed, while not having a patent clause. This would be needed, as not everything through its own faulty design can't use Apache 2.0.

What I'm not understanding is about GPL absorbing Apache 2.0 code. Apache requires a NOTICE file which modifications not under Apache 2.0 must be listed. Does GPL 3.0 respect that, or does it treat Apache 2.0 like its own entity. These are two separate entities, and the original boundaries of what's under Apache 2.0 must be kept intact if used by GPL.

This takes us back to a need for a permissive license that doesn't have a patent clause, and which requires modifications not under the license to be disclosed or commented. This is the license, which should absorb permissive licenses and other licenses which don't have a patent clause. This boundary needs to be preserved first, before it going into other licenses, because it's the same basic use, but without a patent clause. The patent clause is the difference, which makes those licenses similar, which to preserve their form of permissive, without a patent clause.

It depends on how GPL 3.0 treats Apache 2.0 code, if this is the way to go. If GPL 3.0 isn't respecting those boundaries, because it sees it self as a better Apache 2.0, then no, that's unacceptable, and terms need to be enforced through asking first, or Apache isn't the right license. If not, Apache 2.0 needs to be superseded, that all modifications not part of the license must be commented or disclosed, regardless if that makes it incompatible with GPL 3.0.

One goal is to have a license which doesn't have a patent clause, which preserves all permissive licensed code which doesn't have advertising clauses and is without patent clauses by absorbing them into its license. It would absorb licenses limited to those without patent clause before other licenses do. Then, there can be a license which slaps a patent clause on it. Code saved in form from the license which doesn't have a patent license that absorbs code without a patent clause, can further be protected by a license with a patent clause, especially when it's not needed as a library. We need a license which supersedes, through absorption only, simple permissive licenses which don't have a patent clause. The code needs to be protected before GPL gobbles it up, and it needs to be preserved in one form so it can be used by any library, before a patent clause is slapped onto it.

GPL absorbs too much, and puts on too much restriction to that absorbed code which was meant for freedom of use.
 
Permissive with Patent Clause
  • UPL 1.0 (Universal Public License) is stewarded by Oracle, which this license is accepted by OSI. It's a permissive license with patent clause permission. It gives up patent rights given to this license to be used forever under this license. UPL is compatible with many licenses including with GPL. UPL hasn't been thoroughly tested through the legal system, nor has it been widely examined. This license is mostly intended for Java software affiliated with Oracle.
  • BSD+Patent (BSD 2 Clause Patent) is a BSD license which gives patent right permissions of any patents under this license.
  • Apache 2.0 is the popular permissive license with a patent retaliation clause. Requires disclosing modifications of code not belonging to Apache 2.0. Not compatible with GPL 2.0 due to differences in its patent clause.
  • ECL 2.0 (Educational Community License) is based on Apache 2.0. It has a different patent clause, which is intended to fit better for educational software. It's also OSI approved.
Open source licenses without a patent permissions clause may be unclear in terms to giving patent permissions, but most copyright software doesn't have patents. A patent troll with a patent could still challenge copyright work without a patent: they could frivolously claim that a copyright work violates their patent. A copyright is in many ways protection against frivolous patent claims. The patent retaliatory clause is extra discouragement from those making frivolous patent claims.

Eclipse Foundation history with IBM related to licensing
Eclipse started off as a project by IBM which is based in the US, in 2001. In 2004, Eclipse Foundation was started by incorporating as a nonprofit in the EU as a separate independent entity. They have an extended license history together, even as separate organizations.

IBM and Eclipse Foundation have cooperated later even as being separate entities. In 2009, they have both agreed on making EPL versions over 1.0 the successor to the CPL license: https://eclipse-foundation.blog/2009/04/16/one-small-step-towards-reducing-license-proliferation/. The EPL is mostly for Java programs and former IBM opensource offerings. Postfix is one such example of an open source IBM offering.
 
After this, for basic and most current needs, there's a need for no more than 3 more open source licenses. This doesn't include no competition licenses, which are usually for businesses to delay the release of code into opensource. A disclose modification clause reduces the need for a no competition licenses for the open source world.
  • One like Simple BSD License with added, disclose modifications clause. This would be based from Apache 2.0's clause. No patent clauses, bc this is meant to be compatible to be used as a library and for any other use. This will protect code: more restrictive opensource licenses that use this will preserve code for it. As long as any copy of that is around, so are copies of the permissive code they use. This code can later be extracted, under this more permissive license and be used in other code bases. It will also encourage the inserting of code under this directory into this code base than into other opensource licenses. Choice of note modification, or insert: otherwise, use outside directory.
  • A file-based one which starts off from the Simple BSD License with 2 added clauses. 1st additional clause: that everything under this directory goes under this license. 2nd additional clause: patent retaliatory clause. The patent retaliatory clause, because it will likely be incompatible with GPL anyway. This would be the most basic form of file-based opensource license.
  • GPL replacement incompatible with GPL based on OSL 3.0. It will be like OSL, except will restrict programs linking from it. It will always allow linking in one direction, so it can always use other libraries and programs as dependencies. If more top layer functionality is needed, that must also be licensed under this license: as a different program, and/or as the same code base. System calls, and interfaces (API, ABI) will be permitted. To my understanding, GPL can still be used beyond the interface or system call later as not linked to it. This will be for kernels: emulators and top level programs. Drivers, libraries and any other program used can be under existing OSL3.0 or any other compatible choice. If an individual or an organization can write a whole kernel, emulator or top level program, this can be used. If your program is used in a way not allowed, cease to do that.
For most purposes relating to currently, there's not much need for anything more beyond these basic needs for open source licenses. Maybe in the future other variants of existing licenses for licenses which cover code with owned patents, will be needed for giving permission. There are some, which is enough for most purposes now. Though most code doesn't have patents, and most organizations or people don't give away patents.

There's a distinction between a patent grants clause and a patent retaliatory clause. One is applicable if you own a patent with considerations for open source. The other is applicable even if you don't own a patent, to discourage patent trolls from frivolously claiming an infringement over copyright. If one considers a patent grants clause, it makes sense to use a more restrictive, but standard across the board license. I don't believe that anything based on GPL can achieve that. LGPL would come close, except for its customized way of interaction with GPL.
 
Back
Top