正如最近在这里报道的那样:


Xamarin分叉了Cocos2D-XNA,一个2D / 3D游戏开发框架,
创建了可以包含在PCL中的跨平台库
/>项目。


但是,分叉的项目的创建者说:


MIT许可证的目的是不妨碍您的展览会采用。并非要
鼓励您购买软件,将其重新命名为自己的软件,然后按照您所说的那样“以新的方向采用
”。

虽然不违法,但这是不道德。


似乎新项目的GitHub页面甚至没有以典型的GitHub方式表明它是一个分支,而是选择了一个易于删除的“历史记录”部分(请参见底部)。

所以我的问题是:


Xamarin的行为以及该行为的执行方式是否符合道德?
是否有可能如果您是一个单一的开发人员或一小组没有资金的开发人员,请避免这种情况?

我希望这可能是一个wiki问题,或者会有一些基于现代的客观答案OSS伦理/哲学。

评论

这几乎正​​是GNU GPL的目的,它迫使分叉在发布它们时允许您将其更改合并回去,从而为您提供所做的改进以及您自己的改进。

MIT许可证最初是为X Window系统编写的,旨在允许公司分叉该许可证并将其包含在其销售的专有产品中。

@Vality:就反向合并而言,是否已获得GPL或MIT许可并不重要,并且GPL附带有自己的钉子。

“获得MIT许可证的目的是限制您的合理使用。而不是鼓励您购买软件,将其重新命名为自己的软件,然后如您所说的那样“朝新的方向发展”。” –嗯,这实际上就是它的用途。没有“ MIT许可证”之类的东西。麻省理工学院使用许多不同的许可证。有问题的许可证是MIT X11许可证,该许可证是专门为Unix供应商而设计的,以便Unix供应商可以将MIT X11集成到其Unices中,对其重命名,重写并以他们喜欢的任何方向使用。

ØMQ指南非常有趣地讲述了这种情况。要点:“ BSD使大多数人将我们视为午餐。封闭的资源使大多数人将我们视为敌人(您愿意为软件付费吗?)但是,GPL使得大多数人(世界上的Patricks除外),我们的盟友。“

#1 楼


Xamarin的行为和行为的执行方式是否符合道德?


好吧,让我们问一个专家-The Open Source Initiative列出了MIT许可证本身,以及许可证全文引用:


MIT许可证(MIT)

版权所有(c)

特此授予免费许可负责获取
本软件和相关文档文件(简称“软件”)副本的任何人,以不受限制地使用本软件,包括但不限于使用权,复制,修改,合并,发布,
分发,再许可和/或出售本软件的副本,并
准许配备本软件的人员这样做,但须遵守
满足以下条件:

上述版权声明和本许可声明应
包含在本软件的所有副本或主要部分中。

该软件提供”保持原样”,而没有WARRA任何形式的明示或暗示的担保,包括但不限于
适销性,特定目的的适用性和非侵权性的担保。
在任何情况下,作者或版权所有者概不负责。对于任何契约,侵权或其他形式的索赔,损害或其他责任,是由于,与软件有关,与软件有关的使用或其他使用而引起的,或与之有关的任何
该软件。


如果任何人(个人或公司)以MIT许可发布软件/源代码,则意味着其他任何人(个人或公司)都可以“不受限制地处理软件” 。只要版权声明保持原样,他们就可以按照自己的意愿做。

这是道德和合法性几乎完全相同的情况之一。如果某个人或团体不了解许可证或其含义,则他们将无法进行尽职调查。开源计划提供了许多其他不错的资源,以帮助我们了解MIT变体之类的许可证。让我们看一下其开放源代码定义中的一些条款:1)免费重新分发-许可证不得限制任何一方出售或赠送作为整体组件的软件
包含来自多个不同来源的程序的软件分发。



3)衍生作品-许可必须允许修改和衍生作品,并且必须允许在相同的许可下进行分发。
原始软件的许可条款。

5)不得歧视任何人或团体-许可不得歧视任何人或团体。

6)不得歧视任何领域-许可证不得限制任何人在特定领域内使用该程序。例如,它可能不会限制该程序在企业中的使用或在遗传研究中的应用。


在我看来,这似乎很清楚:发布开源的东西,特别是获得MIT许可的东西,允许某人自由获取软件,对其进行更改,打包并将其出售给几乎任何他们喜欢的人,只要他们不删除您的版权声明并声明对

作为作者,您明确地放弃了挑剔和挑剔的权利。您不必决定谁或什么可以从您的软件中受益或使用它,也不可以确定他们为什么使用该软件。您明确放弃了该权利。

这个想法是,您通过显式放弃您必须控制,限制使用和更改您的作品的任何合法权利,为更大的财富做出贡献。如果Microsoft希望分叉您的FluffBall项目并以WindowsSpongeCake的价格将其以每席位$ 2k的价格出售,则可以。首先,不是让人们做他们想要做的事情吗?


如果您是一个开发人员或没有资金的小公司,是否有可能避免这种情况组开发人员?


种类多!首先,使用适合您以及您组织的目标和愿望的许可证。如果您不希望任何人以不赞成的方式使用它,则可能不应该将其作为开放源代码发布-坦率地说,您可能根本不应该发布它!如果您不希望任何人在商业项目中使用派生作品(例如分叉),则应该选择GPL的Copyleft版本。如果您想要非商业性许可证,则可能应该请版权/许可律师为您提供建议,因为它通常根本不被视为“开源”软件,并且没有任何主要的预先书面许可来支持这种情况。 >
Xamarin和Coco kerfuffle的问题不是道德或合法性问题,而是几个互相吃牛肉的人之间的互联网斗争。我们都是人类,它发生了。这似乎是无法合作/合作的结果,可能是由于人格冲突或对项目处理方式的看法不一致。

因此,另一种防御方式是开放合作和变化,但要明白,如果无法解决问题并且愿景分歧……那是选择分叉并拥有自己的独立项目的原因。
拥有所有权和受欢迎度的感觉非常人性化,可以使软件项目变得非常非常复杂。但是开放源代码的目标是尝试超越这一标准,并允许所有人免费使用最好的软件。它对您未来的控制和项目方向的影响。如果您只是想捐赠更大的利益,那么开源是您的不二之选。如果您想更严格地控​​制您的项目并拥有所有权,并且如果有人试图推销您的项目或将其吸收到自己的(部分或全部)项目中,至少有法律诉讼,您将需要不同的许可证,并且可能需要和律师一起整理。

评论


关于混淆性语言的提法:使用GPL不会限制商业用途,而是专有用途。出售GPLed软件副本以获利是完全可以的。您只需要遵守许可条件即可。

– Bernd Jendrissek
2014年8月20日在22:45

@BerndJendrissek:从理论上讲,您是对的。但是由于您需要将软件的源代码与二进制文件一起提供给客户,并且客户可以自由地免费分发您的软件(如果他愿意的话,并且那里有很多人会考虑使用它)这样做的责任),那么您赚很多钱的机会就很小。

–DevSolar
2014年8月21日在7:09



@DevSolar-尽管源代码是开放的,并且可以免费分发,但这并不意味着该项目的其他非代码资产也存在。对于游戏,媒体,地图,脚本等可能具有不同的许可,并且客户分发它们可能不合法。有关示例,请参见en.wikipedia.org/wiki/List_of_open-source_video_games

– corvec
2014年8月21日在17:56



@DevSolar:RMS自己出售了GPL软件多年,以资助FSF。

–马丁·施罗德(MartinSchröder)
2014年8月21日在23:21

许多人出售GPL和其他开放源代码。整个Joomla生态系统都是基于此构建的,Drupal的生态系统也是基于此构建的(在Joomla中,更多的是即插即用,对于Drupal的更多是用于自定义工作,但无论哪种方式,都出售GPL)。许多客户喜欢开具财务交易担保书的发票,或者喜欢品牌。看看有多少人为瓶装水付费。

–艾琳
2014年8月22日,0:47

#2 楼

根据麻省理工学院(MIT)许可发布项目将使人们有能力分叉该项目。自由软件背后的部分哲学是授予用户和开发人员使用通常不允许的方式使用,修改和发布软件的权利。如果您不希望人们这样做,请不要使用MIT许可证。当人们按照您授予的许可条款使用代码时,您就不会真正抱怨。

在自由软件社区中,分叉是很正常的事情。看起来fork的开发人员试图为原始项目做出贡献,但不同意,因此他们为自己的项目做出了贡献。自由软件鼓励这样做,这样就不会阻止开发人员修改软件,因为所有者不喜欢他们的更改。

此外,通过在自由软件许可下发布某些内容,您将从他人的贡献中受益,如果您使用其他许可,则可能未收到您的捐款。如果您接受许可下的捐赠,则应该自己遵守许可条款。

保持对正式版本的控制权的一种方法是依靠商标之类的东西。例如,Mozilla Corporation在Firefox上拥有一个商标,即使它是开源的,也允许他们指示人们可以使用Firefox做些什么(有关分叉的信息,请参见Iceweasel)。

LGPL等其他许可仍允许分叉,但请保持代码开放。这样,您至少可以将分支中的所有更改合并到原始项目中,并从分支中的开发中受益。 LGPL代码可以使用任何MIT许可的代码,因此,如果您想对项目进行更多控制,可以改用LGPL。

评论


我会将MPL作为值得关注的条目添加到仍然允许派生但仍保持代码打开状态的其他许可证列表中。

–穆卡霍
14年8月22日在1:03

您能谈谈BSD许可证与此相关吗?

– jpmc26
2014年8月24日9:58



@ jpmc26-软件许可证是法律文件,我不是律师,因此,要想确定性的答案,您需要咨询律师。但是,普遍的共识是BSD和MIT X11许可证的功能相似。它们通常被称为“学术许可证”。

–斯科特·惠特洛克
14年8月25日在11:05

#3 楼

我不会认为这是不道德的。我会称其为非运动型。有一个不成文的期望,您会在决定分叉之前做出真诚的努力来改进原始版本,并且似乎原始作者感到没有做出真诚的努力。

话虽如此,避免软件分叉的最佳方法是响应客户的要求,以使您的软件具有尽可能广泛的吸引力。如果他们知道原版是优等品,谁也不会提供支持。除此之外,您唯一的保护就是更改许可条款。

评论


如果您想以不同的方向使用该软件,即,如果有一些更改可以改善您的目标,但当前维护者不接受,那么进行分叉是完全合理的-这通常是这样的。事后更改许可条款说起来容易做起来难-除非您是唯一的作者,或者得到贡献的所有人(不是说99%)的同意,否则您将无法做到这一点。

– Peteris
2014年8月21日在6:54

#4 楼



Xamarin的行为和行为的执行方式是否符合道德?


很多人正在混淆法律和道德状况。 X11许可允许任何人“使用,复制,修改,合并,发布,
,分发,再许可和/或出售本软件的副本,并
允许具有本软件资格的人来做所以”,所以这绝对是合法的。
虽然从伦理上讲,它更复杂。在开源社区中,通常认为对原始软件进行改进而不是创建分支。在您给的链接中,Miguel de Icaza说:

您知道,我们为Cocos2D-XNA做出了广泛的贡献,我们无法继续合作。
我们无法一起合作,所以我决定按照我希望的方向进行该项目,但要以向后兼容性为代价。

不清楚他们为什么“不能一起合作”,但是听起来像Xamarin在决定分叉原始项目之前,已经做出了合理的努力。


如果您是一个开发人员,或者是一小群没有资金的开发人员,是否有可能避免这种情况?

合法地,您可以选择使用不允许分支的许可证,方法是禁止重新分发源代码(此时,它不是“自由软件”)。另一种选择是保留代码不受阻碍,但不允许重新分配静态资产,例如图像或非代码文本(某些游戏具有这样的许可证)。
从社会上讲,您可以通过以下方式防止叉枝:

使人们可以轻松地对您的项目进行更改。
快速查看补丁。
允许所做的更改不会直接给您带来好处。
要礼貌。由于贡献者不再愿意彼此合作,因此出现了数量惊人的分叉。

分叉软件需要大量工作,如果有更简单的选择,大多数理智的人都不会这样做。如果他们别无选择,那么阻止他们分叉您的代码只会迫使他们分叉别人的代码或从头开始重写您的软件。这样做可能会使速度变慢,但实际上并不能为您带来很大帮助。
此外,使用限制性更强的许可证将使某些人做出贡献的可能性降低。 Xamarin显然“广泛地为Cocos2D-XNA做出了贡献”,我怀疑如果许可证不允许他们重新分发,他们是否会这样做。

评论


您指出人们正在混淆法律和道德状况,甚至说道德上这比较复杂,但是您没有给出任何理由来支持这些声明。换句话说,您在分叉该软件时看到什么道德上的复杂性?

–NotMe
14年8月21日在23:00

我认为这比道德更重要的是社会规范。这与道德/不道德无关,而在于“这是事情的完成方式”。总的来说,@ BrendanLong是对的,因为前叉的工作量很疯狂,这就是为什么大多数前叉会失效的原因,当其他人用凉爽的头盛行时,很多前叉最终会重新出现,并且人们通常会尽量避免使用它们。

–艾琳
2014年8月22日,0:53

@ChrisLively情况确实“复杂”。我试图在答案中指出的是,分叉某个软件可能是不道德的,但是听起来Xamarin在这种情况下做对了。分叉软件可能不合道德的原因是,负责一个重要的开源项目会给人们带来一定程度的尊重,有时甚至是金钱(人们倾向于喜欢从项目维护者那里获得支持)。分叉软件通常会带走其中的一部分,不应仅仅因为您想成为负责人而完成。

–布伦丹·朗(Brendan Long)
2014年8月22日14:19

例如,Cocos2D-XNA可能会失去很多开发人员,因为Xamarin的分支突然得到了很多公司的支持,而Cocos2D-XNA却失去了他们的支持。维护者生气是完全合乎逻辑的,因为他创建了一个开放源代码项目,在这一点上可能是死胡同。另一方面,Xamarin似乎有充分的理由这样做。

–布伦丹·朗(Brendan Long)
2014年8月22日14:26

#5 楼

Xamarin所做的事情是合法和符合道德的...几乎。

让我们看一下自述文件中许可证的提交修复和其他错字修复:

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许可证只有一项要求:


上述版权声明和本许可声明应当包含在本软件的所有副本或重要部分中。


Xamarin确实做了禁止的事情。 Xamarin可能认为它会使许可证“更漂亮”,从而使顶部的版权声明减少,但他们没有(法律或道德上的)许可删除“冗余”。

当然,如果他们修复了许可证文件,它们将再次位于法律区域。原始图书馆的作者可能不同意,但是他选择了许可证,并且不能责怪任何人他们做了许可证明确允许的事情。

评论


这个^只有一个直接去源头。 +1

–瑞安
2014年8月21日在23:34

这种变化似乎并不是源于分叉的代码库。更重要的是,它是由Cocos2D-XNA团队成员Jacob Anderson反对的。相反,Miguel de Icaza是进行分叉的人。我想念什么吗?还是您将清除工作归因于错误的人员和项目?

– Eliah Kagan
14年8月22日在0:48

那是2013年9月?我对时间安排感到困惑,如果那只是刚刚发生的叉子的一部分。

–艾琳
14年8月22日在1:04

@Elin是的,我认为diff是个红鲱鱼。据我所知,它不是Xamarin的任何人做的,它发生在分叉之前。我认为这里不存在任何恶意行为,但是这篇文章显然是对不当行为的错误指控。

– Eliah Kagan
2014年8月22日在1:08



-1。在发生分叉之前,该更改是在Cocos2D-XNA中进行的。这是Cocos2D-XNA中的相同更改。

–David Hammen
2014年8月23日11:00



#6 楼

即使人们通过为选择仔细查看的任何人提供必要的注意事项和修订历史记录来涵盖合法性,也允许人们对叉子所附带的任何代码的作者得出错误的结论,这是可耻的。因此,也许Xamarin的演示文稿是不道德的,也许不是,但我认为这是判断它的依据:它会误导吗?

许可证规定了使用该代码的许可以及对在代码副本中包含相关的版权声明。这只是一个很低的水平。它没有讨论您应该如何公开总结谁贡献了什么,而仅仅是因为这超出了许可的范围,而不是法律协议的一部分,并不意味着任何事情都会符合道德。道德各不相同,但是诚实信用应有的信条是一个普遍持有的原则,因此很容易理解为什么不这样做将构成犯罪。

就像每个人都说MIT许可证中无意防止分叉,所以这并不是不道德的。如果“将其重命名为自己的商标”是“公开您不应该得到的信用主张”的代码,那么请确保这是不道德的。

为防止这种情况发生在您身上:您想避免别人暗示您的代码是他们的代码的情况,那么在申请信用时就需要大声疾呼。如果您想避免有人创建代码分支的情况,最终可能会证明它们比原始代码更受欢迎(要么由于他们的资源更多,要么只是因为他们专注于“正确的”用户需求),那么我认为您不满意OSS的运气。如果另一个团队想要从软件中获得与您想要的软件不同的功能,您就不能决定是正确的;如果(在用户看来)您错了,那么无论您先出现在哪里,都应该输掉。这是主要的开放源代码原则(或正确的说,免费软件原则)的结果,即作者不控制软件,运行该软件的人则控制。

#7 楼

商标主题的扩展:

在Apache Software Foundation,所有代码均为AL。而且,就像这里讨论的BSD许可证一样,很显然AL允许分叉。期。讨论完毕。实际上,正如在其他答案中所讨论的那样,所有真正的开源许可证都允许分叉。它们所控制的只是分叉代码的许可/使用。

Apache基金会选择注册和保护商标。如果除基础项目以外的某个实体派生了,哦,“ Apache Tomcat”,它们很好...但是他们不能称其为Apache Tomcat,并且当我们可以捍卫商标时,他们也不能称其为Tomcat。

这里的问题是商标不适合胆小的人。如果您是一小群人,没有法律架构,也没有资金,实际上您将无法使用商标法来保护自己的名字。

最后,这种事情是其中之一。

从伦理的角度出发,那么,如果捐助者之间存在内部裂变,谁会说谁“应该”保留这个名字呢?另一方面,如果一个局外人分叉,保持名称不变可能不是世界上最道德的事情。这也不是一个令人发指的行为。

Github到处都是叉子。有时人们确实更改了名称,Java包或其他内容,特别是如果他们想发布到Maven Central。他们常常不这样做,而用户却迷失在迷宫中。这并不理想,但这就是无政府状态的破坏。