写点什么

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

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

关注

评论

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

Go 语言内存管理三部曲(二)解密栈内存管理

网管

堆栈 内存管理 内存布局 Go 语言

第四周 系统架构作业

蓝黑

极客大学架构师训练营

十三、深入Python字典和集合

刘润森

Python

十四、深入Python条件和循坏

刘润森

Python

[周末荐片]Undercover Billionaire

亚伦碎语

生活

架构师训练营第三周总结

薛凯

LeetCode题解:22. 括号生成,递归先生成再过滤,JavaScript,详细注释

Lee Chen

大前端 LeetCode

Java进阶架构师面试手册:核心框架篇整理,助我斩获65W架构师Offer!

Java架构追梦

Java 学习 架构 面试 框架

2020.10.05-2020.10.11 学习总结

icydolphin

极客大学架构师训练营

架构师训练营第四周总结

薛凯

轻量级业务中台开发框架,以DDD思想为基础,融合中台核心要素,赋能中台建设

高鹏

中台 业务中台 DDD 框架 中台架构

第四周作业

icydolphin

极客大学架构师训练营

架构师训练营第四周课后练习

薛凯

架构师训练营第一周课后练习

薛凯

架构师训练营第一周总结

薛凯

学习笔记丨数据结构与算法之贪心算法

Liuchengz.

贪心算法

微服务已成Java开发的面试门槛,你连SpringCloud都不会怎么涨薪

Java架构之路

Java spring 编程 程序员 面试

ARTS Week13

丽子

架构师训练营第三周课后练习

薛凯

SpringBoot整合Jpa项目(含Jpa 原生sql语句介绍)

小Q

Java 架构 微服务 springboot jpa

分布式系统中的CAP、ACID、BASE概念

编程 分布式

每周花6小时跟清华大牛马士兵学Java:多线程高并发、JVM调优、算法、设计模式等

Java架构之路

Java 程序员 面试 算法 编程语言

阿里大牛原创技术好文精选整理:Redis+Nginx+设计模式+Spring全家桶+SQL+Dubbo

Java架构之路

Java 程序员 面试 编程语言

从格力直播看品牌商的渠道变革

boshi

数字化转型 品牌 直播带货 优化业务

spring-boot-route(十七)使用aop记录操作日志

Java旅途

Spring Boot aop

来点不一样的: 精选200个Java技术面试真题,详解应聘Java程序员常见考点,在Github上标星89.6K

996小迁

编程 程序员 架构 面试

iOS底层原理之—dyld与objc的关联

iOSer

ios ios开发 iOS Developer dyld objc

Redis - redis.conf - 中文翻译

大海

redis 缓存 翻译

一文带你轻松了解Python导入模块的各种命令

计算机与AI

Python

阿里云服务器搭建

时间是一个人最好的证明

阿里云 服务器 域名

COSCon'20 & Apache Roadshow 来了,数据技术专场欢迎您

代立冬

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