开源事件:法院认定 GPL 为“具备强制执行力的合同”

简介:

导语:由于涉及权利的授予和限制,“开源软件”是一个法律与技术相交融的复合概念。从自由软件和开源运动发展的早期阶段至今,对开源软件著作权保护和相关许可法律定性的争论从未停止。最近,开源世界里又发生了一件里程碑事件,借此事件,让我们一同探讨——“开源软件在法律领域的进展”。

开源软件在法律领域的进展01

事件的主角

GNU GPL:(GNU General Public License)通用公共许可证,是一个广泛被使用的自由软件许可证。从 Linux 内核到 GCC 工具链,许多自由软件项目都遵循适用 GPL。(后续会详细介绍)

Hancom:韩国本土的 Office 办公软件商。

Artifex:美国加利福尼亚州一家软件开发机构。

Ghostscript:是一套建基于 Adobe、PostScript 及可移植文档格式(PDF)的页面描述语言等而编译成的开源软件。当然,这款软件的开发者是 Artifex。

Hancom Vs Artifex

Hancom 公司出售的 Office 软件程序中,下载并使用了 Artife 公司所开发的 Ghostscript 工具。

这款 Ghostscript 软件采用双许可证方式:

一种选择是你可以在遵循 GNU Affero 通用公共许可证的前提下自由且免费的使用它,在 GNU AGPL 许可证的规范下,你必须做到自由分发对 Ghostscript 做出的任何改变的代码;

另一种选择你可以通过付费方式向 Artifex 公司购买商业许可证。在该商业许可证的规范下,你可以使用该软件代码满足自己的目的,并保留所有源代码。

Hanom 公司没有付费给 Artifex 公司以获得商业许可证。他们选择采用 AGPL 许可证路线,但现实使用中,Hanom 违反了该许可证,即在集成 Ghostscript 到他们的产品中去的时候,没有按照许可证所要求的将对 Ghostscript 的修改代码自由的提供出来。

看到 Hancom 出售的软件每年赚取上千万美元,但 Artifex 没有获得任何好处。于是 Artifex 将 Hancom 起诉至美国法院,要追朔许可证授权费用。

Hancom 为自己的辩护

在 Hancom 公司的辩护过程中,他们申明了若干事项,包括该公司由于不是在美企业因此无法在美国产生侵权,但最关键的是它做了两项举证来针对 GNU GPL 许可证的强制执行性:

第一,该公司认为其在下载 Artifex 的软件的过程中没有签署任何法律文件,以至于无合同文件被强制执行

第二,联邦版权法优先于该案件中的合同申明。

(第二条举证看上去有点奇怪,因为其源于一个众所周知的案例"Jacobsen v Katzer",这个案例我们下次在细说。)

美国联邦法院的判决

今年4月底,科利法官驳回了 Hancom 的观点,否认了关于由于韩国公司实际上没有签署任何东西,没有“相互同意”的说法。

科利法官解释,“GNU GPL 规定,如果用户没有获得商业许可证,即可视为 Ghostscript 的用户同意 AGPL 许可证条款。

人们在下载软件的时候默认同意 GNU GPL——这意味着 GNU GPL 本身就是把这个简单的著作权问题并进入合同法领域所需要的“额外元素”。从这个意义上说,GNU GPL 是自我传播的,即使没有“签署合同”,当你选择开源路线时,它就被认定为具备强制执行力的合同了。

众所周知,美国属于判例法系,所以这个案件,就变成了开源软件在法律领域新的里程碑。

本文来自开源中国社区 [http://www.oschina.net]

目录
相关文章
|
API 对象存储
腾讯云对象存储cos获取图片像素信息
简述获取图片像素信息的几种方案
腾讯云对象存储cos获取图片像素信息
|
12月前
|
人工智能 监控 JavaScript
MCP 正当时:FunctionAI MCP 开发平台来了!
MCP 的价值是统一了 Agent 和 LLM 之间的标准化接口,有了 MCP Server 的托管以及开发态能力只是第一步,接下来重要的是做好 MCP 和 Agent 的集成,FunctionAI 即将上线 Agent 开发能力,敬请期待。
1671 33
|
网络协议 物联网 网络安全
为啥IPv6没有完全代替IPv4?
【10月更文挑战第29天】
791 2
为啥IPv6没有完全代替IPv4?
|
10月前
|
存储 编解码 数据可视化
Hi-C 数据的可视化与注释
Hi-C 数据的可视化与注释
Hi-C 数据的可视化与注释
|
12月前
|
存储 安全 API
秘密任务 1.0:为什么 DTO 是 API 设计效率和安全性的秘密武器?
在软件开发中,确保API安全与高效至关重要。本文通过“间谍机构”场景,介绍数据传输对象(DTO)的作用。DTO是一种设计模式,用于格式化数据并隐藏敏感信息,仅传送必要内容。例如,在特工数据中,DTO可过滤掉密码和任务详情,仅返回代号和权限等级。使用DTO能简化前后端通信、提升性能和安全性。 文中示例展示如何用DTO处理GET与POST请求:GET响应只含安全字段,POST创建新特工时隐藏密码。借助工具如APIPost,可更高效管理API设计,实现安全、结构化的数据交互。总结来说,DTO让API更简洁、安全且高效。
|
存储 数据采集 数据可视化
大数据处理技术
【4月更文挑战第10天】大数据处理涵盖采集、预处理、存储、分析挖掘、展现和应用等关键步骤。采集涉及多种类型数据,预处理确保数据质量,存储管理关注规模、速度和安全,分析挖掘利用机器学习发现价值,展现和应用则通过可视化和检索实现数据价值。云计算和AI强化了大数据处理能力,整体目标是提取数据中的价值,驱动企业和社会进步。
1178 4
大数据处理技术
|
人工智能 监控 IDE
利用AI进行代码生成:开发新纪元
【10月更文挑战第9天】人工智能在软件开发领域的应用日益广泛,特别是AI驱动的代码生成技术。本文介绍了AI代码生成的原理、核心优势及实施步骤,探讨了其在自动补全、代码优化和快速原型开发中的应用,并提供了实战技巧,旨在帮助开发者高效利用这一技术提升开发质量和效率。
|
安全 搜索推荐 Android开发
深入探索安卓与iOS系统的差异及其对用户体验的影响
在当今的智能手机市场中,安卓和iOS是两大主流操作系统。它们各自拥有独特的特性和优势,为用户提供了不同的使用体验。本文将深入探讨安卓与iOS系统之间的主要差异,包括它们的设计理念、用户界面、应用生态以及安全性等方面,并分析这些差异如何影响用户的使用体验。
|
存储 Java 编译器
经验总结:源代码-目标代码的区别
源代码是由程序员用高级语言编写的可读文本文件,需编译成机器可执行的二进制目标代码。目标代码由编译器生成,包含机器指令,对机器可读但对人类不易理解。源代码便于修改,而目标代码需重新编译以反映更改。源代码不受系统限制,目标代码则特定于系统。此外,链接程序处理源文件间及库函数的引用,将目标文件连接成可执行文件。Java中的本地方法则允许调用非Java语言编写的代码,实现与底层系统的交互,提高程序性能或实现特定功能。
866 5
|
缓存 JavaScript 安全
深入理解Docker镜像构建过程
深入理解Docker镜像构建过程
332 0