-
Notifications
You must be signed in to change notification settings - Fork 4
/
541.txt
274 lines (200 loc) · 10.7 KB
/
541.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
[5]
[[SPDX]] は [[Linux]] [[ソフトウェアパッケージ]]を [[RDFデータモデル]]を使って記述する規格ですが、
[[ライセンス記述]]についても規定があります。
* 仕様書
[REFS[
- [2]
[CITE@en-US[Specifications – SPDX]], [TIME[2024-05-03T04:46:56.000Z]] <https://spdx.dev/use/specifications/>
--[3] [CITE@en[SPDX Specification 2.1 (web version) | Software Package Data Exchange (SPDX)]]
( ([TIME[2016-12-20 16:40:30 +09:00]]))
<https://spdx.org/spdx-specification-21-web-version>
--- [1] 移転確認 [TIME[2024-05-03T04:46:45.000Z]]
-- [23]
[CITE@en[Annex B: License Matching Guidelines and Templates - specification v2.3.0]], [TIME[2024-04-23T02:59:46.000Z]], [TIME[2024-05-03T08:21:39.153Z]] <https://spdx.github.io/spdx-spec/v2.3/license-matching-guidelines-and-templates/>
-- [4] [CITE@en[Description - SPDX v3 Specification]], [TIME[2024-04-23T02:59:46.000Z]], [TIME[2024-05-03T04:47:06.999Z]] <https://spdx.github.io/spdx-spec/v3.0/model/Licensing/Licensing/>
-- [35]
[CITE@en[Using SPDX short identifiers in Source Files - SPDX v3 Specification]], [TIME[2024-04-23T02:59:46.000Z]], [TIME[2024-05-03T09:01:48.700Z]] <https://spdx.github.io/spdx-spec/v3.0/annexes/using-SPDX-short-identifiers-in-source-files/>
-- [36]
[CITE@en[SPDX License Expressions - SPDX v3 Specification]], [TIME[2024-04-23T02:59:46.000Z]], [TIME[2024-05-03T09:05:53.493Z]] <https://spdx.github.io/spdx-spec/v3.0/annexes/SPDX-license-expressions/>
]REFS]
* SPDX License List
[11]
[DFN[SPDX License List]]
は
[[SPDX]]
の[[ライセンス]]情報データベースです。
[SRC[>>9]]
[12]
年に数回更新されています。基本的には[[オープンソース]]またはそれに類する[[ライセンス]]が対象ですが、
そうでないものも一部含まれるようです。 [SRC[>>9, >>7, >>14, >>15]]
[16]
単体の[[ライセンス]]の他に、[[ライセンス]]に追加される例外条項もいくつか登録されています。
[SRC[>>14, >>22]]
[13] 登録されている[[ライセンス]]は[[Webサイト]]で一覧表示されている
[SRC[>>9]]
ほか、
元データは [[GitHub]] で管理されており [SRC[>>7]]、
扱いやすい [[JSON]] 形式でも提供されています [SRC[>>10]]。
[17] データファイル自体の[[ライセンス]]は困ったことにどこにも明記されていません。
ただし[[Webページ]]には運営元の
[[Linux Foundation]]
の利用規約ページへのリンクがあり、そのリンク先記事によると
[[Creative Commons Attribution 3.0 License]]
で利用できます
[SRC[>>9, >>19]]。
[TIME[2024-05-03T08:11:45.300Z]]
[21]
一覧の各[[ライセンス]]、例外には[[ASCII文字]]で構成される短い識別子が割り当てられています。
(>>6)
[18]
一覧には [[OSI]]
の承認 ([SEE[ [[Open Source Initiative]] ]]) の有無が記載されています。
[SRC[>>9]]
[[OSI]] で承認された[[ライセンス]]は一覧に掲載されることになっているようです。
[SRC[>>14]]
[20]
一覧には[[自由ソフトウェア財団]]による[[自由]]な[[ライセンス]]との判断の有無
([SEE[ [[自由ソフトウェア]] ]]) が記載されています。
[SRC[>>9]]
[REFS[
-
[9] [CITE[[[SPDX License List]] | Software Package Data Exchange (SPDX)]]
([TIME[2020-05-16 03:28:38 +09:00]])
<https://spdx.org/licenses/>
--
[22]
[CITE[License Exceptions | Software Package Data Exchange (SPDX)]], [TIME[2024-02-08T17:37:48.000Z]], [TIME[2024-05-03T08:21:03.398Z]] <https://spdx.org/licenses/exceptions-index.html>
- [7]
[CITE@en[GitHub - spdx/license-list-XML: This is the repository for the master files that comprise the SPDX License List]], [TIME[2024-05-03T07:50:22.000Z]] <https://github.com/spdx/license-list-XML>
-- [14]
[CITE@en[license-list-XML/DOCS/license-inclusion-principles.md at main · spdx/license-list-XML · GitHub]], [TIME[2024-05-03T08:00:43.000Z]] <https://github.com/spdx/license-list-XML/blob/main/DOCS/license-inclusion-principles.md>
-- [15]
[CITE@en[license-list-XML/CONTRIBUTING.md at main · spdx/license-list-XML · GitHub]], [TIME[2024-05-03T08:01:27.000Z]] <https://github.com/spdx/license-list-XML/blob/main/CONTRIBUTING.md>
-- [24] [CITE@en[license-list-XML/DOCS/license-fields.md at main · spdx/license-list-XML · GitHub]], [TIME[2024-05-03T08:25:57.000Z]] <https://github.com/spdx/license-list-XML/blob/main/DOCS/license-fields.md>
- [8]
[CITE@en[GitHub - spdx/license-list-data: Various data formats for the SPDX License List including RDFa, HTML, Text, and JSON]], [TIME[2024-05-03T07:52:28.000Z]] <https://github.com/spdx/license-list-data>
--[10]
[CITE@en[license-list-data/json at main · spdx/license-list-data · GitHub]], [TIME[2024-05-03T07:52:39.000Z]] <https://github.com/spdx/license-list-data/tree/main/json>
--
[27]
[CITE@en[license-list-data/template at main · spdx/license-list-data · GitHub]], [TIME[2024-05-03T08:31:42.000Z]] <https://github.com/spdx/license-list-data/tree/main/template>
- [19]
[CITE@en[Terms | [[Linux Foundation]]]], [TIME[2024-04-30T19:33:59.000Z]], [TIME[2024-05-03T08:12:43.913Z]] <https://www.linuxfoundation.org/legal/terms>
]REFS]
* SPDXライセンス識別子
[6]
[[SPDX]] は各[[ライセンス]]および例外に識別子を与えています。
[DFN[SPDX license identifier]],
[DFN[SPDX ID]] などと呼ばれて
[[SPDX]] 以外でも使われています。
[25]
[[SPDX License List]] では short identifier (短い識別子) と呼ばれています。
短い識別子は、
[[ASCII英数字]],
[CH[.]],
[CH[-]]
で構成されます。
[SRC[>>24]]
[52]
[[SPDXライセンス式]]で使われます。
[50]
[[Open Source Initiative]] の[[ライセンス]]の一覧で使われています。
[51]
[[Open Definition]] の[[ライセンス]]の一覧で使われています。
[[Open Definition]] はそれ以外の独自の [[ID]] 体系も使っています。
[SEE[ [[Open Definition]] ]]
[54]
[[GitHub]] その他の[[ライセンス記述の検知]]で使われています。
[[GitHub]] は [[SPDX ID]] の他にライセンス族 (family) の識別子もいくつか使っています。
[SEE[ [[ライセンス記述の検出]] ]]
;; [55] [[CKANパッケージのライセンス記述]]で使われる [[ID]]
は [[SPDX ID]] と一致していることもありますが、そうでないことも多いです。
* SPDX ライセンス式
[37]
[DFN[SPDX license expression]] ([DFN[SPDX license expression]])
は[[ライセンス]]を表す[[式言語]]です。
[38]
[[ライセンス]]や例外は、 [[SPDX License List]] の短い識別子で表せます。
[SRC[>>36, >>29]]
[39]
また、未登録の[[利用者]]定義の[[ライセンス]]や例外を [CODE[DocumentRef-]]
から始まる名前で記述する方法もあります。 [SRC[>>36]]
;; [40] しかし [[SPDX]] 以外での利用が多いと思われますが、
そこでは[[利用者]]定義の[[ライセンス]]を定義したファイルを明示する方法がなく、
実質的に使えないと思われます。
[41]
[[ライセンス]]の末尾に [CH[+]] をつけることで、その版'''[[以上]]'''を表せます。
[SRC[>>36, >>29]]
[42] ただし [[GNU]] 系[[ライセンス]]は「以上」入りの[[ライセンス]]の定義が
[[SPDX License List]]
に登録されているので、そちらを使うことになっています。
[SRC[>>29, >>43]]
[46]
[CODE[AND]], [CODE[OR]] の[[演算子]]が用意されています。
[SRC[>>36, >>29]]
[47]
[CODE[WITH]] によって[[ライセンス]]に例外を付加できます。
[SRC[>>36, >>29]]
[48]
[CH[(]], [CH[)]] で括ってまとめることができます。
[SRC[>>36, >>29]]
[44]
[CODE[AND]] 等の[[演算子]]は、[[大文字]]版と[[小文字]]版が用意されていますが、
[[大文字・小文字不区別]]とされます。
[SRC[>>36]]
つまりどちらでもいいものの、混合は駄目ということです。
[45]
[[ライセンス]]や例外の名前は、[[大文字・小文字不区別]]であるものの、
[[SPDX License List]] 掲載の名前通りが望ましいとされます。
[SRC[>>36]]
[49]
[[dual license]] のような現実に必要とされる[[ライセンス]]付与形態を正確に記述できる反面、
[[ライセンス]]情報を読取る処理が複雑になってしまうのは大きな欠点です。
[53]
[CODE[SPDX-License-Identifier:]] で使われます。
[REFS[
- [43]
[CITE@en[Don't Say “Licensed under GNU GPL 2”! - GNU Project - Free Software Foundation]], [TIME[2024-05-03T09:11:06.000Z]] <https://www.gnu.org/licenses/identify-licenses-clearly.html>
]REFS]
* [CODE[SPDX-License-Identifier:]]
[30]
[DFN[SPDX short form identifier]]
と称して[[ソースコード]]等に[[コメント]]として[[ライセンス]]情報を[[記述][ライセンス記述]]することを
[[SPDX]] では推奨しています。
[SRC[>>29]]
[28]
具体的には
[DFN[[CODE[SPDX-License-Identifier:]]]]
の後に
[[SPDXライセンス識別子]]または[[SPDXライセンス式]]を書きます。
[SRC[>>29, >>35]]
[31]
[[プログラミング言語]]の[[コメント]]としての記号を前後にいれることができます。
[EG[
[32] 例えば
[PRE[
// SPDX-License-Identifier: Apache-2.0 AND (MIT OR GPL-2.0-only)
]PRE]
のように書けます。
[SRC[>>29]]
]EG]
[33] この記述は[[ライセンス]]の種類を記述するだけです。従来の[[著作権表記]]等はそのまま書く必要があるとされます。
[SRC[>>29]]
[34]
この表記法は比較的新しい慣習で、[[オープンソース]]コミュニティーの一部では受け入れられていますが、
一方でこのような表記の必要を感じないとして拒む人々もいます。
[REFS[
- [29]
[CITE@en-US[Handling License Info – [[SPDX]]]], [TIME[2024-05-03T08:37:14.000Z]] <https://spdx.dev/learn/handling-license-info/>
]REFS]
* ライセンス条項の一致判定
[SEE[ [[ライセンス検知]] ]]
[26]
[[SPDX License List]] には各[[ライセンス]]の適用を記述する著作権表記等の文章の雛形が含まれています
[SRC[>>27]]。
例えば条項の文言のうち権利者名がここに入る、というような形で記載されています。
[[SPDX]]
仕様書では、この雛形を使用して実際の著作権表記等の文章との[DFN[一致][SPDXライセンス一致]]を判定する方法が定められています
[SRC[>>23]]。
例えばこのような表記揺れは無視する、などの規則が列挙されています。
* メモ