I need to understand rules that I only read but never understood completely. I'm asking here some clarifications. I read that GPLv2 licence imposes that a developer, developing a software using codes with GPLv2 licenses, must release it with the same GPLv2 licence.

  • Imagine a user asks a developer to create a software for a system (machine) using different licence types. What type of licence will have the developed codes?

  • Moreover, if the developer uses just some libraries with GPLv2 licences, is he obliged to make public the whole code for this system? And what about, if the user wants to sell several of these systems? Should the developer release the code mandatory or can he release only the executable?

  • I know that a software with a GPLv2 licence running on a OS, does not oblige that OS to be with GPLv2 licence. But what about if I create a SaaS using software with GPLv2 licence? Also all the software developed to make my Saas on the server has to be with a GPLv2 licence? For example, I know https://www.rollapp.com/ that make a lot of GPLv2 applications run directly on the browser. Are these guys obliged to make their code with GPLv2 licence.

What about the last two concerns, but with another type of licence, like MIT licence, or BSD?

Anyway, could you suggest a method on how to manage all these type of information when you face different libraries with different licences?

  • 3
    GPL is only relevant if you release the software somehow. If you just develop software privately and do not distribute it (e.g. use it to implement a service that you provide over a network), then you have no obligation. If you want to require redistribution in this case, see the Affero GPL instead.
    – Brandin
    Nov 13, 2017 at 13:44
  • @Brandin, what is Affero GPL? develop software privately?? It is an industrial machine that could be sold anywhere in the world
    – SPS
    Nov 13, 2017 at 13:54
  • Private means not redistributing the application. For example, I could install modified GPL software on my server to run a Web site. The license does not require that I release my changes to Web site visitors. Affero GPL requires that, however.
    – Brandin
    Nov 13, 2017 at 17:19
  • 1
    This is too broad and too many questions. I am voting to close this: please posy several focused question instead as otherwise this is too much to swallow at once for anyone. Thank you! Nov 29, 2017 at 14:26

1 Answer 1


You are asking several questions at once. I will try to answer them all.

If a client hires a developer to create something for them, meaning that there is a contract between the client and the developer (or the developer's employer) to create something, then the only obligation of the developer is to provide the product and all source code contained therein to the client. This is independent of the copyright licenses involved and generally the developer doesn't have the right to provide the code to someone else.

If a product contains code licensed under the GPLv2 license and that product is distributed to third parties (either as a downloadable package/executable, on a storage medium or as part of a physical product), then all software in that product must be licensed under a GPLv2-compatible open-source license and it must be possible for people that have the product to obtain a copy of all the code.
From the GPLv3 and later, you are required to include the information and/or security keys that are needed to update the software on a physical device. With GPLv2, this is not needed.

If the product is not distributed (for example, it is only use in-house or only made available as SaaS), then there is no requirement to provide any source code or to license your own code in a particular way.

The MIT and BSD licenses are more permissive than the GPL license.
If you only use MIT and/or BSD licensed libraries in your product that you distribute, then your only obligation is to mention that you are using those libraries and which license they use. You are not required to use a particular license for your own code and you are not required to provide your code to anyone either.

  • Thanks a lot for your complete answer. Just I need some clarifications for your second point. If a product ...copy of all the code: as I explained this is my case. Contrary to later versions, GPLv2 do you mean GPLv3? Moreover, in this case, it is not clear this users can update that device with a software version that they created themselves I've understood this: if a client pays a developer to develop code for the client's machines (sold everywhere in the world, as physical devices), and the developer uses GPLv2 libraries, he does not need to release the code.
    – SPS
    Nov 13, 2017 at 16:59
  • Is it right my interpretation? But in case of using GPLv3 libraries, developers must share code, also for physical devices. Is it right?
    – SPS
    Nov 13, 2017 at 17:03
  • @SPS: No, your interpretation is not correct. The client, who is selling the machines, needs to offer his customers the possibility to obtain a copy of the source code. From GPLv3 onward, this must also contain the information and security keys that are needed to put a new version of the software on the machine. Nov 13, 2017 at 17:17
  • What about LGPL? Does client need to provide source code too?
    – SPS
    Nov 14, 2017 at 12:15
  • 1
    @SPS: With LGPLv2 customers CAN ask for code, it does not have to be open-source, and they might not be able to do anything useful with it. A good starting point for getting more information is the GPL FAQ (gnu.org/licenses/gpl-faq.en.html) Nov 14, 2017 at 16:28

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.