Add SPDX license information
Merge request reports
Activity
added 2 commits
added 1 commit
- 5a3bcb87 - Add license file for GPL-2.0-with-DUNE-exception
added 2 commits
added 2 commits
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.
added 1 commit
- e3eee19a - Add SPDX license files for files that cannot contain SPDX info
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 agree with both: CC-BY-ND for the functions paper and BSD for
integration-test.cc
.Edited by Carsten Gräser
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 theLICENSE.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?
- SPDX already wants the license text in the
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 notAND
is what is meant by our dual license).Edited by Carsten GräserApparently 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
orLICENSE.md
with the license and the list of copyright holders.Several (but not woo many) maintain a list of contributors in
AUTHORS.txt
orAuthors.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 likereadme.md
orLICENSE.md
. - simply use a generic
// SPDX-FileCopyrightInfo: Copyright (c) 20?? The dune-functions authors, see AUTHORS.md
header.
- maintain the list of copyright holder in a main-folder
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
Toggle commit list-
e3eee19a...ccc00ea4 - 8 commits from branch
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
Toggle commit listmentioned in commit 05e6ab2b