SPDX license identifiers ってなんだ。

この記事は公開されてから半年以上経過しています。情報が古い可能性がありますので、ご注意ください。

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

time: Add SPDX license identifiers

って書いてあったので、そのパッチを見てみると、

+// SPDX-License-Identifier: GPL-2.0

というのが永遠と書いてあった。これっていったい何?ということで少し調べてみました。

Software Package Data Exchange

調べてみると、Linux Foundation のプロジェクトで、”Software Package Data Exchange”3 っていうのがあった。略して SPDX。 SPDX も “Software Package Data Exchange” も丸に R マークがついているので、登録商標になっているようだ。

何をやろうとしているの

でこのサイトの ABOUT のページを見ると、

Software Package Data Exchange (SPDX) is an open standard for communicating software bill of material information (including components, licenses, copyrights, and security references)

って書いてあって、ソフトウェアのコンポ名やライセンス、コピーライトやセキュリティーリファレンスといった情報を記述する標準形式を決めようとしているようだ。

詳細な仕様書も作成されていて現在のバージョンは 2.1。結構長いので心が折れて全部は読んでいない。

ライセンス表示

で今ここで取り上げているのは “// SPDX-License-Identifier: GPL-2.0” だけで、ざっと見た限りでは、他はいろいろ定義されているようだけど使われている様子がない。

これまでは、ライセンスを表示するのにソースの頭のほうに長ーいテンプレを張り付けていて、邪魔くさいしわかりにくいし、そもそも今それ見たくないってのもあった。

例えばこんなの4


/* Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

こんなのファイル一個一個に張ってあっても魔除けにもならない。

SPDX-License-Identifier

そこで “SPDX-License-Identifier” の登場。ファイルの先頭に一行書くだけ。

// SPDX-License-Identifier: GPL-2.0

先ほどと比べてずいぶんすっきりしているのがわかる。コピペも簡単。

それぞれのライセンス識別子は SPDX で整理して、まとめてある。5

例えば GPL 2.0 ならば GPL-2.0 、Apache License 2.0 なら、Apache-2.0 という感じ。

将来、万が一パッチを送ることになったときのために覚えておくことにする。

投稿者プロフィール

福島 厚
Old soldiers never die,
They simply fade away.


batch

batch

batch

batch

batch

コメントを残す

メールアドレスが公開されることはありません。

Time limit is exhausted. Please reload CAPTCHA.