views:

464

answers:

8

My company makes an extremely specialized piece of software which costs a lot of money for those few who need it. On our current release we have no choice but to use a few libraries which are released only under the GPL.

Releasing the code is not an option and it would take months, if not years to implement the functionality the libraries provide.

What do companies do in this situation? Are there practical and legal ways around the GPL?

+4  A: 

Simplest solution: try contacting whichever party/individual it is that is maintaining the project and ask for a special release which you can use commercially.

Chances are with enough money, anybody can be reasoned with.

shoosh
Richard Stallman excepted ;)
David Dorward
As Michael E noted in his comment to his comment to David Dorward's answer, the problem is not reasoning with one person, it's getting all 5000 present and past developers on the project to give permission. There's not much reason to assume you'll be able to do this.
Jefromi
+20  A: 

Contact the copyright holder. Ask them for a different license (and expect to pay for it).

David Dorward
This may not be practical or possible if there are multiple authors, but it's really the only thing to do.
Michael E
+11  A: 

If the GPL'd code is used as a library linked with your application, then your only chance is to ask the copyright holders for an alternative license.

If the GPL'd code is utilities that are/can be run as separate processes with a clean and natural interface (text I/O over a pipe is probably OK; COM/CORBA is probably not), then you can GPL those and your modifications to them without having to GPL the rest of your code base.

IANAL, so take with a grain of salt.

Michael E
This is, for example, precisely what the gdb/mi interface achieves.
crazyscot
Are you saying that non-free software can't use COM/CORBA GPL libraries?
Gabe
@gabe There is a line somewhere, where one program's use of another ceases to really be clean use of an independent program and starts being a single program in two pieces. I am suggesting that cross-process object sharing mechanisms such as COM and CORBA may be crossing that line. See http://www.gnu.org/licenses/gpl-faq.html#MereAggregation
Michael E
I read "However, in many cases you can distribute the GPL-covered software alongside your proprietary system. To do this validly, you must make sure that the free and non-free programs communicate at arms length, that they are not combined in a way that would make them effectively a single program." to mean that most uses of COM/CORBA would be fine as long as the wrapper you write for the library is GPL and not specific to your program.
Gabe
+2  A: 

You can create a separate program, which you release the source to, which uses those libraries. Then you just modify your software to use the library via an interface to this separate program.

Gabe
That can be a trap though: if the Interface is GPL, then consuming it from your Application might force it to be GPL as well (as it's linked against GPL software). However if the Interface is not GPL but interfaces with GPL Code, this might violate the license and trigger the folks from gpl-violations.org. As Michael E said in his answer, a "natural" interface like text over a pipe might be required.
Michael Stum
Thats a pretty extreme interpretation of GPL, Internet explorer doesn't become GPL when it talks to an Apache site
Martin Beckett
If I write the code for the interface, I can do whatever I want (including use it in non-free programs) as long as I also make the source available via GPL.
Gabe
@Martin That's because Internet Explorer uses HTTP, which is a "Third Party" between the code and the application. I'm referring to binary interfaces like COM (which was mentioned in another answer), in which case I would rather consult an armada of lawyers before I end up at the receiving side of a court order.
Michael Stum
Unless there has been a court case in your jurisdiction the lawyers are a waste of money. Lawyers don't tell you the answer, the best they can tell you is what the courts have decided. Of course if you want to be the test case in the US of whether corba/com is a derived work - be my guest.
Martin Beckett
A: 

"costs a lot of money"

Get out your checkbook bub. Not nice to take Free software and try to cash in on it for nothing.

Paul
What is wrong with questioning someone's motives? They want to take in lots of cash, and take advantage of someone else's work.
Paul
I agree. The OP states that the libraries are *extremely* valuable: "it would take [...] years to implement the functionality". Given an average salary of $300000 and an average team size of 2, that puts the value of those libraries at about $1 million. IOW: someone is giving him $1 million worth of software, and instead of thanking them for their generous donation, he wants to screw them. And not only that: he has the nerve to ask *us*, their fellow programmers, their colleagues, to *help* him with that. He even has the guts to tell us that he is going to make "a lot of money" off them.
Jörg W Mittag
So if it took Microsoft 10 years with 10,000 people to write Windows, does that mean Windows is worth $30,000,000,000? Am I screwing MS if I only pay them $100 for it?
Gabe
No you aren't screwing MS. Their model is to put money into their product and then have people pay them to use it.The GPL model is to put your time/money into a product. Then they give it away with the expected payment of receiving back (and pay forward) based on the GPL.
Paul
Actually, I feel screwed when I am forced to use Windows, even for $0.
slacker
+5  A: 

Though I am sure that you are an honorable person, others may come along who are not, so let us remind people of the risks related to cheating:

As everyone else has said, it's about copyright, so it comes down to who the rights holders are, and what you can do to persuade them. You'll have a hard time the FSF (nigh on impossible, I should think), but individual developers may be more biddable.

dmckee
`If they can get a big name like that, they can get anyone.` True, but the big names are a far more attractive target.
Robert Harvey
A: 

I think (I'm no laywer) that i'ts OK to take the GPL libs, create a GPL command line application and than use this over standard text I/O.

Kugel
+10  A: 

The GPL only requires that you make the code available to anyone you distribute the software to. This is not exactly the same as releasing it to the whole world for free. From the GPL FAQ:

Does the GPL require that source code of modified versions be posted to the public?

The GPL does not require you to release your modified version, or any part of it. You are free to make modifications and use them privately, without ever releasing them. This applies to organizations (including companies), too; an organization can make a modified version and use it internally without ever releasing it outside the organization.

But if you release the modified version to the public in some way, the GPL requires you to make the modified source code available to the program's users, under the GPL.

Thus, the GPL gives permission to release the modified program in certain ways, and not in other ways; but the decision of whether to release it is up to you.

So if you only need the GPL libraries for building an internal tool, then there shouldn't be a problem. But from your question it seems that you actually do need to distribute your work to third parties.

Interestingly enough, the above also applies if you only make the software available as a web application hosted on your own web servers. Since you aren't technically distributing the application to the users, you don't have to give them the code. The Affero General Public License (AGPL) was designed specifically to close this loophole.

edit: The definition of a "derived work" is also very important for your question; if your application is not a derived work then the GPL would only require that you release any patches you made to the libraries. However, there is some controversy about the definition of "derived work". See the wikipedia article on the GPL, section Linking and Derived works.

Wim Coenen
+1 for a quite important point everybody else seems to have missed. While this is going to be subjective, I'll mention that I am quite comfortable with someone using my GPLd code internally without releasing the mods. I can't say what other GPL'd code developers will think, but as they release under GPL, they explicitly allow for this usage.
herenvardo