写点什么

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

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

关注

评论

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

解决多源异构数据整合难题"良策“,助企业高效管理数据资产

Aloudata

数据管理 Data Fabric 多源异构

快速明白高校采购云管平台4大必要性

行云管家

云计算 云服务 高校 云管平台

从基础到高级应用,详解用Python实现容器化和微服务架构

华为云开发者联盟

Python Docker 微服务 华为云开发者联盟 企业号2024年7月PK榜

【论文速读】| TCSR-SQL:面向表内容感知的自检索文本到SQL方法

云起无垠

开发全方位体育直播平台的指南:从源码选择到多端实现

软件开发-梦幻运营部

详解 Apifox:批量添加接口请求 Body 参数的方法

Apifox

程序员 前端 后端 API body

AI 应用实战营 - 作业 五 - SD WebUI

德拉古蒂洛维奇

快手开源LivePortrait,实现表情姿态极速迁移,GitHub 6.5K Star

快手技术

人工智能 #开源 可灵 企业号2024年7月PK榜

南京大学携手和鲸、智谱,签署“101 数智领航计划”,共启人工智能赋能教育新篇章

ModelWhale

人工智能 数据科学 校企合作 智谱AI

开源数据大屏

源字节1号

小程序 开源 前端 后端

京东商品搜索API(jd.item_search)返回值与营销策略

技术冰糖葫芦

API API 编排 API 文档 API 协议

Meme“吞噬”市场,VC项目失宠,加密市场下一步何去何从?

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

MQTT & micro-ROS:构建高效的机器人应用

EMQ映云科技

物联网 机器人 mqtt emqx

Comparing WiFi Powerhouses: IPQ6010 vs IPQ5332

wallyslilly

qcn9274 IPQ5332

2024-07-17:用go语言,给定一个整数数组nums, 我们可以重复执行以下操作: 选择数组中的前两个元素并删除它们, 每次操作得到的分数是被删除元素的和。 在保持所有操作的分数相同的前提下,

福大大架构师每日一题

福大大架构师每日一题

持续开拓创新 天翼云TeleDB数据库斩获数据库最佳产品奖

Geek_2d6073

碳课堂|什么是碳标签?产品为什么要贴上“碳标签”?

AMT企源

数字化转型 双碳 碳管理 碳标签

安全与便捷并行,打造高效易用的用户支付体验

HarmonyOS SDK

HarmonyOS

软件测试简历书写、职业规划及面试的必备技能

测吧(北京)科技有限公司

测试

MobPush REST API的推送 API之创建推送

MobTech袤博科技

Java 开发者 产品动态

软件测试学习笔记丨测试用例流程设计

测试人

软件测试

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