OSSの利用
今どき、OSSの力を借りずにコードを書くことは少ないでしょう。 便利なライブラリ管理機能が充実したこともあり、開発者は自然と自分のコードにOSSを組み込んでいます。
しかしOSSに適用されたライセンスをどこまで意識しているでしょうか。 趣味や学習目的で個人利用している分には問題になることはないかもしれません。 しかし、仕事として開発、配布している場合、大きなリスクが伴います。
ソースコードの公開
Copyleftとは「派生物も同じライセンスで配布すること」という考え方です。 このためCopyleftライセンスの派生物を配布するときにはソースコードの公開を求められます。
ここで気をつけなくてはならないのは、場合によってはOSS部分だけでなく、自社で開発した独自コードも派生物と見做されて公開対象となる点です。 そうなると自社独自の技術、機能、サービスなどが外部に漏れてしまいます。 受託開発していた場合、お客様の情報が公開されてしまいます。 ビジネス上、大きなリスクです。
「派生物」とみなされる条件がライセンスによって異なることが状況を複雑にしています。 法的解釈によっても変わることもさらに事を複雑にしています。
こうしたリスクに対処するため自社製品に組み込まれたOSSの管理を徹底する組織が増えています。 細かいところは専門家の判断や会社のポリシーに準じるべきですが、ビジネス上、安全なライセンスと注意が必要なライセンスくらいは開発者も把握しておくべきです。
安全
Apache
Copyleftがなく、制約が非常に緩いライセンスです。 ソースコード公開は要求されません。 商用利用可です。 コードに含まれる特許が使用者にも適用されます。
BSD
Copyleftがなく、制約が非常に緩いライセンスです。 ソースコード公開は要求されません。 商用利用可です。 4条項、3条項、2条項、0条項と4つのバージョンがあります。
MIT
Copyleftがなく、制約が非常に緩いライセンスです。 ソースコード公開は要求されません。 商用利用可です。
大体安全
CDDL
比較的制約が緩いCopyleftライセンスです。 主にJava向けライセンスとして利用されます。 OSSを改変した場合、改変箇所の公開が必要ですが、独自コードの公開は不要です。 商用利用可です。 コードに含まれる特許が使用者にも適用されます。
EPL、MPL、CPL
比較的制約が緩いCopyleftライセンスです。 OSSを改変した場合、改変箇所の公開が必要ですが、独自コードの公開は不要です。 商用利用可です。
大体安全だが変更は危険
クラスパス例外を含むGPL
比較的制約が緩いCopyleftライセンスです。 主にJava向けライセンスとして利用されます。 Javaライブラリとして利用する分には、独自コードの公開は不要です。 しかしOSSを改変した場合には通常のGPLv2扱いとなり、改変ライブラリをimportした独自コードも公開対象となると考えられます。 商用利用可ですが、改変は避けるべきでしょう。
大体安全だがStatic Linkと変更は危険
LGPLv2
比較的制約が緩いCopyleftライセンスです。 OSSをDynamic Linkしたり、Javaライブラリとして利用する分には公開は不要です。 しかしStatic Linkした場合、デバッグ用データ(Object)の公開が必要です。 また、OSSを改変した場合にはGPLv2扱いとなり、改変ライブラリをimportした独自コードも公開対象となると考えられます。 商用利用可ですが、Static Linkは避けた方が無難ですし、改変は避けるべきでしょう。
危険
GPLv2
制約が強いCopyleftライセンスです。 OSSとLink(Dynamic、Static問わず)した独自コードの公開が必要です。 OSSを改変していなくても、です。 商用利用可ですが、多くの場合、避けるべきでしょう。
GPLv3
制約がとても強いCopyleftライセンスです。 GPLv2と基本、同じですが、Tivolization(STBのようなエンドユーザがSW変更不可能な形で配布すること)の禁止や、特許の扱いに関して細かい規定が追加されています。 商用利用可ですが、多くの場合、避けた方が無難でしょう。
Affero GPLv3
制約がとても強いCopyleftライセンスです。 GPLと基本同じですが、クラウド、SaaSで利用した場合はソースコードの公開が必要です。 商用利用可ですが、多くの場合、避けた方が無難でしょう。