问题:这样做违反协议吗?
1.不同许可协议
**相互之间的兼容性问题:**如果要把使用了不同许可协议的开源代码合成一个项目,需要得到相关许可才可以,如果多个程序的许可证允许合成,那么这些许可证就是互相兼容的,反之则许可证之间是不兼容的。另外,对有些许可证来说,程序合成的方式也会影响许可证是否兼容,例如可能允许两个模块连接在一起,但是不允许把两个代码合成一个模块。
2.GPL,LGPL,MIT,BSD是否互相兼容,还需要看具体版本,比如说GPLv3与LGPLv2.1
就是互相兼容的,而[修改版
3.由于GPL的传染性,如果适用GPL许可证的代码与其他代码相互融合、密切通信,形成一个集合体,则存在整个程序强制开源的风险。
4.自行添加许可证是否有效取决于原许可证的具体约定以及上述兼容/共存问题,如果不能兼容且相互形成一个集合体,则存在整体适用GPL的可能,此时自行添加的许可证可能就无法发挥相应的作用。
5.如果自身未遵循许可证,比如依照GPL应该开源的,却没有开源,如果届时主张他人侵犯著作权,由于自身行为的违约及不合法性,很难得到法院的支持。