Github 上的 license 声明能否进行一些特别的定制

2020-06-16 09:19:43 +08:00
 maxxfire
比如在 github 上开了一个开源代码的项目,如果别人将该项目(或集成在自己项目中)用于:

1. 用于非商业用途时,完全免费使用,无任何约束。
2. 用于商业用途时,以下 2 种任选一种:
a,如果用户数超过 1 万以上,则收取 1 元*用户数。
b,如果盈利超过 1 万元,则收取 赢利*2%

有没有这样类似的 license 玩法?
4190 次点击
所在节点    程序员
27 条回复
LokiSharp
2020-06-16 09:24:13 +08:00
可以定制,但是不一定有效,评估合法的协议才有效
harde
2020-06-16 09:26:15 +08:00
那直接写 非商业使用 MIT 协议,商业使用,单独购买商业授权,结了呗。。。
maxxfire
2020-06-16 09:33:55 +08:00
@harde 这种东西人家只是看看,根本不当回事。比如之前 ffmpeg 耻辱柱,大厂也是照样用。
Exin
2020-06-16 09:50:13 +08:00
开源协议在事实上更接近于道德约束,而资本逐利,不重视道德
Exin
2020-06-16 09:51:03 +08:00
当然了,协议还是要写的,万一控诉成功经济自由了呢?
GreenDam
2020-06-16 10:23:18 +08:00
注意法律效力
Ariver
2020-06-16 10:41:41 +08:00
参见几年前沸沸扬扬的 react 协议事件。
zpf124
2020-06-16 10:47:18 +08:00
有你这种需求的都是发行俩版本,代码一模一样就是包含的 license 不一样。

包含开源 license 的版本限制禁止商业使用。
msg7086
2020-06-16 10:49:59 +08:00
@harde 规定了非商业使用就不是 MIT 了,MIT 本身就授予了在商业使用环境下的权利。

@maxxfire 可以的,不仅是定制,甚至可以完全从头编写。当然,你修改后的协议和原始的协议是截然不同的,不能用原来的协议作为名称了。

比如 MIT 协议是允许商业环境随意使用。你往里加了几个字,说商业环境要付费,那么这个协议就不再是 MIT 协议了。你可以给它起名字叫 maxxfire 许可证。

当然了,写协议最好还是有律师来审核一下,保证效力。

另外,修改后显然就不是开源 /自由软件了,不能以开源 /自由软件自称了。开源 /自由软件的用户本来就有用于商业用途的自由。
nightwitch
2020-06-16 11:01:28 +08:00
参考 Qt, LGPL 和商用双协议
no1xsyzy
2020-06-16 15:03:08 +08:00
@maxxfire #0 自写 License 就不是开源项目。必须被 OSI 确认的 License 才能算开源项目。开源是专有名词而非术语,其定义严格地被 OSI 掌握。可以考虑某 charts 的协议,以 CC BY-NC-SA 和 商业授权。两种方式发布。商业授权需要单独谈判。
但值得指出的是,非商业使用本身是难以界定的。一篇文章被转载到 NPO 挂了广告的网站上可能被视作商业使用,而被新闻机构转载并付费墙可能被视为非商业使用。
@harde #2 不符合 MIT 许可证,因为 MIT 许可证明确允许商业使用;操作上也不具有可行性,因为 MIT 允许中间人转代。比如甲公司可以在路上随便找一个人让他接受 MIT 许可证并获得此软件的一个副本,然后非商业地共享给甲公司使用,成功绕过 “非商业使用” 限制。
@Exin #4 已经有判例了。 #5 但还是不如找个律师帮你写。法律文书让律师写,就好像软件代码让程序员写一样。
no1xsyzy
2020-06-16 15:05:37 +08:00
@LokiSharp #1 @harde #2 @Exin #4 @Ariver #7 @msg7086 #9 @nightwitch #10
再重申一次,许可证不是协议。协议可以被部分接受而绕过,而许可证不行。如果 GPL 是协议的话你今天可以看到一堆 gcc 的私人化仅释放二进制文件的修改了。
LokiSharp
2020-06-16 15:36:33 +08:00
@no1xsyzy #11 其实吧,这些开源许可都是虚的,他们都没规定必须在公共领域开源。即使是商业使用,也只需要在发行的二进制副本的时候附上源码就好了。
msg7086
2020-06-16 15:38:35 +08:00
@no1xsyzy 许可证是一种合同。合同和协议的含义几乎相同。许可证怎么就变成不是协议了。
协议是什么时候开始可以被部分接受而绕过了?
几乎所有的商业软件都有 EULA 最终用户许可协议,他们都可以被部分接受而绕过?
我没看明白这个论点是从哪里来的。
msg7086
2020-06-16 15:41:03 +08:00
@LokiSharp 开源 /自由是指人们在获取软件的时候有获取源代码并处分的自由,怎么就成虚的了……
no1xsyzy
2020-06-16 15:42:40 +08:00
@LokiSharp #13 是没要求公开,连 GPL 都没要求,甚至 GPL 并没有明确要求 “同时附带源码”,可以书面承诺将来提供源码,此书面承诺向 “任何获得此软件的副本的自然人或法律实体” 生效。
但这并不意味着这是虚的,因为任何得到源码副本的人都被明确允许把它任意形式公开,最终表现为实质公开。
no1xsyzy
2020-06-16 15:54:08 +08:00
@msg7086 #14 在与当地法律冲突的情况下,合同(按现存各国合同法)的默认处理方式是冲突条款失效剩余部分继续生效。每个 EULA 都应当对当地进行重新编写,或者限定生效地,实际上也是这么操作的。一个比较常见的绕过点是 “教育目的” 避风港。还有新闻出版自由这一避风港,都是常见的绕过版权法的尝试,即使最终法院判决是侵权,仍然,避风港的存在确实增加了维权的成本。
而许可证在与当地法律冲突情况下,根据 TRIPS 公约,默认整个许可证失效。

实际操作上,绕过的办法就是成立一个国家,并且设立与合同相违背的法律,或者在现存国家设置与合同相违背的法律,就可以绕过了。因此,合同必然明确指定参与方,通常指定生效地,而许可证为成为公共许可证,必然无法指定参与方,最多进行一些条件限定,那可玩的就多了。
LokiSharp
2020-06-16 16:18:21 +08:00
@no1xsyzy #16 是啊,GPL 只是规定了发行时要附带源码,而在内部使用的情况下,副本的受众是自身,只需要对自身开源。而就算是因为发行时没有附带源码被起诉,也没有惩罚性的违约条款,只需要在宣判后开源即可。而且大多数情况下只需要承诺开源就会免于起诉,丢一份早期的源码然后承诺会维护即可。
msg7086
2020-06-16 16:19:51 +08:00
@no1xsyzy 原来你拓展到其他国家了。
我想着中国法律框架下应该是没什么区别的。
msg7086
2020-06-16 16:22:17 +08:00
@LokiSharp GPL 本来就不要求内部使用时公开源代码啊。
GPL 是获得软件的人有获得源代码的自由。既然公众没有获得软件,哪来获得源代码的自由呢。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/681915

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX