Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >GPL如何应用于必需的但非分布式的代码?

GPL如何应用于必需的但非分布式的代码?
EN

Stack Overflow用户
提问于 2011-12-06 22:39:09
回答 1查看 286关注 0票数 4

如何将GPL应用于使用GPL库但不以源代码或二进制形式重新分发GPL库本身的分布式专有应用程序?例如,如果一个专有软件是通过.deb或.rpm分发的,而GPL'd库(或完整应用程序)被列为依赖项?

GPL'd库是动态链接还是静态链接有区别吗?如果GPL'd代码只是由脚本语言(如Perl、Python等)直接“包含”的源代码呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-06 23:16:57

首先,我不是律师,没有资格提供法律建议。联系你自己的律师寻求法律咨询。

也就是说,当程序可能依赖于库时,我在过去使用的指导方针涉及到GPL中“系统库”和“对应源代码”定义之间的交互:

可执行作品的“系统库”包括(a)包含在打包主要组件的标准形式中,但不是该主要组件的一部分,以及(b)仅用于允许使用该主要组件的作品,或实现一个标准接口的任何东西,而不是作为一个整体的作品,该标准接口的实现以源代码形式向公众开放。在此上下文中,“主要组件”是指可执行工作在其上运行的特定操作系统(如果有的话)的主要基本组件(内核、窗口系统等),或用于产生工作的编译器,或用于运行工作的目标代码解释器。

目标代码形式的作品的“对应源代码”是指生成、安装和(对于可执行的作品)运行目标代码和修改作品所需的所有源代码,包括控制这些活动的脚本。然而,它不包括作品的系统库,或通用工具或普遍可用的免费程序,它们在执行这些活动时未经修改地使用,但不是作品的一部分。例如,对应的源包括与作品的源文件相关联的接口定义文件,以及作品被特别设计为需要的共享库和动态链接子程序的源代码,诸如通过那些子程序与作品的其他部分之间的亲密数据通信或控制流。

现在是指导方针:如果你可以合理地期望这个库在几乎每个系统上都是默认可用的,并且这个库是系统正确操作所必需的,那么将你的非GPL程序链接到GPL库是合法的。

这是一个非常严格的限制。在实践中,为他们的库选择GPL许可证的库作者对使用他们的库的非GPL程序不感兴趣。这样的库通常不会以使“对应源代码”的“系统库”子句如此有用的方式集成到系统中。(我不能随便说出任何我认为是重要系统库的GPL授权库)。

至于“联系”--我相信“联系”从来没有在法庭上争论过。为了安全起见,您不应该在同一进程中分发与GPL代码一起运行的专有代码。虽然C、C++等语言将这一点说得很清楚,但我希望大多数法官都能相信,任何语言的常规“要求”或“包含”机制都代表着“链接”的道德等价物--完全的源代码包含肯定会达到“在同一进程中运行”的相同意图。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8407925

复制
相关文章
Kubernetes 确实很强,但你未必需要它!
作者 | aly kafoury、译者 | 弯月、出品 | CSDN 我在软件行业摸爬滚打了十余年,形形色色的角色都担任过。以前,遇到一些新兴的工具,人们会认真比较优缺点,而如今却变成了无脑跟着潮流走。 Kubernetes 就是其中之一。如今,在 Kubernetes 上托管应用程序已成为部署应用程序的标准,而无论 Kubernetes 能否带来切实的好处。我希望通过本文,说明使用 Kubernetes 的缺点, Kubernetes 对软件开发周期的破坏、成本的增加,以及对敏捷性的负面影响,从而唤醒软件
程序猿DD
2023/04/04
1860
Kubernetes 确实很强,但你未必需要它!
Git 如何 clone 非 master 分支的代码
默认 clone 的是这个仓库的 master 分支。如果最新的代码不在 master 分支上,该如何拿到呢?如下图所示,最新的代码可能在daily/1.4.1分支上,我们希望拿到这个分支上的代码。
零式的天空
2022/03/28
3820
Git 如何 clone 非 master 分支的代码
来源自rnnoise,但非rnn
https://files.cnblogs.com/files/cpuimage/denoise.zip
cpuimage
2018/12/02
1.9K0
从GPL中国第一案看GPL开源软件的商业应用
本案作为中国第一个关涉GPL协议的诉讼案件,对开源软件许可协议在中国司法程序中的效力认定和中国法院对于GPL协议的条款解读具有重要的参考意义。本文将对案件中涉及GPL协议的部分展开讨论,并就此提出商业公司使用GPL协议的开源软件时应如何开展风险管控的思考。
腾讯云开发者
2020/01/07
3.1K0
GNU和GPL的区别/关系
GUN:GNU's Not UNIX的缩写,是一项运动。是1983年Richard Stallman针对UNIX走向闭源和和收费后发起的运动,旨在打造出一套完全开源免费的操作系统。
狼啸风云
2019/10/28
1.9K0
分布式架构的非功能质量需求
非功能质量需求分为4个部分:应用服务器,数据库,缓存,消息队列 本文摘自《分布式服务架构》 用于备忘,便于查找 ---- 1. 应用服务器 部署结构 序号 部署结构 1 负载均衡策略 2 高可用策略 3 I/O模型 4 线程池模型 5 线程池中的线程数量 6 是否多业务混合部署 容量和性能 序号 容量和性能 1 各接口的请求量 2 各接口的访问峰值 3 平均的请求响应时间 4 最大的请求响应时间 5 在线的用户量 6 请求的大小 7 网卡的I/O流量 8 磁盘的I/O负载 9 内存的使用情况 10 CPU
yingzi_code
2019/08/31
5760
GNU和GPL
GNU是一个自由的操作系统,其内容软件完全以GPL方式发布。这个操作系统是GNU计划的主要目标,名称来自GNU’s Not Unix!的缩写,因为GNU的设计类似Unix,但它不包含具著作权的Unix代码。GNU的创始人,理查德·马修·斯托曼。
星哥玩云
2022/09/15
1.1K0
GNU和GPL
87-OOP之必需掌握的magic
class Book: def __init__(self, title, author, pages): self.title = title self.author = author self.pages = pages def __str__(self): return '《%s》' % self.title def __call__(self): print('《%s》is written b
凯茜的老爸
2018/09/11
3710
非科幻:你的大脑代码会被黑
未来或许还是一个迷,但是现在已经有一件事已经确定了:攻击者已经具备了入侵人类脑电波与医疗设备联接的能力。而根据IOActive高级顾问Alejandro Hernández的描述,事情还会变得更糟。 Hernández表示盗取、控制以及重播脑电图中的脑电波的方法已经出现,这类检测工具存在严重的安全隐患,而医疗行业就妥善保护脑电波记录采取的防护措施甚少,保护效果甚弱。 FreeBuf 百科:“大脑代码” 脑电波是大脑在活动时,大量神经元同步发生的突触后电位经总和后形成的。它记录大脑活动时的电波变化,是脑神
FB客服
2018/02/06
7790
非科幻:你的大脑代码会被黑
如何计算文本的非重复计数
如果要计算非重复计数,我们很容易可以想到一个函数DistinctCount,那如果直接使用是不是就可以了呢?直接
逍遥之
2020/03/24
1.7K0
如何计算文本的非重复计数
Babel还是Node开发的“必需品”吗?
现在做 Node 开发还需要“麻烦”的 Babel 吗?毋庸置疑,Babel 曾经对构建和开发 Node.js 应用程序有过很大的影响,但随着 Node.js 的原生功能不断强大,Babel 或许也不再是 Node 开发的“必需品”。本文将主要介绍关于如何在 Node 开发中摆脱 Babel 的方法。
coder_koala
2019/09/25
9240
Babel还是Node开发的“必需品”吗?
Tencent Joins the GPL Cooperation Commitment
Hong Kong, 07 November, 2018 – Tencent, a leading provider of Internet services in China, today announced that it has joined the GPL Cooperation Commitment (see full text below) initiated by Red Hat Inc. Tencent’s support for the initiative reflects the
腾讯开源
2018/11/07
9600
Tencent Joins the GPL Cooperation Commitment
[转]托管代码与非托管代码
      托管代码是一microsoft的中间语言(IL),他主要的作用是在.NET   FRAMEWORK的公共语言运行库(CLR)执行代码前去编译源代码,也就是说托管代码充当着翻译的作用,源代码在运行时分为两个阶段:       1.源代码编译为托管代码,(所以源代码可以有很多种,如VB,C#,J#)       2.托管代码编译为microsoft的平台专用语言。
莫问今朝
2019/02/25
4.6K0
Jono Bacon: GPL 没落了吗?
不久之前我看到了 RedMonk 的 Stephen O’Grady 发了一个关于开源协议的有趣的推特,那个推特里面有这张图,
Debian中国
2018/12/20
5290
文本匹配——【NAACL 2022】GPL
《文本匹配——【EMNLP 2021】TSDAE》中的自适应预训练的一大缺点是计算开销高,因为必须首先在语料库上运行预训练,然后在标记的训练数据集上进行监督学习。标记的训练数据集可能非常大。
小爷毛毛_卓寿杰
2022/06/30
7400
文本匹配——【NAACL 2022】GPL
GNU GPL介绍「建议收藏」
怎样在程序中使用GNU许可证 不管使用哪种许可证,使用时须要在每一个程序的源文件里加入两个元素:一个版权声明和一个复制许可声明。说明该程序使用GNU许可证进行授权。另外在声明版权前应该说明文件的名称以及用途。在复制许可声明之后,最好写上作者的联系信息。使得用户能够联系到你,假设对源文件进行了改动,最好使用简短的信息描写叙述改动的内容。
全栈程序员站长
2022/07/07
8950
GPL14877、GPL570、hgu133plus2.db 比较
但是,我在在利用hgu133plus2.db进行探针名转换为基因名时出现问题 ,代码如下:
生信技能树
2020/12/03
3.1K0
GPL14877、GPL570、hgu133plus2.db 比较
Rust 与 开源 | GPL 许可证引发的问题
给 Rust 编译器 merge rustc_codegen_gcc 后端的 MCP[1] ( Merge rustc_codegen_gcc backend as compiler/rustc_codegen_gcc issues#442[2] ) 遭遇了开源许可证的问题。
张汉东
2021/07/14
1.6K0
为什么GPL是更好的开源许可证?
1. 让我从一件新闻讲起。 2009年,计算机业界发生了一件大事:甲骨文公司以74亿美元收购SUN公司。 消息宣布后,有一个人坚决反对这笔交易。他叫Michael Widenius,是数据库软件MyS
ruanyf
2018/04/19
9800
为什么GPL是更好的开源许可证?
分布式链路追踪 SkyWalking 源码分析 —— 应用于应用实例的注册
我们先来看看 API 的定义,ApplicationRegisterService.proto ,如下图所示:
芋道源码
2019/07/28
8810

相似问题

使用具有非GPL许可证的GPL代码的许可软件

50

代码优先-非必需字段是必需的

13

用非GPL码分配GPL码

35

非GPL替代FFMPEG?

10

简单的非GPL PHP代理

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文