写点什么

GPL 协议的代价

  • 2016-11-06
  • 本文字数:967 字

    阅读完需:约 3 分钟

GPL 许可协议的主旨是说,如果你的软件使用了受 GPL 保护的代码,那么你的软件源代码也要公开出来。不同的开发者对 GPL 条款的诠释有所偏重,但不管怎样,遵循 GPL 协议是要付出一定代价的。Automattic 创始人 Matt Mullenweg 和竞争对手 Wix 之间展开了一场关于违反 GPL 协议的骂战,由此可以引起我们对 GPL 许可协议的一些思考。

Automattic 创始人 Matt Mullenweg 下载了一款由竞争对手 Wix 开发的 iOS 应用,他觉得这款应用看起来很眼熟,后来确认这款应用使用了来自 WordPress 的代码。于是他在博客上与对方展开争论,直指要点

你们应用里的编辑器使用了剽窃的代码,所以整个应用违反了 GPL 协议。

Wix 的 CEO Avishai Abrahami没有针对此事做出正面回应,试图回避他们在产品里使用了未付费源代码的事实。他的一个工程师员工也避开正面回应,在是否违反协议的问题上纠缠不清,不愿意直接承担剽窃代码的后果。

有些人对使用“剽窃代码”和“窃贼”这样的字眼来形容违反 GPL 协议的行为有些异议,不过事实就是如此:源代码出现在 Wix 的产品里已成事实,但 Wix 并没有为此付出任何代价。

很多开发者(包括 CEO)对使用受 GPL 保护的代码所产生的后果装作不在意。他们从对自己有利的角度来解释 GPL 条款:

  • “使用 GPL 代码没有任何问题,只要我们把改动的代码也贡献出来。”
  • “我们只使用了少量受 GPL 保护的代码,所以我们有权使用它们。”
  • “我们通过其它方式回报社区,这样就平衡了。”

以上这些说法,包括其它很多对 GPL 的误读,以及 Wix CEO 和他的工程师员工的辩解,都不符合 GPL 的协议精神。

遵循 GPL 协议的所要承担的义务是显而易见的,尽管有人在“链接代码”问题上争论不休。GPL 的主旨很容易理解:如果你在自己的软件里使用了受 GPL 保护的代码,那么你也要公开自己的代码。在遵循 GPL 协议的前提下,你要把源代码提供给那些安装了你的软件的人。公开你的代码,这就是遵循 GPL 协议需要付出的代价。

大部分开发者认为为 GPL 付出的代价是完全合乎情理的,不过有些人则无法接受。这个需要在从他人的代码中获取的好处与公开你的代码造成的损失之间做出权衡。

查看英文原文: The Price of GPL


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-11-06 19:005404
用户头像

发布了 322 篇内容, 共 156.3 次阅读, 收获喜欢 148 次。

关注

评论

发布
暂无评论
发现更多内容

互联网大厂100道Android面试题助你冲关金三银四!附小技巧

欢喜学安卓

android 程序员 面试 移动开发

Hello World !!!

潮湿了我押韵的心情

通过序列号Sequence零代码实现订单流水号

crudapi

低代码 流水号 crud crudapi 序列号

产品经理训练营 - 作业六

胡小湖

图解 | 原来这就是 IO 多路复用

Java 程序员 架构 面试

vue+element中引入百度地图

尔嵘

Vue Element 百度地图

Kubernetes弃用Docker运行时,小甜甜变牛夫人影响了谁?

敏捷调度TASKCTL

Docker 云计算 架构 容器 #Kubernetes#

封装变化的内容

这就是编程

程序开发

APK反编译

行者AI

编译

Java岗位阿里+字节+滴滴+美团+腾讯+百度+京东12万字面试题总结

Java架构追梦

Java 阿里巴巴 架构 腾讯 面试

Android内存泄漏检测之LeakCanary2.0(Kotlin版)的实现原理

vivo互联网技术

android kotlin 内存泄漏

聊聊Java的异常机制问题

华为云开发者联盟

Java 对象 异常机制 Throwable Error

最火前端Web组态软件(可视化)

尔嵘

大前端 可视化数据分析搭建 web组态 托拉拽组态

颠覆认知——Redis会遇到的15个「坑」,你踩过几个?

Kaito

redis 踩坑 后端

音频互动连麦使用手册

anyRTC开发者

ios android 音视频 WebRTC RTC

五年磨一剑,海外运营商数字化转型与新一代OSS

鲸品堂

方法论 数字化转型 运营商

AI技术在小程序生态质量保障方向的落地实践

百度Geek说

小程序 AI

力扣(LeetCode)刷题,简单题(第12期)

不脱发的程序猿

面试 LeetCode 28天写作 算法面经 3月日更

从优秀到卓越:成为DevOps专家的7项软技能

禅道项目管理

DevOps 趋势 软技能

程序开发必备的六个信条

这就是编程

程序开发

中国云基础设施支出创新高,增速全球第一;国内首个区块链特色司法鉴定机构在京成立

京东科技开发者

区块链 人工智能 开发者

单片机如何从上电复位执行到main函数?

不脱发的程序猿

28天写作 嵌入式软件 单片机 3月日更 上电复位执行到main函数

第 9 周作业 _ 数据分析

园子

nginx做代理访问慢,优化方案

Ng

layui使用templet格式化表格数据

nginx配置日志为json格式,nginx按照天实现日志分割,nginx配置负载均衡

Ng

关于 JavaScript 闭包

程序员海军

JavaScript 大前端 闭包

AI量化智能交易软件,量化策略系统搭建

大侠请留步!欢迎有极客精神的你

Lily

使用VUE和Element 创建一个dialog对话框组件的详细过程

尔嵘

剖析Android开发未来的出路在哪里,终局之战

欢喜学安卓

android 程序员 面试 移动开发

GPL协议的代价_语言 & 开发_Daniel Jalkut_InfoQ精选文章