製品開発サプライチェーンでのライセンス情報授受の仕組みに関わる、「組織間のライセンス情報授受」サブグループの活動ご紹介


ルネサスエレクトロニクス(株)の伊藤と申します。
製品開発サプライチェーンでのライセンス情報授受の仕組みに関わる、「組織間のライセンス情報授受」サブグループの活動を紹介いたします。

# なんのための活動？
**組織・企業間でライセンス情報を正しく伝えるために**

製品開発やサービスを行うために、ソフトウェアを開発する場合、ソフトウェアを部品(パッケージ・モジュール)単位で開発を分担することが一般的です。

個別のソフトウェア開発元・コミュニティ → 複数のソフトウェアを取りまとめてパッケージする企業・組織 → 仕様を決め、全体をまとめ、一まとまりの製品として開発する企業 → 製品要件などを決め、実際に顧客へと販売する企業、と企業・組織間のサプライチェーンに沿って、製品を構成するハードウェアに付随するソフトウェアを基盤に開発すること、市販されているソフトウェアをサービスの一部に組み入れること、目的に合わせたソフトウェアをその分野に強い企業・組織に個別に開発してもらう、などと、ソフトウェアは渡っていきます。

それら企業・組織間で授受されるソフトウェアには、必ずライセンスの条件など、付随する情報が伴います。

特にオープン ソース ソフトウェア(OSS)が含まれる場合、組織間の明示的な委託・受託契約で定義されるライセンス条件に加えて、OSSの配布に伴い提供すべき各種情報、その他のソフトウェア　パッケージに関わるライセンス条件などを示す情報を、ソフトウェアと一緒に引き渡し、遵守する必要があります。

OSSのライセンスを遵守するためには、これらサプライチェーン上に位置する全ての企業が正確なライセンス情報を提供することが必要になります。サプライチェーン上で1社でもライセンス情報の提供を正確に提供することができないと、その企業より下流にある企業全てがOSSライセンスを遵守できなくなります。OSSのサプライチェーンに関係する担当者全員が理解して正確に作業することによって、適切にOSSの各ライセンスの条件を遵守することが可能になります。

![licinf20191206_fig1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/538718/ff6332a3-38fb-e2e8-59ff-8af4e4807fbd.jpeg)

このサブグループでは、「サプライチェーン上に位置する全ての企業が正確なライセンス情報を提供する」ための仕組み・ガイドを作成し、全ての企業・組織、そしてコミュニティが容易にOSSライセンスの遵守できることを目的に活動しています。

# 活動方針
**業界標準のフォーマットを用いたライセンス情報の伝達と、より簡便な方法の提案**

このサブグループは、ライセンス情報をあつかう上で、業界でも知られている標準的な手段の活用と、さらに、その手段への改善提案を行うことを、基本方針として活動しています。

ライセンス情報を扱うためのプロジェクトとして、Linux Foundation傘下に[Software Package Data Exchange Workgroup (SPDX)](https://spdx.org/)があります。

SPDX Workgroupは、SPDXフォーマットを定義しており(本稿記載時点での最新版は、[SPDX Specification 2.1版](https://spdx.org/spdx-specification-21-web-version))、このフォーマットは、ソフトウェア パッケージに関連するソフトウェア名やバージョン、ライセンス、著作権表示などの情報を共有するための標準的なフォーマットです。

このサブグループでは、SPDXフォーマットをライセンス情報授受に活用してもらうと同時に、さらに、より簡便な方法がないか議論しています。

### 漏れなくライセンス情報を授受してもらうには

サプライチェーンに含まれる全ての組織・企業が漏れなくライセンス情報を取り扱う必要がある以上、その組織・企業の規模やOSSに対する習熟度を問わずに、ライセンス情報の記載・授受が出来なければなりません。

場合によっては、既存のオープンソースで流通するツール群を使ってもらうことも困難であることも考慮する必要があります。

このサブグループでは、__手書き、あるいはSpread Sheetによる入力__でも、漏れのないライセンス情報を記載するためのフォーマットを検討することにしました。

### 「手軽に使える」ことと「正確であること」「様々な情報と連携できること」を両立するために

OSSに習熟していない組織・企業が、例え手書きでライセンス情報を記載したとしても、その内容は、正確なものでなければ、サプライチェーン下流に大きなインパクトを与えてしまいます。

このサブグループでは、作成したライセンス情報が、ライセンス情報を受けた側が__既存のライセンス情報管理ツール__で内容を確認・検証することが出来ることを条件にしました。
その副次的効果として、作成したライセンス情報を、既存のライセンス情報管理ツールで作成したデータと結合したり、比較できるようになることから、サプライチェーン下流で機械的な処理が必須な規模に膨れ上がったソフトウェア全体のライセンス情報を、「手書きのライセンス情報」も取り込んだうえで機械処理することができます。

なお、ライセンス情報管理ツールの動向については、[Tooling SWG](https://qiita.com/ystk-k/items/1ec2b416cc05b98597a9)の活動成果を参考にさせて頂いています。

### 将来にわたって持続的に使ってもらうために

手書き、あるいはSpread Sheetによる入力でも、漏れのないライセンス情報を記載するためのフォーマットが、将来にわたって、持続的に使ってもらえるようにするために、そのフォーマット定義を、SPDX Workgroupが定義する規格の一部（サブセット）として、SPDXが持続的に活用できる期間、同等に扱い続けることが出来るように、SPDX Workgroupに働きかける方針としています。

# 活動の成果物
**SPDX Liteフォーマットの提案**

このサブグループでは、これまで約一年に渡る活動の結果、以下の成果物を作り上げています。
これからも更に議論を深めて、より広範な「サプライチェーン上に位置する全ての企業が正確なライセンス情報を提供する」ための仕組み・ガイドを作成していきます。

### 「必要最小限」に簡素化されたライセンス情報授受のための記述フォーマット「SPDX Lite」

このサブグループでは、手書き、あるいはSpread Sheetによる入力でも、漏れのないライセンス情報を記載するためのフォーマット「SPDX Lite」を定義し、SPDX規格の一部としてSPDX Workgroupに提言しています(現在SPDX Communityで議論中の、次期SPDX Specificationへの取り込みを議論中です）。

SPDXはライセンス情報を共有するために非常に優れたフォーマットです。 しかし、ツールのスキャンにより得られるSPDX準拠のライセンス情報は、えてして膨大なものとなり、手作業によりライセンス情報を作成する組織において、コンプライアンス維持の上で課題となっていることも事実です。 そこで、SPDX Liteが、サプライチェーンにおけるライセンス条件の遵守のために、最低限の必須情報を記述するためのフォーマットとして、定義されました。 実ビジネスで運用されていて実績のあるデータを集め、それらを、定義するために十分な内容としています（現行のSPDX Specification 2.1版の必須項目を包含しつつ、極力シンプルな定義となっています)。 したがって、ツールによるライセンス情報収集と並行して、手作業・目視によるライセンス情報授受が可能な項目をリストアップしています。

このサブグループでは、SPDX LiteがSPDXフォーマット仕様の一部として制式採用されるために、SPDXコミュニティとの議論を続けています。

### サプライチェーンにおける企業間のライセンス情報授受についての、ガイドライン

SPDX Liteの定義と並行して、このサブグループでは、ライセンス情報の授受をするにあたって利用可能な SPDX Lite の紹介、必要性の解説、具体的な記述方法・記述例を記載した、「ガイドライン」を作成しています。

作成したガイドラインは、今後、[OpenChain](https://www.openchainproject.org/ja/)、[OpenChain Japan WG](https://qiita.com/AyumiWatanabe/items/4c7a48daddb243aa622a)の各活動と連携し、またライセンス情報に関わるコミュニティへの働き掛けを通じて、広めていきたいと考えています。

# 参加・協力のお願い
**メーリングリストへの参加から、関連コミュニティとの連携への助力まで**

### 参加するには

まずは、メーリングリストへの参加をして頂くのが良いかと思います。
ライセンス情報 SWG ML: japan-sg-licensing+subscribe@lists.openchainproject.org

定例会合への参加も大歓迎ですし、会合への参加が難しくても、Slackやgithub上での議論や文書・仕様作成に参加頂ければ、とても助かります。

### さまざまなコミュニティへの働き掛け協力のお願い

このサブグループは、SPDXなどの、ライセンス情報に関わる、各コミュニティと協力をしながら議論を進めていく方針を持っています。
このサブグループの成果物に直接参加頂く以外にも、関連するコミュニティとの議論に協力して頂ける・仲立ちを頂ける皆さまがいらっしゃることを、熱望しております。

# 明日のテーマは

明日のテーマは、『「役割ごとの教育資料」サブワークグループの活動』です。
担当は、[岩田さん](https://qiita.com/yo-iwata)です。
OSSを業務で用いる際の、著作権や特許権などに関わる事柄を、幅広く・判りやすく、教育資料にまとめて下さっています。