spdx / spdx-spec

The SPDX specification in MarkDown and HTML formats.
https://spdx.github.io/spdx-spec/
Other
288 stars 139 forks source link

How to practically use an external license? #858

Open hoijui opened 1 year ago

hoijui commented 1 year ago

I read the spec, e.g.: https://github.com/spdx/spdx-spec/blob/development/v2.3.1/chapters/SPDX-license-expressions.md#d3-simple-license-expressions- but I do not understand how to use a non SPDX incorporated license. I use the REUSE standard/format and tool, so my source-code headers usually look like this:

# SPDX-FileCopyrightText: 2020-2022 First Last <something@gmail.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later

Now let's say, I have my own license, which only my project uses, and I do not want to register it with SPDX, or it simply is not yet registered with it. I call it the ABCD-1.0 license, and I have it specified in a text file (LICENSE-ABCD-1.0.txt).

How could I use this license in practice, in an SPDX/REUSE compliant way?

My attempt would be:

  1. Have my license text in the repo under LICENSES/ABCD-1.0.txt (would this be a problem already with the REUSE-tool? would it have to be in an other location?)
  2. Use the license in my file like so:

    # SPDX-License-Identifier: DocumentRef-LICENSES/ABCD-1.0.txt:LicenseRef-ABCD-1.0

I am asking to know myself, but also to have this documented in the spec, as it is too abstract for me as it is now.

hoijui commented 1 year ago

In an other issue, @jlovejoy linked me to this: https://spdx.github.io/spdx-spec/v2.3/other-licensing-information-detected/

For me, that does not help in getting me there, though. what does "locally unique" mean, for example. is the "licality" a project, or a file, or ... Also: Let's say, I would use "LicenseRef-BliBlaBlub" in an SPDX header comment. Then: where else would this BliBlaBlub have to turn up?