So, I have a question about licensing.

I am making an app whose goal is to port some typically desktop software over to mobile. So, there are really two components to what I am making. A binary, and an app which wraps around the binary to interface with it (a pretty UI and what not).

This desktop software is opensource and under the GPL.

I had to make some modifications to the software to make it run on ARM processors. I have the source code published on GitHub. I obviously know that this code will have the GPL extend to it.

What I am not sure of is if the app which is used to interface with the binary is also required to be open source. I am not using any of the original project's source code in the app, all I am doing is calling the binary, and reporting on its output.

My question is this, do I need to provide the source code for my app to? It does not use the GPL source code, but it does call a binary which does use the GPL source code. I have provided the sourcecode for the binary itself.

I am fine with publishing the source code for the app, I am 100% for free software. My dilemma is that I do not want someone else to be able to push the app to the app store while I am still beta testing. If I do not publish the source code until the app is on the market then I am good.

  • 1
    Is your user interface program combined with the GPL program to create a larger program? If not, the combination may be considered an "aggregate" and the GPL does not apply to it. Read section 5 of the GPL 3.0: "[a compilation of works] is called an 'aggregate' if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate." – Brandin Feb 9 '18 at 8:53
  • Note also that the GPL's obligations on source release only apply when you "convey" versions. While you are developing and testing your own code, yourself, you have no obligations to release it. If your beta test program involves other people, though, things change. – MadHatter Feb 9 '18 at 10:21

There are no licenses that require you to make your source code or modifications public the moment that you have typed it. The earliest that you can be required to provide access to the source code is once you provide the binaries to others. And then you are still only required to give the people that have access to the binaries access to the sources.

This means that as long as you provide the app only to a select few (hand-picked?) people during the beta-test period, you only have to provide access to the source code to your beta testers. You can make it a pre-condition of accepting someone as a beta tester that they won't publish the app (or something very similar) before you.

With regard to the license of the app, that depends heavily on how the app and the executable interact.
The less that your app depends on interacting with this particular executable, the more it can be argued that they are independent works and can be licensed completely independently.

But if you are not opposed to making your app open-source, you can eliminate all doubts and just release it under the GPL as well.


Assuming that your app is just a wrapper, this would be considered "linking". Unless the original application is licensed under the LGPL (GPL with linking exception) then your wrapper is required to be licensed under a GPL-compatible license.

  • 1
    This is not clear. For example, Visual Studio can be configured to act as a "wrapper" for GCC, in the sense that it calls GCC, parses its output, etc. This does not mean Visual Studio must be licensed in a GPL-compatible way, even though GCC is a GPL program. – Brandin Feb 16 '18 at 8:28

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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