python html5 bootstrap 视频教程

德云社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3639|回复: 0

CPL - Common Public Liecense vesion 1.0 商用 IBM 开源软件许可协议 BSD

[复制链接]

100

主题

102

帖子

599

积分

高级技师

Rank: 4

金钱
385
金币
11
威望
0
贡献
0
发表于 2018-9-30 23:52:45 | 显示全部楼层 |阅读模式
AI人工智能 语音助理 人工翻译 教程
CPL - Common Public Liecense vesion 1.0 商用 IBM 开源软件许可协议 BSD

CPL 是  Common Public Liecense 的简写。CPL 许可是 IBM 提出的并通过了 OSI (Open Source Initiative) 批准的开源协议。


主要用于一些 IBM 或跟 IBM 相关的开源软件、项目中。如很著名的 Java 开发环境 Eclipse 、RIA 开发平台 Open Laszlo 等。


CPL 也是一项对商业应用友好的协议。CPL 允许 Recipients 对源码进行任意的使用、复制、分发、传播、展示、修改及改后做闭源的二次商业发布,这点跟 BSD 很类似,也属于自由度比较高的开源协议。


但是,需遵循:

1. 当一个 Contributors 将源码的整体或部分再次开源发布时,须继续遵循 CPL 开源协议,而不能改用其他协议发布。除非得到了原“源码”Owner 的授权。


2. CPL 协议下,源码可不做任何修改,且可商业发布。但是,如要将修改后的源码开源,且当再发布的是 Object Code 时,必须声明 Source Code 是可获取的,且要告知获取方法。


3. 当要将 CPL 源码作为一部分跟其他私有源码混和成一 Project 发布时,可将整个 Project、Product 以私有协议发布,但要声明哪一部分代码是 CPL 下的,且声明部分代码继续遵循 CPL。


4. 独立模块 (Separate Module),不需要开源。


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


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 指的是,参考或借助原 "源代码",开发出的独立的、不包含、不依赖于原 "源代码模块",译为 "独立的模块"。


理解这两个概念的目的,在于:很多协议对涉及商业发布时,会有哪些是衍生的,哪些是独立的,有着明确的商业发布规定。


"长按二维码" 或 "扫一扫" 关注 "德云社区" 微信公众号

版权声明:
本文为独家编译稿件,版权归 德云社区,未经许可不得转载;否则,将追究其法律责任。


AI人工智能 语音助理 人工翻译 教程
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|Sitemap|小黑屋|德云社区 |网站地图  

GMT+8, 2024-11-23 06:56 , Processed in 0.026246 second(s), 28 queries .

工业和信息化部: 粤ICP备14079481号-2

技术支持 乐数软件     版权所有 © 2014-2021 德云社区    

快速回复 返回顶部 返回列表