I have been searching the web for quite some time now, but the plethora of opinions/comments/articles about licensing questions make it difficult to verify how trustworthy the various sources are. Also, they often contradict common practice. All of which left me beyond confused. I'm trying to collect what I've found here for cross-checking, adding references, controversy, and discussing common practice.
If you create a public GitHub repository with a single file
file1
, add no license file as well as no license and copyright line tofile1
, this file is automatically copyrighted by you, the GitHub user. As such, it's all rights reserved, with the following additional rights determined by GitHub's ToS:We claim no intellectual property rights over the material you provide to the Service. Your profile and materials uploaded remain yours. However, by setting your pages to be viewed publicly, you agree to allow others to view your Content. By setting your repositories to be viewed publicly, you agree to allow others to view and fork your repositories.
It seems common practice to add one file,
LICENSE
, to a repository that should (hopefully) cover all of the repository's code. I have found very different opinions as to how this is actually true.The common practice on GitHub is to fork a repository, fix bugs, add features, or modify the code in any other way and then sent a pull request to incorporate the changes in the upstream repository. If the repo contained a license file, then so did the fork, so I guess all changes published in the fork fall under the same license file and (if it was one of the GPL, MIT, BSD, Apache licenses) this allows easy acceptance of the pull request without any license or copyright problems.
e.g. That's the case for the Linux repository; it has the GPL license file, people fork, and their changes might eventually propagate back to be incorporated in the kernel repo.
Somehow GitHub tracks who submitted what part of the code anyway, and the changes that were made -- so the copyright for each part of the project should be clear anyway, no? So it's more about the licensing?
I'm just generally confused how even the big projects (as mentioned here as examples for the respective licenses) seem to follow a common practice that contradicts some of the articles I've read about copyright/licensing -- there is no CLA, they merge pull requests that don't explicitly permit them to do so, they don't track all changes in the header comment of each BSD-licensed file (isn't this really just done by GitHub anyway?), they often don't have a contributing file, etc pp. So I wonder how in everyday life, people go about all the common workflow on GitHub, with a decent pragmatism but still following the rules.
I mean, if I commit some code to a friend's repo that only has a license file with his name, what happens to the modifications I added? (It is unlikely to ever be a problem in these cases, but what would be the proper way of dealing with it?)
I haven't found easy and comprehensive best practices, let's say for the most widespread license models, GPLv3, BSD, MIT and the workflow on GitHub -- and even such big projects like Linux seem to not follow some of the legal advice I've found online (e.g. each file should contain the full GPL, etc pp).
Surely, such a document that outlines this legal stuff with close consideration of the already-established working principles on GitHub should be a highly desired information collection for any open-sourcer hanging out on GitHub :-)