1
westoy 2022-07-09 20:57:43 +08:00
以我的认知,GPL 的并不能转 GPL 以外的协议, 除非你能获得贡献者的授权或者移除他们所有的代码, 而且你也不能阻止之前开源的代码以 GPL 的协议继续衍生
双协议的项目一开始就是双协议的, 并不是中途转成 GPL 的 |
2
akira 2022-07-09 21:58:14 +08:00
协议 是防君子的
|
3
icyalala 2022-07-09 22:19:46 +08:00
看 License ,最上面应该写了 Copyright ,那个人有权来修改他拥有项目的协议。
你如果依赖了 GPL 的库,那可以按 Copyright 找到拥有者来为你特别授权, 你自己的项目,再移除了所有 GPL 依赖后,也可以改成其他协议。 但是已经发布出去的代码是改不了协议的,对方在获取到那一版代码时,协议就生效了。 |
4
PMR 2022-07-09 22:50:45 +08:00 via Android 1
据我了解 改 license 需要所有 contributors 同意 除非移除相关代码片
Copyright 属于贡献者 不是项目 |
5
icyalala 2022-07-09 23:41:11 +08:00
@PMR Copyright 一般是写在 License 最开头的,可能是一个 /多个人或组织。
从法律上说,修改 License 的权利在 Copyright holder ,并不是所有 Contributor 都有这个权利的。 如果你贡献多,你可以试着把自己加到 Copyright 列表里。 GPL FAQ 也提到了这些: https://www.gnu.org/licenses/gpl-faq.en.html#HeardOtherLicense https://www.gnu.org/licenses/gpl-faq.en.html#LinkingOverControlledInterface |
6
jim9606 2022-07-10 00:15:46 +08:00 1
改协议需要所有贡献者同意。
所以搞开源商业的公司在项目接收外部贡献时会要求签署 Contributor License Agreement (CLA),授权公司修改授权模式或者转让版权,这样可以避免上面的麻烦。 对于采用类 GPL+商业授权双许可证的项目,这是必须的步骤。 |
7
agagega 2022-07-10 00:57:50 +08:00
他如果要这样做,得要求你签一个贡献者协议之类的东西,否则默认你贡献的代码只遵守 GPL 许可证,他没法拿来私用。
|
8
ca1123 2022-07-10 09:38:03 +08:00
标准做法不是做隔离么?
|
9
geelaw 2022-07-10 09:51:26 +08:00 1
>需要为贡献者支付报酬吗?
这完全偏离了 GPL 的重点。GPL 的重点在于软件是否自由,而不是是否免费。 GPL 是版权持有者给其他人的授权,版权持有者并不丧失本来的任意权利,包括停止开源等。通常情况下,版权持有者是作者,每次修改都是创作衍生作品,因此没有特殊安排时,所有曾经贡献代码的人是共同的版权持有者(即使某个人贡献的代码已经被全部修改或删除过,也是),最初的作者并单独享有版权,而是对他创作的部分享有版权,对于其他部分,最初的作者只不过是得到了其他版权持有者的授权而已。Linux 内核就是这种模式。 在这种情况下,最新的版本(无论是否继续衍生)闭源发布,显然是违反 GPL 的行为,任何其他版权持有者皆可追求他们的权利。 一种常见的做法是要求所有作者都把他们的版权转移给项目负责人或机构(例如 FSF 就是这样操作的,但他们的主要目的是允许 FSF 集中采取行动保护 GPL 所赋予的自由),这样项目负责人或机构永远是惟一的版权持有者,自然可以对它做任何事情,包括闭源。 |
10
hjc4869 2022-07-10 13:56:45 +08:00 via Android 1
一般商业运作的开源软件(并非仅限于 GPL)在接受贡献时会要求贡献者签 CLA ,同意将贡献内容无偿授权给项目所有人,使其可以任意更改协议等等。
如果没有 CLA 就不行。就像 Linux kernel 现在的状况,由于没有 CLA 并且早期将其定死在 GPLv2 ,现在连 Linus 本人都不能将其整体升级为 GPLv3 或者修改为其它协议。 如果你不想签 CLA 又想给开源生态作贡献,可以自己维护一个 GPL fork 。 |