Apache Licence - 非盈利开源组织 Apache 开源软件许可协议
Apache Licence 是著名的非盈利开源组织 Apache 采用的协议。
Apache Licence 是 Apache 软件基金会发布的自由软件许可,最初为 Apache http 服务器而撰写。Apache 许可要求被授权者保留版权和放弃权利申明,但它不是一个反版权的许可。
Apache Licence 最新版本为 V2.0,于 2004 年 01 月发布。
Apache Licence 在 Apache 社区内外,已被广泛使用。Apache 基金会下属所有项目都使用 Apache 许可,许多非 Apache 基金会项目也使用了 Apache 许可。据统计,截至 2008 年 04 月,在 sourceforge 上有超过 3000 个项目使用了 Apache 许可。
10 倍以上效率提升 极速智能编辑 重构 "数字化 Python IDE" 开发工具
http://idepy.digitser.cn/
http://forum.digitser.cn/thread-2266-1-1.html
百度网盘
https://pan.baidu.com/s/1cKxajG
软件仓库
https://github.com/digitser
https://digitser.sourceforge.io/
https://pan.baidu.com/s/1TV70__Be1ta0ney1-tudFQ
Apache Licence 协议和 BSD 类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布 (作为开源或商业软件)。需满足的条件也和 BSD 类似:
1. 需要给代码的用户一份 Apache Licence
2. 如修改了代码,需在被修改的文件中说明
3. 在延伸代码中 (修改和有源代码衍生的代码中) 需带有原代码中的协议、商标、专利声明和其他原作者规定需包含的说明
4. 如再发布的产品中包含一个 Notice 文件,则在 Notice 文件中需带有 Apache Licence。可在 Notice 中增加自己的许可,但不可表现为对 Apache Licence 构成更改。
Apache Licence 也是对商业应用友好的许可,使用者可在需要时修改代码来满足需求,并作为开源或商业产品发布和销售。
BSD (Berkeley Software Distribution)
BSD 开源协议,是一个给予使用者很大自由的协议。基本上说,使用者可 "为所欲为",可自由使用、修改源代码,也可将修改后的代码,作为开源或专有软件再发布。
但是,"为所欲为" 的前提是,当你发布使用了 BSD 协议的代码,或以 BSD 协议代码为基础做二次开发自己的产品时,需要满足 3 个条件:
1. 如再发布的产品中包含源代码,则在源代码中必须带有原代码中的 BSD 协议。
2. 如再发布的只是二进制类库、软件,则需在类库、软件的文档和版权声明中,包含原代码中的 BSD 协议。
3. 不可使用开源代码的作者、机构名字、原产品名字做市场推广。
以规则的目的,只有一个:他人的东西,别人以 BSD 开源了,就不能不做任何声明而占为己有,更不能用他人的名义来做商业推广,只对自己的东西拥有绝对控制权。
BSD 协议鼓励代码共享,但需尊重代码原作者的著作权。由于 BSD 允许使用者修改和重新发布代码,也允许使用或在 BSD 代码上开发商业软件并发布和销售;因此,是对商业集成很友好的协议。
很多公司、企业在选用开源产品时,都首选 BSD 协议;因为,可完全控制这些第 3 方源代码,在必要时还可修改或二次开发。
GPL LPGL Mozilla BSD MIT Apache Licence 许可协议
Source Code 和 Object Code
Source Code 指的是,以各种编程语言写成的源代码,通过 Source Code 结合文档,可了解整个软件的体系结构及具体到某个功能函数的实现方法等。
Object Code 指的是 Source Code 经编译后,生成的类似于 "类库",提供各种接口供他人使用的目标码,也就是常见的 *.dll *.so *.pyd 等格式文件。
区分这两个概念的目的,在于:有些开源只发布 Object Code,当然,大多数发布的是 Source Code。很多开源协议也对 "发布哪种 Code 时应怎样" 有明确约束。
Contributors 和 Recipients
Contributors 指的是,对某个开源软件或项目提供了代码 (包括最初的,或修改过的) 的人或实体 (团队、公司、组织、等)。
Contributors 按参与开源软件的时间先后顺序,可分为 an initial Contributor 和 subsequent Contributors。
Recipients 指的是,开源软件或项目的获取者,显然,subsequent Contributors 也属 Recipients 之列。
Derivative Module 和 Separate Module
Derivative Module 指的是,依托或包含 "最初的" 或 "从别人处获取的" 开源代码而产生的代码,是原 "源代码" 的增强 (不等于增加)、改善和延续的模块,译为 "衍生模块"。
Separate Module 指的是,参考或借助原 "源代码",开发出的独立的、不包含、不依赖于原 "源代码模块",译为 "独立的模块"。
理解这两个概念的目的,在于:很多协议对涉及商业发布时,会有哪些是衍生的,哪些是独立的,有着明确的商业发布规定。
"长按二维码" 或 "扫一扫" 关注 "德云社区" 微信公众号
版权声明:
本文为独家编译稿件,版权归 德云社区,未经许可不得转载;否则,将追究其法律责任。