写点什么

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:005426
用户头像

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

关注

评论

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

AI金榜题名时,MLPerf榜单的份量究竟有多重?

脑极体

企业数字化转型之路,从这里开始

天翼云开发者社区

数字化转型 云存储

一朵云开启智慧交通新未来

天翼云开发者社区

区块链 大数据 物联网

中文版Postman?功能真心强大!

Liam

Java 开发者工具 Postman 后端开发 程序员进阶

【刷题记录】1. 两数之和

WangNing

7月月更

如何开发引入小程序插件

Geek_99967b

小程序插件

Java方向~~0基础小白如何快速脱离0offer的苦海!

KEY.L

7月月更

7000+字图文并茂解带你深入理解java锁升级的每个细节

华为云开发者联盟

Java 开发 华为云

开创人工智能产业新未来!7月8日昇思生态论坛与你相约广州

科技热闻

微服务链路风险分析

阿泽🧸

7月月更 链路风险分析

MMAP

北洋

Andriod 7月月更

场景化面试:关于分布式锁的十问十答

面试官问

分布式锁

不要再手动批量替换了,使用python AST模块批量替换

阿呆

Python AST 批量替换

Ubuntu 20.04 安装 Chisel

贾献华

7月月更

systemd-resolved 开启 debug 日志

程序员与厨子

ubuntu 运维 DNS systemd-resolved

让开发效率飞速提升的跨端方案

Geek_99967b

小程序 跨端 小程序容器

分布式算法入门之 Paxos 算法

宇宙之一粟

Basic paxos 7月月更

从 1.5 开始搭建一个微服务框架——调用链追踪 traceId

悟空聊架构

日志 链路追踪 traceId 悟空聊架构 7月月更

集合处理的利器

技术小生

java8 7月月更

一文读懂简单查询代价估算

华为云开发者联盟

数据库 后端 查询引擎

使用 RepositoryProvider简化父子组件的传值

岛上码农

flutter ios 安卓 移动端开发 7月月更

鱼和熊掌可以兼得!天翼云弹性裸金属一招鲜!

天翼云开发者社区

服务器 弹性扩容

华为云ModelArts文本分类–外卖评论

逝缘~

深度学习 华为云 7月月更

刷个算法,结果第一题就蚌埠住了~~

为自己带盐

算法 力扣 7月月更

Spring你牛个啥,我承认刚才说话我声音有点大

zxhtom

7月月更

【愚公系列】2022年7月 Go教学课程 004-Go代码注释

愚公搬代码

7月月更

如何组织一场实战攻防演练

穿过生命散发芬芳

攻防演练 7月月更

国内低代码开发平台靠谱的都有哪些?

AIRIOT

低代码 物联网 低代码,项目开发

XaaS 陷阱:万物皆服务(可能)并不是IT真正需要的东西

雨果

云服务 xaas DaaS 本地服务

牛客java选择题每日打卡Day7

京与旧铺

7月月更

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