你如何避免被遗忘?

这个问答是每周发布的一系列帖子的一部分,这些帖子强调了技术爱好者遇到的常见问题,并由100多个问答站点组成的免费社区网络Stack Exchange的用户回答。den问:

正如最近报道的那样, Xamarin已经将2D / 3D游戏开发框架cocos 2D - XNA分叉,创建了一个可以包含在PCL项目中的跨平台库。

然而,分叉项目的创建者说:

麻省理工学院许可证的目的是取消对你的合理使用的限制。不鼓励你拿软件,把它重新命名为你自己的,然后按照你所说的把它带向一个新的方向。虽然不是非法的,但却是不道德的。

新项目的GitHub页面似乎甚至没有以典型的GitHub方式指示它是一个分叉,而是选择了易于移除的历史部分(见底部)。

所以我的问题是:

Xamarin的行为和行为方式是否合乎道德?如果你是一个开发人员或者是一小群没有资金的开发人员,有可能避免这种情况吗?请看这里完整的原始问题和所有答案。

fgb回答( 107票) :

根据麻省理工学院的许可证发布一个项目,就是给人们分配项目的许可。自由软件背后的部分理念是给予用户和开发人员以通常不允许的方式使用、修改和发布软件的权利。如果你不想让人们这样做,那么就不要使用麻省理工学院的许可证。当人们根据你给他们的许可证条款使用代码时,你不能真的抱怨。

福克斯在自由软件社区中是相当正常的事情。看起来fork的开发人员试图对原始项目做出贡献,但并不同意,所以他们反而对自己的项目做出了贡献。自由软件鼓励这样做,这样开发者就不会因为所有者不喜欢他们的改变而被阻止修改软件。

此外,通过发布自由软件许可下的某些内容,您可以从其他人的贡献中获益,如果它是在不同的许可下,您可能不会收到这些贡献。如果你接受许可证下的捐款,你应该自己尊重许可证的条款。

保持对官方版本控制的一种方式是依赖商标之类的东西。例如,Mozilla Corporation在Firefox上有一个商标,允许他们规定人们可以用Firefox做什么,即使它是开源的(参见icesulefort )。

LGPL等其他许可证仍允许使用fooks,但代码保持开放。这样,您至少可以将来自fork的任何更改合并到原始项目中,并从fork上的开发中受益。LGPL代码可以使用任何麻省理工学院的许可代码,所以如果你想要更多的项目控制权,你可以使用LGPL。

相关: 如果替换所有衍生部件,我可以重新许可我的程序吗?

BrianDHall回答( 50票) :

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

那么,让我们请一位专家——开源倡议的MIT许可证清单本身,以及完整引用的许可证:

MIT许可证( MIT )

版权( c )

特此免费授予获得本软件副本和相关文档文件(软件)的任何人,不受限制地处理本软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售本软件副本的权利,以及

软件按原样提供,没有任何明示或暗示的担保,包括但不限于适销性、特定用途适用性和不侵权性的担保。在任何情况下,作者或版权持有人都不对因本软件或本软件的使用或其他交易而产生的任何索赔、损害赔偿或其他责任负责,无论是在合同诉讼、侵权诉讼还是其他诉讼中。

如果任何人(个人或公司)使用MIT许可证发布软件/源代码,这意味着任何人(个人或公司)都可以不受限制地处理软件。只要版权声明保持机智,他们几乎可以随心所欲。

这是道德和合法性几乎完全相同的案例之一。如果一个人或团体不理解许可证或它的含义,那么他们就没有尽职调查。开源计划提供了许多其他好的资源来帮助我们了解李岑ses喜欢麻省理工的变种。让我们看看他们开源定义中的几个条款:

免费重新分发-许可证不得限制任何一方将软件作为包含来自多个不同来源的程序的聚合软件分发的一部分来销售或分发。许可证不要求特许权使用费或其他销售费用。衍生作品-许可证必须允许修改和衍生作品,并且必须允许它们按照与原始软件许可证相同的条款分发。不得歧视个人或群体——许可证不得歧视任何个人或群体。不得歧视工作领域-许可证不得限制任何人在特定工作领域使用程序。例如,它可能不会限制程序在企业中使用,也不会限制程序用于基因研究。在我看来,这一点非常清楚:以开放源代码的形式发布某些东西,尤其是MIT许可证,允许人们自由地使用软件,更改软件,打包软件,并出售几乎他们喜欢的任何东西,只要他们不删除您的版权声明并声称它是他们自己的作品。

作为作者,你明确放弃了挑剔和挑剔的权利。你无法决定谁或什么可以从你的软件中受益或使用它,也无法决定他们为什么使用它。你明确放弃了这个权利。

这个想法是,你明确放弃你必须控制和限制使用和改变你所做的一切的任何合法权利,从而为更大的利益做出贡献。如果微软想把你的flufball项目分出来,以每张2k美元的价格卖给WindowsSpongeCake,他们可以。一开始不是让人们做他们想做的事情吗?

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

有点!首先,使用适合您和您的组织目标和愿望的许可证。如果你不想让任何人以你不赞成的方式使用它,你可能不应该把它作为开源发布——坦率地说,你也许根本不应该发布它!如果你不想让任何人在商业项目上使用衍生作品(如叉子),你可能应该去[复制左版的GPL ] [ 2 ]。如果你想要一个非商业许可,你可能应该得到版权/许可律师的建议,因为这通常根本不被认为是开源软件,也没有任何主要的预写许可来支持这种情况。Xamarin和Coco kerfuffle的问题不是道德或合法性的问题,而是几个彼此有分歧的人之间的网络冲突。我们都是人,这是常有的事。这似乎是由于无法协作/合作的结果,可能是由于个性冲突或对项目应该如何处理的不一致看法。

所以另一种防御方式是开放的协作和改变,但是要理解,如果它不能奏效,并且愿景会出现分歧...那么,这就是选择分叉并拥有自己独立项目的原因。

让软件项目变得非常非常复杂,这是非常人性化的,也是对所有权和流行感的理解。但是开源的目标是试图超越这一点,让最好的软件可以免费提供给所有人。

底线是,当你决定一个许可证时,要清楚你的目标,并理解它对你未来项目控制和方向的影响。如果你只想为更大的善举捐款,开源是一条出路。如果你想更严格地控制你的项目,如果有人试图推销你的项目或把它吸收到自己的项目中(部分或全部),你需要一个不同的许可证,可能需要和律师解决。

查看原始帖子。在程序员处看到更多这样的问答,这是一个专业程序员对软件开发概念问题感兴趣的问答网站。如果您有自己的编程问题需要解决,请登录程序员并提出问题(免费)。

Copyright © 2017 pk10冠军四码规律计划 版权所有