了解开源软件许可证

介绍

软件许可证(software license)是定义某个软件的使用方式的法律协议,对于软件开发人员来说,他们可能想要行使某些权利、权限和对其他人如何使用、修改和共享该作品的控制,选择软件许可证是一个重要的决定。

无论他们的推理如何,开发人员可以通过实施一个开放源代码软件许可证来实现这一目标,一般说来,开源软件许可证使源代码可用于使用,修改和分发,根据协议的条款和条件。

当涉及到项目的长期规划时,了解可用的开源软件许可证是有用的,以便您可以做出明智的决定,其中哪个最适合您的项目需求. 在本文中,我们将分享有关您在创建作品时所拥有的权利(如版权)的信息,以及许可证如何帮助建立您希望用户在使用您的软件时遵守的法律协议。

<$>[注] **注:**本文不是为了提供任何形式的法律建议,它只是关于开源软件许可的信息资源。

如果您想了解更多关于专利、商标和知识产权的信息,您可以访问美国专利和商标局(https://www.uspto.gov/)。

定义版权和许可

在美国和许多国家,对于您制作的任何创作作品,您都会获得一定的法律保护,其中之一是版权。美国版权局将版权定义为保护原创作品的知识产权类型,特别是当作者以有形的表达形式修复作品时。

版权授予所有者(https://www.copyright.gov/what-is-copyright/),例如复制和分发作品的副本。如果所有者想要控制他们的作品可以被他人使用的方式,那么他们必须实施一个 license 规定这些用户必须遵守的规则。

另一个需要承认的复杂性是你为你的雇主制作的创意工作. 如果你从事所谓的雇佣工作,这意味着你为你工作的公司或组织创建的任何作品属于该实体,因为他们为你付费。

专有软件、自由软件和开源软件

Proprietary software 是指任何具有许可证的软件,限制其如何使用、修改或共享。 视频游戏是专有软件的一个常见例子。 如果您购买视频游戏(无论是作为纸板、磁盘还是数字下载),则不允许您制作该游戏的副本以与朋友分享或以利润出售。

软件用户通常会受到某些限制的 end-user license agreement(EULA)。如果您曾经购买过软件,您可能已经假定您拥有该软件。但是,如果您购买了专有软件,它很可能包含一个EULA,说明您不拥有该软件。相反,您是软件许可证的所有者,允许您使用该软件。 EULA也可以定义您如何使用该许可证本身,并且通常会限制您在没有软件所有者的许可的情况下与他人共享。

另一个与 EULA 类似的法律工具是 Terms of Service agreement(ToS)。有时被称为 Terms of UseTerms and Conditions,一个 ToS 概述了用户必须遵循的规则,以便被允许使用程序或服务。更常见的是看到一个包含软件的 EULA 需要一次性购买,而 ToS 协议更常见于订阅服务和网站。 通常,当您首次启动特有的软件时,会出现一个对话框,解释了 EULA 或 ToS 并包含一个 I Agree 按钮(或类似的东西),您必须点击它才能使用该程序。

在20世纪70年代以前,软件通常与其源代码一起分发,这意味着用户可以随意修改和共享软件,但随着时间的推移,软件出版商开始对这些活动施加限制,通常是为了通过减少使用软件但不为其付费的人数来增加利润。

虽然两者是不同的,但自由软件和开源软件运动都认为,软件用户应该被允许访问程序的源代码,按照他们认为合适的方式修改它,并尽可能频繁地与他们喜欢的人分享它。

<$>[注] :由于自由软件通常被认为是开源软件,但开源软件并不总是被认为是免费的,所以本指南将默认为更具包容性的术语开源软件开源软件许可证

如果你想对自由软件和开源软件之间的历史和差异进行更彻底的解释,我们鼓励你阅读我们的文章《自由软件与开源软件的区别》。

开放源代码软件的倡导者仍然鼓励开发人员以许可证发行他们的软件,但是,而不是专有软件许可证描述用户可能不做的事情,他们建议使用开源软件许可证,描述给用户提供的软件的自由。

多年来,关于开源软件许可证应该保证哪些特定的自由存在一些分歧,这导致了许多不同的开源许可证的出现,但这些许可证大部分可能属于两个类别之一:允许许和copyleft许可证。

允许和 Copyleft 开源软件许可证

允许许许可证,有时被称为非copyleft许可证,允许用户使用、修改和共享源代码,但用户还可以选择更改一些这些条款和条件的再分发,包括衍生作品。

一个 _copyleft 许可证也允许用户使用、修改和共享源代码,但通过特定的限制和条款和条件提供保护,这意味着软件用户创建衍生作品必须在原创作品的同一 copyleft 许可条款和条件下发布。

此外,有公共域等效许可证允许用户使用版权保护的作品,而无需授权或需要许可兼容性。对于创作者来说,这意味着对他们的作品的任何权利都被完全剥夺了。尽管公共域和自由和开源软件许可证背后的哲学有些重叠,但多年来,人们对公域等效许可证是否真正符合开源的权利存在分歧。2012年,该许可证(CC0(https://creativecommons.org/publicdomain/zero/1.0/legalcode)被提交,但最终被开放源代码倡议(OSI)拒绝批准,该非营利组织为开源软件制定标准,并维持批准的开源许可证清单。然而,OSI在2020年批准了一项名为无许可证(Unlicense)(LINK1)的公共域等效许可

为什么要使用开源软件许可证?

作为开发人员从头开始一个项目,熟悉可用的开源软件许可证很重要,以评估您希望其他人如何使用您的作品。

再次,任何原创作品在完成后都将拥有版权,但没有许可证,对于那些想要使用它的人来说,这是不清楚的,并且不允许使用。

  • ** 改进:** 开放源码社区为培养鼓励合作和创新的文化而感到自豪。 使用开源软件许可邀请用户参与社区发展. 这就形成了一种共同的责任感,以一致地改进源代码或进一步扩大程序,以让每个人受益.
  • ** Ownership:** 如果你想对自己的工作行使更多的权力,选择一个可以施加这些限制的许可证将会帮助你这样做. 例如,如果您想要任何衍生作品授予与您最初选择的相同权限,您可能想要选择复制左侧许可. 幸运的是,开源软件许可证为未来的用户提供了透明度,说明你对工作有多少控制,无论是多少控制还是多少控制,都取决于你。 (_ ( )* ** 竞争:** 使用开源许可证可以帮助你上映。 一些为与已建立专有替代品竞争而开发的开源软件的流行例子包括Linux操作系统,由Google开发的Android,以及Firefox浏览器. ( (英语)

请记住,可以赚钱开源软件项目,但赚钱软件的典型商业做法是使用专有许可证来保护软件免受共享或盗窃。

这些使用开源软件许可证的原因可能并不适用于您,我们鼓励您在为您的下一个项目选择许可证之前对该主题进行自己的研究。

正如前面提到的,本文专注于在 GitHub 上创建您项目的新存储库时列出的开源软件许可证,您将注意到页面末端有选择许可证的选项。

List of open-source software licenses on GitHub

在接下来的部分中,我们将简要描述您可以在下一个项目中选择的开源软件许可证类型,从GitHub推荐的允许许许可证开始。

开放源代码软件许可证

授权许可证允许软件用户使用、修改和共享源代码,此外,由授权许可的软件衍生的软件的创作者可以更改重新分发的许可条款。

请注意,以下列表并不代表所有允许的开源软件许可证。相反,该列表是从GitHub在启动新项目时提供的许可证选项中提取的。

Apache 许可证

Apache 许可证Apache Software Foundation (ASF)撰写,使用此许可证,用户不必在同一许可证下共享其修改的源代码版本,并且可以选择使用不同的许可证,这被称为 sublicensing

我的许可证

MIT 许可证来自马萨诸塞州理工学院(MIT),是最短的许可证之一,有很少的限制。

BSD许可证

GitHub 允许您选择两个 BSD 许可证,即 BSD 2-Clause Simplified License,有时被称为FreeBSD许可证;和 BSD 3-Clause NewRevised License

强化软件许可证

该许可证( Boost Software License)来自C++ Boost Libraries,并于2008年获得了OSI的批准,该许可证与MIT和BSD许可证相似,但在二进制形式重新分发时不需要归属。

Copyleft开源软件许可证

Copyleft 许可证允许软件用户使用、修改和共享源代码,同时也通过具体的限制和条款和条件来保护他们免受重新许可。

再次,以下列表并非代表所有可用的 copyleft开源软件许可证,而是从GitHub在启动新项目时提供的许可证选项中获取。

GNU 许可证

GNU 通用公共许可证(LINK0)(GPL)由自由软件基金会(LINK1)发布,其中用户可以在 GitHub 上选择四个版本,GNU GPL v3.0(LINK2)要求用户对原始代码作出任何修改,并在分发其在该许可软件下使用的任何二进制代码时使原始代码可用。

在目前的 GPL v3.0 版本之前,创建了第二个版本,即 GNU Public License v2.0。本许可证与 v3.0 共享类似的条款和条件,但被认为是一种强大的 copyleft 许可证。强大的 copyleft 许可证要求使用相同的许可证发布源代码的任何修改。与 v2.0 的主要区别是,软件用户允许在遵守许可证的要求的情况下分发作品,而不论此前的法律义务如何。

还有GNU Lesser General Public License(LINK0),称为LGPL,也称为GPL v2.1;这个许可证旨在作为强大和弱弱的copyleft许可证之间的中间区别。与这个许可证的主要区别在于,软件用户可以将LGPL的软件组件与自己的组件结合起来,而不需要共享其组件的源代码。用户也可以分发混合库,这是LGPL图书馆中的功能和非LGPL的功能的组合,但必须有非LGPL图书馆的副本和它所在的信息。

另一个 GNU 许可证是 GNU Affero General Public License v3.0,被称为 AGPL. 与此许可证的主要区别在于它是针对在服务器上使用的软件程序的。

Eclipse 公共许可证

Eclipse Public License是由Eclipse Foundation提供的,被认为是一种弱 copyleft 许可证。弱 copyleft 许可证要求软件用户分享他们对代码所做的任何更改。

Mozilla 公共许可证

Mozilla公共许可证,或MPL,来自Mozilla基金会(https://foundation.mozilla.org/en/),也被认为是一种弱 copyleft 许可证。与此许可证(与Eclipse 公共许可证相比)的区别在于它是 file-based copyleft,这意味着代码可以与开源或专有代码相结合。

公有领域等级许可证

公有领域等级许可证允许用户使用受版权保护的作品,而无需授权或要求授权兼容性。

创意共识零普遍许可证

Creative Commons Zero Universal License是由Creative Commons撰写的,被视为公共版权许可证,这意味着受版权保护的作品可以自由分发。请注意,此许可证不是由OSI批准的。本许可证的主要内容是用户可以使用、分发和修改源代码,但必须同意放弃任何版权,以确保该作品在公共领域可访问。

无许可证

Unlicense于2012年发布,被认为是由OSI批准的公有领域等级许可证,使用该许可证,软件用户可以使用、修改、分发源代码和编译二进制用于商业和非商业目的。

结论

选择开源软件许可证时需要考虑的因素很多,但开发者社区中确实有许多受欢迎的选择. 常见的许可证包括MIT许可证、Apache许可证和BSD许可证。

请记住,本文只提供了一些常见的开源软件许可证的信息,特别是GitHub建议的许可证,我们鼓励您探索所有可用的许可选项,或咨询法律专业人员的帮助,以便对最适合您的项目的需求做出明智的决定。

Published At
Categories with 技术
comments powered by Disqus