I have licensed my software under GPLv3 and made it available on Github as an open source repository.

Am I allowed(under GPLv3) to distribute binary releases of the application so it is easier to use ? I know I am obliged to make the source code available to the end user.

Can this issue be solved if I linked if I link to the Github repository on the about page within the application ?

  • 3
    If the code is fully created by you, then you are not subject to the GPL as a Licensee. You are offering this license to others. If they accept it, then they are subject to the terms as a Licensee. The GPLv3 doesn't even define a term to reference the author of the work. If your code is a derived work of some GPLed code, you are a Licensee. Read the license. You are obligated to be able to provide source code on demand, not GitHub. If GitHub goes away, you are still obligated to be able to provide source code on demand. – Derek Elkins left SE Nov 5 '17 at 6:12
  • Why won't you want to also distribute the source tar ball with the binary one? – Basile Starynkevitch Nov 5 '17 at 7:49
  • I am surprised you asked that. All web pages which publish binary code practically provide a convenient way to get the corresponding source code, if the software is GPLv3. – Basile Starynkevitch Nov 5 '17 at 8:05

In practice, if you distribute (e.g. by providing it on some web site) a binary of your code, you'll better also provide (e.g. on the same web page) a source tarball of it (exactly the one you used for compilation). Not a big deal in practice (just use git archive to get the source archive then publish it with your binary....)

As commented by Derek, if you wrote all your code you are not obliged by the GPL. But things are very different once you accepted even a single minor outside contribution (you need explicit agreement from contributors to publish outside of the GPL, e.g. from every author of GitHub pull requests that you did accept).

And GitHub can go away, or simply become unavailable to some people. Think of a citizen of some country behind a Great FireWall which blocks GitHub temporarily; he should be able to get the source code as easily as he obtained the binary, and that person cannot use GitHub but still could access your web site.

Can this issue be solved if I link to the Github repository on the about page within the application ?

In principle that is not enough. And the about page is not a distribution by itself. I recommend, if you publish a binary archive on some web site, to also publish the source archive on the same page of that web site. However, mentioning the GitHub project is also useful.

Notice that the GPL does not oblige you to publish all the history of your source code, just wants you to publish the current source code with the binary you built from it. So the outcome of git archive is enough.

BTW, I am not a lawyer.

|improve this answer|||||

If you are the sole copyright holder, then you can do whatever you like. You might commit a GPL violation, but only the copyright holder can hold you responsible for this. If you are the sole copyright holder, then you would just decide not to sue yourself, whatever you do.

If you are not the sole copyright holder, then you need to follow the GPL rules. There are three ways to do this: 1. You agree to give the source code to anyone who asks for it, for three years, and for payment of reasonable cost. 2. If what you distributed is identical to a commercial distribution, then you can refer everyone to that commercial distribution. Obviously not possible if you modified the software. 3. Accompany each copy of the software with the source code.

So distributing a binary release is fine if you follow (1) or (2). On the other hand, if you want to distribute the software and want to have no further legal obligations at all, then (3) is the way to go. Distribute binary and source code together. If someone throws away the source code because they don't care, that's their problem. You have no further obligations.

|improve this answer|||||

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