アカウント名:
パスワード:
GPL の dll をクローズドからリンクする場合と、逆にクローズドの dll を GPL コードからリンクする場合、それぞれのライセンスの波及のしかたについてどなたか詳しい方教えていただけないでしょうか?
少なくとも前者に
一般には別プロセスならだいたい大丈夫だけれど、 本来ライブラリにすべきなくらい緊密な動作を 無理矢理別プロセスにしたくらいだとまずいかもしれない。 下の項目の5番目のパラグラフを参照。
http://www.gnu.org/licenses/gpl-faq.ja.html#MereAggregation [gnu.org]
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
計算機科学者とは、壊れていないものを修理する人々のことである
dll (スコア:0)
GPL の dll をクローズドからリンクする場合と、逆にクローズドの dll を GPL コードからリンクする場合、それぞれのライセンスの波及のしかたについてどなたか詳しい方教えていただけないでしょうか?
少なくとも前者に
Re:dll (スコア:2, 参考になる)
ただし、DLLを動的ローディングする限りにおいては適用外です。(GPL source codeを使わなくてもAPIで呼び出せるので)
windows においてDLLを使う方法には2種類あって、
# rm -rf ./.
Re:dll (スコア:2, 興味深い)
もっというと、GPLなコードにわずかな修正を施し(当然そのコードは公開する)て独立したプロセスで動作させ、本体プロセスから
socket, pipe, shared memory等で通信して処理をさせる場合はどうなるのでしょうか?
後者もそうであれば、apacheをサーバとして運用しているサイトにアクセスするプログラムのコードは全て公開しないといけなくなって、
(できるだけソースを公開したくないと思われる通常の企業にとっては)問題になる気がします。
Re:dll (スコア:2, 参考になる)
一般には別プロセスならだいたい大丈夫だけれど、 本来ライブラリにすべきなくらい緊密な動作を 無理矢理別プロセスにしたくらいだとまずいかもしれない。 下の項目の5番目のパラグラフを参照。
http://www.gnu.org/licenses/gpl-faq.ja.html#MereAggregation [gnu.org]
Re:dll (スコア:1, 参考になる)
逆に、パイプやソケット、コマンドライン引数は通常二つの分離したプログラムの間で使われるコミュニケーションメカニズムです。ですからそれらがコミュニケーションのために使われるときには、モジュールは通常別々のプログラムです。しかしコミュニケーションのセマンティクスが親密であったり、複雑な内部データ構造を交換したりする場合は、それらも二つの部分がより大規模なプログラムに結合されていると考える基準となりうるでしょう。
Re:dll (スコア:1)
うおお、すんません。
問題の本質は、GPLなコードを何らかの方法で非GPLなコードから呼んだ場合はどういう扱いになるのか、という事です。
GPLなコードをリンクして同一の実行ファイルにさえしなければ、後は何をやってもOKになってしまうのでしょうか?
だとすると回避手段がいくらでも出来てしまいますね。
>> しかしコミュニケーションのセマンティクスが親密であったり、複雑な内部データ構造を交換したりする場合は、それらも二つの部分がより大規模なプログラムに結合されていると考える基準となりうるでしょう。
ここの線引が難しい気がします。結局は非GPLなコードを書いた(または書くように指示した)人の倫理に因ってしまうのかな。
Re:dll (スコア:0)
極端な例ですが、Linuxの場合はkernelがGPLなので、デバイスやメモリなどにアクセスする時点でLinux上の全てのプロセスはGPLなコードを経由しない限りは動けないとも言えます。ですから、それらの機能を使ってるLinux上のライブラリは全てGPL、それらのライブラリをリンクしてるソフトもGPL、っていう主張をする人もいるかもしれません。(いや、いねーよ>俺)ま、実際は「Linuxのシステムコールを呼んでるからGPLね」って理屈にはならないでしょ
Re:dll (スコア:1)
その当たりをMSがFUD [neweb.ne.jp]として宣伝すると、Linux用のプロプライエタリなアプリを作っている/作ろうとしているベンダは逃げてMSやSolaris等のプロプライエタリな側に付いてしまうもしれませんね。
それによって、プロプライエタリなアプリに匹敵するGPLなアプリが数多く出現して使いやすくなれば万々歳なのですが、逆にベンダから見放されて発展が遅れてしまうかもしれませんね。
情報元は失念してしまったのですが、無線LANのドライバをGPLにすると勝手に出力や周波数等が変更されて電波法違反になるのでGPLで公開できない、というような問題もあるようですし、難しいですね。
Re:dll (スコア:0)
1)system call
明確にユーザ側のアプリからの利用についてはGPLの範囲外と文章化されている
2)Kernel module
LinusはGPLの適用されないといっているらしい(出典不明)
FSF的にはGPLが適用されるべきといっている。
Alan Coxは弁護士に相談してきめろ。
Re:dll (スコア:1)
>ジュールが共有アドレス空間でいっしょにリンクされて実行されるよう設計されているならば、それらが一つのプログラムに
>結合されているのはほぼ間違いないでしょう。
>逆に、パイプやソケット、コマンドライン引数は通常二つの分離したプログラムの間で使われるコミュニケーションメカニズ
(以下略)
それって、C的というかUnix的というかの、そっち方面で伝統的な解釈ですよね。
でも、それ以外の環境だとどう解釈すればいいんだろう?という疑問が、どうにも消えません。
Javaみたいな奴は動的リンクなのか否か?…
Javaじゃシグネチャがコンパイル時に確定するから静的だろ、と言われるならば、
じゃあJVMを使って(笑)もうちょっと動的な言語を作った場合はどうなのか?…
JavaOS(笑)みたいにプロセスという概念が無い(スレッドは有るが)ならばどうなのか?…
完全にプロセス的なものが無いとDoSに対して弱くなるんで、プロセスの壁は無いが
quota(ってのか)みたいなものは有る、というOSも有るらしいが、それだとどうなのか?…
LispOSだとどうなのか?…
Smalltalkみたいに動的に全部やれる環境で、ただし「お約束」としてシグネチャを縛る場合は、
静的と呼ぶのか否か?…
コンポーネント間をTCPで接続する(それこそGNOMEとか?)ようなアーキテクチャのOSの類はどうなのか?…
Interface定義がオプションで(笑)用意されてるような環境だと、Interfaceをオマケで書いた瞬間に
GPLが波及するようになるのか?…
GPLは、この辺の「新しい(?)技術」について、何も語ってくれていないような気がするんですが、
どうなんでしょうか?
GPLの効き目をはっきりさせる「ため」に古典技術だけを使う、なんていう本末転倒が生じないことを祈るので、G7。
リンクという概念の定義自体が、技術の進展に伴って、どんどん変化していくんだと思う。
#RMS的には、「なんでもいーから際限なく波及してほしい」という心的衝動が、きっと有るに違いない。
#だからこそわざと不明瞭にしている…んだったりするまいな?
Re:dll (スコア:1)
unix(的なOS)でも共有ライブラリが出てきて破綻してます。
新しい技術に限らす、
組み込みなど「プロセス」の概念のないOSの場合は?
初期RAM(ROM)DISKをカーネルに「スタティックリンク」する場合は?
ROMやCD=ROM起動等静的媒体において、LGPLの「ユーザがLGPL部分を差し替え可能にする」には?
OSやコンパイラ付属のライブラリが肥大化していっても、全部「主要なコンポーネント」?
Re:dll (スコア:0)
ApacheはGPLではありませんが?