近年では、必ずと言っていいほど外部のツール類やライブラリー類を使うのが主流になっている。これによって、アプリを開発するときの生産性が大幅に上がり、短期間で優れたアプリを作るというのも可能になっている。しかしながら、これらは基本的に著作権は放棄されておらず、一定の条件下で使用できるというライセンスでリリースされている。外部ライブラリーを使う際に気をつけるべきこと及び自由なライセンスに用心せよでは簡単に言及したライブラリーのライセンスについて説明をしてみたい。
BSD系ライセンス
BSD系ライセンスは多数あるが、主に以下のライセンスが挙げられる。
- BSDライセンス
- MITライセンス
- ISCライセンス
- Apacheライセンス
上記のライセンスは4.3BSD Net/1 ((Berkeley Software Distributionと呼ばれる、カリフォルニア州立大学バークレー校で開発されたUNIX及びそのツール類。BSDは基本的にAT/Tのコードが含まれており、ライセンス料が必要だったが、4.3BSD Net/1ではAT/Tのコードを除去することでAT/Tのライセンスを不要とした。ただし、AT/T由来のコードが残っていたことで訴訟となったことが原因で、4.4BSDを最後にバークレー校での開発は終了、FreeBSD・OpenBSD・NetBSDなどに引き継がれた)) 用に作られたライセンスで、現在のライセンスでは主に以下の条件からなっている。
- 「無保証であること」を明記すること
- 著作権表記及びライセンス表記をすること
これによって、ライセンスに従えば自由に利用できる上に、ソースコードの開示が不要ということで、企業の利用では非常に使いやすいものとなっている。
Apacheライセンスは上記に加え、特許が含まれていた場合の条件についても明記されている。Apacheライセンスでリリースされたソフトウェアに特許が含まれていた場合はその特許を自由に利用することができるが、その特許ライセンスを利用して特許侵害で誰かに対して訴訟を行った場合は、そのライセンスは停止されるということである。自分の特許をコード化して、Apacheライセンスでリリースする際は無償で利用できるようにしなければならないということになる点に要注意である。
GNU系ライセンス
GNU系ライセンスでは、主に以下のライセンスが挙げられる。
- GNU General Public License (GNU GPL)
- GNU Affero General Public License (GNU AGPL)
- GNU Lesser General Public License (GNU LGPL)
いずれもフリーソフトウェア財団のGNUプロジェクトに由来するライセンスである。
GNU GPL及びGNU AGPLではソフトウェアを自由に利用・改変・頒布することを認めるライセンスだが、リンクしたものや改変物などを不特定多数に頒布する際は同ライセンスを適用することが求められるという点で、BSDライセンスと異なる。これによって、企業でこのライセンスでリリースされたライブラリーを組み込んで開発した場合、配布する際にソースコードを開示しなければならないという大きな問題に直面するため、極めて困難なものとなっている。特にGNU AGPLではウェブアプリケーションなど、ウェブ経由で不特定多数からアクセスされる場合もAGPLでソースコードを開示しなければならない。
GNU LGPLは弱いGPLで、このライセンスでリリースされたライブラリーをリンクする場合はLGPLまたはGPLで頒布する必要はないが、リバースエンジニアリングを許可しなければならないという制約が課せられる。なお、LGPLでライセンスされたライブラリーを改変して頒布する場合は、LGPLまたはGPLでリリースしなければならない。
これらから、リバースエンジニアリングを許可しない場合については、事実上このライセンスでリリースされたライブラリーを利用することはできない。
ライセンスの互換性について
複数のライブラリーを導入する場合は、ライセンスも多岐に渡る可能性が高いため、それぞれのライブラリーがライセンス上混在させることができるかどうかも確認を行う必要がある。例えば現在のBSDライセンスとGPLは互換性があるため、混在させることができるが、ApacheライセンスとGPLの場合は、Apacheライセンス2.0とGPLv3のみ混在させることができるなどである。詳細については『Comparison of free and open-source software licenses』(Wikipedia)が詳しい。
最後に
開発を行う際、ライブラリーを導入する場合は以下のような注意点があるが、気をつければライセンス問題を防げるので、ぜひとも気をつけたいところである。
ウェブマスター。本ブログでITを中心にいろいろな情報や意見などを提供しています。主にスマートフォン向けアプリやウェブアプリの開発を携わっています。ご用の方はコメントかコンタクトフォームにて。