はじめに
この記事では、Open Source Compliance に取り組む上で、役に立った情報や、役に立つよと紹介頂いた情報をまとめます。この記事にあるものが全てではありませんが、いくらかでもお役に立てば幸いです。
なお、本稿中の OSS はとくに断りがなければ Open Source Software を意味します。
この記事は全体で上下2部構成になっています。
Open Source Compliance のお役立ち情報まとめ・上 (この記事)
- Open Source & Compliance
- Open Source Software
- Open Source Software License
- ツールなど
Open Source Compliance のお役立ち情報まとめ・下 (次の記事)
- 業界的な集まりなど
- イベントや会合など
- ニュースや書籍など
Open Source Compliance のお役立ち情報まとめ・上
Open Source & Compliance
Open Source やその Compliance が大切とされる背景を把握したい場合は、OpenChain Japan Work Group (JWG) による 「オープンソースソフトウェアライセンス遵守に関する一般公衆ガイド (pdf)」 が足がかりになるかもしれません。
このガイドは English(pdf) や 中国語(繁体字(pdf)と簡体字(pdf)) に翻訳されています。Open Source Summit 2019 (North America (8月)、Europe (10月))にて印刷媒体で配布したところ、各国のエンジニアたちが手にし、オフィスや取引先で配りたいと複数部を持って帰った方もいました。
[Open Source Compliance] (https://compliance.linuxfoundation.org/)
Open Source Compliance について、"ORGANIZATIONS"、"PROJECTS"、"DEVELOPERS" などのカテゴリに分かれて整理されているので、興味のあるところから見てみると良いかも知れません。
[Open Source Guides For The Enterprise] (https://www.linuxfoundation.org/resources/open-source-guides/)
上記のコンテンツよりも、より企業向けに Open Source を適切に活用するために必要となることを網羅的に整理しています。Open Source を管理運用するための機関として Open Source Program Office (OSPO) の導入、Open Source プロジェクトの運営、情報入手のための web サイト、参考書籍など、ほぼ揃っています。日本語版 もあります。
作成は後述する [TODO Group] (#TODO group) によるものです
(この記事の役割は上記のサイトの紹介でほぼ達成している...かも知れません)
[Open Source Guides] (https://opensource.guide/)
OSS 開発者向けのガイドです。Open Source プロジェクトを新しく始める場合、コミュニティの運営、プロジェクトの Metrics、そして法的な観点などで注意すべきことなど、一通りの内容を含むので、個人、コミュニティ、企業のいずれの立場でも参考にできるかと思います。
[OpenChain project] (https://www.openchainproject.org/)
Open Source License Compliance をサプライチェーンで一貫して果たすために必要となる、教育用の資料、企業内の体制や運営のための仕様、そして、先に挙げた仕様について企業や事業又は製品における適合性などを確認する手段、などを策定し普及を図るプロジェクトです。OpenChain Specification の最新版は v2.0 (pdf) で、若干の改訂を経た v2.1 をもって ISO Joint Technical Committee 1 (JTC-1) での Publicly Available Specification (PAS) としての規格化に向けて取り組んでいます。wiki サイトでは、各 Work Group の活動サマリ、参加方法、会合の開催案内などがあります。
Japan Work Group (JWG) の活動については、この[Advent Calendar 2019 の 12/1-9までの記事] (https://qiita.com/adventcalendar/2019/openchainjapanswg/) をご覧ください。JWG には Linux Foundation の会員ではなくてもコミュニティメンバーとして参加や貢献できるため、興味や悩みがある人はメーリングリストやSlackに参加して、JWG の総会や各 Sub Work Group (SWG) の会合に足を運んでみてください。
[TODO Group] (https://todogroup.org/)
企業で Open Source プロジェクトをよりよく運営するために、企業間で経験、ベストプラクティスやツールなどに関して情報交換するグループです。TODO Guides として提供されている情報もありますが、冒頭で紹介した [Open Source Guides For The Enterprise] (#Open Source Guides For The Enterprise) が網羅的なので見てみてください。参加者は、主に企業の Open Source Program マネージャーが想定されています。
[CHAOSS project] (https://chaoss.community/)
Open Source Project の健全性について、その Metrics や計測方法などの実現を図るプロジェクトです。Open Source Software を対象とした評価手法に関心がある方は見てみると良いかも知れません。例として Risk WG が策定する Metrics を挙げると、Business Risk、Code Quality、Licensing, Transparency などがあります。
###[LINUX FOUNDATION: SECURITY, COMPLIANCE & PROJECT HEALTH] (https://www.linuxfoundation.org/projects/security-compliance/)
[OpenChain Project](#OpenChain project)、[TODO Group](#TRODO Group)、[CHAOSS project](#CHAOSS project) のいずれも Linux Foundation の取組です。これら以外にも関連するカテゴリのプロジェクトが紹介されています。OpenChain と特に関連するプロジェクトに SPDX や FOSSology があります。
###企業事例
他社がどのように取り組んでいるのかを見るのは、とても参考になります。企業名と "open source" といった用語を組み合わせて検索すると、いろいろと見つかるでしょう。また、GitHub にある企業のレポジトリを見るのも良いでしょう。その中には、OSSを活用するための取り組み方を紹介するものもあります。そうした例には次のようなものがあります。
- Google 社の Google Open Source にある Docs は社内向け資料を元にしているらしく、"License" など参考になる内容があります。
- Microsoft 社は Open Source Blog などで取組を紹介していますが、FAQ 形式で OIN への加入について紹介する記事(1)が投稿されていたりします。また、Open Source Security では脆弱性対策などのセキュリティに関する記事や、AI や IoT の発展に欠かせない Sharing Data については Removing barriers to data innovation で4種類の Data Use Agreement を提案しています。
((1): Microsoft joins OIN: FAQs with Erich Andersen)
Open Source Software
利用したい OSS について調べる時、ライセンスは何か、いつ頃公開されたもので活動はどの程度なのか、などを把握する必要があります。
ソースコードを見るのも大切ですが、ひとまずざっくりと知りたい時もあります。そうした時、npm, maven (例として [MVN repositroy] (https://mvnrepository.com/)), cocoapds, あるいは OS の distribution の例だと [debian の packages] (https://www.debian.org/distrib/packages) や、プログラミング言毎にあるパッケージ管理システムやそのサイトから情報を得たり、GitHub で公開されている場合は Star 数や Commit 動向などの統計情報も活用することがあるでしょう。
ここでは、先に挙げた以外でそうした調べ物に役に立つサイトを紹介します。
[Open Hub] (https://www.openub.net/)
OSS の個別プロジェクトについて、開発者、ライセンス、公式サイト、アクティビティ、コミュニティなどの概況を把握するのに便利なサイトです。必ずしも全ての OSS を網羅していませんが、ここで出てこない OSS の利用は注意する、とする方針の企業があると聞いたことがあります。
[OSS Radar Scope] (https://radar.oss.scsk.info/radarScope)
独自のレーティングに基づいての OSS の評価を、ランキングとレーダーチャートで見られるので、類似する OSS を探したり、比較するのに便利なサイトです。こちらも全ての OSS を網羅していませんが、OSS 選定で参考にする企業があると聞いたことがあります。
[Libraries.io] (https://libraries.io/)
"その OSS が 依存する OSS" 又は "その OSS に 依存する OSS" を把握したい時に便利なサイトです。
こちらも同じく、必ずしも全ての OSS について検索できるものではないです。
[Software Heritage] (https://www.softwareheritage.org/)
ソフトウェアのソースコードを文化遺産として保存する事業によるもので、以前は公開されていたソフトウェアが見つからない場合に便利なサイトです。似たようなサイトに、Internet Archive による Wayback Machine がありますが、そちらよりもソフトウェアに特化して収集しているのが特徴です。
[ClearlyDefined] (https://clearlydefined.io/)
FOSS (Free Open Source Software) の活用で重要となるライセンス情報や脆弱性情報を明確にするために、コミュニティでそうした情報の確からしさを向上させる取組です。OSS が見つかっても情報が不足している場合、記載事項として提案できることがあれば貢献すると良いかも知れません。
Open Source Software License
たいてい、OSS には利用許諾条件としてのライセンスが宣言されています。そして、ライセンスでは、どのような目的でどのような使い方が許諾されているのか、また、そのために利用者が果たすべき義務などが明記されていることでしょう。そうしたライセンスについて理解を深めたい時に参考となるサイトを紹介します。
ライセンスの解釈では、条文(原文)、その条文(原文)が作成された背景、その OSS にそのライセンスが宣言された背景、コミュニティの動向などが重要な要素になるかと思います。場合によっては作成や宣言に至る議論やその議論への影響が想定される国又はそのOSSを利用するであろう国における法令や判例の動向にも気をつけることがあるかも知れません。法務部や知財部、弁護士、弁理士等の法律の専門家に相談するのは大変重要な手段で、そうした時でも、先に挙げた要素を整理検討しておくと良い時があります。ライセンスによっては公式の翻訳版があっても、原文のみを有効と宣言しているものもあるので注意すると良いでしょう。
ところで、OSS プロジェクトが GitHub に登録されている場合、issues で "is:issue license" などを検索してみると、場合によってはそのプロジェクトがライセンスを選択する過程を見ることができるかもしれません。気になるときは試してみてください。
その前に: OSS ライセンスの特徴をざっくりと掴みたい
原文等の一次情報は重要ですけど、ざっくりとでもよいので、ライセンスの概要を把握したい時ってありますよね。
そういう時は、次のサイトや情報が参考になるかも知れません。
[TLDRLegal] (https://tldrlegal.com/)
ライセンスについて "Can"、"Cannot"、"Must" の項目に分けて特徴を整理しています。
その内容について弁護士や専門家などによるレビュー済みの場合はそのことが明示されます。
レビュワーの一人の Heather Meeker さんは、別記事で紹介する Open Source For Business の著者です。
[chooselicense.com] (https://choosealicense.com/)
Open Source Project で宣言したいライセンスを選ぶ際のお助けサイトです。
利用を許諾したい条件に応じて、近しいライセンスを見つけることが出来ます。
ライセンスについて "Permissions"、"Conditions"、"Limitations" の項目に分けて特徴を整理しています。
[Open Source Automation Development Lab (OSADL)] (https://www.osadl.org/)
OSS を自動化などの産業活用を推進することを目的とする組織で、その観点で様々な取組をしています。
この記事では、Open Source License Checklistsと、Open Source License Checklists - Access to raw data とを紹介します。とくに、raw data はライセンスの内容について、"USE CASE" とそれに応じた義務を構造的に整理しています。試しに、MIT と Apache-2.0 と GPL-3.0 とを見比べてみてください。
[Open Source Initiative] (https://opensource.org/)
OSS の普及促進を目指す組織で、"Open Source Definition" などの取組で知られています。OSI が認定するライセンスのリストにあるかを確認することに利用される方も多いようですが、License Review や License Discuss などのメーリングリストのアーカイブから個々のライセンスの議論を追うのもライセンスへの理解を深めるために参考になるでしょう。 最近は、News のページで月毎のサマリが配信されるので便利です。
[GNU Licenses] (https://www.gnu.org/licenses/)
GNU Public License(GPL)の最新版は GPL-3.0で、その派生である GNU Lesser General Public License の最新版は LGPL-3.0, GNU Affero General Public License の最新版は AGPL-3.0 です。それら以前のライセンスを宣言する OSS も多く見られます。
GPL の解釈では、次のコンテンツを話題にすることが多いように思います:
- Frequently Asked Questions about the GNU Licenses
- The LGPL and Java
- License Compatibility and Relicensing
- Various Licenses and Comments about Them
詳細に触れませんが、GPL に関しては、違反時の回復条件に関する動きも知っておくと良いかも知れません。
こうした動きの背景に関心がある方は "copyright troll" などの情報を調べてみてください。
[APACHE LICENSE] (https://www.apache.org/licenses/LICENSE-2.0)
正しくは [APACHE LICENSE, VERSION 2.0 (Apache-2.0)] (https://www.apache.org/licenses/LICENSE-2.0) です。
ライセンスの原文と同様に FREQUENT QUESTIONS ABOUT APACHE LICENSING も参考になります。
近年、コントリビューションの際に Contributors License Agreement (CLA) への同意を求める OSS が見られますが、Apache Software Foundation (ASF) が作成した CONTRIBUTOR LICENSE AGREEMENTS と比較してみると良いかも知れません。あわせて、FREQUENT QUESTIONS ABOUT ASF CONTRIBUTION AGREEMENTS も参考になりそうです。
[Mozilla Public License] (https://www.mozilla.org/en-US/MPL/)
最新版は MPL-2.0 です。 MPL 2.0 FAQ も参考になります。それ以前の版は Mozilla Public License Version 1.1 (MPL-1.1) で MPL 1.1 FAQ- HISTORICAL USE ONLY も公開されていますが、その改訂の経緯に関する Historical Licensing Documents も参考になるでしょう。
[Eclipse Public License] (https://www.eclipse.org/legal/epl-2.0/)
正しくは [Eclipse Public License - v 2.0 (EPL-2.0)] (https:()ESGF//www.apache.org/licenses/LICENSE-2.0) です。
ライセンスの原文と同様に Eclipse Public License (EPL) Frequently Asked Questions も参考になります。それ以前の版は、Eclipse Public License - v 1. (EPL-1.0) で Eclipse Public License 1.0 (EPL) Frequently Asked Questions もあります。
Eclipse Foundation も Eclipse Contributor Agreement と Eclipse Contributor Agreement (ECA) FAQ とを公開しています。また、Eclipse Foundation Project のもとで OSS プロジェクトを再配布(redistribution)する時は、Third Party Content Licensesにも注意すると良いでしょう。
[Creative Commons License] (https://creativecommons.org/licenses/)
Creative Commons は創作物や知見などの共有や再利用の促進を目的として、いくつかのライセンスを定義しています。ライセンスは "Attribution (by)"、"ShareAlike (sa)"、"NonCommercial (nc)"、"NoDerivatives (nd)" などのLicense Condition の組合せで構成され、最新版は4.0です。また、"Public Domain" を宣言するためのものとして CC0 を定義しています。Frequently Asked Questions もあります。
"NonCommercial (nc)" の定義や解釈については、次の参考情報も提供されています。
- [Defining Noncommercial](https://wiki.creativecommons.org/wiki/Defining_Noncommercial
- NonCommercial_interpretation
ところで、質問 "What are Creative Commons licenses?" に対する回答の中に次の一文があります。
The only categories of works for which CC does not recommend its licenses are computer software and hardware.
(参考訳:CC (ライセンス) をお薦めしないカテゴリの創作物はコンピュータソフトウェアやハードウェアです。)
僕は CC BY-NC-SA を宣言する OSS に遭遇して驚いたことがあるのですが、最初の公開から数年後に BSD 2-Clause "Simplified" License (BSD-2-Clause) に変更されていました。
さて、上記以外で、OSS での CC ライセンスの利用事例にどのようなものがありそうでしょうか。
先に国毎の法令等の違いに注意が必要な場合があると述べましたが、"Public Domain" は著作権法などの関係でそうした話題の一つとして知られています。そこで、OSS の著作権者が著作権等を行使しないことを宣言する手段として CC0 を用いる事例が見られます。
また、開発者同士で情報交換するサイトで、書き込みを CC BY-SA で扱うとする利用規約のものを見たことがあります。そうしたサイトで紹介されているコードを snippet として拝借する時は注意が必要そうですね。
サーバーサイドで利用するソフトウェアのライセンスについて
サーバサイドでの利用を対象とした OSS ライセンスに AGPL などがありますが、近年はクラウドによるサービス提供を意識したライセンスが見られるようになってきました。ここでは、例を幾つか挙げておきます。
- Server Side Public License (SSPL) ([MongoDB] (https://www.mongodb.com/) など)
- Business Source License 1.1 ([MariaDB] (https://mariadb.com/) など)
補足: Open Source License に関する議論など
ライセンスについてどのようなことが問題となりそれをどう検討するのかは、専門家や先達の知見が参考になります。
OSS ライセンスに関わる法令等で国毎に違う部分があるかも知れません。そうした点も考慮しながら、ライセンスの条文や、次に紹介する議論や検討を読むと良いでしょう。
[copyleft.org] (https://copyleft.org/)
copyleft.org は copyleft ライセンスに関する情報提供を目的とするプロジェクトです。Copyleft と GPL についてまとまった文書に次があります。
[Software Freedom Law Center (SFLC)] (https://www.softwarefreedom.org/)
SFLC は Free, Libre and Open Source Software (FLOSS) プロジェクトに対して法的アドバイスなどで支援することを目的とする組織です。代表者は Columbia Law School で Professor of Law を務める Eben Moglen 氏です。
GPL に関する文書が多くありますが、僕がとくに参考にしたものを紹介します。
- Software Freedom Law Center Guide to GPL Compliance 2nd Edition (2014)
- A Legal Issues Primer for Open Source and Free Software Projects (2008)
- A History of the GPLv3 Revision Process (pdf)
[SOFTIC: IoT 時代におけるOSSの利用と法的諸問題Q&A集] (https://www.softic.or.jp/ossqa/)
一般財団法人 ソフトウェア情報センター (SOFTIC) が立ち上げた 「IoT 時代における OSS の利用と法的リスクに関する検討委員会」 での検討結果を Q&A 集として纏めたものです。委員会メンバーは法律専門家と企業実務担当者で、OSS を利用する上での法的諸問題やビジネスを展開する上での疑問点について、提供者や利用者の立場での論点が取り上げられています。序文に各執筆者の総意を纏めたものではないとある通り、そういう見解もある、として検討材料にするのが良い使い方のように思われます。
[IPA: OSSライセンス関連情報] (https://www.ipa.go.jp/osc/osslegal.html)
独立行政法人 情報処理推進機構 (IPA) が過去に取り組んだ調査事業にOSSライセンスを対象としたものがあります。
過去に国内であった議論や検討を把握したい時に参考になる情報が得られます。
たとえば、次のような文書が公開されています。
専門誌など
日本弁理士会(JPAA)の会誌である「月刊パテント」は非会員でも閲覧出来る記事があります。例えば、2006年06月号に 「オープンソースソフトウェアのライセンスと特許権」という記事があります。
日本知的財産協会(JIPA)は、知的財産に関する諸制度の活用や改善を図って国内産業の発展への寄与を目的として国内企業が参加する団体です。企業知財部門らが企業の枠を超えて調査研究する場になっています。機関誌「 知財管理」を全て読みたい場合は会員企業であっても購入する必要がありますが、国会図書館などで閲覧することも出来ます。たとえば、バックナンバーを検索してみると、68巻(2018年)/5号に「OSSライセンス遵守のための基礎知識」と題した論文が掲載されているようです。
ツールなど
OSS がどのライセンスに基づいて提供されているのか、OSS が依存する他の OSS にどのようなものがあるのか、は、重要な情報です。ここでは、情報の定義や情報交換のためのフォーマット、そうした情報を検出するための OSS などを紹介します。
なお、AyumiWatanabe さんの記事「OSS管理のベストプラクティス&OSS管理ツールの選び方 (12/11公開記事)」 では商用製品へのリンクがあるので、興味のある方はそちらもご覧ください。
[SPDX] (https://spdx.org/)
"Software Data eXchange Package" は、SBOM (Software Bill of Materials) について情報交換するための仕様であり、コンポーネント、ライセンス、著作権、セキュリティ等々の情報を扱えるようになっています。最新の仕様は2.1版で、 Frequently Asked Questions (FAQ) があります。SPDX License List で "Full name" や "Identifier" が見られます。なお、この記事の執筆現在で、3.0版に向けた検討が始まっています。
先の "Identifier" は正しくは "SPDX short-form identifiers (SPDX ID)" と呼びますが、人やスキャンツールなどでも判別しやすいように、SPDX ID の利用を推奨する取組も見られます。興味がある方は REUSE SOFTWARE をご覧ください。
[FOSSology] (https://www.fossology.org/)
ソースコードをスキャンして、ライセンス、著作権表示、輸出管理(Export Control: EC) に関連する情報を抽出します。
倣うより慣れろな方は Get Started With FOSSology と Hands-On Training Support Page などのページが参考になると思います。
利用事例に興味がある方は、y-ashiduka さんの記事「Yocto環境にmeta-spdxscannerを適用し、SPDX出力環境を構築する(fossdriver利用編)(12/10公開記事)」 もご一読ください。
[ScanCode] (https://github.com/nexB/scancode-toolkit)
ソースコードをスキャンして、ライセンス、著作権表示、依存に関連する情報を抽出します。
FOSSology とは検出アルゴリズムが異なることに伴う検出結果の違いから、使い分ける利用者もいるようです。
参考までにですが、ライセンス情報のスキャン精度に関する考察に Thomas Wolter による "A Comparison Study of Open Source License Crawler" という論文があります。
[SW360] (https://projects.eclipse.org/projects/technology.sw360)
FOSSology や ScanCode を始めとする各種ツールを連携し、SBOM管理を効率化するためのカタログツールとして開発されたものです。
K-Hama さんが、「OSS管理ツール SW360 - オープンソースをオープンソースで管理しよう (1.1 新バージョンインストール編)」という記事や、[利用方法を記したドキュメント]
(https://docs.google.com/document/d/1wNV--UhIDiRPP10Hhk0vspiKtoLupug7v2AAu4yxEC8/edit?usp=sharing) を公開してくれているので、興味のある方はご一読ください。
[OSS Review Kit (ORT)] (https://github.com/heremaps/oss-review-toolkit)
OSS のレビュープロセスを支援するため、"Analyzer"、"Downloader"、"Scanner"、"Evaluator"、"Reporter" などのツール群で構成されています。
明日のテーマは
「Open Source Compliance のお役立ち情報まとめ・下」です。
引き続き僕が担当します。情報収集やネットワーキングに役立つイベントや、書籍や文書など知識を得るのに利用したものを紹介しようと思います。お楽しみに!
おまけ:自己紹介
忍頂寺毅と申します。
以下は、本稿執筆時点のものになります。
所属は株式会社ディー・エヌ・エー システム本部 CTO室です。
主に知的財産やコンプライアンス関連の業務に従事しています。
2019年2月から OpenChain Japan Work Group にコミュニティメンバーとして参加しています。
同年4月より JIPA ソフトウェア専門委員会にて2019年度テーマとして OSS と企業知財に関する調査研究に参加しています。
前職は通信会社で研究開発部門に長くいました。インターネット構築運用、HCI、移動機端末開発や関連する標準化、モバイル AR といった PoC (Proof of Concept) のためのサービス試作開発などに従事していました。