我们开发的软件肯定难免用到了来自于开源项目的部分,那么这个时候在法律上,是否会承担相应的风险,这就有必要了解一下开源协议的法律范畴。以一张图片来了解吧,更为直观点。
实际情况从Github上下载的项目,大部分是采用的MIT协议,例如这里我们下载一个项目,打开license文件,内容大致如下:
MIT License
Copyright (c) 2018-2019 HandyOrg
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
那么上面的MIT协议的含义是什么
如果一个作者将他的程序规定为 MIT 许可授权,这意味着你可以无偿的使用、分享以及修改 这个程序。只要满足下面两个条件,你也可以对你的这份拷贝任意地进行相同的授权:
- 如果程序不能正常使用,你保证原作者不承担任何责任。
- 原作者仍然保有他所创作的那一部分的版权,这意味着你不能从你发布的程序中移除 MIT 许可。 如果你修改了程序,你应当明确申明你对原有代码进行了那些更改, 并且阐明你新添加的这部分内容循循怎样的许可协议。
对于整个程序包来说,有时只有其中某一部分是使用 MIT 许可的。具体而言,程序可能包含 通过其他许可授权的图像内容,或者含有一些非自由的(non-free)附加组件。 程序包的作者有责任明确申明那一部分内容遵循怎样的许可条款。大家最为关心的跟上图一致,它在商业使用上不受限制。
需要提出的是,可以在 GPL 许可的项目中使用 MIT 许可的代码,但是不可以在 MIT 许可的项目中使用 GPL 许可的代码。
服务器端使用了 MIT 许可的代码将视情况而定。如果 HTML 文件没有包括这些代码本身的话, 在服务器端使用 MIT 许可的程序(比如 PHP 脚本)生成 HTML 文件并不被认为是再发布的行为。 因此,你实际上没有给用户提供这些代码内容,所以你也没有必要声明这些代码的授权方式。 这对于 GPL 许可授权的程序也是一样的。 但是如果你在任何情况下需要和另一个群体分享你的代码,在你分发代码的这个过程中 MIT 许可的条款任然是有效的。唯一的例外是你要将这些代码交给外包商(如网络托管公司)。 因为在这种起况下,除非你本人要求,这些公司并不被授权再分发你的源代码, 所以授权许可也并不生效。这一原则对于 GPL 也同样有效。
总结,如何应用 MIT 许可呢
- 在你发布源代码的时候,在每一篇源代码顶部以注释的形式复制一份 MIT 许可的原文。
- 在你发布软件包的时候,在根目录保存一份 MIT 许可原文并命名为“LICENSE”或“COPYING”
- 将 MIT 许可作为你最终用户许可条款(EULA)的一部分
- 在任意的使用文档中,声明 MIT 许可条款。
在你声明 MIT 许可条款的同时,你应当同时包含版权声明,如果有必要的话, 你还应当阐明 MIT 协议适用于软件的哪一部分。
最后举一个例子,在发布的软件如果是以源代码的形式提供就要在其中包含MIT的LICENSE文件,如果以软件的形式发布就要在界面显示说明,不够一般这个界面比较隐蔽。可以参考Google Chrome浏览器,在帮助-关于中有一句话:“Google Chrome 的诞生离不开 Chromium 开源项目以及其他开源软件。”点“开源软件”会打开一个页面,列出了所有用到的开源软件的LICENSE。