I once interviewed at a consulting company where it came up in the conversation that they use open source products (which is great, I've used Hibernate, JBoss, etc. extensively.) One thing that did surprise me is that when I asked if they used GPL licensed OSS when writing applications for clients, they said "Sure, all the time! As long as the client gets what they want and are happy." Now, I'm no lawyer or big license buff, but I was under the impression that using GPL code (let's say some library that you include), then you are required to release the entire application under the same license. When I pointed this out, I was given a quick response of, "Well, we give the clients all the source code when we're done, so that's really not an issue."

Not wanting to press the issue further (interviews aren't the place for arguments like that), I let it slide. However, that still concerns me about that particular practice of the business. What is the official word on GPL licensed code and how "open" does it need to be? Do you have to publish it and say "My company used this library so here is the site where you can download our shopping and order fulfillment system application that we spend millions of dollars to build."? In this situation, is the company right for using GPL code without the client's knowledge? Is it enough to just "give them the source"?

6 Answers 6


Standard disclaimers apply: I am not a lawyer and neither are you.

GPL, at its core, is about protecting the rights of those using the program to obtain and use the source as well. It does not mandate that you publish the source of any program you write that uses GPL'd code, merely that if you publish such a program you must also provide the source.

I can write any number of apps for my personal use, pull in GPL'd code, and never give the source of any of this to anyone. I can write such apps for internal use by my company, and need only provide the source to those within my company who use the program (practically-speaking, I would have to do this anyway if they had any good reason to request it). If I write such a program for some other entity, I merely have to give them the code (and make it clear that the program is GPL-licensed) - if they go on to distribute it, they also must then make the source available, but I'm out of the picture.

So the only worry your consulting company might have is that they were failing to make their clients aware of the license the code they provided fell under. Actually, I lie - if they had negotiated a different license with their clients (client owns all rights to code...) then they could be in hot water over that as well... But this is true for any third-party code: unless it's public-domain, you must comply with the license, and must not re-license it unless that right has been granted you by the copyright holder.

  • 1
    You are right AGPL however is more strict on that
    – user2567
    Oct 13, 2010 at 20:43
  • @Pierre: correct, in the sense that you can't get out of providing source to your users by sticking to server apps.
    – Shog9
    Oct 13, 2010 at 21:01
  • 1
    Interesting. So, in standard GPL, if you write an SaaS app, then you aren't required to give the source since you're not technically "distributing" the application itself?
    – Ryan Hayes
    Oct 13, 2010 at 21:13
  • 2
    @Ryan: right. Well, you aren't required to give it to your users. Anyone who gets the compiled code still gets the source.
    – Shog9
    Oct 13, 2010 at 23:45

As a consultant, I make a point of raising license issues early with my customer so that they can make an informed choice. If the best technology to apply to their problem is under GPL but they can't comply with the license, then I can't use it. In practice, this has had two effects.

First, many are happy to pay for a commercial product specifically to avoid this issue. This is especially common in the embedded systems world where compliance with GPL would effectively require publishing the complete hardware design and documenting how it all works to meet the spirit of the GPL which is an attempt to make it possible for an end user to change the product. While it is possible to to make products that are that open, it requires a great deal of commitment at all levels of the company. The larger problem is that many components of a design are documented to us by their makers under NDA and it is effectively impossible to create GPL compliant code that uses documentation released under NDA.

Second, we now have a preference for the MIT license and its many relatives (which make it clear that commercial use is acceptable) over the GPL at any revision. I haven't had any customer object to releasing bug fixes and improvements made back to the relevant product communities. Since the license is permissive, I can comply with my NDA obligations, keep my customer happy, and contribute to the relevant communities.


Open source does not necessarily mean free.

IANAL either, but generally speaking the requirement for GPL is to provide the source code for your project. You can certainly sell a product to someone else. However, I believe that you cannot prevent them from giving it away. That is probably what makes most GPL'd software free, as in beer. I'm fairly certain that you do not have to publish your code to world+dog just because it is GPL'd.

From the preamble to v3 of the GPL (emphasis my own):

The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too.

When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things.


In this situation, is the company right for using GPL code without the client's knowledge? Is it enough to just "give them the source"?

This is a slightly different question. If the client has some expectation and that expectation is dictated in a contract, the company may have an issue. Otherwise, it is up to them to determine how best to do the job. However, they are supposed to include a notice in the source code regarding the license. I am uncertain if they must disclose this to their client in any other way.

  • 2
    GPL doesn't require that you actively publish the source, but it does require that you publish to the user the fact that the program is GPL and that you will deliver the source on request (possibly subject to a fair and reasonable handling fee). In practice, the latter requirement is often handled by a tarball or zip at an URL that can be given out on request. As a consultant, you have an obligation to let your client know what their burden will be if they distribute your work to others, because they become the publisher under the GPL.
    – RBerteig
    Oct 14, 2010 at 21:03
  • @RBerteig Thanks for the clarification. It has been a while since I've dug through the terms of the license. Oct 15, 2010 at 3:44
  • "You can certainly sell a product to someone else. However, I believe that you cannot prevent them from giving it away." Depends on whether you're giving them something under the GPL or if you're the original copyright holder and re-licensing it to them under a different license.
    – endolith
    Jan 15, 2013 at 22:38

When you copy GPL-licensed software or create products based on it, you have to follow the rules. One is that whoever you give the software to receives it under the same license. Another is that people must be able to get the source code. One way to achieve this is to give every customer the software complete with source code. If you do it this way, you have no further obligations towards anyone.

So you sign a contract to write software for X, deliver the software together with the source code, you take your money and that’s it. You can charge as much as you can get, and you have no obligations to anyone.

The customer can pass your software on to anyone else who is interested. But often “anyone interested” is their competitors. The more niche the software is, the less likely that anyone receives it.


I also as A consultant will not use GPL Licensed code in anything I make for my clients. I have yet to have a client who wants to release their source code, but if they are willing to go along with the GPL license then I would be OK with that.

I would advise people not to use GPL licensed software unless you realize all the implications. I am not a lawyer; consult one for legal advice. Don't be cheap. Pay now or pay later even more.

  • Many companies have no need to distribute their software so the GPL has no implications for them. Feb 2, 2022 at 17:43
  • 2
    I can see you are not a lawyer. There are zero implications using GPL-licensed software.
    – gnasher729
    Feb 2, 2022 at 18:28

No, you are correct. Heres why:

Consider if we have an application under GPL. Now, then it can't be used by proprietary code.

If it was enough just to open source code that uses GPL, I could open source a project based on it as BSD.

Then proprietary software could use the GPL product.

  • 4
    This makes no sense. The GPL does not state that proprietary code can't use it. The GPL is all about distribution, as Mr. C's answer states clearly. In short- you are not allowed to distribute software that uses GPL code unless you also distribute the source code for that software under a compatible license. Oct 13, 2010 at 20:34
  • 1
    Proprietary code cannot use GPL code. Its part of the reason for the existance of the license. Oct 13, 2010 at 20:54
  • It all depends on what you mean by "proprietary code". If you mean, "code that you own" then this makes no sense - GPL can't take away your copyright, so unless you assign it to the FSF of your own volition you still own the code that you write. OTOH, if you mean, "code you wish to distribute under a license incompatible with GPL" then you are correct - just as you were able to obtain and use the source you're building on, you are obligated to grant your users this right to your source. Again, it's about distribution - no one who cannot obtain your program has rights to your code.
    – Shog9
    Oct 13, 2010 at 21:10
  • @Mr. C by proprietary code I do mean code that is incompatible with the GPL. And the code is distributed to client so... But yeah, I'm no lawyer so I might be wrong. Oct 13, 2010 at 21:25
  • 2
    -1, misleading answer. This is only true for some definitions of "use" and "proprietary". For example, I could create an embedded Linux product, and only release the Linux kernel and code that links directly to the kernel code, but not my UI or other apps that just happen to run on a GPLed kernel. Many such relationships exist. The ambiguity in this use of "proprietary" is already covered. Also, in most jurisdictions, a "work for hire" only given to the party who hired a developer to code it is not the same as distribution. IANAL, etc.
    – HedgeMage
    Nov 22, 2010 at 20:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.