开源协议规定了你在使用开源软件时的权利和责任,也就是规定了你可以做什么,不可以做什么。
开源协议虽然不一定具备法律效力,但是当涉及软件版权纠纷时,开源协议也是非常重要的证据之一。
通用:免责。
MIT 协议:源码想咋用就咋用,基本上没什么限制(最受欢迎的协议)。
GPL 协议:你开发的项目如果使用了此协议的开源项目,那么你的这个项目也得开源。
比如:张三开发了推荐系统[使用 GPL 协议],李四开发的系统用到了这个推荐系统,那李四开发的这个系统也得遵循 GPL 协议也得开源出来。如果不开源,就只能等着被告了。
apache 协议:如果你的项目使用了此协议的开源项目,必须要有声明,告诉别人你用了这个开源项目。
比如:国内各大厂商的手机系统,除了鸿蒙,其他都是安卓改的,开机的时候都能看到 powered by Android,这就是 apache 协议的特点。只要你用安卓,你就的显示这个商标,不带这个商标,你就得吃官司。但 apache 在源码开源这一块没有限制,不像 GPL 协议。
总结:
使用了 apache 协议的开源项目,你的源码可以不开源,只要给个声明就行。
使用了 GPL 协议的开源项目,你的源码必须开源。
react 之前使用的是 Facebook BSD + patents 协议(协议内容:如果使用 react 的同时你和 Facebook 有专利纠纷,不管谁对谁错,Facebook 都可以禁止你使用 react)。
react 现在用的是 MIT 协议。
vue、node、element ui 使用的是 MIT 协议。
Linux 使用 GPL 协议。
Android 使用 apache 协议。