I am a software freelancer (basically, I own a software company which is just myself), so legally, I'm the bearer of responsibility.

Recently, I have been asked to develop a piece of software. However, the deliverable is not a binary file, but source code. This project has been outsourced several times, and I'm at the end of the outsourcing chain.

I use several GPLv3 libraries in this project, and the Qt framework, which has a commercial license, but is free when licensed under LGPLv3. The companies said they are okay with this.

Is it okay to develop the software, sell the source code and not make it available publicly? Or am I legally obligated to make it available publicly? If so, is it okay to wait until the code has been delivered to the initial outsourcing company?

This is in the Czech Republic, by the way. The initial outsourcing company is Italian.

  • Did you read this? gnu.org/licenses/gpl-faq.html#DevelopChangesUnderNDA
    – Greendrake
    Jul 4, 2018 at 8:46
  • 1
    If you use GPL source code in your software, then by accepting the GPL license of that third party source code you must agree to license your software under the same terms. But the GPL never says that you have to post source code publicly. It only says that whoever you give the software too must also receive the source code and the same rights that you received (e.g. you can't tell them that they can't show the source code to anyone else). Since you're giving only source code anyway, you've already met your GPL obligations. Charging money for your services or for the final product is fine too.
    – Brandin
    Jul 4, 2018 at 11:20

1 Answer 1


The GPL doesn’t require you to distribute the software to anyone. The only requirement to distribute something is that if you do distribute the software to someone as a binary, you must also distribute the source code to them at no additional charge. The focus of the GPL is ensuring freedom for people who have copies of the software, not ensuring that the software is available to the world at large.

Because your final deliverable is source code, you’ve already complied with the requirement to distribute source alongside object code. You have to comply with the requirements in section 5:

a) The work must carry prominent notices stating that you modified it, and giving a relevant date.

b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to “keep intact all notices”.

c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it.

d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so.

You have to license the software to the company that hired you under the GPL v3 (since parts of it were licensed to you under GPL v3), so you can’t stop them from distributing it to the world. But nothing requires you to distribute it to the world.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .