2012年2月18日土曜日

Susie プラグインと GPL

axpdf--.spi という似非(まともにレンダリングせず画像データだけ抽出する) PDF プラグインを作成、公開しているのですが、公開ページにも書いている通りライセンス的に問題のない PDF Susie プラグインを作成したい、というのが目的の一つでもありました。私は一個人プログラマであって法的なところで確実なことは言えないわけですがちょっと書いてみます。

PDF は仕様が公開されているためオープンソースのレンダラも存在しています。最も有名なのは Ghostscript でしょうか。MuPDF なんてのもあるようですね。しかし、これらのコードを内部で使って Susie プラグインを作成、公開する、という方法には問題があります。これらのコードは GPL でライセンスされているためプラグイン自体も GPL で公開することになります。GPL での派生著作物がどの範囲にあたるのか、は議論の余地があり最終的には法廷で決着が付けられるべきところですが、とりあえず FSF の主張ないし期待するところを正とします。すると動的リンクされるプラグインが GPL でライセンスされている場合、本体側のプログラムも GPL でライセンスされていなければなりません(cf. GPL FAQ Can I apply the GPL when writing a plug-in for a non-free program? フリーではないプログラム向けのプラグインにGPLを適用することはできますか?)。Susie プラグインに対応したソフトで GPL でライセンスされているソフトというのはそう多くないはずです(自分は知りません)。つまり多くの場合でライセンス的に問題のない状態で使用できないことになってしまいます。FAQ のこの項では「フリーではないメインプログラムとのリンクを許可する例外条項」(cf. GPL FAQ What legal issues come up if I use GPL-incompatible libraries with GPL software? フリーではないライブラリを利用するフリーソフトウェアを書いているのですが、GPLを適用した場合どのような法的問題が発生するでしょうか?)の記述があるのですが、この例外条項を付与できるのは著作権者のみです。つまり使用しようとしている「GPL でライセンスされたライブラリ」の著作権者全てに許諾を得る必要があります。これはちょっと望み薄でしょう。

さて、ここまでは以前からそう思っていたことで、ここからはちょっと考えが整理できたかな、と思っていることです。やはり駄目そうです。コメントを参照ください。(2003/01/19) GPL な Susie プラグインを真っ当に使ってもらうためには例外条項がいるとして、では例外条項なしの GPL でライセンスされた Susie プラグインが、GPL でライセンスされていないビューワのもとで使用された場合、その責は誰が負うべきでしょうか。行為としてはビューワの使用者のものなのですが、一方で GPL はソフトウェアの使用に制限を課さないライセンスだという記述もあり、でも GPL の意図上使用者が自由に使えて良いわけはないし、かといって GPL なビューワとの使用なら問題ないんだから GPL な Susie プラグインを公開できないというのも変な話です。これについては GPL による制限が課されているのは使用の前の「動的リンク」であると考えることで GPL 違反をしているのは使用者である、と納得することができました。つまり例外条項なしの GPL でライセンスされた Susie プラグインを公開すること自体は問題なく、GPL でライセンスされていないビューワのもとで使用しないようにするのは使用者の責任であることになります。配布しないなら GPL に違反しないです。(2003/01/19) ただし、プラグイン作者は GPL でライセンスされていることを明示した上で(これは GPL で要求されています)、個人的には GPL でライセンスされていないビューワのもとで動作させてはならないとも明示的に警告するべきではないかとも思います、道義的に。より個人的には、例外条項を付けるか、付けられないならそもそも公開するべきではないとも思いますが。

6 件のコメント:

  1. 不躾ですみませんがある場所でこのブログが引用元になっていたので書かせてください。
    GPLは著作権によるもので、著作権は大雑把に言えば配布に関する権利です。
    なので、ただの使用者がGPLに違反する事はありません。
    GPLに違反し得るのは配布者です。

    >行為としてはビューワの使用者のものなのですが
    それ以前の配布行為が問題になります。使用者に非はありません。

    >GPL な Susie プラグインを公開できないというのも変な話です
    GPLが言っているのはそう言う事です。公開できません。

    >例外条項を付けるか、付けられないならそもそも公開するべきではないとも思いますが。
    付けられないなら公開する権利が無いという話ですね。

    返信削除
    返信
    1. コメントありがとうございます。

      >不躾ですみませんがある場所でこのブログが引用元になっていたので書かせてください。

      この記事を根拠に、問題のない行為だ、と主張されているとすると記事の意図とは反していますね。
      問題のある行為だと認識されていない方がいたので、問題があるという指摘だけはしておこうという意図の記事だったりします。
      クロだと言うには気合いも知識も経験も不足していますので。
      なお、私のスタンスとしては本文にあるとおり、「例外条項を付けるか、付けられないならそもそも公開するべきではない」です。

      >GPLに違反し得るのは配布者です。

      これはその通りなので「GPL 違反をしているのは使用者である」は訂正しておこうと思います。ただし、枝葉のところですが

      >GPLは著作権によるもので、著作権は大雑把に言えば配布に関する権利です。
      >なので、ただの使用者がGPLに違反する事はありません。

      という論理ではない気がします。著作権によって使用者が制限を課されることはない、とは言えないのでは?(どこまでが複製かという話はありますが)大抵、使用に伴って複製が発生しますよね?

      >>GPL な Susie プラグインを公開できないというのも変な話です
      >GPLが言っているのはそう言う事です。公開できません。
      >>例外条項を付けるか、付けられないならそもそも公開するべきではないとも思いますが。
      >付けられないなら公開する権利が無いという話ですね。

      以下のケースを考えてみてください。

      1) プラグインインタフェースを持つ GPL なアプリケーションが公開される
      2) GPL を含む様々なライセンスのプラグインが作成・公開される
      3) 同じプラグインインタフェースのプロプライエタリなアプリケーションが公開される

      さて、2) で GPL なプラグインを開発した開発者は以降、例外条項を付けない限り配布できないのでしょうか?……個人的には「そんな馬鹿な」という感じがします。プラグイン対向にどんな相手がいるか分からないので基本的に例外条項を付けざるを得ないということにもなりそうです。

      さらに、GPL なプラグインについて配布者に責任があるのであれば、単なる DLL / 共有オブジェクトでも同様に配布者に責任があることになると思います。(例外条項なしの)GPL で DLL / 共有オブジェクトを配布しているプロジェクトはたくさんあるでしょうし、バイナリパッケージ運営者も軒並みクロということになってしまいます。

      ということで、現実と GPL の精神が両立する解釈ができないものかというのが本文だったのですが、無理だったようです。

      実は勢い余って "Question about GPL and commonly-used plug-in interface" というタイトルで FSF の質問フォームから質問を投げてみたことがあります。回答は知りたいことは FAQ に載っているはず、というものでした。ですので見解をお持ちならば是非述べて頂ければと思っています。

      削除
    2. >この記事を根拠に、問題のない行為だ、と主張されているとすると記事の意図とは反していますね。
      そのサイトは「配布は問題ないが、使い方次第で使用者側に問題があるかも」というスタンスでした。

      >著作権によって使用者が制限を課されることはない、とは言えないのでは?
      著作物の公開/配布/複製等が無ければ著作者以外の使用者は存在しないので、公開/配布/複製等の権利を保護しようというのが著作権の考え方で、その先の使用方法については著作権は殆ど及びません。

      >使用に伴って複製が発生しますよね?
      許可なく他人の著作物を複製できる状態にした配布者が著作権を侵害している事になります。

      >以下のケースを考えてみてください。
      2)の配布者が3)向けのプラグインとして配布してるか否かが問題になると思います。

      削除
    3. >>以下のケースを考えてみてください。
      >2)の配布者が3)向けのプラグインとして配布してるか否かが問題になると思います。

      であれば、GPL なアプリケーション向けに配布されている GPL なプラグインを、使用者が非 GPL なアプリケーションと組み合わせて使用することに著作権・ライセンス的に問題はない(使用者に制限はないから)、という見解でよろしいですか?

      そう、これも一つの解釈です。GPL なアプリケーションと非 GPL なプラグインの組み合わせを止めることができないという意味で、個人的にはあまり嬉しくありませんが。

      「3)向けのプラグインとして配布してるか否か」については、「GPL なアプリケーション向けです」と書けばよいのか、GPL なアプリケーションと一緒に配布すればよいのか、あるいは使用実態に即して判断されるのか、最終的には法廷で判断されるしかないのでしょうね。いずれにしろ GPL な Susie プラグインは一律配布できない、とは言えないと思います。Susuie プラグインというのはあくまでプラグイン・インタフェースを指していて、特定のソフト(Susie)を指しているわけではないので。

      後、もう一点、見解があればお聞きしたいのが linking exception(例外条項)についてです。
      本文を書いていたときの思考経路を忘れていたのですが、そもそも例外条項が存在するということ自体が、配布者以外に制限があるということに思えたのです。例外条項があろうがなかろうが使用者が非 GPL なアプリケーションと結合できるなら、例外条項の存在意義がないように思えて。GPL FAQ も結合することが GPL 違反になるように読めますし。
      これはどう考えられますか?

      削除
    4. >であれば、GPL なアプリケーション向けに
      はい。そこは著作権が及ぶ範囲ではありません。
      なので一般論として、ライセンスによっては違反とされるかもしれませんが、そのライセンスの有効性から争われることになると思います。

      >「3)向けのプラグインとして配布してるか否か」については
      去年からAPIに著作権は無いという情勢ですので、プラグイン周りで違法とされる可能性は少ないと思っています。
      ただ2)のプラグインを作る際に、他者のGPLコードを取りこんでいるなら、2)だけにいざこざの種が残るでしょう。

      >後、もう一点、見解があればお聞きしたいのが
      FSFが許したくないのは3)の存在であって、それは2)が例外条項を適用するなら特別許容する事も出来ると言う話だと認識しています。
      2)の配布者以外に、3)の配布者に対しても制限をかけたいが、それは無理だから2)に選択肢と言う名で制限をかけたと捉えています。

      削除
  2. 古い記事ですが気になったので書かせてください。

    #GPLPluginsの節
    >複雑なデータ構造を共有することで密接な通信をしたり、複雑なデータ構造をやりとりする場合、単一の結合されたプログラムとなるでしょう。
    >メイン・プログラムが単純なforkやexecを使ってプラグインを呼び出し、密接な通信を確立しないのであれば、プラグインは別のプログラムと言えるでしょう。

    Susie ビューワは一括でプラグインがレンダリングした結果をキャッシュしますよね。axpdf.spiも全ページキャッシュされてます。以後ビューワはキャッシュとやり取りするので、Susie プラグインは「別のプログラム」に当たると考えられますけどどうでしょう。
    ライセンスがクリアになるならその方がよいです。

    返信削除