こんにちは、marubon(@photopota)です。
iPhoneアプリ開発でオープンソースのライブラリを使用するにあたり、オープンソースのライセンスについて調査したので共有したいと思います。
オープンソースソフトウェア(Open Source Software: OSS)とは
端的に言ってしまうと利用者が一定の条件に準拠することで、自由にソースコードの利用・複写・改変・再配布できるソフトウェアのことを言います。
ソフトウェアという言葉を使用していますが、特定の機能を実装したライブラリ等(プログラムの部品)も該当します。
一見ライセンスは単純そうに見えますが、上記の「利用者が守らなければならない一定の条件」の違いにより、様々なライセンスが存在しており、種類と特徴を把握しておくことが重要になります。特に商用のソフトウェア開発に使用する場合は、注意が必要になります。本エントリでは、主なオープンソースライブラリの種類と特徴を簡潔にまとめます。
ライセンスの種類と特徴
参考文書
本エントリは基本的に以下のドキュメントの内容を抜粋して補足しながらまとめています。非常によくまとめられた資料ですので、特にソフトウェア開発従事者は参照することをおすすめします。
情報処理推進機構:プレス発表:記事:OSSライセンスの比較、利用動向および係争に関する調査の報告書を公開 |
ライセンス種類と特徴
OSSのライセンスは、規定されている条件に細かな差異はありますが、大きく分けて3つの種類に分類することが可能です。分類の基準となるのが、「コピーレフト」という概念の適用状況です。コピーレフトの概念とは、著作者が利用者に著作物を複写・改変・再配布する自由を与える一方で複写・改変・再配布された派生物(二次著作物)の配布者に対しても、全く同じ条件で派生物を配布することを義務付ける考え方です。
このコピーレフトの概念の適用状況により以下の3つのカテゴリに分類することができます。
- コピーレフト型ライセンス
- 準コピーレフト型ライセンス
- 非コピーレフト型ライセンス
上記分類の基準になるのがコピーレフトの概念の中で以下2点の有無になります。
- ソフトウェア利用者に対して、利用者がソースコードを改変した際に改変したソースコードの開示まで義務付けるか
- ソフトウェア利用者がソースコードを他のソフトウェアのソースコードと組み合わせた際に、他のソースコードの開示まで義務づけるかどうか
3つのカテゴリについて上記2点の有無をまとめたものが以下の表になります。
仮にコピーレフト型ライセンスのライブラリを組み込んで新規にソフトウェアを開発した場合は、ライブラリの改変部分、及び新規に自分で作成したソースコード全てを開示する必要がでてきます。
順コピーレフト型のライセンスのライブラリを使用した場合は、ライブラリの改変部分についてソースコードを開示する必要がありますが、新規作成部分については開示する必要がありません。
非コピーレフト型のライセンスの場合は、ライブラリの改変部分も新規におこしたソースコードも開示する必要がありません。
よって、商用予定のソフトウェアにオープンソースのライブラリ等を使用する場合は、オープンソースがどのライセンスに属するのか確認する必要があります。さもないと、商用のソースコードを開示する必要がでてきたり、はたまた開示しないとライセンス違反になるおそれがあります。
以下に代表的なライセンスの分類を載せます。(ここに掲載しているのは、一部分に過ぎませんので、あらかじめご了承下さい。)
オープンソース使用時の考慮事項
これらを踏まえてオープンソースのライブラリ等を組み込む場合は、対象オープンソースのライセンスが開発するソースコードの開示方針に合っているか考慮する必要があります。
判断のためのフローチャートを作成したので、以下を参照して下さい。
- 商用ソフトウェア開発に利用する場合は、準コピーレフト型または非コピーレフト型ライセンスのオープンソースを検討対象とし、オープンソースコードの改変部分の改変がある場合は、そのソースコードの開示可否で非コピーレフト型か準コピーレフト型を選択します。
- 商用ソフトウェア開発ではない場合は、オープンソースコードの改変部分の開示可否によって非コピー型がそれ以外を選択する。改変部分の開示が可能な場合は、新規に作成したソースコードの開示可否によって、コピーレフト型を選定するか決定することになります。
最後に、ここでまとめた内容は大枠でのお話ですので(詳細部分にはふれていないので)、オープンソースを使用される際は、ソースコード付属ドキュメントまたは開発元サイトに掲載されているライセンスを確認するようにして下さい。
まとめ
オープンソースは、大きく分けて以下の通り特徴により分類でき、使用用途に合わせてライセンスを確認する必要があることを述べました。
後書き
オープンソースのライセンス形態がたくさんあることは知っていましたが、どのような差異があるか今回大枠をつかむことができました。奥が深いですね。
私が使用しているライブラリのライセンスを急に確認し始まったmarubon(@photopota)でした。
RSS購読
最後まで読んで頂き、ありがとうございます。
もし気に入って頂けたら、購読をお願いいたします!
0 件のコメント:
コメントを投稿