Skip to content
Snippets Groups Projects

Add SPDX license information

Merged Oliver Sander requested to merge add-spdx-headers into master
2 unresolved threads

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • Oliver Sander added 2 commits

    added 2 commits

    • f333b91f - CI: Check SPDX license information
    • d1e7b784 - Add SPDX header stating the Dune license

    Compare with previous version

  • Oliver Sander added 1 commit

    added 1 commit

    • 5a3bcb87 - Add license file for GPL-2.0-with-DUNE-exception

    Compare with previous version

  • Oliver Sander added 1 commit

    added 1 commit

    • c839770c - SPDX headers for CHANGELOG.md

    Compare with previous version

  • Oliver Sander added 2 commits

    added 2 commits

    • 67a1c149 - SPDX headers for CHANGELOG.md
    • d9bd0aa6 - Provide the LGPL-3.0-or-later license text

    Compare with previous version

  • Oliver Sander added 4 commits

    added 4 commits

    • 166632d0 - Add SPDX header stating the Dune license
    • 2ec552f2 - Add license file for GPL-2.0-with-DUNE-exception
    • c5f96a9b - SPDX headers for CHANGELOG.md
    • eaa12762 - Provide the LGPL-3.0-or-later license text

    Compare with previous version

  • Oliver Sander added 2 commits

    added 2 commits

    • 15a283f4 - Relicense the file integration-test.cc
    • ecf344a2 - SPDX headers for .cc files

    Compare with previous version

  • Oliver Sander added 1 commit

    added 1 commit

    Compare with previous version

  • Oliver Sander added 3 commits

    added 3 commits

    • bfaefe17 - Add license file for GPL-2.0-with-DUNE-exception
    • eaac1d9a - Provide the LGPL-3.0-or-later license text
    • 23b6cfe4 - Add SPDX header stating the Dune license

    Compare with previous version

  • Oliver Sander added 1 commit

    added 1 commit

    Compare with previous version

  • https://spdx.github.io/spdx-spec/v2.3/using-SPDX-short-identifiers-in-source-files/ states that

    The expression MUST be on a single line, and MUST NOT include a line break in the middle of the expression.

    Furthermore within the single line one must specify a license expression using AND or OR. I understand the present license file as "The user may choose between the two licenses" which would be OR.

  • Oliver Sander added 1 commit

    added 1 commit

    Compare with previous version

  • Oliver Sander added 1 commit

    added 1 commit

    • e3eee19a - Add SPDX license files for files that cannot contain SPDX info

    Compare with previous version

    • I just realized that there are more licenses to consider: The source tree also contains the TeX-sources for our two papers. The one on bases is clearly marked as CC-BY-ND.

      • I don't see any explicit license statement for the paper on functions. Even ArchNumSoft (where it is published) doesn't seem to state it (https://journals.ub.uni-heidelberg.de/index.php/ans/article/view/27683). Do we agree that the license for this is also CC-BY-ND?
      • What about the file doc/manual/integration-test.cc, which does the timing measurements for the functions paper? Currently it has its own license (yet another one). Should this be LGPL-3-OR-Dune. like the rest of the code? Or CC-BY-ND like the text it goes along with? Or both?
    • Do we agree that the license for this is also CC-BY-ND?

      Yes

      What about the file doc/manual/integration-test.cc […] Should this be LGPL-3-OR-Dune […] Or CC-BY-ND

      Or BSD? As this is an example one might argue that should be able to use it for their own project and still decide on that’s license.

    • I kept it at BSD now.

    • I agree with both: CC-BY-ND for the functions paper and BSD for integration-test.cc.

      Edited by Carsten Gräser
    • Please register or sign in to reply
  • Oliver Sander resolved all threads

    resolved all threads

    • I started working on this again, and I noted another issue. All Dune core modules designate the copyright holders in the following way: The first line of the SPDX header simply says:

      SPDX-FileCopyrightText: Copyright © DUNE Project contributors, see file LICENSE.md in module root

      and indeed each module contains a file LICENSE.md. This file contains the list of copyright holders, and in addition the text of the GPL-2-with-dune-exeption license.

      I am not really happy with this approach:

      • SPDX already wants the license text in the LICENSE folder, having it a second time is redundant
      • dune-functions is dual-licensed (with additional sprinkles of BSD and CC). So what goes into the LICENSE.md file?
      • It is surprising to find copyright information in a file called LICENSE.md.
      • I'd rather not even maintain a list of copyright holders at all -- that's bound to rot. Is it okay to simply point to the git history?

      Opinions?

    • I think keeping the licenses in LICENSE/ only is fine. We should also take care to mark the dual license appropriately. E.g as

      // SPDX-FileCopyrightInfo: Copyright © DUNE Project contributors, see file LICENSE.md in module root
      // SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception OR LGPL-3.0-or-later

      (I think OR and not AND is what is meant by our dual license).

      Edited by Carsten Gräser
    • The problem with not keeping a contributor list (since all information is in the history) is, that this is not distributed in tarballs and packages.

    • Apparently my "reply-via-email" did not go through. I'll just copy my two comments in here...

      In the reuse-software FAQ (https://reuse.software/faq/#vcs-copyright) it states

      Why can’t I just use version control to record copyright?

      In a previous question, we distinguished between copyright holders and authors, which are not always the same. Version control typically only records authorship, which makes it unsuitable for the task of recording copyright.

      Another obstacle is that version control history may contain errors, and fixing such an error would require rewriting the history, causing all contributors to have to re-download the new trunk.

      A further issue with version control is that the blame command that is typically (mis)used to find authorship line-by-line shows only the author of the last commit in that line, even if it was just something as trivial as fixing a typo.

      What they offer as a viable option is

      How do I deal with a file that has been edited by many people?

      Some files are edited by many people and would have an extremely long list of copyright holders in the header. This may be aesthetically unpleasing, but is not incorrect.

      If you would rather not deal with having so many copyright notices, some projects such as Chromium circumvent this problem by using “Copyright (c) 2013 The Chromium Authors” as their copyright tag. You may consider doing this, but then you should keep a list of copyright holders and authors in a separate file in your project.

      I think this sounds like a good approach. We should the just move the list of copyrighthlders from the license file to a different file.

    • Carsten, you are right. AND means, that parts of the source has one license, other parts the other license. OR gives the user the choice.

      I second Christian's proposal.

      Olver, you are right that bit-rot is a problem and it will prevent us from fully automated releasing, as this is usually the trigger for me to upgrade the contributors in the core modules.

    • I checked a bit in other projects. Most use a COPYING.md or LICENSE.md with the license and the list of copyright holders.

      Several (but not woo many) maintain a list of contributors in AUTHORS.txt or Authors.txt or similar ...

      I would thus suggest:

      • maintain the list of copyright holder in a main-folder AUTHORS.md. The naming follows the scheme of files like readme.md or LICENSE.md.
      • simply use a generic // SPDX-FileCopyrightInfo: Copyright (c) 20?? The dune-functions authors, see AUTHORS.md header.
    • Please register or sign in to reply
  • Oliver Sander added 14 commits

    added 14 commits

    • e3eee19a...ccc00ea4 - 8 commits from branch master
    • 149eae52 - Add file AUTHORS.md listing all people that contributed
    • 8909dd17 - CI: Check SPDX license information
    • 00ce6dbf - integration-test.cc: Provide license via SPDX header
    • a507c8ed - Add relevant GPL license text files
    • 8274a508 - Add SPDX header stating the licenses for code
    • 351ecd5f - SPDX: Mark all documentation files as CC-BY-ND-4.0

    Compare with previous version

  • Oliver Sander added 6 commits

    added 6 commits

    • 36321223 - Add file AUTHORS.md listing all people that contributed
    • f3088eac - integration-test.cc: Provide license via SPDX header
    • ff5cb53a - Add relevant GPL license text files
    • 4e8f4954 - Add SPDX header stating the licenses for code
    • 17cfe527 - SPDX: Mark all documentation files as CC-BY-ND-4.0
    • 7f7e539d - CI: Check SPDX license information

    Compare with previous version

  • So after A Long Time I finally got around to finishing this. I think everything is okay now, but you may want to have a final look.

  • Oliver Sander mentioned in commit 05e6ab2b

    mentioned in commit 05e6ab2b

Please register or sign in to reply
Loading