I have this question after what happened when Microsoft bought GitHub. But GitHub core is not git? I know that when you use a GPLv2 in your program you must have to give your program the same license. Can somebody clear this a little bit for me?
1 Answer
The GPL does not forbid you from using GPL'ed software. It requires something far more specific: if you modify the GPL'ed software and publish your modifications, then you can only publish under the terms of the GPL.
The question here is whether some use of Git would count as modification, and whether it counts as publishing. Different GPL versions introduce more precise terms for these concepts, so please read the actual license for details.
Regarding publishing or distributing GPL'ed software:
The GitHub web application is not published/distributed to users because they never receive a copy. So this wouldn't trigger any GPL requirements. The AGPL license closes this “loophole”.
GitHub Enterprise does however allow on-premise installation which would count as a publication as far as the GPL is concerned.
Regarding allowed use versus modifications/derived works:
- The legal situation here is unclear.
- Clearly, modifying the GPL'ed software counts as creating a derived work.
- The FSF (the authors of the GPL license but not the authors of Git) suggest that a derived work can be created also by linking with GPL'ed software so that the GPL'ed software is executed in the same process.
- In contrast, executing the GPL'ed software in a separate process (e.g. running Git as a shell command) would be “communication at arms length” that does not create a derived work.
- Other people argue that the FSF's interpretation is excessive, and that even use within the same process can be allowed.
So if GitHub would call the command-line Git for all its operations, their software wouldn't be a derived work and everything is fine.
But in reality, they use libgit2, an independent reimplementation of core Git operations. Libgit2 is licensed under the GPL with a linking exception that allows it to be linked without restrictions from proprietary software, under certain circumstances. This license is similar to the LGPL. Libgit2 is not a weird fork, it's actually the officially encouraged library for embedding Git into other software.
So the answer is: GitHub does not fall under the GPL because they don't use Git.
-
Correct me if i'm wrong. Let's say that I start a business and I use opensource codes to offer a service but because the service that I am offering does not contain this codes, of course I don't have to publish it. Also, if I modify this codes but I not distributed i don't need to public the changes. Is that correct?– RicardoCommented Jul 1, 2018 at 3:39
-
1@Ricardo You mean, a SaaS business? This depends on the exact license. You can freely use GPL'ed code because you are not distributing/publishing your code. There are two caveats: (1) This is a bad business strategy because you can never publish or sell your software except when you license it under the GPL (except perhaps through a company merger). (2) This doesn't apply to licenses like the AGPL. The AGPL requires source disclosure even in a SaaS scenario. If you need more details, please ask a separate question.– amonCommented Jul 1, 2018 at 8:02
-
I mean a business like Github where They don't have to publish the code because the service that they offer does not contain GPLv2 license, instead they can use tools that are GPLv2. Is that correct? I was just making an example to see if I understand correct.– RicardoCommented Jul 1, 2018 at 18:13
-
4@Ricardo If you modify GPL software for use on your own server or one you are renting from a company, simply using the software does not obligate you to publish your changes. Suppose you modified Linux (GPLv2) to reduce power costs for your servers. And suppose you use those servers to offer services on the Internet. Just because your servers are public does not obligate you to give sources to your modified server software. However if you publish your "power saving Linux" software somewhere, the GPL obligates that you release the source code under the GPL as well.– BrandinCommented Jul 2, 2018 at 10:57
-
2@Ricardo Note that GitHub does license its software code for on-premises use (e.g., for business who don't want to upload their code to Github's servers). As amon commented in point (1) above, in order for them to dictate that customers may not redistribute GitHub code, it may not be under the GPL (which would allow customers to redistribute it).– apsillers ♦Commented Jul 2, 2018 at 15:34