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

Reply via email to