开放源代码软件转变为封闭源代码软件有哪些影响?


16

如果公司采用许可许可的开放源代码应用程序,然后通过重新设计应用程序的广泛部分,添加新功能并应用错误修复程序,从中开发封闭源代码应用程序...

忽略任何许可证要求...

  • 过渡是如何发生的,可以采取什么措施防止过渡,而不仅仅是选择不同的许可证?
  • 公司的(道德或社会)责任是什么?(例如:回馈开源项目将是道德上要做的事情)
  • 如果开放源代码版本和封闭源代码版本均可用,那么竞争对这两种产品有何影响?

过去是否有成功或失败的公司或产品的实例?社区对这些项目的态度是什么?


2
我认为.NET反射器可能是一个很好的例子。
l46kok

2
@ l46kok我不赞成您的评论,因为Reflector从来不是开源的,就像啤酒一样免费。
马克·赫德

Answers:


14

重要的是要注意,这种情况可能以合法和非法形式发生。

如果公司拥有或有权获得与代码关联的版权,则可能会合法发生。例如,较小的独立开发团队可能希望将其版权出售或许可给较大的公司。同样,如果可以获取大部分代码的版权,则可以简单地将“无法获得的”部分扔掉并重写。

在硬币的另一面,可以简单地非法获取该代码。New Corp,Inc.可能不在乎法律后果是什么。该项目可能太旧或被放弃,或者新公司认为他们将在诉讼中胜诉。或者,新公司可能会在根本没有将这种“收购”定义为非法的地区进行注册。并非所有OSS许可证都是可执行的,尤其是不是由法律非专家拼凑而成的许可证。并非所有的项目所有者都有能力执行其版权主张,并且诸如FSF之类的大型组织可能对该主张不具有该管辖权。TL; DR-这个区域可能很快变得朦胧而丑陋。

过渡与预防

过渡是如何发生的,可以采取什么措施防止过渡,而不仅仅是选择不同的许可证?

当New Corp,Inc.获取代码库并将其副本置于其控制之下时,就会发生过渡。然后,新公司的开发人员开始研究他们的代码库版本,以进行公司霸主要求进行的任何更改。此fork的实际机制将根据存储库而有所不同。尽管这是一个哲学上的大问题,但实际上在实践中它确实让人难以理解。 get all从OpenRepos,然后checkin到PrivateRepos。

除了从不分发源代码之外,还可以采取哪些措施来防止这种情况发生?没有。抱歉。

让我们以GPL(GNU公共许可证)为例。GPL要求任何获得该项目合法副本的人都可以使用源。有没有规定,允许源的持有人拒绝源交付的应用GPL授权的副本的合法持有。它与Free软件背道而驰,这就是为什么使用GPL copyleft的原因。

潜在地,您需要采取事后法律行动。但是这些都是在源逃脱并被分叉之后,而不是之前。在某些司法管辖区,您将没有任何法律追索权。所有这一切都假设您甚至知道发生了分叉。您可能永远找不到。

伦理

公司的(道德或社会)责任是什么?(例如:回馈开源项目将是道德上要做的事情)

道德是文化的本色。因此,用那粒盐磨碎此部分。关于道德的文化考虑的完整讨论超出了此答案的范围,对程序员来说是不合时宜的。

我注意到编程社区倾向于对敌对的分叉做出消极反应。哎呀,在某些情况下,同一社区仍然会对友好和合法的分叉做出消极反应。这是一个非常复杂的社区。

从FOSS的角度来看,人们期望New Corp将“偿还”社区为其分叉的贡献。偿还的条款,条件和期限随现有OSS项目的数量而变化。社区中的某些人(认为Richard Stallman)永远不会满足于关闭的开放项目。其他人将寻求为整个社区提供的利益,并据此做出判断。而其他人则根本不在乎,因为他们从不了解或关心原始项目。

来源可用性

如果开放源代码版本和封闭源代码版本均可用,那么竞争对这两种产品有何影响?

这实际上取决于两个代码库在功能,性能和稳定性方面的可比性。

如果代码库保持相似,并且New Corp对OSS社区友好,则它们可以将其更新贡献回基础项目中。在这种情况下,每个人都会受益。在这种情况下,这不是“竞争”,而是更多的互利合作。

如果代码基础大相径庭,而New Corp对OSS社区不友好,那么仍然没有竞争。功能丰富的产品可以生存,而功能较少的产品往往会消失。请注意,这可以采用任何一种方式-如果开放源代码版本继续创新或更好地满足社区需求,则封闭版本可能会消失。

现实将介于频谱的两端之间。

红帽有两个主要发行版本-Enterprise Linux和Fedora。EL是其“封闭式”许可版本,而Fedora是其社区版本。由于GPL的缘故,很多(甚至不是全部)EL版本都以源代码形式发布。与Red Hat无关的另一个名为CentOS的项目负责对EL的更改,并在进行一些较小的品牌重塑后将其分发。

当Red Hat分叉成两个单独的版本时,有些抱怨,但总的来说,这是一个相当可行的协议。Fedora社区希望功能比Red Hat企业客户满意的速度更快地发布到发行版中。对代码库的增强是双向的。


1
@GlenH7 涵盖技术和法律方面的好答案:)
hagubear 2013年

1
不要忘记,一个人很可能会接管一个代码库,并且不知道隐藏在几百万行代码,数百个poms,ant文件,makefile等中的某个隐藏于深处的开源库的链接。这是一个间接链接。我们曾经发生过这种情况,并且度过了一段痛苦的时光,以删除受影响的代码并将其替换为我们可以分发的代码。
jwenting

4

假设一切合法,并且在过程开始之前,我们正在谈论一种具有开放原始码许可的产品:

过渡如何发生...

基本上,该公司使用非开源许可证发行了该软件的新版本。

除了选择不同的许可证,还有什么可以防止的呢?

总的来说没有。可以防止(或延迟)版权保护的唯一情况是有多个版权拥有者,其中一些人反对重新许可。但是如果公司是认真的,他们可以决定通过重写代码库的相关部分等来解决该问题。

试图在事实之前施加“道德压力”可能不太可能。该公司很可能在没有事先通知的情况下进行此类操作。

话虽这么说,但在一些例子中,试图“回退”开源的努力反而对公司造成了反作用。考虑一下OpenOffice,Hudson和MySQL的情况,其中Oracle的行为导致了分叉,开发人员社区的大量外流以及(面向对象和MySQL的)发行版越来越多地倾销原始产品以支持分叉(LibreOffice和MariaDB) )。

公司的(道德或社会)责任是什么?

坦率地说(有点愤世嫉俗),您和我认为公司应承担的道德和社会责任与您无关。

从法律角度来看,公司董事和高管的唯一责任是:1)为股东/所有者带来最大价值; 2)确保遵守法律。您可能会争辩说,作为个人,这些人有社会和道德责任,但是...不幸的是,其中许多人会不同意。

但是无论哪种方式,道德和社会责任只有在切实意义上才有意义,前提是公司及其管理人员必须认真对待并承担责任。

如果开放源代码版本和封闭源代码版本均可用,那么竞争对这两种产品有何影响?

我认为没有答案。这要视情况而定。


过去是否有成功或失败的公司或产品的实例?社区对这些项目的态度是什么?

是的,有例子。只需在Google中使用“关闭源”一词,然后应用Bogosity过滤器即可。阅读(非虚假的)热门歌曲会给您一种社区态度的感觉,如果您进一步研究产品/公司,则可以下定决心是否成功。(我不会为您这样做,因为“成功”是一项价值判断。)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.