より強力な貢献者によって忘却に分岐することを避ける方法は?


119

ここで最近報告されたように

Xamarinは、2D / 3Dゲーム開発フレームワークであるCocos2D-XNAを分岐させ、PCLプロジェクトに含めることができるクロスプラットフォームライブラリを作成しました。

ただし、分岐したプロジェクトの創設者は次のように述べています

MITライセンスの目的は、公正使用を妨げないことです。あなたが言うように、ソフトウェアを自分のものとしてブランド変更し、それから「新しい方向に持って行く」ことを奨励しないでください。

違法ではありませんが、非倫理的です。

新しいプロジェクトのGitHub ページでは、それが典型的なGitHubのようにフォークであることさえ示していないようで、代わりに簡単に取り外し可能な履歴セクションを選択しています(下を参照)。

だから私の質問は:

  1. Xamarinのアクションとアクションの実行方法は倫理的でしたか?
  2. あなたが独身の開発者または小さな資金のない開発者グループである場合、そのような状況を避けることは可能ですか?

これがwikiの質問になるか、現代のOSS倫理/哲学に基づいた客観的な答えがあることを望んでいます。


25
これは、まさにGNU GPLの目的です。フォーカーは、リリースした場合に変更をマージするように強制し、あなたが行った改善に加えてあなた自身の変更を提供します。
バリティ14

46
MITライセンスはもともとX Window System用に作成されたものであり、企業がそれをforkして、販売専用の製品に含めることができるように作成されました。
アランシュトコ14

5
@Vality:バックマージに関する限り、何かがGPLまたはMITライセンスの下にあるかどうかは実際には関係ありません。
DevSolar 14

66
「MITライセンスの目的は、公正使用の妨げにならないことです。ソフトウェアを入手し、それを自分のものにブランド変更し、「新しい方向へ」と言うことではありません。」–ええと、実際には、まさにそれがまさにその目的です。「MITライセンス」のようなものはありません。MITはさまざまなライセンスを使用しています。問題のライセンスはMIT X11ライセンスであり、UnixベンダーがMIT X11をUnicesに統合し、ブランドを変更し、書き直し、好きな方向に持っていくことができるように特別に作成されました。
ヨルグWミットタグ14

10
ØMQガイドには、まさにこのシナリオに関する興味深い話があります。要点:「BSDはほとんどの人を私たちを昼食と見なします。クローズドソースはほとんどの人を敵と見なします(ソフトウェアにお金を払うのが好きですか?)。しかし、GPLは世界のパトリックを除いて、味方。」
マイケルハンプトン14

回答:


72

Xamarinのアクションとアクションの実行方法は倫理的でしたか?

さて、専門家に聞いてみましょう- オープンソースイニシアチブのMITライセンス自体のリスト(ライセンス全体が引用されています):

MITライセンス(MIT)

著作権(c)

これにより、このソフトウェアおよび関連ドキュメントファイル(「ソフトウェア」)のコピーを取得するすべての人に、使用、コピー、変更、マージの権利を含むがこれらに限定されないソフトウェアを許可する許可が無料で付与されます。ソフトウェアのコピーを発行、配布、サブライセンス、および/または販売し、以下の条件に従って、ソフトウェアの提供先にソフトウェアの提供を許可します。

上記の著作権表示およびこの許可通知は、ソフトウェアのすべてのコピーまたは大部分に含まれるものとします。

本ソフトウェアは、商品性、特定の目的への適合性、および非侵害の保証を含むが、これに限らず、明示または黙示を問わず、いかなる保証もなしに「現状のまま」提供されます。いかなる場合でも、作者または著作権者は、契約、不法行為、またはその他の行為、ソフトウェアまたは使用またはその他の取引に起因する、または関連するいかなる請求、損害またはその他の責任についても責任を負わないものとしますソフトウェア。

個人または企業の誰かがMITライセンスでソフトウェア/ソースコードをリリースした場合、個人または企業の誰もが「制限なしにソフトウェアに対処できる」ことを意味します。著作権表示がそのままである限り、彼らは好きなようにほとんどできる。

これは、倫理と合法性がほぼまったく同じ場合の1つです。個人またはグループがライセンスを理解しなかった場合、またはそれが意味する場合、彼らはデューデリジェンスを実行できませんでした。Open Source Initiativeは、MITバリアントのようなライセンスを理解するのに役立つ他の多くの素晴らしいリソースを提供します。オープンソース定義のいくつかの節を見てみましょう。

1)無料の再配布-ライセンスは、複数の異なるソースからのプログラムを含むソフトウェア配布全体のコンポーネントとしてのソフトウェアの販売または配布を、いかなる当事者も制限してはなりません。ライセンスは、そのような販売のためにロイヤルティやその他の料金を必要としません。

3)派生著作物-ライセンスは修正および派生著作物を許可する必要があり、元のソフトウェアのライセンスと同じ条件で配布できるようにする必要があります。

5)個人またはグループに対する差別の禁止-ライセンスは、個人またはグループを差別してはなりません。

6)努力分野に対する差別の禁止-ライセンスは、特定の分野でのプログラムの使用を制限するものであってはなりません。たとえば、プログラムがビジネスで使用されることや、遺伝子研究に使用されることを制限することはできません。

私が読んだことから、これは非常に明確に思えます:特にMITライセンスで何かをオープンソースとしてリリースすると、誰かが自由にソフトウェアを入手、変更、パッケージ化、販売することができます。 tはあなたの著作権表示を削除し、それが自分自身であると主張する唯一の作品。

著者として、あなたは好き嫌いや選択権を明示的に放棄しています。誰が、または何があなたのソフトウェアから利益を得ることができるのか、それを利用するのかを決定することも、彼らがそれを使用している理由を決定することもできません。あなたは明示的にその権利を放棄します。

アイデアは、自分が行ったものの使用と変更を制御および制限する必要がある法的権利を明示的に放棄することにより、より良い利益に貢献しているということです。MicrosoftがFluffBallプロジェクトを分岐し、WindowsSpongeCakeとして1シートあたり$ 2Kで販売したい場合、可能です。そもそも、プロジェクトの全体のポイントにしたいことを何もさせないのではありませんか?

あなたが独身の開発者または小さな資金のない開発者グループである場合、そのような状況を避けることは可能ですか?

やや!まず、あなたとあなたの組織の目標と欲求に適したライセンスを使用します。誰にも承認されない方法でそれを使用させたくない場合は、おそらくオープンソースとしてリリースすべきではありません。率直に言って、まったくリリースすべきではないでしょう!商業プロジェクトで誰にも派生物(フォークなど)を使用させたくない場合は、おそらくGPLのコピーレフトバージョンをお勧めします。非商用ライセンスが必要な場合は、著作権/ライセンス弁護士に助言を求める必要があります。これは、多くの場合「オープンソース」ソフトウェアとは見なされず、このケースをサポートする事前に書かれた主要なライセンスがないためです。

XamarinとCoco kerfuffleの問題は、倫理や合法性の問題ではありません。それは、互いに牛肉を食べている少数の人々の間のインターネットの戦いに関するものです。私たちはすべて人間です。これはおそらく、人格の対立またはプロジェクトの処理方法に関する矛盾したビジョンのために、共同作業/協力ができない結果であると思われます。

したがって、他の防御方法はコラボレーションと変更に対して開かれていますが、うまくいかず、ビジョンが異なる場合は...それがフォークして独自のプロジェクトを持つオプションの理由であることを理解してください。

ソフトウェアプロジェクトを非常に複雑なものにすることは、所有感と人気について非常に人間的で理解しやすいものです。しかし、オープンソースの目標は、それを超越し、すべての人が最高のソフトウェアを自由に利用できるようにすることです。

結論として、ライセンスを決定するときは目標を明確にし、それがプロジェクトの将来の制御と方向性に与える影響を理解してください。より良いものに寄付したいだけなら、オープンソースが道です。プロジェクトをより厳密に制御し、所有権を持ち、少なくとも誰かがプロジェクトをマーケティングしたり、プロジェクトの一部または全部を吸収しようとする場合に訴訟を起こしたい場合は、別のライセンスが必要になります。弁護士に相談してください。


35
紛らわしい言語についてのちょっとした注意:GPLの使用は商用利用を制限するのではなく、専有使用を制限します。GPLを適用したソフトウェアのコピーを利益のために販売することはまったく問題ありません。そうするときは、ライセンス条件を守る必要があります。
ベルントジェンドリセック14

5
@BerndJendrissek:理論的な観点から、あなたは正しいです。ただし、ソフトウェアのソースをバイナリとともに顧客に提供する必要があり、顧客は希望する場合は無料でソフトウェアを無料で再配布できます(そして、それを検討する人が大勢います)彼らがそうする義務)、あなたが多くの販売をする可能性はかなり少ないです。
DevSolar 14

8
@DevSolar-ソースコードは公開されており、無料で配布できますが、それはプロジェクトの他の非コードアセットがそうであるという意味ではありません。ゲームでは、メディア、マップ、スクリプトなどが異なるライセンスの下にあり、顧客がそれらを配布することは合法ではない場合があります。例については、en.wikipedia.org
wiki / List_of_open

7
@DevSolar:RMS自身がFPLの資金調達のためにGPLソフトウェアを長年販売していました。
マーティンシュレーダー14

5
多くの人々がGPLおよびその他のオープンソースコードを販売しています。Joomlaエコシステム全体がその周りに構築されているため、Drupalのようになっています(Joomlaではプラグアンドプレイに向いており、Drupalにはカスタム作業に向いていますが、いずれにせよすべてGPLが販売されています)。多くの顧客は、金融取引に伴う保証付きの請求書を持っているか、ブランドが好きです。ボトル入りの水に対して何人が支払うか見てください。
エリン14

119

MITライセンスの下でプロジェクトをリリースすると、プロジェクトをフォークする許可が人々に与えられます。フリーソフトウェアの背後にある哲学の一部は、ユーザーや開発者に、通常は許可されない方法でソフトウェアを使用、変更、およびリリースする権利を与えることです。他の人にこれを行わせたくない場合は、MITライセンスを使用しないでください。あなたが彼らに与えたライセンスの条件の下で人々がコードを使うとき、あなたは本当に文句を言うことができません。

フォークは、フリーソフトウェアコミュニティで発生するかなり普通のことです。フォークの開発者は元のプロジェクトに貢献しようとしたが、同意しなかったため、代わりに自分のプロジェクトに貢献したようです。フリーソフトウェアはこれを奨励し、開発者がソフトウェアの変更を妨げないようにします。所有者は自分の変更を好まないからです。

また、フリーソフトウェアライセンスの下で何かをリリースすることで、他の人の貢献、別のライセンスの下では受けなかったかもしれない貢献から利益を得ています。ライセンスの下で寄付を受け入れる場合は、ライセンスの条件を自分で尊重する必要があります。

公式バージョンの管理を維持する1つの方法は、商標などに依存することです。たとえば、Mozilla CorporationはFirefoxの商標を持っているため、Firefoxがオープンソースであっても、Firefoxでできることを指示することができます(これについてはIceweaselを参照してください)。

LGPLのような他のライセンスでもフォークは許可されますが、コードは開いたままにしてください。これにより、少なくともフォークからの変更を元のプロジェクトに組み込むことができ、フォークでの開発から利益を得ることができます。LGPLコードは、MITライセンスコードを使用できるため、プロジェクトをさらに制御したい場合は、代わりにLGPLを使用できます。


1
MPLを、フォークを許可する他のライセンスのリストに注目に値するエントリとして追加しますが、コードは開いたままにします。
ムカホ14

BSDライセンスがこれにどのように関係しているかについて触れていただけますか?
jpmc26 14

2
@ jpmc26-ソフトウェアライセンスは法的文書であり、私は弁護士ではないため、最終的な回答を得るには弁護士に相談する必要があります。ただし、BSDとMIT X11のライセンスはその機能が似ているという一般的なコンセンサスがあります。多くの場合、「アカデミックライセンス」と呼ばれます。
スコットホイットロック14

18

私はそれを非倫理的だとは言いません。スポーツマンらしくないと思います。フォークを決定する前に、元のバージョンを改善するために誠実な努力をするという書面ではない期待があり、原作者は誠実な努力がなされていないと感じているようです。

そうは言っても、あなたのソフトウェアが分岐するのを避ける最良の方法は、あなたのソフトウェアができるだけ広く訴求するような方法で顧客の要求に応えることです。オリジナルが優れていることを知っていれば、誰もフォークをサポートしません。それとは別に、あなたの唯一の保護は、ライセンス条項を変更することです。


14
ソフトウェアを別の方向に持って行きたい場合、つまり、現在のメンテナーに受け入れられていないが目標を改善する変更がある場合、フォークを作成することは完全に合理的です-それが一般に起こる方法です。後でライセンス条件を変更するのは、行うよりも簡単です-あなたが唯一の著者であるか、貢献したすべての人(たとえば、99%ではない)からの同意がない限り、あなたは本当にそれを行うことはできません。
ペテルス14

11
  • Xamarinのアクションとアクションの実行方法は倫理的でしたか?

多くの人々が法的および倫理的状況を混同しています。X11ライセンスは、誰もができるようになります「を使用、複製、変更、マージ、公開、配布、サブライセンス、および/またはソフトウェアの複製を販売、およびソフトウェアは、そうすることが内装された人物に許可する」ので、これは間違いなく合法であると。

しかし、倫理的にはもっと複雑です。オープンソースコミュニティでは、一般的に、フォークを作成するよりも元のソフトウェアを改善することが望ましいと考えられています。では、あなたが与えたリンク、ミゲル・デ・Icaza氏は述べています:

ご存知のように、Cocos2D-XNAに幅広く貢献しましたが、協力し続けることはできませんでした。

共同作業ができなくなった時点で、下位互換性を犠牲にしてプロジェクトを希望する方向に進めることにしました。

彼らが「一緒に協力できなかった」理由は明らかではありませんが、Xamarinは、フォークする前に元のプロジェクトで作業するために合理的な努力をしたようです。

  • あなたが独身の開発者または小さな資金のない開発者グループである場合、そのような状況を避けることは可能ですか?

法的には、ソースコードの再配布を禁止することで、分岐を許可しないライセンスを使用することを選択できます(この時点では、「フリーソフトウェア」ではありません)。もう1つのオプションは、コードを邪魔されないままにするが、画像やコード以外のテキストなどの静的アセットの再配布を許可しないことです(一部のゲームにはこのようなライセンスがあります)。

社会的に、次の方法で分岐を防ぐことができます。

  • 人々がプロジェクトの変更を簡単に投稿できるようにします。
  • パッチをすばやく確認します。
  • 直接利益をもたらさない変更を許可する。
  • 丁寧にする。驚くほど多くのフォークは、貢献者同士がお互いに仕事をする気がないためです。

ソフトウェアをフォークするのは大変な作業であり、ほとんどの正気な人は、より簡単なオプションがあればそれをしません。他に選択肢がない場合は、コードをフォークしないようにすると、他の人のコードをフォークするか、ソフトウェアを最初から書き直すように強制されます。速度が低下する可能性がありますが、実際にはあまり役に立ちません。

また、より制限の厳しいライセンスを使用すると、一部の人々が貢献する可能性が低くなります。Xamarinはどうやら「Cocos2D-XNAに広く貢献している」ようです。ライセンスで許可されていなかった場合、Xamarinはそれを行っていたとは思いません。


1
あなたは人々が法的および倫理的な状況を混同していると述べ、倫理的にはより複雑であるとさえ言いますが、それらの声明を支持する理由は与えません。言い換えれば、あなたはソフトウェアをフォークする際の倫理的合併症として何を見ますか?
NotMe 14

1
倫理よりも社会的規範だと思います。それは道徳的/不道徳ではなく、「これが物事が行われる方法」に関するものです。全体的に@BrendanLongは正しいことです。フォークは非常に多くの作業を必要とするため、ほとんどのフォークは失敗します。他の多くのフォークはクーラーヘッドが普及すると再統合され、一般に回避しようとします。
エリン14

@ChrisLively状況は本当に「複雑」です。私が答えでやろうとしていたこと、ソフトウェアをフォークすることは非倫理的である可能性があることを指摘しましたが、この場合Xamarinは正しいことをしたようです。ソフトウェアをフォークするのが非倫理的である理由は、重要なオープンソースプロジェクトを担当することで、人々にある程度の敬意と時にはお金がかかるからです(人々はプロジェクトのメンテナーからサポートを受けるのが好きです)。ソフトウェアのフォークは一般にその一部を奪いますので、あなたが責任者になりたいという理由だけでやるべきではありません。
ブレンダンロング

2
たとえば、Cocos2D-XNAは多くの開発者を失う可能性があります。Xamarinのフォークが突然多くの企業の支持を獲得し、Cocos2D-XNAがそれらを失っているからです。メンテナーが怒っているのは完全に論理的です。なぜなら、彼はオープンソースプロジェクトを作成したからです。一方、Xamarinにはそれを行う正当な理由があるようです。
ブレンダンロング

10

Xamarinが行ったことは、合法かつ倫理的です...ほとんど。

readmeにあるライセンスのコミット修正とその他のタイプミス修正について見てみましょう。

LicenseAndCredit.txt(diff)

-Copyright (c) 2010-2012 cocos2d-x.org
-
-Copyright (c) 2008-2010 Ricardo Quesada
-Copyright (c) 2011      Zynga Inc.
-Copyright (c) 2011-2012 openxlive.com
-Copyright (c) 2012      Totally Evil Entertainment, LLC
-Copyright (c) 2012      Gena Minchuk
-Copyright 2012 Xamarin Inc
+Copyright (c) The Cocos2D-XNA Team

MITライセンス全体に必要な要件は1つだけです。

上記の著作権表示およびこの許可通知は、ソフトウェアのすべてのコピーまたは大部分に含まれるものとします。

そして、Xamarinは禁止事項を正確に実行しました。Xamarinは、上部の著作権表示を少なくすることでライセンスを「きれい」にできると考えるかもしれませんが、「冗長性」を削除する許可(法的または倫理的)がありません。

もちろん、彼らがライセンスファイルを修正した場合、彼らは再び法的領域にいるでしょう。元のライブラリの作者は同意しないかもしれませんが、彼はライセンスを選択し、ライセンスが明示的に許可したことを誰にも責められません。


3
この^ 1つだけがソースに直接移動します。+1
ライアン14

25
この変更は、分岐したコードベースに由来するものではないようです。さらに重要なことは、フォークに反対したのは Cocos2D-XNAチームメンバーであり、Jacob Andersonでした。対照的に、ミゲルデイカザはフォークを行った人です何か不足していますか?または、削除を間違った人とプロジェクトに帰したのですか?
エリアケイガン14

3
2013年9月ですか?それがちょうど起こったフォークの一部である場合、私はタイミングについて混乱しています。
エリン14

9
@Elinええ、diffは赤いニシンだと思います。私が見る限り、それはXamarinの誰によっても行われておらず、フォークの前に起こっていました。私はここに悪意が関与しているとは思わないが、この投稿は確かに不正行為の虚偽の告発のように見える。
エリアケイガン14

5
-1。その変更は、分岐が発生する前にCocos2D-XNAで行われました。ここだ、同一の変更 Cocos2D-XNAでは。
デビッドハンメン14

4

厳密に調べることを選択した人に必要な通知と改訂履歴を提供することで合法性がカバーされている場合でも、フォークが出荷するコードの作者について誤った結論を人々に与えることはできません。Xamarinのプレゼンテーションは非倫理的かもしれませんが、そうではないかもしれませんが、それが判断の基礎だと思います。

ライセンスは、コードの使用許可と、コードのコピーに関連する著作権表示を含める要件を定めています。それはすべて非常に低いレベルです。誰が何を貢献したかを公に要約する方法については説明しませんが、それがライセンスの範囲外であり、法的合意の一部ではないからといって、何も倫理的になるわけではありません。倫理はさまざまですが、正当な理由がある場合に誠実なクレジットを与えることは非常に広く行われている原則であるため、そうしないと違反する理由が簡単にわかります。

皆が言うように、MITライセンスにはフォークを防ぐ意図はないので、それ自体が非倫理的ではありません。「あなた自身のものとしてリブランドする」が「あなたが受けるに値しない信用を公に主張する」ためのコードであるなら、それが真実ならば非倫理的であることを確認してください。

あなたにそれが起こるのを防ぐことに関して:あなたのコードが彼らのものであるとほのめかす他の誰かの状況を避けたいならば、あなたは信用を主張するとき大きな声が必要です。誰かがあなたのコードのフォークを作成して、最終的にあなたのオリジナルよりも人気があるかもしれない状況を回避したい場合(リソースが多いか、「正しい」ユーザーのニーズに焦点を合わせているため) OSSの幸運。別のグループがあなたが望むものとは異なる機能をソフトウェアに必要とする場合、あなたが間違っている場合、最初にそこにいるかどうかにかかわらず失うべきである場合、あなたは正しいと決めることはできません。これは、作成者がソフトウェアを制御せず、それを実行する人々が制御するという、主要なオープンソースの原則(または適切にフリーソフトウェアの原則)の結果です。


2

商標のトピックの拡大:

Apache Software Foundationでは、すべてのコードはALです。そして、ここで議論されているBSDライセンスと同様に、ALがフォークを許可していることは完全に明らかです。期間。議論の終わり。実際、他の回答で説明したように、すべての 真のオープンソースライセンスではフォークが許可されています。彼らが制御するのは、フォークされたコードのライセンス/使用法だけです。

Apache Foundationは、商標の登録と保護を選択しています。基礎プロジェクト以外のエンティティが「Apache Tomcat」と分岐した場合、それらは問題ありません ... しかし、Apache Tomcatと呼ぶことはできず、マークを守ることができる場合、Tomcatと呼ぶことはできません。

ここでの問題は、商標が心の弱い人向けではないということです。法的構造も資金も持たない少数の人々のグループである場合、実際には商標法を使用して名前を保護することはできません。

最後に、この種のことが、さまざまな基盤が存在する理由の1つです。

倫理的な見地から、まあ、貢献者間に内部分裂がある場合、誰が名前を保持するのに「ふさわしい」と言うのでしょうか?一方、部外者が分岐する場合、名前を変更しないままにしておくのは、おそらく世界で最も倫理的なことではありません。それは凶悪な行為でもありません。

Githubはフォークいっぱいです。特にMavenセントラルに公開する場合は、名前やJavaパッケージなどを変更することがあります。多くの場合、そうではなく、ユーザーは混乱の迷路を進んでいます。それは理想的ではありませんが、それは無秩序の破壊です。

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