最近在学习python 使用到在操作package的时候,有一个步骤就是要增加一个“LICENSE”文件。
Copyright (c) 2018 The Python Packaging Authority Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
这里用到是MIT的许可证。
什么开源许可证
An open-source license is a type of license for computer software and other products that allows the source code, blueprint or design to be used, modified and/or shared under defined terms and conditions. This allows end users and commercial companies to review and modify the source code, blueprint or design for their own customization, curiosity or troubleshooting needs. Open-source licensed software is mostly available free of charge, though this does not necessarily have to be the case.
from wiki
开源许可证是一种计算机软件的许可证,它允许在定义的条款和条件下使用,修改或共享源代码,框架或设计。 开源许可软件大部分都是免费提供的。
虽然可以获得开源软件源代码, 但是要对其修改、使用,要根据具体的软件许可证不同而各有不同,也需要关注。
微软对 Visual Studio在程序源代码使用MIT,而执行码增加非自由条款,自由软件中的GPLv1的许可证就强调任何分发二进制代码的供应商还必须按照相同的许可条款(许可证的第3a和3b节)提供可读的源代码。
开源软件(Open Source)
1997年,Eric Raymond有一篇著名文章《大教堂和集市》(The Cathedral and the Bazaar)。探讨黑客社区与自由软件原则, 促成了网景公司将其套装软件释放为自由软件,这些代码就是我们熟悉的 Mozilla FireFox 和Thunderbird。
Raymond察觉到自由软件基金会的社会活动如果网景等公司的行动来得吸引人,因而试图重新包装自由软件活动, 以强调分享与写作软件源代码的潜在商机,他们选用了新的名字“open source”, 1998年2与成立开放源代码促进会。
开源是自由软件(Free Software)的思想分支,更注重实用原则,对商业用户更加的友好,可以看到大多数开源项目都得到大厂的支持。 是Richard Stallman 所倡导的自由软件,在实践过程中的新的探索,不过,他本人不是很认可这种新的做法。
关键词: Free software ,Libre software (Free software另一种称呼 避免将人们误将自由认为免费),Open Source, 另外可以看到 Red Hat其实也是Open Source的赞助商, 它天生就有商业的基因
按照Paul Bagwel开源许可证的一张图
图片参考来源 https://paulmillr.com/posts/simple-description-of-popular-software-licenses/
为什么需要开源许可证
- 通过给代码提供者,使用者充分的自由,避免法律纠纷
使用者可以自由享受代码,代码的提供者不对软件风险负责
- 没有许可证,使用起来会很不安全。
如果一个开源的软件没有许可证,那么我们就认为他不是开源的。
在世界上大多数国家/地区都有各自的版权法 (copyright law),对于未经明确声明许可的免费代码均归作者所有,并保留所有权利。 这意味着使用未经许可的代码(已发布或未发布的),就是侵犯代码作者的版权,有可能会被诉讼。
- 维持自由软件/开源软件生态
鼓励有才能的开发者、出于商业利益的公司的加入,使得虽然目标不同,甚至是竞争对手,仍然可以齐心协力,以达到共同利益。
开源许可证使用
实际使代码开源并免费提供的唯一方法是为其附加许可证。 最好是在每个文件的标题中添加一个带有知名许可证名称和版本的注释,并在项目的根文件夹(称为LICENSE或LICENSE.TXT)中提供完整的许可证副本。 开头讲到的python package包就是使用的LICENSE文件
开源许可证的种类:
- 默认许可-专有,保留所有权利
在没有明确声明版权的情况下,作者对于其网站或者代码仓库上的代码,默认具有对该代码的使用权和发行权。 如果您在自己的计算机上执行该代码,那么您正在侵犯作者的使用权,并且由于他们从未授予您该权利,它们可能会因侵犯版权而对您提起民事诉讼。
- 本地许可证
对于本地许可建议不要使用。
使用标准的开源协议, 对于一个不是很精通相关法律作者来说, 自己制定的开源协议可能根本无法执行, 项目涉及法律咨询费用也会更高。
- OSI批准许可证
开放源代码计划(Open Source Initiative)已批准一系列的开放源代码许可证,这些许可证符合OSI对“开放源代码”的定义。 用OSI自己的话说,这些许可证“允许自由使用,修改和共享软件”。
- Apache License 2.0
- BSD 3-Clause “New” or “Revised” license
- BSD 2-Clause “Simplified” or “FreeBSD” license
- GNU General Public License (GPL)
- GNU Library or “Lesser” General Public License (LGPL)
- MIT license
- Mozilla Public License 2.0
- Common Development and Distribution License
- Eclipse Public License version 2.0
来自 https://opensource.org/licenses
标准许可证分为三类:
- Strong copyleft licenses
- Weak copyleft licenses
- permissive License
Copyleft条款更要求作者所许可的人对改作后的派生作品要使用相同许可证授予作者,以保障其后续所有派生作品都能被任何人自由使用
-
- Strong copyleft licenses
Copyleft许可证是授予自由使用,修改和重新分发涵盖的知识产权的许可的许可证,但仅当原始许可证保持不变时,原始项目以及任何人可能对原始项目所做的任何修改都必须得到许可。 之前“GPL病毒”就是对这一类许可证的描述。也就是如果代码是GPL许可, 那么整个项目就是GPL许可证。
常见的强copyleft许可:
-
-
- GPLv2
-
GNU通用公共许可证允许免费使用,修改和分发所涵盖的代码,但原始许可证必须保持完整,并涵盖原始项目和任何修改。
-
-
- GPLv3
-
GPLv3-GNU通用公共许可证的第三版在大多数方面与GPLv2相似。 针对专利,版权,硬件对于开源版本限制,兼容性方面做出了修改。
GPLv2, GPLv3都是 GNU通用公共许可协议(GNU General Public License,缩写GNU GPL 或 GPL),是被广泛使用的自由软件许可证,给予了终端用户运行、学习、共享和修改软件的自由。
GPL授予程序接受人以下权利,或称“自由”,或称“copyleft”:
- 基于任何目的,按你的意愿运行软件的自由(自由之零)。
- 学习软件如何工作的自由,按你的意愿修改软件以符合你的计算的自由(自由之一)。可访问源代码是此项自由的先决条件。
- 分发软件副本的自由,因此你可以帮助你的好友(自由之二)。
- 将你修改过的软件版本再分发给其他人的自由(自由之三)。这样可以让整个社区有机会共享你对软件的改动。可访问源代码是此项自由的先决条件。
from wiki GNU通用公共许可证
-
-
- AGPL
-
主要针对云服务厂商, 之前软件分发大多都是二进制方式提供,所以许可证对于这些通过网络提供软件服务的厂商其实是没有约束的, AGPL要求云服务也必须开源。
涉及的项目有:Linux内核,GNU C编译器,WordPress
-
- Weak copyleft licenses
弱的Copyleft许可证本质上类似于强的Copyleft许可证,但是它并没有跨越链接边界扩展其“病毒”保护。 本身的修改必须保留原始许可证,但是该项目之外的任何代码都可以直接链接到弱版权左证项目中的功能。
-
-
- LGPL
-
较小的GNU通用公共许可证。最常用于共享库中,不传染使用的该共享库的软件仅对与使用共享库基础上开发的软件有传染性, 兼容于GPL许可的项目。
-
-
- MPL2.0
Mozilla公共许可证。只要该许可证的代码在单独的文件中,新增的其他文件可以不用开源。与GPL兼容。
- CDDLv1.0
- MPL2.0
-
CDDL v1.0-最初由Sun 发行的通用开发和发行许可证,现在属于oracle。 众所周知,CDDL与GPL不兼容。
-
- permissive License
-
-
- BSD 2-clause license
-
必须保留原始的许可证声明。
-
-
- BSD 3-clause license
-
不得使用原始作者的名字为软件促销。
-
-
- BSD 4-clause license
-
增加了“广告材料”声明
-
-
- Apache license 2.0
-
分发软件时,必须保留原始的许可证声明。凡是修改过的文件,必须向用户说明该文件修改过;没有修改过的文件,必须保持许可证不变。
-
-
- MIT licens
-
类似BSD 2-clause
-
-
- GNU All-permissive License
-
简单的许可证,是供自述文件,安装文件以及类似的简单单个文件使用。
- Public domain equivalent licenses
许多在根本没有任何许可通知的情况下发布其作品的人只是不想打扰阅读或理解任何许可或它们的含义,并且错误地认为在不提供许可的情况下提供作品会使其“免费”。
-
- BSD 0-clause license
这是原始BSD许可的保修免责声明,没有任何限制性条款,并且带有主要声明“特此授予您出于任何目的使用,复制,修改和/或分发此软件的许可,收费或不收费”。 BSD 0条款许可未明确授予任何接受或使用BSD 0条款许可项目的人免版税软件专利使用费。 这是OSI批准的唯一公共领域等效许可证。
- Non-OSI-approved licenses
在大多数情况下,如果许可证未经OSI批准,则不应考虑使用它,并且也应警惕使用它。 无论您是要寻找强版权,弱版权还是许可许可,OSI批准的清单中都有很多示例,因此没有理由迷失方向。
-
- Unlicense
- CC0
- WTFPL
云服务对开源许可证冲击
云服务的出现改变了开源软件的生态。云服务商依靠开源,获取大量利润,开源厂商则只能免费为这些云厂商打工, 所以Elastic 、MongoDB进行许可证的变更, 来抵抗云服务商。
新的许可证策略主要有以下三类:
- AGPL 许可证:任何对软件的修改(包括提供服务)都必须开源
- 产品分层策略,同时提供免费的社区版和收费的企业版。
- 依然开源,提供服务必须付费。
参考及引用
图片来源 twitter Ice Angel @addyiceangel
Open source licenses: What, which, and why
Comments are closed.