SPDX license identifiers ってなんだ。
ちょっと訳があって、git のログを見てたら以下のようなエントリがあった。1
hrtimers/tick/clockevents: Remove sloppy license references
"For licencing details see kernel-base/COPYING" and similar license
references have no value over the SPDX identifier. Remove them.
「SPDX ID 書いたから、いい加減なライセンスの参照なんて消したぜ!」位の訳かな?
で SPDX identifier ってのがなんだかわからなかったので、一つ前のコミット2 に
って書いてあったので、そのパッチを見てみると、
というのが永遠と書いてあった。これっていったい何?ということで少し調べてみました。
Software Package Data Exchange
調べてみると、Linux Foundation のプロジェクトで、"Software Package Data Exchange"3 っていうのがあった。略して SPDX。 SPDX も "Software Package Data Exchange" も丸に R マークがついているので、登録商標になっているようだ。
何をやろうとしているの
でこのサイトの ABOUT のページを見ると、
って書いてあって、ソフトウェアのコンポ名やライセンス、コピーライトやセキュリティーリファレンスといった情報を記述する標準形式を決めようとしているようだ。
詳細な仕様書も作成されていて現在のバージョンは 2.1。結構長いので心が折れて全部は読んでいない。
ライセンス表示
で今ここで取り上げているのは "// SPDX-License-Identifier: GPL-2.0" だけで、ざっと見た限りでは、他はいろいろ定義されているようだけど使われている様子がない。
これまでは、ライセンスを表示するのにソースの頭のほうに長ーいテンプレを張り付けていて、邪魔くさいしわかりにくいし、そもそも今それ見たくないってのもあった。
例えばこんなの4
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<span class="co">/* Licensed to the Apache Software Foundation (ASF) under one or more</span> <span class="co"> * contributor license agreements. See the </span><span class="al">NOTICE</span><span class="co"> file distributed with</span> <span class="co"> * this work for additional information regarding copyright ownership.</span> <span class="co"> * The ASF licenses this file to You under the Apache License, Version 2.0</span> <span class="co"> * (the "License"); you may not use this file except in compliance with</span> <span class="co"> * the License. You may obtain a copy of the License at</span> <span class="co"> *</span> <span class="co"> * http://www.apache.org/licenses/LICENSE-2.0</span> <span class="co"> *</span> <span class="co"> * Unless required by applicable law or agreed to in writing, software</span> <span class="co"> * distributed under the License is distributed on an "AS IS" BASIS,</span> <span class="co"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span> <span class="co"> * See the License for the specific language governing permissions and</span> <span class="co"> * limitations under the License.</span> <span class="co"> */</span> |
こんなのファイル一個一個に張ってあっても魔除けにもならない。
SPDX-License-Identifier
そこで "SPDX-License-Identifier" の登場。ファイルの先頭に一行書くだけ。
先ほどと比べてずいぶんすっきりしているのがわかる。コピペも簡単。
それぞれのライセンス識別子は SPDX で整理して、まとめてある。5
例えば GPL 2.0 ならば GPL-2.0 、Apache License 2.0 なら、Apache-2.0 という感じ。
将来、万が一パッチを送ることになったときのために覚えておくことにする。
投稿者プロフィール
最新の投稿
- AWS2021年12月2日AWS Graviton3 プロセッサを搭載した EC2 C7g インスタンスが発表されました。
- セキュリティ2021年7月14日ゼロデイ攻撃とは
- セキュリティ2021年7月14日マルウェアとは
- WAF2021年7月13日クロスサイトスクリプティングとは?