开源协议限制,通俗地说,就是“别人把代码免费开放给你用,但不是完全没规矩,你得按许可证的要求来”。开源不等于随便用、随便改、随便藏起来卖,它更像一张“有条件的使用说明书”。
常见的限制大概有这些。第一,要保留版权声明和许可证文本,不能把作者名字、来源说明删掉。第二,有些协议要求你修改后的代码也必须继续开源,这叫“传染性”或“相同协议共享”,比如 GPL 类协议。第三,有些协议要求你说明改过哪里,不能假装是原版。第四,有些协议对专利、商标有额外规定,比如不能随便用作者商标,或者贡献者给你一定的专利许可。第五,协议通常都会写“不提供担保”,意思是作者不保证代码没毛病,出了问题一般不能让他背锅。第六,你不能在别人开源代码上再加一些违反原许可证的额外限制。
可以把它想成:房东让你免费住,但规定“不能拆承重墙、转租要说明、退房要恢复原样”。不同开源协议的限制强弱不一样。MIT、BSD 这类很宽松,基本保留声明就行;GPL 这类更强调衍生作品也要开源;Apache 2.0 还会涉及专利和商标说明;AGPL 对网络服务使用也有额外要求。所以,用开源代码前最好看一眼具体许可证,别只看“开源”两个字。 |
|