![5a59b52a199e7e7e9c1003bcec87dc92.png](https://i-blog.csdnimg.cn/blog_migrate/4b877c3aaa4ab87abf36680ae77e30c2.jpeg)
技术编辑:宗恩丨发自 思否编辑部
SegmentFault 思否报道丨公众号:SegmentFault
小编今天逛社交网站的时候发现 @ruanyf 大佬发了条推文,说 Reddit 上正在讨论 Oynx 违反开源协议的事情。经过调查确有此事,下面小编就给大家讲述下这件事的来龙去脉,有用户在 Reddit 上放出一张对话截图,有人向 Onyx (文石)指出了其违规问题,而 Onyx 官方回应「技术团队表示目前不能把源码开放,并希望他人谅解。」网友指出拒绝发布其电子书设备源码违反了 GPL v2 开源协议。
文石电子书设备是在 Linux 内核基础上的改版,而 Linux 内核基于 GPL v2 许可证,该许可证有很明显的「传染性」,要求二次分发项目也必须开源(本质是也必须基于 GPL v2,关于 GPL v2 ,推荐阅读:人话版GPL 2.0协议)
国外网友对此事进行了热烈讨论,甚至一度上升到拒绝使用中国电子硬件的程度。真是一个产品犯错,全国都要为其背锅。
![86cebce538187ade7c047e746c2a39fa.png](https://i-blog.csdnimg.cn/blog_migrate/57b83a792c9bceeacad20e9f7d444f3d.jpeg)
如何正确看待开源
技术大牛阮一峰如何看待这个问题,可以回顾他很早以前的一篇文章,这篇文章中可以看到他对此事的态度:
如何为代码选择开源许可证,这是一个问题。世界上的开源许可证,大概有上百种。很少有人搞得清楚它们的区别。即使在最流行的六种----GPL、BSD、MIT、Mozilla、Apache和LGPL----之中做选择,也很复杂。
乌克兰程序员Paul Bagwell,画了一张分析图,说明应该怎么选择。这是我见过的最简单的讲解,只用两分钟,你就能搞清楚这六种许可证之间的最大区别。如果程序中使用 GPL 协议的代码,则程序需要开
![b1c5bb2f260fccd58da4b257ab920752.png](https://i-blog.csdnimg.cn/blog_migrate/a46ef752f7ccdc75f86c347a3d8b9893.jpeg)
知乎网友 @容嘉也对「需要在商用设备上安装一个声明为GPLV2协议的开源软件,不修改这个软件的源码,该软件作为独立进程运行。如何做才能符合开源协议?」给出了回答,:
直接使用就可以了,只要你不对这个软件进行修改,你可以无视他的协议,当然如果你做出了符合你们应用环境的修改,请务必要提供给开源社区!
关于GPLv2协议,太长了,理解起来也比较绕,直接引用Linus Torvalds对GPLv2协议的理解,来说明你的问题吧。
my argument for liking version 2, and I still think version 2 is a great license, was that, "I give you source code, you give me your changes back, we are even." Right? That's my take on GPL version 2, right, it's that simple.
译文:
我喜欢版本 2 的那些理由,并且我仍然觉得版本 2 是一个非常棒的协议, 理由是:「我给你源代码,你给我你对它的修改,我们就扯平了」 对吧?这是我用 GPL 版本 2 的理由,就是这么简单。
现在「开源」理念越来越被大家关注和认可,开源的项目及发展情况也成为衡量一个国家科技水平的重要的标志。开源不是封闭式的,更不是垄断式的,它应该得到广大开发者的尊重。
SegmentFault 思否一直在努力的为开源理念发声,并积极的帮助开源项目和开发者。希望有更多的开发者能参与到「开源生态」的建设中,当然遵守开源规则是重要前提。