There's the LGPL for that.
LGPL is so other programs can use it. I was saying that GPL2 & GPL 3 can't use all kinds of libraries, through dynamic linking, due to their own artificial restrictions. There needs to be an updated minor version of each, so they can use almost anything as dynamically linked for a library, including Apache 2.0.
Limitations and obstrusiveness of GPL
In another way, aside from being viral, GPL is the snake that eats its own tale. FSF argued that, code doesn't need to be accessible to companies, until there's open source that covers the functions of that code. On the other hand, advocates for Public Domain argue that, putting code into Public Domain means less restrictions and anyone can use it. I thought I saw a balance, how these two ideas can coexist, until, I realized how GPL keeps gobbling up and incorporating permissive code into its own code. It often does this, instead of merely using it by linking from it: it should improve that codebase keeping it permissive, or improve its own codebase to use it. When GPL gobbles up code, it takes derivatives out of the ecosystem, and it forgets the separation of which code is permissive.
License requirements for libraries and non-libraries
That makes the argument for permissive which requires other code not part of the license to mark itself, and for file-based nonviral. Like I said before, if an individual, group, organization, collective and/or foundation is able to stay relevant on coding, they get to maintain it, to make forking and gobbling up the permissive license pointless. The larger the codebase, the larger and more talent the entity needs in order to allow the permissive code which doesn't have commenting requirements.
If a project or individual doesn't have the resources, then, they need more protection in the form of file-based nonviral licenses. As they move slow, they'll protect their code from those moving fast to poach it to make derivatives under restrictive code.
In permissive licensing, marking the code which doesn't belong under the terms of the license is important. It makes code which incorporates it, protect those boundaries indefinitely, while it gets permission to use it. Say, a copy of that code gets lost, who can prove it was permissive to begin with? This while the more restrictive license runs off with it.
Patent clauses
While, I believe that patent retaliation clauses are important, for libraries meant for widespread use, they may not be practical. Odd how proprietary code is allowed to use code under those licenses, while GPL doesn't allow use of that code, if its patent clause differs by a little bit. Hence my argument that GPL needs to update itself.
For everything else, which is not a library, copy-left nonviral license is needed. A retaliatory patent clause is also ideal for such licenses, which aren't libraries meant for use by all programs.
Putting it together
There's a need to replace lower level parts of LGPL code with ISCL or a simplified BSD license and to keep them separate. For instance, Gtk needs to be forked and made to run on permissive Xt, which would reduce the codebase of Gtk under LGPL. It can go a step further, and Xt be ported into libxcb. That would be a good way to rewrite lower level parts of Gtk and Motif code, making future maintenance easier. It would also make the code more standard and compatible.
Take a look at what FreeBSD and NetBSD have done for permissively licensed hardware drivers and compilers. They've added their own BSD licensed code around GPL code, making great strides in replacing it. OpenBSD has done this for software too, though I'm more familiar with FreeBSD's and NetBSD's achievements in this.
What I meant to write about what makes an
optimal open source license, and what is to be considered the
minimum standard license, I've mostly already ended up writing throughout this thread. It was meant to go after:
Thread open-source-licensing-which-allows-linking.99062. It was meant as its own starting thread, but I believe most of what I intended is in this thread, so that's good: the points are clearly made in a way that goes into a discussion.
FSF has convinced people to use substandard GPL
I noticed how Stallman convinced the owners of Hyperbolla to use GPL3. Before that, they were going to use a BSD 2 clause license. So, now they're rewritting CDDL parts, GPL2 parts and other parts. What a redundant waste of time, to conform to a bad ideology.
FreeDOS at one time considered having a permissive license, then its author was convinced to use GPL. Then, FreeDOS prevented itself from including programs that came with it, due to that.
Hyperbola and FreeDOS need to use LGPL, if they want GPL. There are better licenses, but at least LGPL allows compatibility for other programs to use these OS's, and allows everything else to use it. The only thing that restricts GPL is GPL.
Look at Wine: it's under LGPL3, to allow other programs to use it. Also, look at Linux, where there's a piece of code that is the API interface that allows code to use that, so it's not required to be GPL2 compatible.
FSF once convinced me that CDDL was bad. CDDL isn't bad: it was incompatible with GPL for good reason, and it's an acceptable license, unlike GPL. CDDL has clear set boundaries that don't overextend and it isn't viral. CDDL also doesn't force code in. It doesn't force other code to combo license with it to be used by it. It was a good blueprint for other non-viral file-based licenses. Then, projects which use GPL justify linking to CDDL. CDDL is meant to be linked to, but do it under the terms of CDDL, not an incompatible license. GPL wouldn't allow that to its code. It seems that GPL code threatens CDDL code by their choice to try to link, with the exception of the linking exception. A linking exception is fine, though it should be standard in the license.