-1

I may be misunderstanding the GPLv2 license of Git itself, but I thought that "distribution" of a derived work requires the source to be released.

According this post, GitHub is running a fork of Git.

Where is the source code for that fork located?

I searched in github.com/github but did not find a project called "git".

New contributor
merlin2011 is a new contributor to this site. Take care in asking for clarification, commenting, and answering. Check out our Code of Conduct.
7
  • 3
    If they're only running it on their own servers then its not distributed so the source wouldn't need to be released. The GPLv2 doesn't actually say source must be released to the public, it only has to be released to the same people who get the binaries of the derived work.
    – bdsl
    Commented Dec 8 at 11:07
  • @bdsl Agree with what you say, but GitHub certainly do make GitHub Enterprise available which results in customers installing their own copy of GitHub on their own infrastructure (full disclosure: my employer is a GitHub Enterprise customer, although that's well outside my domain) Commented Dec 8 at 13:48
  • @PhilipKendall Right, they presumably need to offer a copy of whatever git source they use to github enterprise customers.
    – bdsl
    Commented Dec 8 at 13:55
  • @bdsl or they're using libgit2 (see Jörg's answer) Commented Dec 8 at 14:10
  • 2
    Questions about open source software are likely getting better answers on opensource.stackexchange.com, there are more experts than here. But be careful not to crosspost - since your question already got a decent answer here, you may not be able to delete it here anymore by yourself, which would be mandatory before reposting it on a different SE site.
    – Doc Brown
    Commented Dec 8 at 18:31

1 Answer 1

4

I thought that "distribution" of a derived work requires the source to be released.

First of all, GitHub is not distributing Git. Secondly, you have to be careful with what you mean by "released". The GPL requires that you make the source code available to only those to whom you distributed the binary. If you distribute the binary to person A, then you only need to make the source code available to person A; not to person B, and certainly not to the whole world.

Also, Git is designed to be highly modular with individual modules having clearly defined interfaces so they can easily be swapped out. Therefore, it would be possible to modify Git's behavior by writing a module that does not create a derived work.

And then there is libgit2, a re-implementation of Git-core in portable C, designed to be embedded into other projects. It is specifically licensed to allow proprietary projects to link against it. According to the libgit2 homepage, GitHub uses libgit2.

According this post, GitHub is running a fork of Git.

That only indicates GitHub is not running an official release. They could be running a development version of the official Git codebase or a patched version that they sent to be integrated into the official Git codebase but hasn't been integrated yet.

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