GPLv2 Libraries — Is There a Point?
PiSkyHi writes "I understand that if I build an application that links with a library that is licensed under GPLv2, I must also make my application GPL2. I can see that value in this for an application. But for a library, what's to stop me separating my program into a GPLv2-compliant client app that talks to the rest of my (choose my own license) application?"
I think a reasonable test would be to ask: is my program still mostly useful even if the GPLd helper/plugin is removed (modulo the specific removed function)?. If so, then I think it could be argued that your program is NOT a derivative work and that the GPL helper is governed the same as, say, a GPLd user application bundled with a commercial Unix/OSX distro. Personally I don't think it should matter how exactly it communicates with your code - what makes launching a process any different from a function call here?
Conversely: artificially doing contortions with your software to move essential libraries out to a separate app is not only in bad faith, but it doesn't work around the license at all. And if you ever had to argue otherwise, anyone turning up your slashdot story would not probably work in your favor.
IMHO the GPL, even v3, needs some work to clarify this question and also to close the hole for the software-as-a-service industry to modify GPL code without reciprocating.
what's to stop me separating my program into a GPLv2-compliant client app that talks to the rest of my (choose my own license) application?
Umm... nothing?
If you're writing your application from scratch without using anybody else's libraries, you're free to release it under whatever license you like, even if it happens to talk to a GPL'd client plugin thingie, and even if you wrote that GPL'd client plugin thingie around somebody else's GPL'd library.
Why do you imagine that somehow there's a problem here?
$x='S24;r)>63/* h@<5+oZ)32"5cz';$me='phroggy'x$];
$x=~y+ -xz+\0-Tx+;print$_^chop$me for split'',$x;
The point is that enhancements to the library stay LGPL. I did this myself. I needed to modify LGPL libraries for the purposes of my application. I modified the libraries, and I am redistributing them under the LGPL. My main application is distributed under BSD license, and uses the LGPL libraries. The libraries make perfect sense separately (and in fact, I have people using them for reasons unrelated to the application I built). I think that, out of courtesy, and probably out of need, you need to make sure that the libraries are available separately.
This is exactly why the LGPL was created. Or sometimes you will have a GPL lib with the linking or classpath exception. You will find most libs are licensed under these, or even more permissive terms.
Therefore, if the lib in question is explicitly licensed under normal GPL, it's the author's wish that any apps that use it must be GPL compatible. I think it's only fair to follow the author's wish.
Doesn't the license basically stipulate that you must release your code under the terms of the license? That doesn't necessarily mean you have license your code as GPL.
This is actually a common FUD discussion that occurs between developers who use MIT/BSD license for their code, and are afraid to link to GPL libraries because it might force them to release their code as GPL. I'm pretty certain that as long as their code is available under the same terms as GPL code, they can license their code however they wish otherwise. It just means if a GPL nut comes a knockin', they'll have to provide the code as if it was GPL'd.
Correct me if I'm wrong (and I often am).
There is nothing wrong with you not using my code if you do not like my conditions, either...
I understand that if I build an application that links with a library that is licensed under GPLv2, I must also make my application GPL2
That is NOT correct.
The criteria is 'derivative work', not 'link to'. Linking is sometimes a rule of thumb in this area, but it isn't decisive.
Note that 'derivative work' is a legal term, not a technical one. So before you try to circumvent the GPL in this way, consult a lawyer.
Quite aside from the legal meaning of the GPL, you could always ask the authors what they intended. If they want to prevent proprietary applications from using the library, as promoted by , that should influence your decision.
IMO, if the internals of your application are dictated by a GPL'd library -- *regardless* of how that library is linked, integrated, called, or plugged in -- your application is a derivative work. To separate them, put the library aside. Do a proper design. Gather scenarios you need the plugin to support. Document them. Write a new API. Document it. Collect some alternative libraries. Verify that you were not unduly influenced by the GPL'd one.
Or, you know, GPL the application.
Pardon, fumbled the link.
Why you shouldn't use the Lesser GPL for your next library
You can't make a linked wrapper library since the GPL wrapper would be GPL too. See: http://www.gnu.org/licenses/old-licenses/gpl-2.0-faq.html#GPLWrapper However it sounds like you are talking about a service based wrapper. Then I'd say it depends on how integrated your service wrapper is with your main program. If you use separate processes but lots of IPC and shared memory then I'd think you app is to tightly integrated making it a derived work. If you make a network based service then I'd say you are legally clear even if you'll probably piss off the library author. See: http://www.gnu.org/licenses/old-licenses/gpl-2.0-faq.html#NFUseGPLPlugins You could also make your app GPL but put a lot of the functionality in non-free plugs, see: http://www.gnu.org/licenses/old-licenses/gpl-2.0-faq.html#FSWithNFLibs Of course you could also just release you app as GPL and not worry about it. What is stopping you from using the GPL?
My Hello World is 512 bytes. But it's also a valid Fat12 boot sector, Fat12 file reader, and Pmode routine.
There is nothing wrong with you not using my code if you do not like my conditions, either...
So much for being open and free.
I tend to find myself in agreement with the OP. More and more it seems like the GPL is not a license designed to promote free and open source software but instead comes across as a "I'll scratch your back but then you are legally obligated to scratch mine" contract. I realize this probably stems from an irrational fear of proprietary software -- fear that F/OSS code will get eaten up and essentially stolen if there wasn't the backing of the GPL. That combined with the attitude of "for-profit companies shouldn't get something for nothing" isn't very endearing and it's no surprise Microsoft can sell the idea that "the GPL is a virus". The truth is that they really aren't hitting too far from the mark, except, perhaps, with respect to intent. I do think the GPL authors mean well and lack the malice that Microsoft seems to be suggesting exists.
It seems like anyone that really values and supports F/OSS would prefer LGPL or BSD style licenses. Allowing derivative works to remain closed source isn't a detriment to the open components and it really does look better to closed source companies. This should lead to more people adopting and using F/OSS, both open and otherwise. That's good, isn't it?
"What do you despise? By this are you truly known." --Princess Irulan, Manual of Muad'Dib
/)
I've always found that position funny...
Some people share something freely, with the requirement that anyone building atop it does likewise. They're zealots.
Other people require you to agree to a contract before looking at their program. Disallow reverse engineering. Disallow redistribution. Disallow extension, enhancement, improvement, porting, circumvention. They're normal.
Dude, what?
but it is free...free from abuse by those who want to take and not give anything back.
'Free' is not a magic word that means something absolutely, there is no $DEITY-given dictionary which provides a canonical meaning for the word. Whether I call it 'free', 'open', 'shared', 'blue' or 'pretty' is completely irrelevant: what is relevant is what users and developers are allowed to do with the code and under what conditions.
This silly bickering about what kind 'free' is freer was boring already decades ago...
I realize this probably stems from an irrational fear of proprietary software -- fear that F/OSS code will get eaten up and essentially stolen if there wasn't the backing of the GPL.
What's irrational about that?
"When I first heard Daydream Nation it quite frankly scared the living shit out of me." -- Matthew Stearns
The whole idea of "linking" is too specific to a technology or architecture. It assumes that some code is "compiled" into some form of library and the functions become available through a "linking" process during the build.
What if I call functions in my library over SOAP? The application is still "linked" to a service ("library"), but using that logic a web browser would have to be GPLed if you access any GPLed web server.
RMS and others, (The community) possibly are there to stop you.
Probably some people have some creative interpretations of what it means to link against a GPL library, also. To call such things at least a gray area if not outright violations.
If/when they find out, they might point to your software as an example of bad practice, or put you in the "GPL Violations hall of shame", or some such.
This is especially interesting with respect to scripting languages... If I write a PHP script that utilizes mysql_* function calls of PHP, which can only be invoked when PHP has been linked against the Mysql Client library....
Is my PHP script essentially linked against the GPL'ed mysqlclient library, and therefore, (if I distribute my PHP script commercially without source) a GPL violation?
What's your definition of "use" here?
Say there is a nice GPLv2 library i know is distributed with every Linux distribution, something small. I write a closed source app that dynamically links to this GPLv2 library at runtime and calls a few functions from it. Who is violating the GPLv2 here? The developer? They haven't actually distributed the GPLv2 code, how can they be bound by its terms?
Is it the user? The GPLv2 explicitly says that the end user does not need to agree to the license at all just to run the program, so how can THEY be bound by it either?
I don't really see what's wrong with that. Isn't the normal way economic transactions work in a market economy with copyright laws something like: if you want to use use a part of my copyrighted work in your own, you have to get a license from me, usually involving payment?
I see using the GPL as sticking with that as the default, but making a special exception that if you give blanket permission to the general public to use and distribute your own code, royalty-free, in both original and modified versions, then you may use my code royalty-free under the same terms. But if you want to stick to the normal copyright model, then I will also, and we can agree on terms in the usual manner.
Basically I don't see how someone who uses the normal approach to copyright licensing in their own products could possibly object to me asking them to negotiate a license in order to use my code as part of their product.
10 PRINT CHR$(205.5+RND(1)); : GOTO 10
It seems like anyone that really values and supports F/OSS would prefer LGPL or BSD style licenses. Allowing derivative works to remain closed source isn't a detriment to the open components and it really does look better to closed source companies. This should lead to more people adopting and using F/OSS, both open and otherwise. That's good, isn't it?
In theory, yes. In practice, however, it seems volunteers and companies contribute a lot more to GPL'ed projects than to BSD'ed ones, otherwise we'd be arguing for the "Year of FreeBSD on the Desktop" instead of Linux.
Personally, I like the idea of a BSD kernel with LGPL libraries and GPL applications, it seems to me as the best balance between freedom and widespread usage I can see. However, if devs believe otherwise and GPL everything I have no problem with it, the market will decide which option is better and, so far, it seems they're right.
No problem is insoluble in all conceivable circumstances.
There is nothing wrong with you not using my code if you do not like my conditions, either...
Use GPL for Free Software. If you want to give us Code With Conditions, I recommend the MS-PL.
You are correct. The answer is no. If the LGPLed library dynamically calls the GPLed library, then it is the FSF's position that the LGPLed library is a derivative of the GPLed library, and thus the work as a whole may only be distributed under the GPL. Please see this section of the FAQ:http://www.gnu.org/licenses/gpl-faq.html#GPLWrapper.
For your specific requirements, I'd advise touching base with them - they have an advice service for these types of questions.
The fact that it can't happen. If you BSD license project A, and company M takes it and makes closed source project B with it, project A is *still* available from your site for free and open. Your code has not been magically closed, the only thing that is closed is *their* code which they used to make their project different from yours.
If that's not very much, well, they've not got very much to sell then, have they.
In theory, yes. In practice, however, it seems volunteers and companies contribute a lot more to GPL'ed projects than to BSD'ed ones, otherwise we'd be arguing for the "Year of FreeBSD on the Desktop" instead of Linux.
Really? Every company I've ever worked at has used and contributed to BSD and LGPL projects, but not touched GPL with a barge pole.
Personally, I like the idea of a BSD kernel with LGPL libraries and GPL applications, it seems to me as the best balance between freedom and widespread usage I can see. However, if devs believe otherwise and GPL everything I have no problem with it, the market will decide which option is better and, so far, it seems they're right.
Really? The one with the closed kernel (Windows) has the biggest share, the one with the BSD'd kernel (Mac OS) has the second biggest, and the one with the GPL'd kernel (Linux) has about 1%. Doesn't sound like they're right to me.
This reminds me of our experience with mysql.. they changed the license of their drivers (the jdbc driver, in this instance) to GPL from LGPL a while ago, and also affirmed a legal position (at least in their marketing materials) that using the now GPL library would require any application dynamically linking/loading it to also be GPL, with the exception of being able to buy licenses to a separate non-GPL'd commercial instantiation of the library. (They also conveniently hired the guy who had been maintaining the previously freely useable LGPL version).
.war archive that was trivial to install (just copy it into tomcat/webapps or whatever (well, and run the database creation script to set up the tables for it) and it was good to go. After the license change he was unable to distribute a fully packaged pre-working .war file with the necessary drivers for client databases. (Oracle was propriatary, but free to distribute).. he had to write a specialized install script that the customer could use to unpack the .war, install the mysql jdbc driver, and repackage it, where the script required the client to affirm that they were using a legally licensed non-GPL version of the jdbc driver from mysql to be able to install/link it. This took the liability off of him ...The liability for having the temerity to want to talk with a basic software infrastructure service (such as a sql server), without GPL'ing his little niche app.
In theory, of course, someone else could re-invent the wheel and create another fully LGPL JDBC driver for mysql.. (I was ever-so-mildly tempted to do start work on that myself, out of spite and irritation, but didn't have the time).
Needless to say, after talking to the lawyer we had to switch our entire infrastructure over to postgresql. On the bright side, I found that I rather preferred postgres as a more comprehensive and functional sql anyway. (No more having to do manual tricks for multi-merges, etc). Still, it seemed like very bad faith to switch the license like that right out from under people who had already been using it, all in the hopes of further monetizing mysql. (Yes, the earlier license applied to the old versions of the driver... which happened not to work properly with newer versions of mysql).
I once talked to someone else else who makes a a bit of money on the side selling some piece of booking software. Unfortunately for him, almost half his clients were deploying his software in mysql shops. His software was a drop-in
I'm all for the GPL. I love it! I've used it myself in a few things I've developed. I love all the good it's brought, etc, the idea of openness, a publishing and peer-reviewed manner of developing code, all that.
But I still find it very obnoxious to make a piece of library glue GPL. That's exactly what the LGPL is there for. Logically, it's not a derivative work of mysql if you use it for processing sql transactions (making no modifications or redistributions of it of any kind) any more than a file you create in the gimp is a derivative work of the gimp.
---
the pen is mightier than the sword, the sword is mightier than the court, the court is mightier than the pen.
Exactly. The reason for the GPL is not to "protect" code or keep code free. Code will be free forever under any open source license. Big Bad Corporation can't take your code and lock it up so nobody else can use it; it's still free! The only reason for the GPL is to "stick it" to corporations and anyone else to whom it isn't convenient to fully comply with all the strings (restrictions) attached to and imposed by the GPL. In my opinion, GPL code is counter-productive because of the complexity and ambiguity of the license itself, as well as the incompatibilities that come along with a "viral" license. Case in point: How stupid is it that ZFS can't be incorporated into the Linux kernel, not because of any technical reason, but because two "free" license aren't compatible with each other. Seriously? That doesn't sound like freedom to me.
This author takes full ownership and responsibility for the unpopular opinions outlined above.
Who "meant" that? The reason I'd use the GPL isn't for some generic notion of openness, but more specifically as a way of allowing multiple copyright/reuse models to exist in a mutually agreed fashion. If you agree to license your code under the GPL, you can have mine under the GPL too. If you prefer a standard copyright/licensing model for your own software, then fine, let's do that for mine too. I'd consider adding more options of that sort too if any seemed particularly compelling. What I don't see is why I should license you my code under terms that you aren't willing to reciprocate.
10 PRINT CHR$(205.5+RND(1)); : GOTO 10
The fact that it can't happen. If you BSD license project A, and company M takes it and makes closed source project B with it, project A is *still* available from your site for free and open. yada yada.
We've been through this a million times before. The company has now stolen the time of the guy who wrote the free code in the first place, or at least the guy may feel like that. It's also possible that they extended his file format or network protocol with proprietary parts, harming interoperability and the users of the free version by impeding the network effect.
Some developers care, some don't, some care or not depending on circumstance and goals of the software project. None of these positions is more irrational than the other.
"When I first heard Daydream Nation it quite frankly scared the living shit out of me." -- Matthew Stearns
We've been through this a million times before. The company has now stolen the time of the guy who wrote the free code in the first place
No it hasn't. That guy was kind enough to give it away in an open way. This is the *point* of open source software, to be generous, and let everyone benefit from your work.
or at least the guy may feel like that.
Then he (a) is not an open source developer (b) should use a closed license like the GPL, and stop claiming to be open.
That's entirely fair enough then. I have nothing against people using the GPL because it's genuinely the model they want. I have something against people claiming to be open when doing so.
Ever heard of "Embrace, Extend, Extinguish"? It's not limited to Microsoft.
No problem is insoluble in all conceivable circumstances.
No it hasn't. That guy was kind enough to give it away in an open way. This is the *point* of open source software, to be generous, and let everyone benefit from your work.
The guy might quite reasonably want to restrict use to other people who want to share code for free. Like if I run a "bring a bottle" party I am not too upset if everyone brings something, even if some drink more than they bring. I would not like it if someone went round collecting the bottles and selling them at the local market though. If you don't want to come because "it's not really a free party then that's up to you - but don't complain about me making my own rules.
In theory, yes. In practice, however, it seems volunteers and companies contribute a lot more to GPL'ed projects than to BSD'ed ones, otherwise we'd be arguing for the "Year of FreeBSD on the Desktop" instead of Linux.
That's just because we've already seen the "Year of FreeBSD on the Desktop." It's called Mac OS X.
But seriously, you'll have to provide a citation with your assertion that companies contribute more to GPL'd projects than projects of other licenses. The only major GPL projects with corporate contributions that come to my mind immediately are Linux and MySQL. On the other hand, many, many non-GPL projects with corporate contributions immediately come to mind. All Apache projects, postgresql, ffmpeg, BSD, memcached, OpenOffice.org, QT, postfix, bind, all Mozilla software, webkit, need I go on?
The sad truth is, the actual value of the GPL is a lot less than everybody thinks. It doesn't protect code from suddently becoming non-free because 1) corporations can't do that anyway, and 2) companies that do use non-GPL code tend to give back their improvements anyway, even though they are not legally obligated to do so. They may do it to keep good karma amongst developers rather than a strong believe in Free software, but who cares? What then is the value of the GPL? I propose it has negative value, considering the incompatibilities it introduces (ZFS anyone?) and the needless complexity it brings, but of course that's just my opinion.
This author takes full ownership and responsibility for the unpopular opinions outlined above.
Linux is only popular because of the GPL.
That's a pretty stupid statement don't you think? I (and I'm sure I'm not the only one) use Linux because it WORKS and does what I want it to in the situations that I apply it to. I also use Windows 7, Windows Server, Apache, Python, Java, Opera and piles of other products under just about every license under the sun. And you know what? I don't give a rats ass about the license so long as it doesn't hinder me they can shove it under any license they want.
I may agree with what you say, but I will defend to the death your right to face the consequences of saying it.
What he was saying is that Linux is working now because of the GPL during its development.
Of course most end users don't give a rat's ass about the GPL, but it is this GPL which allowed one modification made to Linux to be used anywhere. Without it, we would have an IBM Linux, a Red Hat Linux, etc. In this case, why not stick to Unix ?
The GPL does not guarantee that someone has to give you anything back. In fact, there is no reciprocation requirement at all.
I can, for example, take your GPL'd work, make some changes, then sell it to my customer. I am required, by the rules of the GPL, to give my customer the source, and they are allowed to do whatever they want, including give it to others, but if they paid $1,000,000 for it, chances are they're not going to do that. You have no right to demand the changes I made, or even a copy of the program from me.
This is a common myth around the GPL, that it enforces a reciprocation agreement. It doesn't. In fact, licenses that have such agreements are not compatible with the GPL.
If you need web hosting, you could do worse than here
They were saying that Linux got to where it is today because of the GPL license. The argument is that Red Hat, IBM, Novell, and other companies wouldn't have contributed to Linux if they weren't forced to by the GPL. Instead, they would have kept the code only in their own software offerings instead of sharing it, and Linux wouldn't have gotten as far along as it is today.
The GPL basically forces collaboration and sharing. I agree that that isn't true freedom in the truest sense, definitely, but certainly it did help get it this far, and has allowed more computer uses to be more free. However ironic that may seem, I believe that's the truth.
Now with the Internet being as developed as it is, it is much easier for collaboration to occur. In my opinion this needs to be much more fortified than it is now though, but at least things are getting there. There needs to be more marketplaces for everyone to buy into collaborative software projects. These need to be made easily available for gamers and desktop users, businesses, education systems, governments, etc etc. I.e. better bounty/support/development systems are needed IMO. Any way, the point I was making was if these systems can blossom, the GPL license won't be really needed as most everyone will understand what "collaborative software" is and the value in having that openness, so that you open things up to anyone contributing to help keep it afloat. Relying on closed commercial software is just dumb and dangerous.
Promote true freedom - support standards and interoperability.
This is a common myth around the GPL, that it enforces a reciprocation agreement. It doesn't.
No, but in practice, that is usually what happens in the end.
What he was saying is that Linux is working now because of the GPL during its development.
Of course most end users don't give a rat's ass about the GPL, but it is this GPL which allowed one modification made to Linux to be used anywhere. Without it, we would have an IBM Linux, a Red Hat Linux, etc.
Actually, we do. And it doesn't matter, since it's just minor patches.
It is not at all clear whether the difference in forking behavior is due to the license or the external development velocity / source code organization. We don't have a large scale IBM BSD, a Red Hat BSD, etc - we have a few open source BSDs and Mac OS X, and IBM choose to contribute to an open source BSD (FreeBSD through Whistle) rather than create their own pure fork. Mac OS X also contribute changes back.
I'm attributing the major differences in fork behavior mostly to source code organization (BSD is a large tree containing the entire OS, "GNU/Linux" is a bunch of small trees that are aggregated to form a bunch of different operating systems which are close enough that people think of them as they were the same rather than forks.)
Doubting the existence of evolution is like doubting the existence of China: It just shows that you're uninformed.
Here's another case in point:
Being the free enthusiast that you are you develop a popular program. Say an open source word processor. It's free, and is quite popular in its niche. Now if you have created a program for yourself that fully serves your needs, you can release the code with a 2 clause BSD license.
If, however, you want to compete with other software makers, and you release the code with a BSD license, then any of your competitors is able to take parts or all of your code and use it in their products without ever releasing anything of theirs to the public. In the end, their software will always be better than yours because they build upon your work. Since their software is better, more people will be using it instead of your software, especially if the software is cheap (and your software will be of great aid to that). More users of your competitors' proprietary products will mean less testers and less possible developers for your open sourced software, which in turn means lower quality. Now how will this help spread free software?
Also take a look at the number of embedded devices and the number of super computers that run BSD (the FreeBSD kernel is released under a two-clause license, that is the highest permissiveness). Linux runs on many more embedded devices and on many more super computers, because the companies that embraced open source, are able to use the contributions of others, contribute themselves and make sure that nobody will turn their contribution against them by developing a closed source product with their code.
And about the ZFS being released under CDDL which in turn is incompatible with GPL: ever wondered how companies like Qt software were able to release Qt under a dual license and why Sun didn't? Or why Sun didn't release ZFS under a 2 clause BSD license, which is compatible with both, the CDDL and the GPL The correct answer is: Sun wanted to gain a marketing edge. It's no different than releasing the ZFS as closed source (from the marketing point of view).
Apple has "Mac vs PC", Microsoft has "Laptop Hunters", Linux has recession
They might. Or, they might consider the code to be critical to their business and not want their competitors to have it.
The point is, the GPL does not guarantee what many people seem to think it guarantees, particularly in the "must give changes back" situation.
If you need web hosting, you could do worse than here
Software is worth whatever someone will pay for it. There is no fraud involved in charging whatever someone will pay.
And the GPL puts no limit on what you may charge. The section you quote above is in regard to the fee for transfering a copy of the source code (upon written request). It is not a requirement for how much you can sell the binary for (with the source).
Many businesses pay in excess of $1,000,000 for custom software.
I'm not referring ot simply filing off the serial numbers. I'm talking about investing many 1000's of man hours of development work into something that could be considered a derivitive work of a GPL'd application.
If you need web hosting, you could do worse than here
"usually". Not always. My point is simply that the original author claimed it was "free from abuse by those who want to take and not give anything back". That's simply not true.
If you need web hosting, you could do worse than here
Not quite right.
Now it's right.
Are you actually asking "can I circumvent the GPL on someone else's library using a wrapper"? or was the question "Why should I bother licensing my own library under the GPL, when others could circumvent it using a wrapper"?
The first of these has been pretty much answered elsewhere.
The answer to the second is to relax. If Big Evil Software Corp abuses your work this way then they're heading for a lot of bad publicity, even if you don't have (or can't afford) a legal case.
If someone gets away with this, shame on them, but what have you actually lost? Would Big Evil Software Corp have paid you (or even have heard of you) if you'd kept the code closed?
Licenses will have loopholes, and the more loopholes you try to close the more you introduce, and the more work you make for lawyers. How do you legally define the difference between a wrapper and a server so that a jury in Utah can tell the difference?
The free softwar community shouldn't fall into the trap of thinking like the RIAA and confusing "intellectual property" with real property. Violating the GPL isn't big, isn't clever but is no more "theft" than copying a movie, and the damages caused are intangible and hypothetical.
In a survey of 100 programmers, 111111 thought that duck-typing was a good idea.
It may not require direct reciprocation, but there is an element of preventing abuse involved. In the case where a company extends GPL software and then only sells the resulting binaries commercially, they are still required to provide any customers with the resulting source code under the GPL license, which further allows them to re-distribute it if they see fit. That means there's no effective way to hoard this code or lord it over others. If your derivative product sucks so bad or has such limited applicability that only a handful of people ever buy it and thus get access to the derived code, perhaps they will never re-distribute it, and perhaps the world could care less. But for any derived code with wide applicability or value, enough people will purchase the product and gain access to the code that it's virtually inevitable that someone will legally "leak" it to the rest of the un-paying public, who can then compile it for themselves (again, legally) without paying for the product. This makes it pretty unrealistic to build a business plan around selling software derived from GPL software commercially.
That is the GPL's intent: it is a license for authors who wish to say: "I give this work to the world, and I don't want some greedy person down the line to be able to make money by locking up a modified form of my code from the users of said code, which is something I don't approve of. If you want to derive your work from mine, you must adhere to what I consider to be basic principles of software ethics, the main ones being that you can't sell people binaries and refuse them access to the source code, and you also can't tell them who they can or can't give that source code to themselves".
That's not to say you can't build a successful business around reselling (slightly modified or not) GPL software, it's just that you can't hoard the code in order to force people to pay you. You have to make your money by offering something else: support, services, hardware, etc.
11*43+456^2
otherwise we'd be arguing for the "Year of FreeBSD on the Desktop" instead of Linux.
That's just because we've already seen the "Year of FreeBSD on the Desktop." It's called Mac OS X.
Except as Daengbo points out above us, OSX doesn't use the BSD license for the kernel part, it uses the APSL, which more resembles the GPL than the BSD, e.g. its a stronger "Copyleft" style of license thats more "restrictive" than the BSD. The rest of Mac OS X, the part that really counts!, of course, is proprietary, so the GP's point remains: "Year of *BSD on the Desktop" hasn't happened yet.
The only major GPL projects with corporate contributions that come to my mind immediately are Linux
In the context of the GP's "Year of XXX on the Desktop" reference, this is exactly the point: BSD-licensed OS kernels (*BSDs) vs. Copyleft-licensed OS kernels (Linux). The latter is seeing more corporate interest/support than the former, so far.
On the other hand, many, many non-GPL projects with corporate contributions immediately come to mind. All Apache projects, postgresql, ffmpeg, BSD, memcached, OpenOffice.org, QT, postfix, bind, all Mozilla software, webkit,
Yes, the GP did use the word "projects", thus opening up the whole "open" or "free" software world for inclusion as well, besides OS kernels, and that obviously means there are plenty of examples of BSD-licensed software out there. No one disputes that.
On the other hand, your use of phrase "non-GPL" here plus your particular list of examples is misleading:
ffmpeg = LGPL
OO.org = LGPL
QT = GPL/LGPL (dual-licensed)
Postfix = IPL
Mozilla = MPL/GPL/LGPL (triple-licensed)
Webkit = part BSD, part LGPL
where IPL = IBM Public License, and MPL = Mozilla Public License.
If you're trying to argue *for* the BSD license, then you haven't actually helped your case since just over half of your examples are using some form of a "strong" (or at least "stronger") Copyleft license. LGPL, IPL, & MPL are all Copyleft licenses that are more "restrictive" than the BSD.
If you're trying to argue *against* the GPL license, then first, most people don't think of the LGPL as being "non-GPL", but merely "not quite as strong as", and second, 2 of your examples are actually dual-licensed under the GPL, and third, anyone who wanted to go to the trouble could come up with a list of projects that *are* GPLed.
So your list doesn't really *prove* anything, and as far as the larger context of this debate is concerned, I think you're confusing/conflating two different issues: strong Copyleft (GPL) vs. weaker Copyleft (LGPL/MPL/IPL/APSL), and any kind of Copyleft vs. *non*-Copyleft (BSD). At a minimum, your mistaken assumption that Max OS X is an example of a BSD-licensed project at the outset damages the rest of your response.
The sad truth is, the actual value of the GPL is a lot less than everybody thinks.
If an astute reader interprets your reference to the GPL as "strong Copyleft" and to the BSD as "non-Copyleft", then the real sad truth is that judging by the licenses used by more than half of your own example projects, a lot of people seem to disagree with you!
There are so many examples for this I don't even know where to start. Lets say that I'm a manufacturing corporation and I have a database system and interface that monitors all of my manufacturing processes automatically and warns the appropriate people when a process starts to go out of a controlled state. I don't want my competitors to have this because it's just a huge boon to my output quality and reduces cost by millions every year.
I see the glass as full with a FoS of 2.
I've seen this kind of thing before, and it surprises me that so many people have such a deep misunderstanding of copyright law.
The GPL ***CAN'T*** define what a derived work is; it lacks the power to do that. Congress (not FSF and not Microsoft), through copyright law, does that.
Reading pages at FSF may clarify the issue, simply because those pages are written by presumably well-versed people (though beware: they may try to persuade you, rather than inform you).
"Believe me!" -- Donald Trump
In other words, MacOS is not open in any meaningful sense of the term.
It is exactly the type of "walled garden built with the help of free labor"
that GPL zealots always have whined about with regard to the BSDL.
What's the point of MacOS if I just end up turning it into a Linux clone?
Really? I have 3 Macs so this isn't just an academic/rhetorical question.
If the first thing I am going to do to overcome the inherent limitations
of MacOS is to start installing Linux software then what's the point really?
A Pirate and a Puritan look the same on a balance sheet.
He can continue to merge in any changes that the community makes, and certainly can take advantage of them.
Also if there is some bug or feature in mysql they need, they can make a stripped-down version of their application, such as an otherwise useless page of code that demonstrates the desired feature or bug, submit that, and hope the mysql guys fix it.
They could also fix mysql itself, contribute the fix back, and if it gets incorporated into the main source they are in exactly the same state but their code is still secret.
I wrote the LGPL v1 and badgered RMS into allowing it (John Gilmore thought up the great dynamic linking clause). RMS's biggest objection back then was exactly the case you give.
I still think in the balance the library license is a net positive for the FSF's cause. But this hinges on the definition of a "derivative work"
The community for a given derivative is its users. By definition the users will have a copy of the dervivative app and therefore the source. It was never intended that anyone and everyone should be required to have the changes.
In practice though, even private development will result in bug fixes and it will be in that private party's interest to pass those back to the original project so they are maintained by the community and don't have to be manually patched and merged in with each update.
This is, at the very least, not the position that the FSF takes. And I agree with them.
It comes down to how you interpret the part that says "major copyright-protected elements of the earlier work." You're reading "elements" as actual pieces of code. Copyright law in general, IMO, doesn't read the term "elements" as narrowly as you're doing. For example, the elements of a novel isn't just the words and their arrangement; it also includes the characters and the plot. You can't publish your own Harry Potter novels commercially without permission because the character and tons of background plot elements are protected by copyright. That your novel shares no substantial amount of text with the originals doesn't come into the argument.
So for example, the FSF can take the position that the call interface of a GPL-licensed library is a major copyright-protected element of the library itself, and that by using the library in your application, you're incorporating that element of the library into your work. Or more generally, if your application was written to use the GPL-licensed library, and cannot work unless linked with that library, then your application incorporates the functionality of that GPL-licensed library, and that therefore to distribute it, you must license it under the terms of the GPL.
Are you adequate?