Skip to content

Write script to ensure file copyright policy #630

Description

@gracjan

The copyright and license notice can be put in a common COPYING file. There is no justifiable reason to also require that it be included in every file, since the individual files are not individually distributed except
as part of the entire package.

For similar discussions look for example at:

Problems:

  1. There is no COPYING file although it is claimed to be there.
  2. Currently authors are listed in individual files, in somewhat ad-hoc manner. Most are in file header, some are in comments, some are listed just next to functions that they supposedly contributed.
  3. Sometimes it is not really possible to know what attribution applies to.
  4. Contributors of commits in github are just not listed anywhere and this does not sound right.
  5. Files will undergo refactoring, for example haskell-decl-scan.el will be merged into haskell-mode.el. What to do with peoples names listed there?
  6. Functions undergo refactoring. What to do with an attribute functions that gets split in two?

Good thing is that everything is GPL and that gives room to clean up. Does anybody have experience how to take attribution under control?

Activity

  1. ivan-m commented on May 6, 2015

    @ivan-m
    Contributor

    Actually, for GPL you are meant to have the header in every file.

  2. gracjan commented on May 6, 2015

    @gracjan
    ContributorAuthor

    @ivan-m: does it say where authors should be listed?

  3. ivan-m commented on May 6, 2015

    @ivan-m
    Contributor

    I don't think it does.

  4. geraldus commented on Jun 9, 2015

    @geraldus
    Contributor

    So…

    1. The copyright notice should include the year in which you finished preparing the release (so if you finished it in 1998 but didn't post it until 1999, use 1998). You should add the proper year for each release; for example, “Copyright 1998, 1999 Terry Jones” if some versions were finished in 1998 and some were finished in 1999. If several people helped write the code, use all their names.

    2. Always use the English word “Copyright”; by international convention, this is used worldwide, even for material in other languages. The copyright symbol “©” can be included if you wish (and your character set supports it), but it's not necessary. There is no legal significance to using the three-character sequence “(C)”, although it does no harm.

    3. You should also include a copy of the license itself somewhere in the distribution of your program. All programs, whether they are released under the GPL or LGPL, should include the text version1 of the GPL. In GNU programs the license is usually in a file called COPYING.

    4. It is very important for practical reasons to include contact information for how to reach you, perhaps in the README file, but this has nothing to do with the legal issues of applying the license.

    5. The copying permission statement should come right after the copyright notices. For a one-file program, the statement (for the GPL) should look like this …
      For programs that are more than one file, it is better to replace “this program” with the name of the program, and begin the statement with a line saying “This file is part of NAME”. For instance,

    This file is part of Foobar.
    
        Foobar is free software: you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
        the Free Software Foundation, either version 3 of the License, or
        (at your option) any later version.
    
        Foobar is distributed in the hope that it will be useful,
        but WITHOUT ANY WARRANTY; without even the implied warranty of
        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        GNU General Public License for more details.
    
        You should have received a copy of the GNU General Public License
        along with Foobar.  If not, see <http://www.gnu.org/licenses/>.
    
  5. changed the title [-]File copyright policy[/-] [+][Discussion] File copyright policy[/+] on Aug 30, 2015
  6. changed the title [-][Discussion] File copyright policy[/-] [+]Write script to ensure file copyright policy[/+] on Apr 11, 2016
  7. gracjan commented on Apr 11, 2016

    @gracjan
    ContributorAuthor

    So in every file we want a header like this:

    ;; This file is a part of Haskell Mode.
    
    ;; Haskell Mode is free software; you can redistribute it and/or modify
    ;; it under the terms of the GNU General Public License as published by
    ;; the Free Software Foundation; either version 3, or (at your option)
    ;; any later version.
    
    ;; Haskell Mode is distributed in the hope that it will be useful,
    ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
    ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    ;; GNU General Public License for more details.
    
    ;; You should have received a copy of the GNU General Public License
    ;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
    

    The next step will be to take care of Author/Copyright headers:

    ;; Copyright 2004, 2005, 2007, 2008, 2009 XXX
    ;; Copyright 1997-1998 XXX
    
    ;; Author: 1997-1998 Guy Lapalme <lapalme@iro.umontreal.ca>
    
    ;; Keywords: indentation Haskell layout-rule
    ;; URL: http://www.iro.umontreal.ca/~lapalme/layout/index.html
    
    • ensure that there is a corresponding Copyright XXXX Haskell Mode for every commit touching the file in year XXXX
    • if somebody feels like adding their name to Authors I guess it is okay with larger changes
    • we do not care about Keywords
    • we leave URL as is for historical purposes
  8. gracjan commented on Jul 19, 2016

    @gracjan
    ContributorAuthor

    I do not feel like fixing this. If somebody feels that this is important then you can have a go at this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions