Hi Siju, Siju George wrote on Sat, Aug 05, 2017 at 06:50:12AM +0530:
> In a code repository should the licence wording be on every file ? Best practice is: 1. To have at least one line containing "Copyright (c) ..." at the top of each file containing copyrightable content. 2. Each author (natural person, NOT legal entity like corporations or foundations) who made copyrightable contributions to the file of which at least parts are still contained in the file must be mentioned on such a line. If an author did transfer their economic rights (which doesn't really make much sense for ISC or BSD 2-clause licensed code, but nonetheless, it is occasionally done), you can list the legal entity that acquired the economic rights, but then it becomes important to add a line, below the Copyright notice, reading, for example: Parts of this file were written by (name of natural person) for (name of legal entity). The reason is that the actual authors retain some inalienable rights, even when working for hire or contract, and the right to be know of as the author is one of these rights that can neither be sold nor be given away. 3. Each Copyright line must contain one year number, separated with commas, for each year in which that author made copyrightable additions to the file that are still present in the file. Ranges of years separated with dashes are only acceptable if that author also made such contributions in each of the years between the endpoints of the range. Usually, only use ranges on lines that would otherwise become too long. Look at /usr/src/usr.bin/mandoc/mdoc_term.c for an example demonstrating all these rules. The full text of the license should follow this Copyright notice in each file. That said, from a legal standpoint, it is sufficient to have one license for each Work, so having one Copyright notice for the whole Work (e.g., program or package) is legally sufficient, too. But that is not a particularly good idea for several reasons: 1. It is less clear and can cause doubt as to which files are covered by the central Copyright notice and license. 2. It is very hard to maintain correctly. Care is already needed when maintaining the notices in individual files, and maintaining a central notice correctly is even harder because it is no longer even clear in which files to look for the contributions of the various authors. 3. In practice, you will probably sooner or later include files from third parties that are available under free licenses. In that case, leaving the Copyright notices and licenses in place in those included files is usually required by the third party licenses, and those licenses often differs slightly from the one you are using for your own Work. So you end up with some files with Copyright notices and licenses and some without, which exacerbates the problem explained in item 1. 4. People maintaining other software will occasionally pick files from your software and copy them to their own package. If you failed to add a Copyright notice and license to a file that gets picked in this way, there is a higher risk that the person taking the file forgets to copy your Copyright notice and license into the file before redistributing it. And worse, how is that person even supposed to figure out who, and during which years, contributed to that particular file? Basically, that poor soul will be forced to analyze the complete VCS commit history for the file and reconstruct the Copyright notice from scratch. > Or just in a file named "Licence" in the root folder ? Best practice is to do that *in addition*, because with many files, it can be hard to figure out the full list of Copyright holders and applicable licenses, and also because you almost certainly want to state *somewhere* which the preferred license is for new contributions to the project. For an example of such an additional central file demonstrating many useful features of such a central file, refer to http://mandoc.bsd.lv/LICENSE Oh, and very important: Never add any Copyright or license goo to the displayed text of any manual page or the stdout or stderr output of any program. Copyright notices and licenses belong into the source code (of programs and documentation), *NEVER UNDER ANY CIRCUMSTANCES* into any text displayed to the user. I regard displaying Copyright notices or licenses to the user as exceedingly impolite, because you are basically slapping the user into the face with this sneer: i value your time so little that i encumber the output i show to you with irrelevant text, with text that i know for sure you will *not* need each and every time you run the program or open the documentation. Yours, Ingo