web-dev-qa-db-ja.com

オープンソースプロジェクトのすべての行を少し異なる方法で書き換え、クローズドソースプロジェクトで使用することは可能ですか?

[〜#〜] gpl [〜#〜] または [〜#〜] lgpl [〜#〜] であるいくつかのコードがあり、 iPhoneプロジェクト。

そのコード(JavaScript)を取得してiPhoneで使用するために別の言語で書き直した場合、それは法的な問題でしょうか?

理論的には、起こったプロセスは、プロジェクトの各行を通過し、それが何をしているのかを学び、そしてアイデアを新しい言語で再実装することです。

私にはこれは何かを実装する方法を学ぶようなものですが、元のライセンスとは別に再実装します。したがって、アルゴリズムをコピーしただけであり、これは間違いなく、元のプロジェクト以外のどこかから学んだ可能性があります。

ライセンスは特定の実装またはアルゴリズムもカバーしていますか?

編集------

このトピックが良い会話をするのを見て本当に嬉しい。プロジェクトにもう少し支援を与えるために、含まれるコードはある種のオーディオ分析を行います。私はこのタスクに乗り出す準備ができていましたが、学習または実装するのは簡単ではないと思います(私は [〜#〜] fft [〜#〜] を実装できるレベルです=アルゴリズム、そしてこれはそれを超えることになった。)それはかなり低い [〜#〜] loc [〜#〜] スクリプトなので、私はそれが難しいことだとは思わなかったストレートポートを行います。

私は自分のポートを解放するだけでなく、アプリケーションでそれを使用するというアイデアが本当に好きです。私はそれに問題はないと思います、そしてそれは何かをコミュニティに還元するための素晴らしい方法でしょう。

道徳的な問題について話し合いたくないという行を追加するつもりでしたが、議論が少し始まったようで、私がそうしなかったことを非常に嬉しく思います。

私はまだオープンソースコードを使って学ぶことについて少し奇妙に感じています。これは、オープンソースプロジェクトから学んだことをクローズドソースプロジェクトで使用することを許可しないことを意味しますか?また、ライセンスの違反と見なされないようにするには、実装後どのくらいの期間が必要ですか?濁った!

編集2 --------

フォローアップ質問

129
Chris Barry

私は弁護士ではありません。これは法的な助言ではありません。

とはいえ、アプリケーションのすべての行を取得し、著作権法を回避する目的でそれをわずかに変更することは、露骨に、明らかに、もっともらしい防御のない派生作品を作成することです。あなたが法廷に引きずり込まれたら、最も買われた裁判官と陪審員さえあなたに間違いなく見つけます。

比較として:相互運用性のために何かを書き換える必要がある企業は、通常、ソースを理解し、ポートを作成するためにさまざまな人々を雇い(「クリーンルーム実装」)、派生を作成したと非難できないようにします。作業。あなたが提案するのは正反対です。

258
Kilian Foth

ハーバードロースクールのBetsy Rosenblattの Copyright Basics によると:

著作権侵害とは何ですか?

一定の抗弁を条件として、著者以外の誰かが著者の許可なしに以下を行うことは著作権侵害です:

  1. 作品をコピーまたは複製する
  2. 元の作品から派生した新しい作品を作成する(たとえば、作品を新しい言語に翻訳する、画像をコピーして変形する、または作品を新しい表現媒体に転送する)
  3. 作品または作品のコピーを初めて販売または譲渡する(ただし、作成者がそうすると、アイテムを販売または譲渡する権利が新しい所有者に譲渡されます。これは「最初の販売」の原則:著作権所有者が作品またはそのコピーを販売または譲渡した場合、受領者または購入者は、彼女が自分の持っていることを好きなように行うことができます。)17 USC §109(a)。
  4. 著作権所有者の許可なしに、作品を公に実行または表示する(この権利はビジュアルアートには適用されません)。 17 U.S.C. §106。また、17 U.S.C.で定義されている著者の「道徳的権利」に違反することも著作権侵害です。 106A。道徳的権利はこの場所で議論されています。

上記の項目2に違反しているようです。

しかし、ここでは用語が大事だと思います。 「そのコード(javascript)とrewroteを別の言語でiPhoneで使用する場合、それは法的な問題でしょうか?」 (私の強調)。何かを書き換えることは、コピーすることとは異なる場合とそうでない場合があります。たとえば、モナリザを見て、自分のスタジオに行って、覚えているものを描いたとしたら、オリジナルをどのように認識しているかを表現したオリジナル作品を作成しているようです。ただし、スタジオにモナリザのコピーがあり、覚えているものではなく、コピーを描いた場合は、間違いなくコピーしていると思います。

同様に、MS Wordを使用していて、コードの一部を見て、機能的に類似した独自のワードプロセッサを作成していても、「見て」と判断されたケースがあると思います。 &feel」は著作権で保護されていません。 (もちろん、これは特許については何も述べていません。)

弁護士に相談する必要があります(私は弁護士ではありません)。

私の個人的な見解では、「ポート」は 派生作品 なので、移植されたコードを同じライセンスでリリースする必要があります。

73
Scott Whitlock

私は弁護士ではありません。これは法的な助言ではありません。あなたが何らかの疑わしい仕事で私が言うことに依存する場合、(1)あなたは馬鹿であり、(2)私はすべての責任を放棄します。これは私が長年にわたって知っているように見える人々から聞いて読んだものです。

裁判官は「理論的に」ゲームをしません。彼らは、論理分析の点ではおそらく許容できるが、裁判官が過去にどのように支配してきたかという明白な意図に反する、法律をひねる方法を作り上げる人々を好まない。あなたの解釈を擁護する法廷に巻き込まれる可能性がある場合は、法律についてあまり賢いことをしないでください。

小説を取り、それから映画を作るか、それを別の言語に翻訳することは派生的な作品を生み出し、それらはあなたが話しているよりもはるかに大きな変化であり、はるかに大きな創造性を必要とすることが一般に受け入れられています。これらを例として見てください。裁判官は確かにそうします。

米国では、あなたが話しているよりも緩やかにプログラムをコピーすることが侵害であると裁定された事例があります。米国では、それらが先例として使用されることを期待してください。

言い換えれば、誰かが見に迷惑をかけると違法であると認められることに基づいて、営利事業を開始することになります。良い考えではありません。

さらに、著作権の考え方を尊重している場合、または著者が公開する内容を管理している場合は、偽善的です。ソースコードは、特定の条件下で使用できるようになっています。あなたは法律と著者の明示的な意図に違反しています。

現在、アルゴリズムは著作権で保護されていません。米国では、裁判所はアイデアを著作権で保護することは不可能であり、何かを表現する唯一の方法である通常著作権で保護されているものは著作権で保護されていないと判断しました。したがって、アルゴリズムを確実に使用できます。

著作権を保護するアルゴリズムをコピーする方法があります。ある人またはグループがソースコードを研究し、アルゴリズムの説明を(できるだけ少ない実装の詳細で)作成する「クリーンルーム」アプローチと、別の人またはgroupは、元のソースを参照せずに新しいコードを記述します。あなたがそれに近づくことができるほど、あなたはより安全になります。

また、ここに質問を投稿することにより、著作権を侵害する可能性のある意図を、誰かがそうする法的権利を持っている場合にあなたにさかのぼることができる形式で公開したことを検討することもできます(たとえば、民事事件、またはこれが刑事事件であることが判明した場合は明白な警察の調査)。

56
David Thornley

なぜポートをオープンソースにしないで、プロジェクトの残りの部分をクローズドソースにするのですか?

私の別の answer を引用するには:

オープンソースはコミュニティなので、機能します。相互だからです。オープンソースのコードを書くことでお金を稼ぐことはできません。あなたはオープンソースのコードを消費することでお金を得ます。では、なぜオープンソースコードを書くのですか?何かを返すために。

しかし、より実用的な観点から:
移植したコードが本当に有用で、アドバンテージを維持するためにコードを保護する必要があると思われる場合( Appcelerator を使用している人はすぐに使用できるため、これはありません) 、遅かれ早かれオープンソースのポートがあるでしょう。それは多くの人々によって維持され、それはさらに多くの人々によって使用され、それによってテストされ、ターゲット言語によって促進される原則を組み込み、プラットフォーム上の一般的なフレームワークとのより良いインターフェースとなるようにさらに洗練されます。遅かれ早かれ、あなたのコードはそれに比べてがらくたのように見えるでしょう。
実際にオープンソーシングは、航跡の上にとどまるチャンスです。それは双方に有利です。運が良ければ、そのコードのメンテナーを獲得し、アプリケーションロジックに集中することもできます。これが、実際に製品をユニークなものにしているものです。

16
back2dos

私は弁護士ではありません。テレビで演じることすらしていません。

しかし、ここでの問題は派生です。新しい作品がGPLまたはLGPLの作品から派生している場合、その作品はGPLまたはLGPLの要件に準拠している必要があります。別の言語で行ごとに完全に書き直しても、あなたの作品は明らかにデリバティブになります。

8
T.J. Crowder

私も弁護士ではありません。これが法的な問題であるかどうか懸念がある場合は、おそらくこの質問をして、自分で書くことさえすべきではありません。

この件に関する私の個人的な意見:

JavaScriptコードを取得して別の言語で書き直す場合、それは移植と呼ばれ、派生物と見なされます。独自のバージョンのソフトウェアを作成し、JavaScriptコードをリファレンスとして使用して特定のアルゴリズムがどのように機能するかを学習している場合は、おそらく問題ありません。

私は弁護士に尋ねるのを誤るでしょう。

補遺として、著作権法により、公開されたソースコードを読み取る以外に、基本的にNOTHING [*]を行うことができます。著作権所有者がリリースしたライセンスにより、著作権法によって提供されない特定の追加の特権が許可されます。ライセンスで許可されている以外の方法でコードを取得して使用することは、著作者の許可を得ずに著作権法で保護されている著作物を取得して使用することと同じです。

[*]フェアユースを除いて。

5
Dave Rager

他の人が言うように、これは派生物である可能性が高いため、「元のライセンスとは別に」実行することを選択した場合、GPLの条件を直接侵害します(つまり、GPLを削除し、クローズドソースであっても他のものを使用することを意味します)。 。

それが「合法」だとしても、明らかに不道徳です。 GPLで保護されたソフトウェアの作者は、自由を派生著作物に拡張するようなライセンスを選択しました。それが良いことでも悪いことでも、それは著者の意図であり、それを尊重する必要がありますです。彼らはあなたに、コードを読んで修正したり、フォークしたり、条件を変えないようにお願いするだけのコードを与えました。また、ソフトウェア自体の支払いも期待されていなかった可能性もあります。

私はお金が難しいことを知っていますが、あなたのアイデアをペイントするこの形では、それは盗みます。確かに、あなたは別のソースからそのアルゴリズムや実装の詳細を学んだことができたはずですが、あなた自身はそうではありませんでした。

道徳性があなたに関係がない場合は、あなたがやっていること(またはこれからやろうとしていること)の灰色の合法性を考えると、元の作者がAppleこれまでのところ、AppleはGPLを侵害したソフトウェアをすぐに削除しました。別の可能性は訴訟です。

もし私があなただったら、私自身の作品をGPLする(それはそんなに悪いことではありません!)か、他の方法で知識を得ることを検討します。

5
Tamás Szelei

正しいことをしようとし、誰かのアイデアを盗まないようにしてみませんか?コードの作成者にメールを送信し、プロジェクトの一部をそれらに基づいて作成できるかどうかを尋ねるだけで済みます。多くの人はそれで問題ありません。彼らが問題を抱えている場合は、法的な問題はさておき、コミュニティの専門家としての評判を損なうのはなぜですか。この質問が多かれ少なかれ「何をすればいいのか」ではなく「何をすればいいのか」と表現されたという事実。少し厄介です。

結論、コードを書いた人に尋ねる

5

いいえ、それは倫理的ではありません。それはほぼ確実に違法です。そして、私がそれを行った誰かからの求人アプリをレビューした場合、それは極度の偏見で提出されます。

4
Paul Nathan

常にあなたのコードを維持することになる人があなたがどこに住んでいるかを知っている暴力的な精神病者になるかのようにコーディングしてください。 〜マーティン・ゴールディング

私は弁護士ではないので、弁護士のように答えるつもりはありません。その上、他の多くの非弁護士の人々はあなたの考えの法的影響について彼らの考えをすでに提供しています。そして、私は道徳化/倫理の議論をスキップします。

私があなただったら、私は開発者としての影響にもっと関心があります。それは尊敬の念です。特に自尊心。

確かに、私たちはみんな「How to d'ya {implementation} in {specification}?」時々。そこからスタックが生まれました、アミライト?そして、それが私たち全員がここにいる方法ですよね?それはあなたが話していることではないので、それは私が話していることではありません。

天才+英雄的努力=そもそも開発者コミュニティに提示する価値のある結果を組み合わせて、そもそもオープンソースとして提供する価値があり、人々がそれを使用するのに十分に気に入っているとしたら、私はお世辞を言うでしょう。私は大きな時間になるでしょう。 John ReisigやMark Storyのように。少し私。そして、いくつかのチャンプがやって来て、私の貢献をラインアイテム化したので、彼らはそれを商業的に提供したり、商業アプリにネイティブで提供したりできますか?落とす。

コードは手書きのようなものです。マッチボックスよりも大きなアプリを大幅に変更することはできません。別の正当な開発者が2つ並べて比較できず、「ちょっと待って...」と言うことができません開発者として、私は同僚、同僚、私が尊敬し、尊敬する人々が私が誰かのコードをジャックしたことに気づく可能性があることに戸惑いすぎます。私は笑いの種になるでしょう。いくつかの壮大なコピーパスタスクリプトキディbsであるCos。あなたは本当にあなたの仲間の目に自分を正当化したいですか?コードをジャッキングすることから始めるのが良いでしょう。

そして、開発者として、これを考慮してください:それが私のアプリであり、あなたがジャッジされて、あなたが訴えられることを心配しているとわかった場合、私があなたを訴えて地獄を決めたら、あなたは現金のスタックを作っていますとにかく私のコードのおかげで、なぜ私はそれが痛いところにあなたを襲うべきではないでしょう、おそらくそれのいくつかを取り戻すでしょうか?どのように私が思春期ではないか、気性と恐ろしいスキルのセットを持っていないことを知っていますか?いわば、ur b0xenでr00 [をpwnするために私の道を行きます。私のアプリをジャッキングすると、私>あなたがいることがわかります(基本:ジャッキングできるものだけを書くことができます)。それは初めてではないでしょう。

2
OpenSorceress

各行を個別に書き直すと、行が「コピー」される場合とされない場合があります。

ただし、行の順序付け、全体的な構造化、包含をそのままコピーします。つまり、作品を「全体」にするようなものです。

「この行はここに、この行はそこに」の部分をコピーしています。これは、全体的なアルゴリズムの大部分です。

さらに、プロジェクトが開始されたとき、何を含めるべきか、多かれ少なかれ重要であると見なされるべきもの、アルゴリズムをどのように構造化および構成するかはだれにもわかりません。この情報は、ある時点で作成および設計する必要があります。しかし、それを "コピー"するので、必要はありません。


例として:

セット{a、b、c、d、e、f}がある場合。

それらの順序付きリスト[f、e、c、b、d、a]を作成できます。 orderingと呼ばれる、順序付けされていないセットには存在しない情報をリストに追加したと言う必要があります。リストのサイズによっては、この情報は非常に具体的で、考え出すのが難しい場合があります。

0
Ben Jones

二次的作業の二次的作業の二次的作業を作成することはできません...そして、二次的作業ではないことを期待してください。認識できなくなる可能性がありますが、それは別のことです。そして、任意のテキストから始めて、一連の変更によって任意のテキストを取得することができます(たとえば、最初のテキストを削除し、2番目のテキストを挿入するなど)。だから何かが可能かどうかは重要ではありませんが、それが実際に起こったかどうかは明らかです(明らかに不可能は起こりませんでした)

Moraly話す:(合法的に)何でも得ることができるものから学ぶことは問題ありませんが、ソースを認めるべきです。残りは合法です。

IANAL、しかし私は何か間違っていたとは思わない:1)オープンソース実装から学んだ2)実際にこれを行うことによって同じアルゴリズムを(同じ言語でさえ)実装する場合、大部分は当然完全に異なるものになり、一部は本当に似ている。これらの同様の部分が、両側が同じコーディング方法に従っているために異なることができない場合、これらの部分は著作権で保護されません。例えば。クラスに2つのプライベートStringフィールドがあり、それらにゲッターとセッターがある場合、興味深い点は、このクラスに2つの読み取り/書き込みプロパティがあり、ゲッターとセッターの実装がないことです。

0
user470365