Windows 7 ユーティリティ、GPL プロジェクトのコードを一部「拝借」している? 73
ストーリー by reo
驚愕と恐怖、そして脅迫、あと感染 部門より
驚愕と恐怖、そして脅迫、あと感染 部門より
ある Anonymous Coward 曰く、
Windows 7 のユーティリティの一部に GPL コードが使われているようだという話が本家 /. 記事にて話題になっている。
ネタ元は WithinWindows.com の記事。Rafael Rivera 氏によれば、Windows 7 USB/DVD Download Tool (Windows 7 のセットアップファイルを DVD や USB にコピーするユーテリティ) のソースコードに GPL プロジェクト「ImageMaster」のものらしきコードが、そうとは明記されずに使われているとのこと。
Rivera 氏はこのようなシンプルな機能ツールにしてはコードが多すぎるように感じたとのことで、Reflector を使ってメソッドやプロパティのネーミングなどを洗い出したところ、「CodePlex でホストされている ImageMaster から流用されているのは明らかである」と Rivera 氏は指摘する。
なお、Rivera 氏の挙げている Microsoft ユーティリティのコードと ImageMaster のコード比較の一例はこちら。
ちなみに Windows 7 USB/DVD Download Tool のページ内のコンテンツは撤去され、cannot be found となっている。さすがマイクロソフト、仕事が早い。
パクリが見破られた噺 (スコア:2, 興味深い)
如何にしてソフト会社は崩壊したか! [fujigoko.tv]の終章 [fujigoko.tv]に、バレた事例が載っています。
パクリ元とは違う見てくれになってはいましたが、全く同じバグ(ESC打鍵により正常動作しなくなる)により発覚したというオチです。
大本はどこ? (スコア:2, 参考になる)
http://www.withinwindows.com/2009/11/06/microsoft-lifts-gpl-code-uses-in-microsoft-store-tool/
のスレッドを見る限りでは、7-Zip由来のコードかもしれないし、ひょっとすると、MSDNのサンプルそのままかもしれないと書いてあって、元著作権がどこにあるのかを見極めるのは以外と難しいかもしれませんね。MSDNのコードなら、MSは何にも気にしなくて良いし、7-Zipは、LGPLっぽいので、DLLレベルでの動的リンクなら問題はないでしょう。
なので、MS内部での調査に時間がかかるとしても仕方がないかもしれません。
ユーザーとしては、このまま、ツールがお蔵入りになるのだけは避けて欲しいなぁと。
Re:大本はどこ? (スコア:4, 参考になる)
CodePlex は Microsoft が運営してるサイトだし、
もしかしたら作者の element109 さんは社員だったりして。
と調べようとしたら本家に、
Element109 wrote on: http://social.msdn.microsoft.com/Forums/en-US/windowsopticalplatform/t... [microsoft.com]
The iso and udf parsing portions were ported from the 7-zip project. The credits.txt file contains all the sources used in creating my project.
7z
by Igor Pavlov
7-Zip is a file archiver with a high compression ratio.
http://www.7-zip.org/ [7-zip.org]
There are links to his source on his homepage. 7-zip is hosted on the SourceForge website.
と書いてありました。
また別に 7-Zip 由来じゃないとしても、element109 さんが Microsoft に許諾してればいいだけの話で、
勇み足だったと思います。
勇み足にしては醜いですが。
フリーセルは? (スコア:1)
Gnome に入ってるやつに似てるんだけど。
今までWindowsの絵柄の方が良かったのになぜ変えたのかな?
もしパクったんなら (スコア:1)
この際だから改良してほしい。
俺の環境だと必ず最初のフェーズで失敗するから。
# USBストレージの方が悪いかも
部門名 (スコア:0)
Re:部門名 (スコア:3, おもしろおかしい)
「GPLコードを借用しているならば、ソースを公開せよ。借用していないならば、ソースを公開して潔白を証明せよ」
まさに魔女裁判。
Re:部門名 (スコア:1)
分かってるとは思いますが、GPLが要求するのはソースの公開だけではないですよ。
1を聞いて0を知れ!
Re:部門名 (スコア:1)
これが非合法ということになっちゃうと、ソース借用の疑いがある場合には、十分な証拠を集めてから裁判所からリバースエンジニアリングの令状を取得、実際にやってみて確定、みたいな流れになっちゃうんですかね。
Re: (スコア:0)
公開しろって誰か言ったの?
それよりは、単に指摘されただけで即刻コンテンツ削除する方が、ずっと怪しい。
これが中小企業や個人ならまだしも、世界的な大企業だったら、後ろ暗いところがないなら
スルーするかきちんと反論すると思うけれど
Re:部門名 (スコア:2)
> これが中小企業や個人ならまだしも、世界的な大企業だったら、後ろ暗いところがないなら
> スルーするかきちんと反論すると思うけれど
トヨタのレクサスが米国でどうなっているかご存じですか?
Re: (スコア:0)
ケースバイケースだと思うけど、「もしかしたら本当にGPL違反かもしれなくて、だとしたら悪いから一旦公開を停止し、社内で調査を開始した」だけかもしれませんよ?
自社製品に対して、クリティカルな欠陥(ともちょっと違いますが性質は似てます)の報告が入ったら、真偽の確認の前にとりあえず出荷を止める、といった措置を行うところは少なからずあると思いますし、それで一旦出荷を止めたからといって「欠陥があったじゃないか!」と叩くのは時期尚早すぎます。
Re:部門名 (スコア:1)
>真偽の確認の前にとりあえず出荷を止める、といった措置を行うところは少なからずあると思いますし、
それなら、そうだとはっきりと言ってから出荷をとめるべきでしょ。
>それで一旦出荷を止めたからといって「欠陥があったじゃないか!」と叩くのは時期尚早すぎます。
黙って隠すような動きは明らかにいただけないでしょ。
「これ以上みられてたまるか」措置だと、と邪推されても仕方あるまい。
Re:部門名 (スコア:1)
どちらかというと疑わしい時点で公開を続けるより引っ込めた方がどのような結果であれ傷が浅く受ける評価もマシだとは思います。
Re:部門名 (スコア:2, 参考になる)
Re: (スコア:0)
さすがマイクロソフト、仕事が早い。 (スコア:0)
はやく撤去するってのは極めてまっとうな対応では?
感染しないように日ごろから気をつけるのがいいのは当然として。
Re:さすがマイクロソフト、仕事が早い。 (スコア:3, すばらしい洞察)
>感染しないように日ごろから気をつけるのがいいのは当然として。
中核の製品についてはそうするしかないですけど、今回のようなユーザーに
提供する便利ツールだとか商売の中核にないものについては、堂々とGPLだから
ソースが欲しい人は連絡して、と書いちゃうのも手だと思いますけど。
GPLを避けるため延々と車輪の再発明を続けるというのも効率が悪すぎるし
影響のない範囲でGPLを商売の中に取り込んでいくのもひとつの方向じゃないかなあ。
Re: (スコア:0)
と言われたらそのタイヤを排除して別のタイヤにするでしょ。
Re:さすがマイクロソフト、仕事が早い。 (スコア:1)
そのたとえはおかしい。
今回の件でGPLによる義務が生じるのはツール単体であって、他のソフトには及ばないでしょ。
#1669696もそういうことを言ってるのに。
提供中止にしたのは今後どういう対応を取るか内部で検討するためで、結果的にGPLライセンスにして復活というのも十分にあり得る話ですよ。
うじゃうじゃ
Re: (スコア:0)
かみつくようなところか?
Re: (スコア:0)
紳士協定を「感染」というウィルスをイメージさせる表現で
愚弄したいだけではないかと。
人の大切な家族を強姦しておいて、捕まったら
「淫靡な格好をして男たちを誘っていた本人が悪いんだ」
見たいな事を言う卑劣漢とそう変わらない人なので
気にする必要ないよ。
Re: (スコア:0)
もし自分がImageMasterの作者だったら、証拠隠滅のように消すだけでなく
パクってすみませんの一言ぐらいは欲しいな。
Re:さすがマイクロソフト、仕事が早い。 (スコア:2, すばらしい洞察)
大組織だと謝罪には時間がかかるんですよ。偉い人いろいろ回さないといけないので。
Re:さすがマイクロソフト、仕事が早い。 (スコア:2)
Re: (スコア:0)
氏は例の踊りを踊って帰って行かれました。
Re:さすがマイクロソフト、仕事が早い。 (スコア:1)
XPからVistaが出るまで長かったのはこのせいだったりして。
仮にGPLコードの排除に手を取られたとしても、Vistaのリリースまでが長引いたのはLonghornで風呂敷広げすぎたせいなのは明らかでしょ。
うじゃうじゃ
物見遊山 (スコア:0)
どっちも、がんばれ!!
コード比較を見たけど (スコア:0)
Re:コード比較を見たけど (スコア:4, 参考になる)
コード比較だけをみたんじゃわからんでしょ。
Disassamblerソース(MSのオブジェクトを逆変換したのはこっちだと思うが)
にある、クラス名やメンバ名などが一致していることのほうが問題ですね。
ざっと、ImageMaster のソースを取ってきて調べてみたけど、LogicalVolume,
UdfHelper, PartitionMap のクラス名とメンバの名前は一致したので、
コードを利用している疑いは強いです。
Re:コード比較を見たけど (スコア:1)
トレス疑惑の追及に近いものを感じる。
# や、もちろんライセンス違反はいけないことですけどね?
Re:コード比較を見たけど (スコア:1, 参考になる)
コード比較ちゃんと読め。左側は逆アセンブル結果なので、
本来のローカル変数名や定数名に関する情報が失われている。
それを踏まえた上でコード読むと、両者はけちのつけようが無いくらいほとんど同じということが
わかるはず。
Re: (スコア:0)
Re:コード比較を見たけど (スコア:4, すばらしい洞察)
逆アセンブラ/逆コンパイラを通したばやい、元のソースと完全に一致することはありません。
変数名は反映されませんし、最適化によりコードの記述が若干影響を受けることもあります。
では、どの程度異なるものなのか、実際に試してみることにします。
PNG画像のコードを書き写した上でコンパイル可能なようにコードを追加し(クラスや変数・定数の宣言)、csc.exe(version 3.5.30729.1)でコンパイル後、それを逆コンパイルしてみました。
※Rafael Rivera氏の使われた逆コンパイラは不明ですが、ここでは.NET Reflector [red-gate.com]を使っています。
このように、おおむね再現されているものの、オリジナルとは一部異なる(goto辺り)部分も見られます。
(変数名は.NET Reflectorがクラス名から推測して付けてるっぽい)
また、MaxExtents等の定数らしき部分はconst intで宣言していますが、コンパイル時に即値へ置き換えられていることが分かります。
Re: (スコア:0)
Re: (スコア:0)
閾値はどこ? (スコア:0)
コードの拝借はどれぐらいの規模からライセンス違反になるんだろうなぁ。
そうと特定されたらアウトってことなら、メソッド名やプロパティ名を変えたり、
いらない処理をちょちょいと混ぜればわからなくなる?
Re:閾値はどこ? (スコア:1)
殺人や万引きと同じで、バレなければ誰かに責められることはないでしょうが、バレないようにならやってもいいという話ではありません。
どの程度から利用したことになるのかは、定義としては曖昧だと思いますが、少なくとも、GPLなソースからのコピペや丸写しは利用したことになると考えた方がいいでしょう。
メソッド名やプロパティ名を変えたり、何かをちょいちょい加えても、GPLソースを改変したに過ぎないので、利用したことになります。
1を聞いて0を知れ!
これはきっとライセンス違反 (スコア:0)
「リバースエンジニアリングや逆アセンブルを禁止します」
と書いてあったと推測される。
ゆえにRafael Rivera 氏にはライセンス違反の疑いがある。これは許されることではない。
誰かおせーて (スコア:0)
ライセンス違反していたソフトのライセンスってどういう扱いになるんだろう?
守る義務って発生するの?
Re:誰かおせーて (スコア:1)
少なくとも(最初にGPLで公開していた人でも、それを流用した人でもない)第三者は守る義務があると思いますよ。
泥棒の家に忍び込んで盗品をさらに盗んだら、やっぱりそれは泥棒になりますから。
最初にGPLで公開していた人はどうなのでしょうね。
不正利用であることを証明できれば「帳消し」にはできるんじゃないでしょうか、少なくとも。
Re:誰かおせーて (スコア:1)
>ライセンス違反していたソフトのライセンスってどういう扱いになるんだろう?
>守る義務って発生するの?
発生しません。
他人の著作物(あるいはそれを利用した二次的著作物)に、原著作者と何の
合意もなく、勝手にライセンスをくっつけられるのなら、世界中の著作物に、
俺様ライセンスつけちゃうぞ〜。
Re:誰かおせーて (スコア:1)
>ご自由にどうぞ。その「俺様ライセンス」をつけた品を誰かが利用するなら、その人は「俺様ライセンス」を守るべきだ。
>ただし元の著作物をそのまま利用する、という選択肢もある。
非著作権者である第三者が、利用者に「ライセンス」を与えるわけですか?
知的財産権を持たず、著作者との合意もないのに、ですか?
とても興味深いご意見です。もしお手数でなければ、あなたの「ライセンス」
の定義を教えていただけませんか?
Re:誰かおせーて (スコア:1, 参考になる)
Aが作った作品のライセンスをBが(Aの許可を得ず)勝手にCに供給したとする。
もちろんBがライセンスを供給する権利は与えられていないから、AはBに対して賠償請求ができる。
ただしCから見れば(Bが正規のライセンスを保持していないと知らなければ)善意の第三者たりえるため、受け取ったライセンスは無効ではない。
むしろお前さんこそ「ライセンス」と「知的財産権」をごっちゃにしてないかい?
Re:誰かおせーて (スコア:1)
ありがとうございます。
同じ方でしょうか。お忙しいところ、質問に答えていただいて申し訳ありません。
あなたがおっしゃるように、私が誤解している可能性があります。
というのも、「善意の第三者」というのを知りませんでしたから。貴重な情報を
教えていただいて、大変感謝しています。
その点に関して、私はまったく理解が不足していました。もう一度、よく調べ直
してみたいと思います。
Re: (スコア:0)
もちろん。何で守らないでいいと思ったの?
こういう時はこうつっこむんだよ
「利用契約を結んでないソフトのライセンスをなんで守らないといけないの?」
リバースエンジニアリングをしてるだけで利用してないものね。
あーこれすごい便利だったのに (スコア:0)
としか言いようが無いわ
祝☆GPL感染 (スコア:0)
行きつく先 (スコア:0)
ありとあらゆるコードパターンをGPL化してしまったら
もうそこでソフトウェアの歴史は終わってしまうのだろうか
それともライセンス無効化を訴えることができる?
Re: (スコア:0)