Date
1 - 1 of 1
Idea: SPDX-DCO-File-License-Identifier
Richard Fontana
I've thought some more about certain unintended problems some of us
toggle quoted message
Show quoted text
were previously discussing regarding the use of SPDX-License-Identifier: in source files. In particular it's occurred to me that the practice is in tension with the use of the Developer Certificate of Origin. This is significant given that Linux is the most important project to have adopted both the DCO and the use of SPDX-License-Identifier. Somewhat problematically, the DCO makes reference to a license of a *file* in its certification: "The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file." Most open source projects (including possibly most DCO-using open source projects, a tiny minority of open source projects) do not use explicit licensing of source files, a practice I understand SPDX at least implicitly disapproves of. In typical situations, the use of SPDX-License-Identifier: has the nice feature of clarifying what the "open source license indicated in the file" is in a standard way. But for any source file that properly uses SPDX-License-Identifier and is based on multiply-licensed code (for example, a file properly reflecting contributions under both GPLv2 and the 3-clause BSD license), the DCO-related benefit goes away. I don't know if there is an example like this in the kernel, but suppose the kernel had such a source file, saying "SPDX-License-Identifier: GPL-2.0-only AND BSD-3-Clause". What is the "license indicated in the file" for purposes of the DCO? Prior to the use of SPDX-License-Identifier, the variously-worded GPL headers might have made it sufficiently clear that the license for purposes of the DCO is GPLv2 (GPL-2.0-only). Or the situation was ambiguous but you could then rely on the note from Linus Torvalds in the kernel COPYING file (or wherever that lives now). Now, it appears that a DCO-certifying contributor to a file that already has (based on an analysis of past-incorporated license notices) "SPDX-License-Identifier: GPL-2.0-only AND BSD-3-Clause" is certifying that they have the right to submit it under the stated composite license. It's not even clear this is non-nonsensical -- how can a single isolable contribution by one person be licensed under two different open source licenses in a conjunctive, not disjunctive, sense? (As I said previously, the snippet construct is probably not going to be practical to use in most cases and I'm not sure it solves the problem anyway.) So I am wondering if it would be a good solution to introduce an additional construct like "SPDX-DCO-File-License-Identifier" for those cases involving source files where SPDX-License-Identifier: would imply a licensing policy at odds with the actual policy of the project. For example, you could have a source file with the following header: SPDX-License-Identifier: GPL-2.0-only AND BSD-3-Clause SPDX-DCO-File-License-Identifier: GPL-2.0-only Note this is different from the issue that McCoy was asking about in an earlier thread, but I think it is somewhat related. The issue of course is not really limited to projects using the DCO, but rather any project that informally or otherwise adopts an "inbound=outbound" approach to licensing of contributions, which is the vast majority of open source projects (so maybe a solution shouldn't seem to be DCO-specific). A concern I have is that the use of SPDX-License-Identifier: may be unintentionally optimized for the use of that minority of projects that use asymmetric contributor license agreements to handle licensing in of contributions. Richard On Mon, Jul 18, 2022 at 8:14 PM Richard Fontana <rfontana@...> wrote:
|
|