489190 ランダム
 HOME | DIARY | PROFILE 【フォローする】 【ログイン】

松のページブログ

松のページブログ

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x

PR

Freepage List

Keyword Search

▼キーワード検索

Profile

松-boolean

松-boolean

2010/11/30
XML
カテゴリ:カテゴリ未分類
久しぶりのブログ

 A5:SQL Mk-2とGPLの問題で少々悩んだので書いてみたいと思います。

 そもそも、A5:SQL Mk-2はGPLではなく、GPLのソースコードを1行でも含んでいるわけではないのですが、ちょっと衝撃的な事実を知りました。

 MySQLに接続するために、プロプライエタリアプリケーションからMyODBC(GPLのMySQL用ODBCドライバ)を使うと、Oracle(MySQLの著作権者)ではこれをGPL違反と判断するようです。むしろ、プロプライエタリアプリケーションからの接続を禁止するために、MyODBCはLGPLではなくGPLとなっているようです。(かつてLGPLでしたがGPLへ変更された経緯を持ちます。)

 調べてみたところOracle社ではGPLのライブラリコードが実行時に動的リンクであってもプロプライエタリアプリケーションと同じメモリ空間に読み込まれる場合、そのプロプライエタリアプリケーションはGPLライブラリコードと結合されているため派生物であると見なしてGPL違反であると判断するようです。

 さらにはMyODBCでいうと、MyODBCドライバの利用時ではなく、MyODBCを利用可能となるプロプライエタリアプリケーションを公開した時点でGPL違反とするようです。この考え方を厳密に適応すると、例えばMicrosoft Officeに付属するMicrosoft QueryもMyODBCを利用することが可能であるためGPL違反となり得ます(!)。

 この考え方が妥当であるかどうかは本質的に法律の問題を含み、国ごとに司法に判断をゆだねなければなりませんが、この問題を回避するためA5:SQL Mk-2はOracle社の著作物を含まないMySQL向けの直接接続クライアントライブラリを内蔵することとしました。

 ここで法律上のリスクを避けるために、何が結合と見なされ派生物となりGPLの影響を受けるのか調べる必要が出てきました。

 GPLの発行元であるFree Software Foundation(以下FSF)の解釈によれば、「二つのモジュールを一つのプログラムに結合すること」は次のように考えられているようです。

-- GPL FAQ 日本語版より引用 ---------------
二つの部分を一つのプログラムに結合する要件とはなんでしょう? これは法的 な質問であり、究極的には裁判官が決めることです。私たちは、適切な基準は コミュニケーションのメカニズム(exec、パイプ、rpc、共有アドレス空間での ファンクションコールなど)とコミュニケーションのセマンティクス(どのよう な種の情報が相互交換されるか)の両方に依ると考えています。

モジュールが同じ実行ファイルに含まれている場合、それらは言うまでもなく 一つのプログラムに結合されています。もしモジュールが共有アドレス空間で いっしょにリンクされて実行されるよう設計されているならば、それらが一つ のプログラムに結合されているのはほぼ間違いないでしょう。

逆に、パイプやソケット、コマンドライン引数は通常二つの分離したプログラ ムの間で使われるコミュニケーションメカニズムです。ですからそれらがコミュ ニケーションのために使われるときには、モジュールは通常別々のプログラム です。しかしコミュニケーションのセマンティクスが親密であったり、複雑な 内部データ構造を交換したりする場合は、それらも二つの部分がより大規模な プログラムに結合されていると考える基準となりうるでしょう。
-- 引用終わり ------------------------------

要約すると次のように考えられます。

・同一のメモリ空間にあるかどうか
・コミュニケーションのセマンティクス(どのよう な種の情報が相互交換されるか)に依る

OracleがプロプライエタリアプリケーションからMyODBCへ接続することがGPL違反とする根拠は「同一のメモリ空間にあるかどうか」に該当するためと考えられます。ただしこれは何らかの判例に基づくものではないですし、ODBC規格のようなOSの標準機能を介して「間接的に」動的結合されるような場合を想定していないようにも感じられます。

「コミュニケーションのセマンティクス」についてはFSFにおいてすら明確な基準が設けられているわけではなさそうです。「複雑」がどの程度を表すのかを知る術はありません。

 独自のMySQL向けクライアントライブラリを内蔵し、MySQLサーバーへ接続を行う行為はFSF(やOracle)の指す「結合」に相当するのかを慎重に判断せねばなりません。

 かつてMySQLはクライアント・サーバー間のプロトコルを「GPLプロトコル」と称していたようですが、法的に無理があったと判断したのか現在ではそのような記述は見受けられません(少なくとも自分は見つけていません)。基本的にはプロトコルには著作権は認められないようです。

 標準ではないプロトコルを利用し、GPLとプロプライエタリアプリケーションが連携する数少ない事例としてSambaを考察してみます。SambaはMicrosoft Windowsで利用されているSMBプロトコルを利用するGPLプログラムですが、当然通信するのはプロプライエタリであるMicrosoft Windowsです。SambaはMicrosoft Windowsの派生物ではないですし、もちろんMicrosoft WindowsはSambaの派生物ではありません。このことから、ネットワークを介してGPLとプロプライエタリアプリケーションが連携しても、それは結合ではなく派生ではないと見なされると考えることが出来ます。

 以上のような考え方でA5:SQL Mk-2から独自のMySQLクライアントライブラリを利用し、MySQLサーバーへ接続する行為はGPL違反に当たらないと判断するに至りました。しかし、これは自分の理解の範囲での考察であり、もしも「間違っている」とか「考慮が足りない」などありましたら、ご連絡頂けたらと思います。

 コメントはブログに記述して頂いてもかまいませんし、 松のページ掲示板 または、松のページに記載されるメールアドレス宛へお送り頂いてもかまいません。よろしくお願いします。





お気に入りの記事を「いいね!」で応援しよう

Last updated  2010/12/01 01:03:53 AM
コメント(1) | コメントを書く


Calendar

Favorite Blog

ZIGENのプラグイン開… ZIGEN_Mさん
This Love ゆくもさん
エスナカ -931SHとい… みるすけ6号さん
あみちゃんのひとり… あみちゃん123さん
THE STORY OF MY LIF… こあおいさん

Comments

 public-delete@ Re:A5:SQL Mk-2とGPLの問題(やや長文)(11/30) はじめまして 記載通り遠慮ナック 私なり…
 森隆弘@ おすすめ 最近AEROADMINを使い始めました。いいアプ…
 あへひょろごん@ Re:ER図(06/17) すばらしい機能ですね。 使いやすいし。
 naqtn@ Re:遠隔操作事件について(05/17) はじめまして。コメント募集とのことで書…
 インドのおじさん@ ガンバwwww みなさん、ようやりまんなあwwwwこれ…

Headline News


© Rakuten Group, Inc.