公開日:2025-02-06
はじめに
皆様、はじめまして。
サービスグループ デベロップメントチームの鶴(つる)と申します。
普段は Customine(カスタマイン)、Deploit(デプロイット) の開発・テスト・保守を担当しています。
今回は、開発者になじみの深いオープンソフトウェアライセンスについてのブログを執らせていただきます。
主な内容は下記 2 点です。
普段、オープンソフトウェアライセンスに触れられてこなかった方々や、これから kintone などでプログラミングを始める方々に対して有益な情報になるならば、この上ない喜びです。
オープンソースソフトウェアライセンス
オープンソースソフトウェアライセンスとは、オープンソースソフトウェア(OSS)を再使用、改変、もしくは配布する際に遵守すべき項目と条件が記された文書です。
本投稿では、オープンソフトウェアライセンスを単に OSS ライセンスと呼ぶことにします。
OSS ライセンスでは、OSS のソースコードだけではなく、ソフトウェア設計書などのコンテンツにも適用されます。
本記事では、上記コンテンツを単にコードと呼ぶことにします。
OSS ライセンスは、大きく分けて以下の 3 種類に分類されます(表 1)。
- コピーレフト型
- 再使用した OSS の改変部分を公開する必要があるライセンス。
- OSS を改変しないで単に再使用する場合でも、再使用しているソフトウェアのコードも公開する必要がある。
- 準コピーレフト型
- OSS の改変部分を公開する必要があるライセンス。
- OSS を改変しないで単に再使用する場合、ソフトウェアのコードそのものは公開しなくてもよい 1。
- 非コピーレフト型
- OSS を改変、もしくは改変しないで再使用した場合でも、ソフトウェアのコードそのものは公開しなくてよいライセンス。
- 上記 2 ライセンスと比べると公開に関する条件が緩い。
分類 | 改変部分の開示 | 再利用したソフトウェアに対するソースの開示 | 代表例 |
---|---|---|---|
コピーレフト型 | 必要 | 必要 | GPL, GPLv2, GPLv3, AGPLv3 |
準コピーレフト型 | 必要 | 不要 | LGPLv2.1, LGPLv3, MPL |
非コピーレフト型 | 不要 | 不要 | MIT, The 3-Clause BSD, Apache 2.0 |
商用ソフトウェアは、機密保持契約やセキュリティなど、社内や顧客以外に対する秘匿性の観点より、そのソフトウェア上のコードを公開できない可能性が十分考えられます。
したがって、商用ソフトウェア上で OSS を再使用する時は、OSS ライセンスをしっかりと精査し、そのソフトウェアで採用してもよいか否かを吟味する必要があります。
とりわけ注意すべきなのは、上記で 1 番目に挙げているコピーレフト型ライセンスです。
コピーレフト型に属するライセンスを採択している OSS を再使用する場合、OSS を改変するか否かにかかわらず、使用元ソフトウェアのコードを公開しなければなりません。
たとえ、使用元ソフトウェアの公開が、社内ルールや、顧客との契約上禁止されている場合でも、です。
実際、OSS ライセンス違反として提訴された事例が数件か存在するようです。
- 末岡洋子、「SFLC と BusyBox、GPL 違反で韓 Samsung など家電メーカー 14 社を提訴」、ITmedia、2009 [最終確認日: 2025 年 1 月 8 日]。
- 末岡洋子、「SFC が Vizio を GPL 違反で提訴、「コピーレフトライセンスに遵守していない」、OSDN Magazine、2021 [最終確認日: 2025 年 1 月 8 日]。
- heatherjmeeker, “French Court Issues Damages Award for Violation of GPL,” Copyleft Currents, 2024 [Last accessed: Jan. 8th 2025].
OSS を再使用するソフトウェア開発において、OSS ライセンスの精査が非常に重要であると実感させられますね。
「オープンソースライセンス管理」アプリ
さて、ここまで OSS ライセンスの重要性について述べてきましたが、実際にどのように管理するのかという点については触れてきませんでした。
ここでは、OSS ライセンスの管理方法について述べていきたいと思います。
学術分野では、OSS ライセンスに対する研究が盛んに行われています。
以下に挙げる論文はライセンス違反に関する研究の一例です。
- M. Singh et al., “GcSLV : Garbled Circuit Based Software License Validation,” Proc. International Conference on Information and Communication Systems, pp. 44-49, 2015.
- D. Paschalides, G. M. Kapitsaki, “Validate your SPDX Files for Open Source License Violations,” Proc. International Symposium on Foundations of Software Engineering, pp. 1047-1051, 2016.
- M. Feng et al., “Open-Source License Violations of Binary Software at Large Scale,” Proc. International Conference on Software Analysis, Evolution and Reengineering, pp. 564-568, 2019.
弊社の場合、開発者が OSS ライセンスを精査し、 Customine(カスタマイン) や Deploit(デプロイット) といったソフトウェアに導入するか否かを十分吟味しています。
弊社の開発者は OSS ライセンスを熟知しているため、開発者全員が注意することでライセンス違反を防いでいます。
一方で、上記で述べたように OSS ライセンスは複雑です。
そのため、開発者ではなく、法務部門のような専門チームで OSS ライセンス管理を請け負う企業様もいらっしゃるかもしれません。
では、学術分野でない、かつソフトウェア開発を専門としない方々が OSS ライセンスを管理する手段はあるのでしょうか?
結論から申し上げると、あります。
そこで、本記事では、OSS ライセンスを管理する手段の一つとして、OSS ライセンス管理用 kintone アプリの使用を紹介します。
OSS ライセンス管理用 kintone アプリの使用により、以下のメリットが期待できます。
- 開発者以外のメンバーが、何の OSS が何の製品・サービスで使用されているのかを把握できる。
- とりわけ、法務部門など、法律を専門とする方が、kintone アプリ上で OSS ライセンスに関する調査や集計を実施できる。
- ノーコード・ローコードで OSS ライセンスを管理できる。
さて、ノーコード・ローコードとは言いつつ、OSS ライセンスを管理するためのアプリを 1 から作成するのは大変です。
が、実は、OSS ライセンスを管理するためのアプリはサンプルアプリ 2 として提供されています。
その名も「オープンソースライセンス管理」です。
簡単に見ていきましょう。
図 1 は、「オープンソースライセンス管理」アプリのレコード追加画面です。
![](https://www.r3it.com/wp-content/uploads/2024/12/oss-input.png)
- 「プログラム名」や「バージョン」、「HP の URL」といった、OSS の基本情報を入力するためのフィールド
- 「製品/サービス」や「プログラム利用時の改変有無」といった、製品・サービス上における OSS の用途を入力するためのフィールド
- 「HP のライセンス表記」といった、OSS のライセンス情報を入力、もしくはライセンスファイルを添付するためのフィールド(図 2)
- 「調査結果」といった、精査者による OSS の使用可否を明記するフィールド
が予め用意されているため、「オープンソースライセンス管理」アプリを kintone に追加するだけで、kintone アプリを業務に使用できます。
![](https://www.r3it.com/wp-content/uploads/2024/12/license-input-details.png)
また、kintone 基本機能のプロセス管理や通知、グラフによる集計、もしくは、JavaScript や Customine(カスタマイン)によるカスタマイズにより、より実際の業務内容に沿った kintone アプリを組めるでしょう。
例えば、kintone 基本機能や Customine(カスタマイン)を用いて、
- 改変する予定の OSS が kintone アプリ上に追加された時、法務部門に通知する(図3)
- コピーレフト型ライセンスの OSS が記録された kintone のレコード、一覧画面上で赤く表示される(図4、図5)
といった運用ができると思います。
![](https://www.r3it.com/wp-content/uploads/2024/12/notification-when-oss-changed-1600x487.png)
![](https://www.r3it.com/wp-content/uploads/2024/12/example-license-validation-customine-customize-1600x458.png)
![](https://www.r3it.com/wp-content/uploads/2024/12/example-view-records-license-validation-1-1600x147.png)
ただし、一点だけ注意すべき点があります。
「オープンソースライセンス管理」のフィールドコードは、「プログラム名」といったフィールド名ではなく、「文字列__1行_
」という、kintone デフォルトのフィールドコードになっています。
フィールドコードは、kintone 基本機能の計算式や、JavaScript カスタマイズで使用されるため、実際に運用する時は、フィールドコードを、もとの「オープンソースライセンス管理」アプリから変更する必要がありそうです。
実際、kintone の公式ドキュメントでも、「フィールド名」と「フィールドコード」を揃えて命名することを推奨しています 3。
とはいえ、1 から OSS ライセンス管理用アプリを作成するのは多くの工数を要します。
したがって、上記「オープンソースライセンス管理」アプリをもとにして、kintone アプリを改善するという選択肢もアリかもしれません。
おわりに
本記事では、下記 2 項目について執筆させていただきました。
本記事が、現在、もしくは将来にわたって、OSS ライセンスに関する業務に従事する方々のお力になれるならば幸いです。
- ただし、再利用したソフトウェアのコードに対する開示を求めるライセンスも存在します。 ↩︎
- kintone では、サンプルアプリという、典型的な業務で使用されることを想定して作られたアプリの雛型が提供されています。代表的なサンプルアプリとして、「案件管理」や「顧客リスト」が挙げられます。 ↩︎
- https://jp.cybozu.help/k/ja/user/app_settings/form/autocalc/fieldcode.html ↩︎
投稿者プロフィール
![つる](https://www.r3it.com/wp-content/uploads/2024/12/tsuru-blog-icon-600x400.jpg)
- デベロッパー