Many people believe that GPL is for programs and LGPL for libraries - as if the "L" would stand for "Library". But that's wrong! This was never the intention. The "L" stands for "Lesser" and means less protection than GPL, for very special circumstances.
According to FSF, you should use LGPL only for libraries that are competing with widely accepted proprietary libraries. For anything new and original, you should use GPL - to promote Free Software.
"Why you shouldn't use the Lesser GPL for your next library"
https://www.gnu.org/licenses/why-not-lgpl.en.html
(I disagree with that article in one point: If you compete with pervasive software, use a simple license like ISC/MIT/BSD rather than LGPL, to promote their usage even more.)
If you write any sort of software, and link against this library, boom all the code needs to be GPL'ed.
I don't think that's a good thing for promoting a library's use. Most people will just not use the library, and leave a bad taste in there mouth rather than spread the use of GPL.
If you want your library to popular don't use GPL.
What happens is that someone else comes a long and creates a MIT version. Eventually it gets replaced with the MIT version.
Well, the author is free to dual-license it to propriertary software for some fee - if they want.
> I don't think that's a good thing for promoting a library's use
But it's a good thing for promoting Open Source!
That's the tactic question here: Do you want to promote your name and your library, or do you want to encourage more people to open source their stuff? In general you achieve both, but the question is: Which aspect is more important to you?
> If you want your library to popular don't use GPL. What happens is that someone else comes a long and creates a MIT version.
I would personally be fine with a new license that simply said "Be nice or don't use my software. You can't sue people who use or share this software. You can't apply for patents and sue people who are being creative and code. You can't stop people from understanding the software that they run on their own machine.". However I doubt many companies would prefer that over GPLv3 so it easier to just use a commonly understood license which Linux distributions understand and find legally acceptable.
at best its promoting one flavour of open source methodologies in an authoritarian way. not open source software in general... it does little itself to teach us why open source is good, but its easy to learn why GPL is bad and tar all of open source with the same brush.
the MIT and BSD style licenses are open source, but not militant about it. they are doing much better work to promote open source software imo since people will actually use software that is distributed under them in large commercial projects without fear, meaning that open source libraries do actually get used a lot, which lets people learn their advantages first hand...
i like your quote about this. that someone will come along and make an MIT version... :)
Using the GPLv3 is more restrictive than that -- it makes it unusable except for GPLv3 software. Even a preference for open source -- even copyleft -- software doesn't mean a preference for the use-based discrimination in the GPLv3's so-called anti-Tivoization provisions.
> If you want your library to popular don't use GPL.
Lots of GPL libraries are popular, though perhaps in some cases less so than they would be if they were not GPL.
> What happens is that someone else comes a long and creates a MIT version. Eventually it gets replaced with the MIT version.
IF you do permissive (MIT/BSD/etc) and a sizable fraction of the people interested in your library are also GPL partisans, the reverse happens (and potentially much more quickly) -- some relicenses your library as GPL, and the active community ends up there. So, making decisions on that basis can go either way.
Use GPLv3 if you want to control what downstream users do and you prefer the particular controls in the GPLv3. Use a different copyleft license if you want to control downstream users and don't prefer the controls in the GPLv3. Use a permissive license if you don't feel the need to control downstream users.
Like GNU/Linux?
LGPL was created to appease authors that didn't want license terms to propagate like GPL, exceptionally common with library and embedded codes. Alas, ignorant authors were also choosing LGPL simply because they were creating a library and FSF didn't like that trend. It was a completely political move to fit their agenda.
See https://en.wikipedia.org/wiki/GNU_Lesser_General_Public_Lice...
my experience is that these 'special' circumstances are pretty much "you need to use it in a proprietary production environment" and "you don't want to stop people using your software". this is close to what the FSF say so I don't think i'm far off the mark...
the problem with GPL imo is that it is manifestly not free. you must abide by severe restrictions to use the code, which for a lot of software development would incur impractical costs.
even if i want people to use my code for free I never use the full GPL license. i don't see any good reason to becasue i never want to dictate what other people can or can't do with their own software by virtue of having helped them out with mine. i really don't understand the sentiment...
for example, the choice of GPL here means that nowhere i have ever worked would touch this officially. i can tell you that most of those places are also not thorough enough to stop some random wannabe hotshot programmer from stealing large swathes of code from this repo and using them anyway... (i do not endorse this practice - but i am perhaps a little bitter because i am usually the one who spots these things and has to deal with them).
But to address one aspect, I do agree that I really don't understand the sentiment to dictate what other people can or can't do with their own software. Suing people for sharing software is wrong, and having EULA's that prevent people from understanding how their software operates is also wrong. The argument that you have to add proprietary licenses in order to earn a living is illogical and only create a world where people don't trust each other.
free means free. its an abstract ideal...
you do not live in a country where people are free, 'free country' and 'liberty' are politically charged terms which evoke particular ideals, which don't directly map to the meaning of the word 'freedom'.
a big part of society is that we willingly give up certain freedoms for the greater good - this is what law is all about.
in this particular case i think its clear cut. the GPL stops software from being free compared to an MIT or BSD style license...