I want to build an application that will enable a user to convert files from any one of three formats, into any of those three formats. In order words, there are three formats:

aaa, bbb and ccc

My application will enable the user to convert aaa to ccc, or bbb to aaa, or ccc to bbb, etc. The origins of the three formats are:

aaa (closed source product, I have permission and a license to read/write this format)

bbb (open source GPL license, file format is published on the Internet)

ccc (open source GPL license, file format is visible as JSON and easy to read)

All source code will be my original code, I will not be using any source code from any open source product.

The question is: Given that I am reading file formats created by GPL products, do I need to release my source code? This will be difficult given that I am also reading a properietary format. Ultimately I wish to sell a binary and not release any source given the complexity around the one closed source format.


1 Answer 1


The question is: Given that I am reading file formats created by GPL products, do I need to release my source code?

TL;DR: Not if you have never seen the source of the GPL products.

As explained in the question Is the output of an open source program licensed the same?, the output from a GPL-licensed application is itself not subject to the GPL license. As an example, if I write software that I compiler with the GCC compiler (GPL license), then I can still distribute my software as closed-source.

For your situation, the important determining factor is if you can read and write files in the bbb and/or ccc formats without inspecting the GPL source code that is used to produces those files.

If the bbb format is published in a descriptive format (so, not as "this GPL-licensed source code describes the file format"), then you are good on that front and you can base your implementation on the description of the file format.

For the ccc format, you need to be a bit careful. As there is no description, there is a high temptation to look at the GPL sources for some of the more intricate details of the file format. You have to fight that temptation, because once you give in it becomes much harder to prove that you did not (subconsciously) copy parts of the GPL code into your own code and that would make your code a derived work that needs to be licensed under the GPL license.

What you can do is use the program that creates ccc files to create as many variations of the ccc format as it can and work backwards from those output files to reconstruct the intricate details of the ccc format. Then you can still truthfully claim that you have never seen the GPL code and therefor you cannot have copied any part of it.

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.