👀
【ライセンス編】OSSを使う人間が気を付ける事
はじめに
今回の記事では、OSSを使う側の人間の視点に立ったライセンスの解説をしていきます!
アプリを作るには、OSSを使うのがほぼ必須となっている昨今、使用する際の注意点について理解をした上で使用する事が求められます。
しかしOSSの使用が容易な事もあり、使う際の注意点について知識が希薄な状態で、使用している方も多くいるのではと思います。
そのような方の知識の一助にこの記事がなればと思います!
プログラムの著作権について
- まず大前提として、プログラムは著作権で保護される「著作物」の一種です。
- よって無断で利用したり、再配布したり、手を加えた場合、法律違反となるわけです。
- しかしプログラムは、本や芸術品のような、表現の鑑賞や享受を目的とするものではなく、他の人間により使用される事を目的とされる事が多い為、ライセンスという形で、著作権への解釈を明確なものにして、使われる事を一部許可する事が多い訳です。
ライセンスとは?
- プログラムのライセンスとは、プログラムを開発した著作者が、他者が入手したり利用したりする際の、条件をまとめ、明確に定義した文書です。
- 一般的にはソースコード内に
LICENSE.txt
というファイルがあり、ライセンスが記載されています
ライセンスがない場合どうなってしまうの??
- ライセンスが無いプログラムを、利用したり、再配布したり、手を加えた場合、それらの行動は無断で行なったと見なされてしまいます。
- 法律違反となる訳なので、著作者からの削除申し立てや、訴訟リスクがある訳です。
余談: OSSとは?
- 余談ですが、そもそもOSS(オープンソフトウェア)とは、github等でオープンになっているソースコード全てを指す訳ではないです。
- Open Source Initiativeという団体によって、オープンソースの定義が定められており、下記10の項目を満たしているものがOSSと名乗る事が出来るのです。
- 自由な再頒布ができること
- ソースコードを入手できること
- 派生物が存在でき、派生物に同じライセンスを適用できること
- 差分情報の配布を認める場合には、同一性の保持を要求してもかまわない
- 個人やグループを差別しないこと
- 利用する分野を差別しないこと
- 再配布において追加ライセンスを必要としないこと
- 特定製品に依存しないこと
- 同じ媒体で配布される他のソフトウェアを制限しないこと
- 技術的な中立を保っていること
OSSのライセンスについて
法律を理解し、確かなライセンスを一から定義するのは大変であるため、OSSの為の一般化されたライセンスが存在しています。
一般化されたライセンスは1種類だけでなく多くあり、それぞれが異なる権利や制約を持っています。
なので著作者の意図に合わせたライセンスが設定されている為、代表的なライセンスについては知識として持っておく必要があります。
補足: OSSライセンスに係る言葉の意味
使用
- ソフトウェアを実行したり、ソースコードを閲読・コンパイルすること。
- OSSの場合、ソフトウェアの使用は自由である。
利用
- 対象のソフトウェアを複写・改変・再頒布すること。
- 新たに作成したソフトウェアの一部として、対象のソフトウェアを同梱すること。
- ソフトウェアの利用は著作権法によって制限されている。OSSの場合はそのライセンスに従う限り利用が可能である。
配布
- OSSを他の人に渡す行為。
再配布
- 配布にて受領したOSSを、再度配布する行為。
コピーレフト型ライセンス
- ソースコードを改変した場合、改変した部分を公開しないといけない
- 他のソースコードと組み合わせた場合、組み合わせたソースコードを公開しないといけない
準コピーレフト型ライセンス
- ソースコードを改変した場合、改変した部分を公開しないといけない
- 他のソースコードと組み合わせた場合、組み合わせたソースコードを公開の必要はない
⾮コピーレフト型ライセンス
- ソースコードを改変した場合、改変した部分の公開の必要はない
- 他のソースコードと組み合わせた場合、組み合わせたソースコードを公開の必要はない
代表的なライセンス
MIT License
- 非コピーレフト型
- 著作権の表示が必要
- 商用利用、修正、配布が可能
Apache License 2.0
- 非コピーレフト型
- 著作権の表示、変更内容の明示が必要
- 商用利用、修正、配布が可能
BSD License
- 非コピーレフト型
- 著作権の表示が必要
- 商用利用、修正、配布が可能
Eclipse Public License
- 準コピーレフト型
- 著作権の表示が必要
- 商用利用、修正、配布が可能
GNU General Public License
- コピーレフト型
- 著作権の表示、変更箇所の明示、ソースの明示が必要
- 商用利用、修正、配布、特許が可能
GNU Lesser General Public License
- 準コピーレフト型
- 著作権の表示、変更箇所の明示、ソースの明示が必要
- 商用利用、修正、配布、特許が可能
Public Domain or unlicense
- 著作権の表示等の必要なく、制約がない
- 商用での利用、修正、配布等可能
ライセンス文の表記方法
- アプリ内にライセンス文を表示する
- ライセンス文が記載されているURLを記載する
- インタプリタ言語の場合ソースコード内に、ライセンス情報を記載する
- ビルドする際にライセンス情報が省かれないようにしないといけない
まとめ
個人的にどの場合に配布に当たり、WEBやモバイルアプリそれぞれで、どのようにしてライセンスを表記するのか、しっかりと理解出来ていなかったので、この資料を作成するに当たって理解、整理が出来ました。
皆様も良き開発者ライフを過ごす為、OSSのライセンスについては正しい認識を持って対応をしていきましょう!
参考文献
GitHubで編集を提案
Discussion