テセウスの船がGPLに適用されました-すべての派生部品を交換した場合、プログラムを再ライセンスできますか?


99

GPLv2 プログラムをに翻訳しましたが、設計どおりに拡張し、その重要な部分を書き直すのは難しいことがわかりました。このプログラムは現在構造的に完全に異なっていますが、いくつかの逐語的に翻訳された関数が使用されています。CPython

テセウス・パラドックス(ウィキペディアから述べられている)は、「すべてのコンポーネントが置き換えられたオブジェクトが基本的に同じオブジェクトのままであるかどうかの問題を提起します。」

逐語的機能の代替を書くことができた場合、好みのライセンスに再ライセンスできますか?

関連して、進化したアーキテクチャを引き出して別のライセンスで再利用できますか?それはそれだけで非常に役立つと思いますが、GPLライセンスで「汚染」されているという考えは好きではありません。

フォローアップ:私は著作権者に連絡することを決定し、再ライセンスの許可を受けました。時には最良の方法は、プログラムではなく社会的に対話することです!


6
ReactOS監査を比較してください:ReactOS(無料のWindowsの代替品)は、リークおよびリバースエンジニアリングされたMS Windowsコード(ライセンスを取得したことがない)を使用して汚染されたという主張がありました。不明確な起源のすべてのコードを合法的な「クリーンルームリバースエンジニアリング」コード(基本的にクリーンな仕様から作成された新しいコード)に体系的に置き換えることで解決しました。
jdm 14年

3
@jdmチャイニーズウォール/クリーンルームのコードは、リバースエンジニアリングに関与しておらず、それらとの通信を制限(合法的にレビュー)した人々によって作成される必要があります。WRTはライセンスを無視し、「代わりに著作権を侵害する」だけです。これは、著作権を侵害した素材を再配布する権利がないため、同じことです。
goldilocks 14年

9
@jdm GPLは契約ではなく、誰もが受け入れる必要はありません。GPLはライセンスであり、ライセンスを利用する場合はGPLに従う必要があります。双方向の道ではなく、契約のような交渉や複数の義務の設定ではありません。それが行うことは、あなたがコードを使用することを許可される唯一のルールを述べることです。IANALですが、私はこれをいくつかのライセンス弁護士から説明を受けました。
エリン14年

3
@CrazyCasta:GPLの範囲について間違えています。あなたは、それが権利を持つ唯一の理由だと述べています。これは明示的に正しくなく、GPL自体によって完全に否定されています。GPLは配布権のみを対象としています。GPLに同意しなくても、コードを使用および調査する無制限の権利があります。
MSalters 14年

1
@MSalters:GPLは配布および変更の権利を付与します。ライセンスがなければ、ソフトウェアをそのまま使用する権利しかありません。
RemcoGerlich 14年

回答:


95

まず、答えは「いいえ」(翻訳の場合)です。法的に再ライセンスすることも、元のライセンスの合法性以外のことを行うこともできません。あなたは元の著者の仕事の10倍を非常にうまくやったかもしれませんが、それは問題ではなく、バイラルです。GPLであるだけでなく、クリーンなデザインや書き直しではないからです。

古いMUDコードベースの大規模な書き直しを行った1992年に、これに少し苦労しました。ゲームは成功しましたが、自分でやりたいと思っていたので、人々はそれを喜んで支払いましたが、DikuMUDライセンスはお金を稼ぐことを厳しく禁じていました。当時、競合他社も同じコードベースに基づいていたため、著作権を露骨に無視し、すべての痕跡を切り取り、基本的に自分自身を含むすべての人に嘘をつくことを選択しました。彼らの論理は「元のコードは存在せず」「大規模な書き換えと改善を行った」ことであり、一般に20,000行のコードで始まったという事実を無視していました。彼らはゲーム内のアイテムに課金し、止められないほどのお金を稼いでいた。

確かにうらやましかった。しかし、私は著作権法を調査し、良心に相談し、正直にゲームサーバーをゼロから設計しなかったため、自分が書いたコードさえ使用できないと判断しました。

そこで私は、W。リチャードスティーブンのUNIXネットワークプログラミングのコピーを常に持ちながら、口元にお金を置いてゼロから書き始めることにしました。私のやり方でゼロから書くことは、DikuMUDを書き直したときよりもずっと多くのことを教えてくれました。また、他の人の肩の上に立つことの意味が本当に理解できなかったことも教えてくれました。6か月以内に50,000行の運用コードがあり、それを自分のものと呼ぶことができました。私はそれをMUD ++と名付け、BSDでリリースしました。初期のスタイルのC ++でひどく書かれていましたが、私が知っている最初の無料のオープンソースC ++ MUDでした。今日まで誰も私からそれを奪うことはできません。私はその時点で最高のTCPサーバーを持っていました。プレーヤーを落とさずに「ホットリブート」を行うことはできず、すぐに誰もが機能を盗みました(また、多くのGPL MUDにはBSDコードのスニペットがあることに気付きました。GPLがBSDウェアをハイジャックできますが、その逆はできません。最終的に私は先に進みましたので、その決断は私の運命を左右するものではありませんでしたが、他の人たちはしばらくの間多くのお金を稼ぎましたが、最後に彼らはグラフィカルゲームの世界で衰退したように見えましたテキストに対する大量の需要はもうありません。

話は終わらない...数年後、私はIBMで働いていたので、ディズニーはEpcotセンター用のリアルタイム3Dマルチプレイヤーゲームを書くために私たちを雇い、そのためのベースとしてMUD ++のTCPコアを使用することができましたゲームサーバー!私が自分のコードを所有していなかったら、それを使用することは許されなかっただろうし、正直に言って私は何週間ものコーディング時間を節約した。最終的に、私は自分の選択を誇りに思い、子供たちに伝える物語を持っています。

人々は、他の人のフレームワークから始めて構築することの利点を過小評価し、過小評価しています。

あなたがそれを「所有」していると思うなら、自分自身をテストしてください。Pythonの本をあなたのそばに置いて、最初からやり直してください。感じ方をご覧ください。チートしないで、古いコードベースを見ないでください。出力を見てください。自分自身であらゆる側面を熟考し、誠実な調査を行うようにします。あなたはそれのためにより良く、そしておそらくより良い製品を持っているでしょう。

ただし、その前に、元の著者に連絡してください。再ライセンスを希望するかどうかを尋ねます。バイナリを販売する予定の場合は、ロイヤリティを提供します。90年代と2000年代にGPLをリリースした多くの著者は、現在30代、40代、50代であり、ソフトウェアで生計を立てることの意味を理解しています。GPLからMIT、Apache、Boost、またはBSDにそれらのものを再ライセンスするのを見てきました。

最後に、ライセンスは、所有しているコードに対する以前の権利を無効にしません。または、シングルプレイヤーテトリスゲームのアドオンとしてTCPエンジンを作成した場合など、クリーンアドオンを個別に作成した場合、それはきれいにスタンドアロンになります(特に以前に別のライセンスでリリースした場合)。コードを他のプロジェクトで再利用できます。あなたには著者権もあります。

私の信念は無料です無料です。文字列を添付する必要がある場合は、無料で電話しないでください。数年後に誰かが私にメールを送り、彼らは私のゲームを商用エンジン、主にTCPとおそらくバイトコードインタープリターで使ったと言った。彼らはお金をmakingけていました。私は少し気にしませんでした。私は今でも誇りに思う父親として幸せです。


4
実際に私はそれを提案するつもりでした、そして、私は私の物語で迷子になりました。はい、すべての方法で、元の著者に相談し、いわば敬意を払ってください。おそらく、著者が尋ねるのに苦労しただけで満足している頻度に驚くでしょう。そして、90年代と2000年代にGPLで大活躍した多くの若い大学生は、プログラマーが生計を立てなければならないことに気付いています。
コデンハイム14年

13
私はこの答えが好きで、賛成したいのですが、最後の段落のすべての反GPLスピンのため、私は賛成できません。GPLが添付する文字列は、将来文字列が添付されない可能性があるということです。
マイケルショー14年

9
良い答え、そして特に。元の著者との取引を推奨します。自給は、多くの場合、貧困への道であり、ライブラリ全体/プラットフォーム/アプリケーションを書き換えながらできるやりがいのある努力をすること、それは常にそうではありません。
Dan1701 14年

16
@MichaelShaw:実際、それがこの答えの最も素晴らしい部分だと思いました。反対側のあなたの主張は事実上間違っています。GPLdコードの作成者が、異なるライセンスの下でコードの新しいバージョンをリリースすることを決定した場合、それらの権利は十分にあります。彼らは文字列を自分自身ではなく、コードを「共有」する人にのみ添付します。私がこれを説明できる最も良い方法は、人類への信仰の根本的な欠如としてです。
back2dos 14年

9
私が見る方法は、BSDスタイルのライセンスがこのコードをここで無料にすることで、これは簡単です。GPLスタイルのライセンスは、クローズドソフトウェアやフリーでないソフトウェアと競合するフリーソフトウェアコミュニティ/エコシステム/その他をセットアップすることを目的としています。それを行うために、彼らは多くの戦略的な動きをし、GPLおよびGPLライクなライセンスの長さ、および多様性(および長期にわたる開発)は、これが多くの価値判断を伴う複雑なビジネスであることを示しています。一方を好む人が他方を非自由であると知覚する場合、または他方を反対することを主張する人が両方を失う場合。
スティーブジェソップ14年

31

このシナリオはGPL FAQでカバーされています:

GPLは、一部のコードを別のプログラミング言語に翻訳することについて何と言っていますか?

著作権法では、作品の翻訳は一種の修正とみなされます。したがって、GPLが修正版について述べていることは、翻訳版にも当てはまります。


この特定の部分は明確ですが、プログラムの残りの部分に拡張するとあいまいになります(少なくとも、私の考えでは)。元のプログラムは小さな呪いゲームでしたが、翻訳を超えた私の仕事には、プレイヤーができるようにネットワークを追加することが含まれますモジュラー/拡張可能になるように再構築するだけでなく、直接対戦することもできます。本質的に、ゲームエンジンはオリジナルとほとんど類似していませんが、ゲーム自体は大きく派生しています。これは私の関連する質問に戻ります。エンジンは現在GPLであるか、それを引き出してMITまたはBSDライセンスプロジェクトに再利用できるでしょうか。
ランドン14年

7
@Landonあなたの作品はまだGPL作品から派生したものなので、GPLの条件に拘束されます。
フィリップ14年

1
@Landon:GPLが適用されるかどうかを決定するのは、実際にはGPLとは何の関係もありません。最終結果が「派生成果物」であるかどうかです。法律でそれは派生物である作品の割合ではなく、それが生の量であるため、より多くのものを追加しても、派生作品が非派生作品に変わることはありません。別の言語への日常的な変換も派生的であり、それがFAQがあなたに通知/思い出させることです。あなたの弁護士に尋ねなければならない質問は、「私の手続きを考えると、裁判所はこれを二次的著作物だと判断するだろうか?」です。
スティーブジェソップ14年

...しかし、この回答は、おそらく派生物であるが、削除する予定の「逐語訳された関数」に焦点を当てています。そのため、意図したシナリオを実際にカバーしているとは思いません。それはあなたの現在のものをカバーし、あなたが間違いを犯し、必要なものすべてを切り出すことができない場合にあなたがいるであろうシナリオをカバーします。
スティーブジェソップ14年

8

ライブラリ全体を最初から書き直したとしても、法的検査に合格することは疑わしいです。GPLライセンスライブラリのコードを見ているため、コードは「汚染されている」と見なされます。

この問題に対する標準的なアプローチは、「クリーンルームの実装」と呼ばれます。要件ドキュメントを作成し、他の誰かにそれを実装してもらいます(GPLコードを見たことがありません)。

この質問も参照してください:ライセンスを変更するためのGPLコードの書き換え

誰かが適切にそこに置いたように、ハリー・ポッターの中国語翻訳は、すべての情報が置き換えられたとしても、依然として派生物です。

もちろん、GPLライセンスライブラリの書き換えで訴えられる可能性(およびその低い確率に依存することの道徳)はまったく別の議論です。

元のコードに機能を追加する限り、これは派生作品の定義の一部です。つまり、元の作品に追加することです。どれだけ追加したか、最初の作業がどれだけ小さいかは関係ありません-それはまだ派生物です。


3
アナロジーの選択が好きかどうかはわかりません:元の質問は、元々はハリー・ポッターに自分のものを束ねているように思われますが、今では魔法と悪役を含む彼らのファンタジーの壮大な小説にそれをバンドルしたいです主に城の学校で。

1
@Hurkylだからグレーの50シェード?
やみくろぬえ14年

8
コードを見たからといって、コピーしたわけではありません。クリーンルームの実装は、元のコードの所有者があなたがすることを嫌い、あなたを訴えると予想される場合に便利です。そのため、法廷で「コードをコピーしませんでした。 「できませんでした」これは強力な防御策です。コードを見ても、それが真実である限り、「コードをコピーしなかった」と言うことができます。
gnasher729 14年

2
@ gnasher729に同意します。GPLには、コードの学習が許可されていることが明記されています。前提は、著者があなたに教えるために(とりわけ)それをリリースしたことです。このため、クリーンルームの引数をGPLコードに適用したことはありません。クックブックを公開して、独自のレシピを作成する人々を訴えることはできません。もちろん、コードが特許されていない場合、特許保護は技術と発明をカバーしますが、実装はカバーしません(AFAIK)。著作権と特許は別の問題です。
コデンハイム14年

1
GPLに違反した場合、法廷で終わる可能性は非常に低いと言えます。なぜなら、問題が発生するたびに1つまたは2つの例外があるだけで、停止するか、取引を行います。これは確かに、違反に関する手紙を書かなければならなかったときの私の経験でした。そして、元の開発者のためにGPLを擁護する無料の弁護士がいます。本当に、最高のアドバイスは元のコーダーと話すことです。私は人々に二重/再ライセンスコードを頼みました、そして、彼らはほとんどいつも大丈夫と言いました。
エリン14年

7

観察:GPLは、作業をリリースする場合にのみ関連します。まだリリースしましたか?

観察:これは法律顧問のウェブサイトではないため、法律上のFUDをすべて捨て、常識を適用してください。

意見:GPL、またはライセンスは、アイデアの著作権はなく、ソースコードを主張します。したがって、コードの構造を変更し、すべての機能を再実装したために、「派生」作品がオリジナルから派生したものとして識別できない場合に限り、実用的な目的のために派生物ではなくなります。クリーンルームの実装と見分けがつかない。

これは、ゼロから始めるのではなく、既存のコードベースを変更する場合に変更するのは非常に困難です(不可能ですか?)。


8
「観察:これは法律顧問のウェブサイトではないので、法律上のFUDをすべて捨て、常識を適用してください。」えー、これは明らかに法的問題なので、解決策は法的問題が存在しないふりをするのではなく、弁護士に尋ねることです。私が理解しているのは、派生的な作品は、あなたがもっと派生しているからといって、派生的な作品であることを止めることはできないということです。
デビッドリチャービー14年

1
@DavidRicherby:それが法的な質問である場合、答えは司法権に固有のものであり、qはあまりにもローカライズされているため閉じられるべきです。:-)
マーティンバ

2
@MartinBa-国際法は著作権に関してほぼ一致しています。ローカルなバリエーションは存在しますが、質問/回答が必ずしもローカライズされていて有用ではないと思います。
cloudfeet 14年

5

あなたが書くコードの著作権はあなたにあります。GPLが義務付けているもの:GPLコードとともに提供またはリリースするコードは、同様のライセンスの下でリリースする必要があります。ただし、著作権はあなたのものです。

したがって、書き換えの途中でソフトウェアをリリースすると(コードと古いコードが混在するため)、コードのその部分をGPLとしてリリースする必要があり、これを取り消すことはできません。ただし、著作権所有者はライセンス条件を決定するので、コードの一部を本質的に「二重ライセンス」する権利があります。これには、自分で書いた他のコードとの組み合わせや販売/再ライセンスなども含まれます。

警告:

  • 書いたコードの著作権はデフォルトであなたのものですが、著作権の譲渡を指定するCLAや、「自分の時間」に行うすべての仕事を所有する雇用主との契約など、別の契約/契約によって変更できます。
  • あなたの書き直しがあなたが原作者と著作権を共有することになる「派生著作物」の十分を構成するかどうかは程度の問題です。コードを1行ずつ別の言語に翻訳すると(質問のとおり)、それらの部分は派生物としてカウントされる可能性があります。詳細を確認せずにAPI互換の置換を実装する場合、おそらくそうではないでしょう。

(情報源:数週間前に私の会社が主催した「著作権とオープンソース」セッション)


「ドキュメント」を「契約」または「契約」のいずれかに置き換えることができます。「DougMはcloudfeetのコードを所有している」という論文を書くだけでは十分ではありません。裁判所の審査に合格する法的交換が必要です。
ダグ14年

管轄に依存します-少なくとも私がいる場所では、口頭での契約でさえ拘束力があり、単に証明するのは難しいです。適切な手書きをオンにしたポストイットは、理論上はかなりうまくいくでしょう。:p
cloudfeet

ただし、あなたのポイントは良いですし、契約/契約はより良い説明です-ありがとう:)
cloudfeet

3

はい。

他の回答では、あなたがすべきかどうかについての意見を説明するテキストが多すぎますが、それらの意見は質問に関連するものではありません。

実際、最後のパーツを交換すると新しい作品ができますが、これは明らかにGPLの作品を見て構築されたものです。それは著作権法の主要な関心事ではありません(特許は別の問題になるでしょう)。配布するものすべてがあなたの創造物になります。

ソフトウェアプログラムの著作権は部分的な著作権の合計であるという理論を裏付ける多くの資料があります。たとえば、MPLはこのモデルを明示的に確認します。Google / Oracleの訴訟は、行レベルの著作権に委ねられました。


3
別の作品を「見る」ことによって構築された作品は二次的作品であり、「見た」作品と同じ著作権によって汚されます。
ダグ14年

1
@DougM:申し訳ありませんが、それは非常に保守的な仮定であり、裁判所で成功裏に使用されたことはありません。その理論に法的関連性があれば、それは本にも当てはまることを忘れないでください-コンピューターコードには、派生物とは何かを決定する特別な法律がありません。あなたの本がシェークスピアの派生物であると主張する人はいません。学校で彼の劇の1つを読んだからです。したがって、その先例は、「派生的​​な仕事」の水準が「類似の仕事を読んだ」よりもはるかに高いことを確立しています。
MSalters 14年

1
GPLには、コードの学習が許可されていることが明記されています。これは独自のIPではなく、無料のオープンソースです。GPLの存続期間中、公開されたレシピを見て自分のレシピを作成することは派生物を意味するという主張に対する法的サポートはありません。
コデンハイム14年

1
Unixコードを元のコードに置き換えるだけでは不十分な場合、Linuxはどこまで行けたのか疑問に思われるかもしれません。
user2338816 14年

3
@ user2338816 LinuxはUnixコードではなく、MINIXで始まりました。技術的には、MINIXがLinuxに反対する可能性があります。これは、Linuxがコードを書き換えた方法と、MINIXコ​​ードが大学と共有されたライセンスに依存します。しかし、それはまた、政治とお金に帰着し​​、MINIXはLinuxを本当に追いかけたいと思っています。
CrazyCasta 14年

1

簡単な答えは、あなたが知ることができないということです。

リチャードと話をするとき、彼は彼の実装の多くで「キツネのようにクレイジー」であることがわかります。GPLは明確に曖昧さや不明瞭な表現を含むように書かれています。これらは通常、ライセンス作成者の利益に反して表明されますが、IP弁護士にも懸念を与えます。巧妙に、それはあなたの知的財産の弁護士に会社が大きくなるにつれてますます懸念を与えます。GPLの「合理的な解釈」を行う小規模な営利企業は受け入れられるリスクかもしれませんが、大規模なソフトウェア会社は、GPLの汚染を受けたチーム全体を燃やす方が賢明かもしれません。

答えはありません。答えはありません。それが答えです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.