I am writing a software project, and have created a repository for it on GitHub for backup reasons (I don't actually want to publish it).

I began doing a little refactoring, and as an experiment added some open source pieces of code I found (I later intend to replace that code with my own code).

Now, the code I'm experimenting with has a GNU General Public License, and my project currently has no licensing at all (as it is still "under construction"). As I read on the Internet, no license means "fully copyrighted".

So, this seems like a violation of the GNU General Public License. Isn't it?

I don't really know what to do now. Can I still push my commits to Github?

And if I don't push them and keep them on my PC until I replace the temporary code pieces. Is it legal to do so?

  • 4
    IMHO use a private repo if you do not want to publish your code. Bitbucket offers these for free. – Philippe Ombredanne Jan 22 '17 at 14:49

Firstly, we have already addressed the question of what licence applies to GitHub-hosted content in the absence of a specific licence declaration, and the prevailing (though not the only) opinion seems to be that

if you publish your source code in a public repository on GitHub, you have accepted the Terms of Service which do allow other GitHub users some rights. Specifically, you allow others to view and fork your repository.

When you say "fully copyrighted", I presume you mean "all rights reserved" (even GPL'ed code is fully-copyrighted, that's why the GPL works). But it's clear that some rights are given away by the mere act of publishing on GitHub. In that sense, GitHub is not a very good backup medium, and you should make better arrangements immediately.

Is that enough to comply with the GPL? You don't say which version applied to the code you're working on, but let's assume it's v3. Section 5(c) of GPLv3 says that you may convey modified source versions but

You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy.

It also says that

To “convey” a work means any kind of propagation that enables other parties to make or receive copies.

That given, and noting that IANAL/IANYL, putting a work on GitHub looks to me like conveying it, which means that you must license the work under GPLv3 (and comply with its other obligations). If you do not convey your modified code, and instead you keep copies only on your own computer(s), and until you do convey it to some other party you may keep and tinker with it to your heart's content without any further obligations. Similar arguments apply if the original code was licensed under GPLv2.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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