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, 2018 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, 2018 at 10:21

4 Answers 4


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.

  • "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." If you distribute the code under the GPL, they are automatically exempted from that pre-condition. By distributing under the GPL, you waive your right to enforce any further restrictions. "If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term." May 19, 2021 at 18:55
  • @DavidSchwartz, The "don't distrubute" would be more like a gentleman's agreement than an additional term in the license and the consequence of not honoring that agreement could be that you don't receive further updates. While I can't add extra restrictions to the GPL license, there is also no obligation on me to provide you with new versions (even when I do provide them to others). May 20, 2021 at 6:02

Like some of the other answers, "it depends". There are situations that seem to not require licensing a work as GPLv3 even if the binary it uses is GPLv3:

I recently encountered the WinSCP .NET Assembly and COM Library which uses a GPLv3 binary and does not require the main work to be GPLv3. Because the GPLv3 binary is used as an executable and the main work is a wrapping library that does not link to it but simply makes calls into the binary via its scriptable API, it apparently does not fall into the same category.

I moved this answer from another related but different question.


If your code is supposed to run on an iPhone: Apple won't allow you to use shared libraries, only static libraries, if you want to put your application on the app store. And with shared libraries, you have ONE application, which you will need to license under the GPL according to the GPL rules.


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, 2018 at 8: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.