Odooのライセンス変更とその背景

エコシステムの強化に向けて

Yoshi Tashiro

Odooの状況をウォッチしている方はご存知かと思いますが、Odooはv9よりオープンソースのコミュニティ版と有償機能が含まれるエンタープライズ版に分かれました。これに伴い、コミュニティ版のライセンスもv8までのAGPLからLGPLに変更されました。


AGPLはオープンソースライセンスの中でも最もコピーレフトとされるライセンスです。ユーザにソースコードを開示する義務がありますし、AGPLのコードに依存するプログラムもAGPLとしなければなりません。


一方、LGPLは、もともと不特定のプログラムに使用されるライブラリ向けに準備されたライセンスで、オープンソースライセンスではありますがAGPLほどの強力なコピーレフトではありません。LGPLプログラムにリンクするプログラムは非開示でもよいことになっています。


この変更の直接的な理由には、「エンタープライズ版や他の有償モジュールへの課金を可能にする」というOdoo社のビジネスモデル変更があります。


これを理解するには、コミュニティ版とエンタープライズ版の関係を知っておく必要があります。エンタープライズ版の中身は「コミュニティ版+有償モジュール群」なのですが、ざっくりと、コミュニティ版は「コア機能」、有償モジュールは「コア機能を強化するもの」といえます。言い換えると、「有償モジュールはコア機能(コミュニティ版)に依存する」という関係です。この関係を前提に、エンタープライズ版として課金するモデルを可能にするには、AGPLというライセンスは障害になります。AGPLのままではソースコードの開示義務がありますので、実質的にソフトウェアそのものに課金するというモデルが成り立たないためです。LGPLのソースに依存するプログラムは、オープンソースでないといけないという縛りもなく、非公開にすることが可能であるため、Odoo社の課金モデルの変更に都合がよかったといえます。


LGPLのソースをコアとした場合のライセンス上の制約は次の図にうまくまとめられています。

 Odooライセンス制約

 

また、Odoo社の懸案として、サードパーティの有償モジュールを含めたあらゆるOdooモジュールを提供するアプリプラットフォームを盛り上げたいということがありました。Odooには延べ数千ものコミュニティモジュールがあるけれども、ボリュームに比してクオリティやドキュメントが追いついていないと。そこを解消するには、有償だけれどもクオリティが担保されるモジュールを認めることで、開発者のインセンティブを高める必要があるという論理です。


これまで「サービスを収益源とする」としてきたOdoo社が、「プロダクトも収益源とする」方向に舵をとったわけですが、ライセンス変更を含む一連の動きには多くのコミュニティメンバーから強い懸念の声が上げられました。過去盛り上がっては消えていったオープンソースプロジェクトには、このあたりの舵取りを誤ったためコミュニティがプロダクトから離れていったと評価されるものもありますので、当然の懸念であったと思います。


それでもOdoo社はライセンスの変更に踏み切りました。大きな変化ではありますが、賛否両論渦巻くなかで丁寧にコミュニティに説明し、過去のコントリビューターの同意を取り付け、OCAの同意も取り付け、v9のリリースに至っています。この変更が吉と出るのか凶と出るのかはもう少し時間がたたないと判断できないところです。私自身はAGPLの精神に共感するところも大いにありますが、現実としてパブリッシャーが報われない(即ちフリーライダーばかりで収益につながりにくい)状況が続くのであれば、別のライセンスへの変更は妥当な判断だと思います。結局のところOdoo社あってのOdooエコシステムですので。


Odoo v9がリリースされて3ヶ月以上経ちますが、これまでのところ、コミュニティの心がOdooから離れていることを示す目立った動きは見受けられません。依然としてAGPLを推奨するOCAの存在がコミュニティを引き留めている面もあるのでしょう。OCAの活動はむしろ活発化している感があります。


弊社としてはOdoo社の方針変更を尊重しつつ、オープンソースコミュニティの一員としての活動もしっかり行っていきたいと考えています。当面弊社で開発するプログラムは原則AGPLを適用するつもりです。



関連記事:Odoo 9.0がリリースされました