今さら聞けないスマホ時代のOSSライセンスの基礎知識 - あなたのアプリ規約違反かも?

スマホアプリ開発が大人気かと思いますが、自分の妄想ではスマホアプリを開発している人の少なくない数がWeb屋さんな認識です。

 

で、そこで気をつけないといけないのがライセンスです。これまた妄想(というか身近な人ベース)ですが、Web屋さんオンリーな人はOSSライセンスに関する意識が薄いです。

まあ、実サービスの開発でも、OSSのライブラリ使い放題で、AGPLという比較的レアなライセンス以外はGPLだろうとBSDであろうと殆ど気にする必要はないので、致し方ないことかも。実際、ノーチェックで入れまくっとりますし。

 

ただ、その意識でiPhoneAndroidアプリを作っちゃ駄目です。スマホアプリはバイナリ配布なので、AGPL以外もライセンスに引っかかります。後輩に聞いたら、GPLBSDライセンスの違いも殆どわかってなかったので、自分の知識整理も兼ねてまとめてみます。仕事でコードを書くことをイメージして書いた記事なので、GPLの扱いがヒドイけど、他意は無いです。個人的にはありなライセンスだと思ってるので。

 

なお、内容に間違いがあったらぜひ指摘を!

 

GPL(GNU General Public License)

OSSの代名詞的存在だけど、狭義のくくりではフリーソフトライセンス。v2とv3が現在主に利用されていて、細かく違うけどその辺はWikipedia参照。特徴は「感染」とまで称される強力なコピーレフト。超簡単に云うと、GPLライセンスを含んだコードを使ってアプリを配布するときにはGPLライセンスで配布する必要があり、つまりソースコードを公開する必要があります。これは、コードを改修しないjarとかのライブラリで利用しても同じ。サービスとして提供するとき、特に有料アプリを作成する際には最も注意が必要です。

 

LGPL(GNU Lesser General Public License)

 基本的にはGPLと同じコピーレフトなライセンス。ただし、こちらはコードを改修せずにライブラリとしてリンクする分には制限がかなり緩くなっています。動的リンクの場合は、特に制限なし。静的リンクの場合はコードは公開不要なもののリバースエンジニアリングを禁止できなくなるなどの制限が付きます。AndroidアプリもiPhoneアプリも基本は静的リンクだと思うのProguardとか使えなくなると予測。

 

MITライセンス, 修正BSDライセンス、Apacheライセンス

一応別なライセンスですが、意識することはほぼ同じなので、まとめて記載。

かなり制限がゆるいライセンスです。ソースコードの改変及びソースコードの非公開が可能。制限としてはアプリ側でライセンスの全文またはそのリンクが入っている必要あ有ります。zipに固めてまとめてい配布というのができないので、アプリ内で確認できるようにする必要があります。about的なところにライセンスを確認できる項目を作り記載するのが良いと思います。

 

CC(Creative Commons)

主にコンテンツ共有のためのライセンス。いわゆるOSSライセンスじゃないけど、画像や音楽などのフリー素材を利用するときに関係あが有りそうなので記載。

利用OK, 改変OK, ただし継承、など制限を自由に配布時に設定でき、その制限の内容をアイコンで表現している。CCなら扱いは全部同じ、というわけじゃないのが要注意。

 

まとめ

ざくっと概要というか利用するときの詳細はそれぞれのWikipediaを見てください。OSSで公開するアプリ以外BSDライセンス系のゆるいものを利用することになります。ただ、その場合も規約の表示等は必要ですので、ご注意ください。