I think it's become pretty clear that whatever Richard Stallman envisioned for copyleft licenses, the actual reality is not exactly what he intended.
If you read the Free Software Foundation's explanation of copyleft, the vision was that copyleft would incentivize or pressure people who were not inclined to publish free software to relent and release their work as free software:
Copyleft also provides an incentive for other programmers to add to free software. Important free programs such as the GNU C++ compiler exist only because of this.
Copyleft also helps programmers who want to contribute improvements to free software get permission to do so. These programmers often work for companies or universities that would do almost anything to get more money. A programmer may want to contribute her changes to the community, but her employer may want to turn the changes into a proprietary software product.
When we explain to the employer that it is illegal to distribute the improved version except as free software, the employer usually decides to release it as free software rather than throw it away.
… but that's not what actually happens in practice, at least from what I can see. In other words, we have not gotten into a situation where some "killer" software package adopted a copyleft license which in turn forced a broad swath of the software ecosystem and/or employers to release their own software under a copyleft license.
What actually happens is that the only software packages of note that have copyleft licenses are ones where the license doesn't change other people's behaviors or incentives. For example, they might be a GPL-licensed executable (e.g. gcc or pandoc), but everyone knows that a GPL-licensed executable won't force downstream users of that executable to license their own software under a copyleft license.
Why does this happen? Surely you'd think that at least once someone would have licensed a pivotal package under a copyleft license and forced other people to release their own code with a copyleft license. What happens in practice is one or more of the following:
-
the package does not get traction/adoption
… because of the copyleft license. A lot of potential users will steer clear of any dependency with a copyleft license.
-
the author is socially pressured to remove or weaken the copyleft license
For example, they might be asked to downgrade a GPL license to an LGPL license or a permissive license (like an MIT or BSD license).
-
downstream users drive a truck through copyleft loopholes
For example, if the copyleft license is a weakly copyleft license like the LGPL license (which makes an exception for dynamic linking) then you can sure as hell bet that downstream users will dynamically link that code. Or if it's the GPL license then downstream users will release their own code as a service or depend on the code as an executable to avoid triggering the copyleft protections.
Like, some good has been done by copyleft licenses, but this is far from the free software utopia that Stallman envisioned where companies are open sourcing their secret sauce on the regular.