«前の日記(2004年07月27日) 最新 次の日記(2004年07月29日)» 編集

Matzにっき


2004年07月28日 [長年日記]

_ [OSS]オープンソース・ライセンスを選ぶ

タイムリーなタイトル。が、内容はそうでもない。

この記事を書いたMary E. Tyler女史(たぶんね)は、

では、自分のプロジェクトに最も適したオープンソース・ライセンスを選ぶにはどうすればよいだろう。

と期待させておいて、OSIの顧問弁護士であるLawrence Rosen氏にインタビューする。

彼の最終的な答えはこうだ。

「多数の企業に多数のライセンスがあるので、それぞれの違いと、自社製品にどう適用されるかをよく考える必要がありますね」と、Rosenは注意を促す。「フリーサイズの万能ソリューションはありません」

ま、確かにそうだわな。どのライセンスも利点・欠点があり、 全ての人のニーズを満たすライセンスはなさそうだ。 というか、さすが弁護士のセンセイ、言うことにソツがない。失言の多い私は見習わなくっちゃな。

ライセンスの選択にあたって、私の経験から言えるのは以下のようなことだ。

  • 独自ライセンスを避ける

    私はRubyに対してGPLと独自ライセンスのデュアルライセンスを選択したが、これは間違いであった。 ライセンスの条文を考えるのはプログラミングに類似した側面があるので楽しいのだが、 実利的に考えると独自のライセンスには問題が多い。

    • ライセンスに穴がないことを示しにくい。

      いろいろな人によって検討されているライセンスなら存在しないであろう穴が、 独自ライセンスには残っている可能性が高い。

    • 読む人が結局何ができて何ができないのか判断にしにくい

      たとえばBSDならなにができる、GPLならなにが禁止されるのかは ちょっと調べれば(厳密ではなくても)だいたい分かるし、 相談する相手もそれなりに見つかるだろう。 だが、ユーザは独自ライセンスだとその辺に確信がもてずに、 直接訪ねることになるだろう。ライセンスに関する質問が世界中から来るのはうっとうしい。

    同様の理由から、独自ではなくてもあまり知られていないライセンスを選ぶのはお薦めしがたい。

  • ライセンスの変更は大変

    全てのコードの著作権を一人で所有している時にはライセンスの変更はなんでもない。

    しかし、プロジェクトが進んで送られてきたパッチを取り込んだり、 メンテナが複数になったりすると、厳密には全員の承諾をとらないとライセンスの変更はできないことになる。 ライセンスの変更を行う可能性がある場合には、 貢献する人ときちんと合意を取っていないと面倒なことが起きないと言う保証はない。 そういう問題を避けるため、FSF、MySQL ABなどの組織・企業は コードを貢献する人から必ず承諾を取っている。

  • GPLを「再利用されるコード」に適用するのは慎重に

    先日、「迷ったらGPL」と言ったのは私だが、 再利用されることを目的としたコードにはGPLは向かないことを指摘しなかったのは手落ちだ。

    この記事にもあるように、 GPLの「派生物」の定義はちょっと広い(ほとんどの人のセンスでは広すぎる)ので、 再利用されることを目的としたコード(要するにライブラリ)がGPLであると、 利用したコードにもGPL互換のライセンスを適用せざるをえない。

    世の中には自分のソフトウェアにGPLを適用することを嫌う人も多いし、 あるいはさまざまな事情によりGPL互換ライセンスを使えない人もいる。 再利用されることを目的とするコードは使ってもらってナンボだと思うので、 結果的に間口を狭めるGPLよりは違うライセンスを採用した方が望ましいと思う。 BSDライセンスとか、MITライセンスとか、LGPLとか。

    もっとも、「GPLの布教」のためにあえてライブラリにGPLを適用する人もいると思う。 私にはそういう人を止める権利も手段もない。

    一方、スタンドアローンのプログラムでは、利用そのものはオープンソースライセンスでは制限されないので、 この件については心配する必要はない。

  • 自分の立ち位置に近いライセンスを

    ライブラリでなくてもコードの融通は発生するものだ。 あっちのソースを見たり、こっちのソースからコピーしたりする行為が自由にできるのが理想的だ。 そういう意味では自分が所属するコミュニティや参考にしたいプロジェクトなどが選んだライセンスと 揃えておく方が実利的だろう。 Javaな人たちにはApacheライセンス、BSDハッカーにはBSDライセンスということになろうか。

    とりあえずそういうものが思いつかない人(先日の「迷ったら〜」の対象者)は、 GPLソフトウェアの蓄積が大きい*1ので、 GPLを選んどくとよいんじゃないかな。

私個人の考えでは、特に企業が自社ソフトウェアをオープンソース化する場合にはGPLが向いていると思う、 特に他の理由がなければ。 RMSの本意とは違うかもしれないが、GPLを使えば競合他社を牽制することができるし、 MySQL ABやTrolltechのようにライセンスを使い分けるビジネスもありえるし。

あと、法的な確信が得たい人は、どうぞ弁護士に相談してくださいませ。

*1  以前受けた忠告に従いfreshmeat.netで調べると18433プロジェクト、一方、BSDはオリジナル、修正版を合わせて1995プロジェクト


«前の日記(2004年07月27日) 最新 次の日記(2004年07月29日)» 編集