Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I am developing software for my company and I would like to use some libraries under GPL license.

What could be the consequences? Does it mean that the code developed above these GPL dependencies will also be under GPL? Do I have the obligation to publish the source code of these products?

share|improve this question

migrated from stackoverflow.com Feb 7 '11 at 13:55

This question came from our site for professional and enthusiast programmers.

5 Answers 5

I am not a lawyer, but.. The GNU GPL lays it's requirements out quite concisely. I'd suggest reading it, and you'll certainly need your management to read it before you go that way.

However, the GPL is a copyright license. So, if you're not distributing the derived software outside of the company, it would not generally be applicable.

If you are developing commercial software, then obviously this is not the case, but if you're developing in-house software, where you won't actually be publishing the software to anyone, then the GPL doesn't apply.

share|improve this answer
    
may I ask why someone downvoted? –  TZHX Feb 7 '11 at 15:11
    
Possibly because of your use of "commercial", which seems to be a touchy point for Stallman and some FSF fans. "Commercial software" isn't necessarily a synonym for "software for sale". –  David Thornley Feb 7 '11 at 19:15
1  
@David Thornley - hmm, that wasn't the meaning I meant to give. But I can see the potential for ambiguity. Thank you for giving a reason, I'll try and be aware of that in future. –  TZHX Feb 7 '11 at 19:20
    
Perhaps 'proprietary' would be more precise than 'commercial' here? –  Jeffrey Hantin May 27 at 23:43

No. If you don't make the software available to the public somehow (independently of whether it's free or not), you don't have to change the license of your own software (or release any of it).

share|improve this answer

You only have to distribute the source to whomever you distribute the binary. Look carefuly to the licenses, maybe those libraries are LGPL instead of GPL, which is not viral in your case.

share|improve this answer

I highly recommend reading the GPL FAQ. Understand that there are different flavors of the GPL, and which one the libraries you want to use will affect your project differently. This page describes the different GNU licenses available. I believe the article on "why to not use the LGPL" is rather telling.

Understand that there is the doctrine of GPL, and what can be practiced with GPL. To walk out the intricacies of these libraries, how it will affect your commercial project, and what you can do to work around those problems--talk to a lawyer. There are lawyers who specialize in GPL counseling. The GPL is constrained by local laws which may supersede the terms of the license. Richard Stallman (Mr. GPL to you) has an agenda to make as much software as he can "free as in freedom, not as in beer".

The key terms to understand are: publication, linking vs. embedding (LGPL concern), and distribution. The GPL variants require that you make your source code available to anyone who requests it if your project falls within the purview of license. It does not require that you host it on a web site where anyone can download it. Making it available can be a snail mail request, and sent via paper print out if that's the way you elect to do it. While that's not in the spirit of GPL, it fits in the letter of the license.

If you are required to make your source code available, most companies will not consider it because in their eyes if someone else has access to their "secret sauce" then the barriers for competitors to release a new version of their software will be nearly eliminated. Even if you don't distribute your build scripts, there is nothing that says someone else can't come along and create them on the distributed copy of the source code.

NOTE: It may be worth checking to see if the library you want to use has a BSD/MIT/ASL style licensed version out there. In many cases there is, which side-steps the whole issue with GPL. The BSD/MIT/ASL licenses are designed to allow companies to incorporate the library into their commercial projects without any viral side effects. While there is nothing requiring the users of the library to contribute back, in most cases they do anyway. In short, this shows that some of Richard Stallman's arguments are flawed. RS does provide a purpose, as the extreme needed to provide alternatives where a happy balance where should be. Not all GPL supporters agree with RS' interpretation of his own license which also adds to the confusion.

This faq entry answers the question most succinctly.

share|improve this answer
1  
No, you aren't required to make source code available to anybody who requests it. You are required to make it available to people who receive the binary code from you, directly or indirectly (see the license for the details here). –  David Thornley Feb 7 '11 at 19:11
    

GPL is a highly viral license. If you use any GPL library anywhere in your program and end up publishing or distributing it, according to the licensing terms your entire program must be published under the GPL or a compatible license.

share|improve this answer
5  
If the program is published, it must be under the GPL or compatible. It doesn't have to be published. –  user11715 Feb 7 '11 at 14:37
    
Edited for the peace of mind of the overly pedantic. I thought that bit was obvious. –  Mason Wheeler Feb 7 '11 at 15:04
    
You'd hope that bit is obvious. However, I keep seeing questions and statements that claim that the program must be published, and so apparently it isn't. Since you've edited so that it no longer supports a fairly popular misconception, I removed my downvote. –  David Thornley Feb 7 '11 at 19:13

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.