I'm about to push my first project to GitHub (a mini toy lisp interpreter written in C).
I've noticed that the vast majority of open source projects include their license in every source file (at the top). Is that a necessity for open source?
This is an old question, but for anyone else looking for the answer, most licenses don't require the license to be included inside each source file, as long as the license is included with the source code. Often this is done by use of a
LICENSE.txt file included in the same repo, folder, or directory as the code.
Below is a rundown of some common open source licenses and their requirements regarding inclusion in source files.
One of the (many) reasons Apache released v2.0 of the Apache License was:
... to allow the license to be included by reference instead of listed in every file...
The MIT License only requires that the license text:
be included in all copies or substantial portions of the Software.
For the GPL, LGPL, or AGPL license, the Free Software Foundation,
which runs GNU.org, does want a notice included within each file (as well as in an accompanying
COPYING file containing the full license text, or
COPYING LESSER if using the LGPL).
Here's how they say to include the license in your source files:
This involves adding two elements to each source file of your program: a copyright notice (such as “Copyright 1999 Terry Jones”), and a statement of copying permission, saying that the program is distributed under the terms of the GNU General Public License (or the Lesser GPL, or the Affero GPL).
Note that I am not a lawyer and this answer does not even remotely constitute any sort of legal advice.