开源项目疑问
之前看到某个老哥关于开源协议的提问,感觉和我目前想的很相似:基于开源项目二次开发违反道德吗? - V2EX (opens new window)
其实简单讲就是只要仔细读开源协议即可,这里只介绍比较常用的两种协议,MIT 和 GPL
MIT 许可证应该是最简单的,它是非常开放的许可证,给下游开发者最大的自由度,唯一的附加条件是要保留许可证说明(说明版权所有者以及所有者不负任何责任),至于你怎么用这个项目的源代码,随便你,你想怎么封装就怎么封装,想拿它去卖也行。
GPL 是传染性质的许可证,限制条件强一些,它是为了保证自由软件能永远自由,如果你的项目用了别人的基于 GPL 的代码(当然你要在 license 中提到你用了这些项目),你永远不能把这些代码闭源
至于署名的要求,许可证本身会提要不要求署名,通常署名并不是开源软件的必要条件(明确要求署名的应该是少数,比如 CC-BY),但 CRAN 有它自己的指导原则,强行向 R 包作者输出价值观,一般情况下如果你用了第三方的代码或者库,你至少需要在 DESCRIPTION 里声明这些代码或库的作者为“贡献者”(ctb 角色),而且要注明这些贡献者具体的贡献,如 https://github.com/yihui/xaringan/blob/04534314216/DESCRIPTION#L9 (opens new window)
出于对前任贡献的尊重,添加致谢文件,保留前任的版权声明文件和源码里的版权声明,再添加自己的版权声明
例如,Proxmox VE 是基于 Debian 发行版和 Ubuntu 的 kernel 二次开发的虚拟化平台,加入自己写的前端软件,对标全套 VMware vCenter 软件。不仅开发成果出来了,而且按订阅收费,有很多企业级订户,还收获了各路虚拟化 /软路由论坛的响当当的口碑。毫不夸张地说,PVE 是开源软件二次开发的一个巨大的成功例子。
如果注明的是其他协议遵守协议即可,如果没有注明任何协议,需要认为是原作者保留所有权利,任何形式的使用都是违规的。