这个代码属于什么代码,怎么用?
其次,我猜你问的主要是_ _ license _ =' gplv3 '。GPL V3是一个开源协议。其实就是GPL协议第三版,这里标注的,也是这个代码的协议类型。如果后代使用,这个代码也必须遵守GPL V3协议。关于这个协议的细节,因为百度不允许发链接,所以我抄了网文:
在过去的十年中,软件开发实践中最惊人的变化之一是“复合”软件系统的构建——一种自产、开源和第三方组件的组合,它使开发团队能够快速交付先进和全面的解决方案。然而,对开源和第三方组件的不规范使用增加了风险。这种方法很可能侵犯知识产权,产生未知的特许经营义务,增加维护成本,引入未经确认的安全漏洞。
在本文中,我将介绍由创建复合软件系统引起的复杂性问题的背景,并解释通用公共许可证(GPLv3)的最新版本如何在许多重要领域影响开发治理。
背景
开源软件是一种优秀的资源,因为它允许开发人员重用现有代码来满足特定需求,而不是从头开始编写新软件。还有一个额外的好处是,能够满足用户和开发人员需求的开源组件将继续生存,随着时间的推移,现有代码将被许多不同的人不断审查和改进。渐渐地,开发出来的软件会进化成更少bug,更有用,更健壮。
许多开源项目中都开发了开源代码。在我写这篇文章的时候,有超过180000个独立的开源项目(虽然不是所有的都是活跃的),并且每天都有更多的开源项目产生。根据定义,开源代码是* * *,因此,开源项目一般存储在可公开访问的Web上(虽然最初代码是* * *通过磁带和公告板系统共享的,有时也可以从其他来源获得,如书籍)。许多网站都有开源项目。我的公司,黑鸭软件,已经确定了超过3000个下载网站,其中包含超过4.85亿个开源文件。
自2006年6月5438+10月以来,开源软件许可领域最大的争论就是围绕GNU通用公共许可证(GPL) v3的制定。1991发布的GPLv2是监管开源代码最知名、应用最广泛的许可证之一。它用于Linux内核和许多其他广泛使用的开源项目。在全球范围内,GPLv2已经影响了成千上万的公司及其应用程序开发团队,他们将GPL规范的代码视为其产品的一部分。GPL的基本权利和利益是任何人都可以使用、修改和重新发布许可证规定的代码。同意1)任何分发副本都包含许可证的副本,2)衍生产品的所有源代码都可以免费获得。
版本3如何扩展GPL的应用范围?
经过几个月的制定,GNU通用公共许可证版本3 (GPLv3)于2007年6月29日由FSF自由软件基金会正式发布。GPLv3的术语类似于GPLv2,但它扩展了GPL的应用范围,甚至深入到专利和数字版权管理等领域。GPLv3包含在四个关键方面影响软件开发的条款(互利、数字版权管理、专利和许可证兼容性)。以下是这些术语的简要概述:
互惠权益(衍生产品)
像GPLv2一样,GPLv3是一个互惠许可证。这意味着,如果一个应用程序添加了GPL管制的代码,或者使用了“基于GPL管制代码的产品”,并且产生的应用程序用于分发,那么它必须在GPL下分发。GPL本身规定,任何分发副本都必须包括其源代码和GPL许可证副本。多年来,在软件的前提下,关于“基于的产品”或“衍生产品”这两个术语的含义一直有相当大的争议。例如,自由软件基金会认为动态链接文件也会产生衍生产品。所以在他们的世界观里,即使你把自己的专有代码链接到一个由GPL或者其他* * *库监管的. DLL文件,也要强制公开发布源代码。这种解释无疑使开发组织对使用GPL许可的代码作为开发过程的一部分持谨慎态度。
GPLv3增加了衍生品构成问题的透明度。例如,GPLv3规定,如果一个程序是“专门设计”来使用GPL管理的库,那么该库被视为整体产品的一部分,整个应用程序受GPL管理。但是,如果GPL库可以被另一个库完全替换(也就是说,如果应用程序不是“专门设计”来使用GPL库的),那么该库就不是整体产品的一部分,也不受许可证的约束。
数字版权管理(嵌入式设备)
数字版权管理(DRM)描述了一种技术方法,通过该方法,消费设备的发行商可以防止用户将篡改的代码部署到设备上。FSF想要定义DRM的含义,至少对于涉及GPLv3的代码。为此,GPLv3包含以下内容:第一,许可证禁止GPLv3本身作为DRM的一部分使用。其次,FSF增加了条款,以确保任何用户都可以修改安装在消费设备上的GPLv3代码,并在设备上重新加载修改后的代码版本。除了在GPLv3下提供源代码的义务之外,许可证还要求发布者提供在适用设备上重新加载修改后的代码所需的所有安装信息。虽然存在一些固有的限制,但GPLv3的DRM条款自然会有利于消费设备的制造商和出版商,因为他们一旦使用GPLv3码,就会履行相应的义务,从而获得宽松的政策。
专利(再分配代码)
新许可证提供了适用于已开发代码的专利义务指南。GPLv3包含广泛的明示专利许可。简单来说,这意味着如果一个开发者修改了GPL代码并对其进行了重新分发,那么该开发者将自动向所有可能应用于整个应用的专利授予专利许可。任何衍生产品都受益于此专利许可。通过这种方式,FSF试图确保用户对任何修改后的GPL监管代码拥有广泛的专利权。GPLv3还包含一个“专利保护”条款,这意味着如果GPL代码的用户基于该代码提出任何专利声明,该用户将失去该代码在该GPL下的GPL许可。
许可证兼容性(多个许可证问题)
GPL版本3并不打算取代版本2。它们将共存,因此开源项目可以选择在任何许可版本下发布它们的代码。GPLv2下的大部分代码都可以被用户转换成GPLv3(这是GPLv2下通常允许的约定)。然而,一些项目——最显著的是Linux内核——并没有在包含这种权利的许可版本下发布。这些项目不打算在GPLv3下发布他们的项目。
GPLv3的其他许可证兼容性条款也需要谨慎对待。新的许可证为开发人员提供了向许可证添加一些指定的附加条款的权利,从而使他们的代码与其他开源许可证兼容。开发人员一直在申请这一权利,现在,例如,通过在他们自己的GPLv3版本中添加所需的条款,他们可以将受流行的Apache许可证管制的代码与在GPL下编写的代码结合起来。如果组织发布GPLv3代码,他们将需要理解那些附加条件。
最后,GPLv3包括一种语言,允许开发者将GPLv3代码与Affero许可证所涵盖的代码结合起来。Affero许可证消除了开发人员在GPL中发现的一个“漏洞”,即如果应用程序是基于Web的(例如,在基于Web的搜索引擎中,等等。),GPL要求开发者发布源代码造成的“漏洞”。虽然这个条件在GPLv3的正文中并不存在,但是开发者可以将GPLv3的代码与Affero代码结合起来,Affero条款将适用于整个产品。
结论
对于收集和重用异构代码的应用程序开发团队来说,GPLv3许可证的复杂性说明了代码组件管理和监督的必要性。随着GPL的这些最新变化,应用程序开发人员、经理和他们的法律顾问必须研究这些变化的影响,并决定如何最好地将基于GPLv3的代码包含到他们的项目中。