V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
9nix00
V2EX  ›  程序员

开源授权能否标注禁止某些公司或个人该项目代码

  •  
  •   9nix00 ·
    wangwenpei · 2017-05-26 09:25:03 +08:00 · 8480 次点击
    这是一个创建于 2740 天前的主题,其中的信息可能已经有所发展或是发生改变。

    本人有一些属于自己的开源项目,且以 MIT 授权方式发布的代码

    因为懒得推广(大家都懂的,做好开源不容易,写文档就搞死人),所以一直在小范围使用。

    现在因为非常鄙视某些公司的行径,想禁止对方使用。

    Q1: 不知道修改 MIT 后,是否还算有效或者仍然是一份有效的开源协议?

    Q2: 因为涉及到禁止某些公司的条款,所以该软件不能算开源项目?

    Q3: 这么做是否违反某些法律条款,比如仅以作者喜好公开禁止某些公司使用项目?是不是有点任性?

    49 条回复    2017-05-28 21:22:49 +08:00
    cstj0505
        1
    cstj0505  
       2017-05-26 09:27:46 +08:00
    既然开源心态就放开阔点。
    要不就别开源。
    vicalloy
        2
    vicalloy  
       2017-05-26 09:29:14 +08:00
    当然没有问题。
    东西是你的,协议怎么写都可以。
    很多公司的开源项目都是双许可的,商业应用得使用商业授权协议。
    mooncakejs
        3
    mooncakejs  
       2017-05-26 09:29:29 +08:00 via iPhone
    开源有'法律条款'?
    Felldeadbird
        4
    Felldeadbird  
       2017-05-26 09:30:40 +08:00
    肯定可以的。在声明 MIT 协议之前,强调特定用户,特定公司禁止使用。
    googlebot
        5
    googlebot  
       2017-05-26 09:33:41 +08:00 via Android
    为啥开源?
    likuku
        6
    likuku  
       2017-05-26 09:39:04 +08:00
    @googlebot 开源不等于可以随便用
    geelaw
        7
    geelaw  
       2017-05-26 09:39:27 +08:00   ❤️ 4
    开源和别人能不能用是两码事。

    你可以公布代码但是禁止别人使用它、禁止别人创作衍生作品等,这都是开源,不太常见罢了。

    如果你修改了 MIT 使得它禁止特定公司使用,那么特定的公司无法合法地使用它。一个绕过方法是注册一个新公司等等。

    注意,你第一次发布代码的时候使用了 MIT,那么你想禁止的公司只要获得最初发布的版本,就仍然可以合法地依据最初的协议获得使用权。要想杜绝先前的版本被使用,你可以不再发布它。但你无法防止已经获取先前版本的人再次按照原先的协议发布之。
    9nix00
        8
    9nix00  
    OP
       2017-05-26 09:41:16 +08:00
    @googlebot 我挺喜欢开源的,方便大家呗,自己也没少受社区的好处。我为人人,人人为我。

    但是假设这样的场景:
    如果作者经历过一些事,在事件当中,自己损失了金钱还有生命。通过诉讼手段又极其耗时。
    而且最近对方可能会使用本人的开源项目继续帮他们节省工作量。
    面对这样的垃圾,总不能让他们一直这么逍遥吧?
    ProjectAmber
        9
    ProjectAmber  
       2017-05-26 09:44:45 +08:00
    JSON License 被质疑的主要原因就是中间有一条:
    > The Software shall be used for Good, not Evil.
    9nix00
        10
    9nix00  
    OP
       2017-05-26 09:45:30 +08:00
    @geelaw 懂了,那还是心胸放开阔点,随他去吧。只能人在做,天在看。 不是不报,时候未到了。
    designer
        11
    designer  
       2017-05-26 09:45:30 +08:00 via iPhone
    不知道 有哪些开源协议
    googlebot
        12
    googlebot  
       2017-05-26 09:49:42 +08:00 via Android
    你们可以参考一下 ffmpeg 的耻辱榜,这个是最有名的
    03
        13
    03  
       2017-05-26 09:51:28 +08:00 via Android
    可以,但你改协议的话对之前的版本是无效的
    9nix00
        14
    9nix00  
    OP
       2017-05-26 09:59:41 +08:00
    @geelaw @03 不过想想后面要上一些重大更新,更改协议拿来做限制还是很有用的。

    我可以在授权中说明:
    禁止由某某某公司的法人及股东所参股的所有公司使用本项目吗?


    总觉得怪怪的,不会有法律风险,这么做不算散播负面消息对对方带来声誉影响吗?
    违法的事我还是不想做的^_^
    AllenHai
        15
    AllenHai  
       2017-05-26 10:03:25 +08:00
    geelaw
        16
    geelaw  
       2017-05-26 10:10:22 +08:00
    @9nix00 那如果那个人后来从那个公司撤股了呢?你可以直接禁止某公司和它的(递归)子公司使用。没听说过有人会为了使用一段开源代码去造一个新公司的(我之前说的方法只是理论可行)。但注意这样无法阻止 clean room,而且 clean room 连 GPL 都不阻止,对于一个大公司来说,clean room 你的代码简直不要太容易。
    9nix00
        17
    9nix00  
    OP
       2017-05-26 10:16:25 +08:00
    @geelaw 公司股东可以标明年限是哪年的,主要是在撰写协议时应该不能出现身份证号这种隐私信息吧。
    我只是表达就这几个人。

    其实后端的开源代码,对方用也真没办法,只不过更多的是警示作用。

    我不希望因为做出这种警示,而给自己带来法律风险。

    至少本人还是很愿意做一个守法的好公民的。
    bookit
        18
    bookit  
       2017-05-26 10:47:00 +08:00
    你可以自己写一个开源协议,并且写清楚自己的意见,完全合理合法。
    ryd994
        19
    ryd994  
       2017-05-26 10:51:53 +08:00
    上 GPL ……
    GPL 对方还能盈利的话那也是能力不小,也就算了吧
    ryd994
        20
    ryd994  
       2017-05-26 10:55:47 +08:00
    @googlebot ffmpeg 自己都收掉了
    太多了来不及整理
    reus
        21
    reus  
       2017-05-26 11:01:29 +08:00
    当然可以,不过对方侵权的话,你也要打官司啊,感觉没什么约束力。
    vjnjc
        22
    vjnjc  
       2017-05-26 11:53:18 +08:00
    @AllenHai 多谢分享,看王垠的文章总是很有意思
    bk201
        23
    bk201  
       2017-05-26 12:28:07 +08:00
    你可以挖坑哪,特定条件的坑
    waruqi
        24
    waruqi  
       2017-05-26 12:45:36 +08:00
    心放宽点就好了,不用太纠结这些。。
    afxcn
        25
    afxcn  
       2017-05-26 16:00:43 +08:00
    我自己喜欢用 GPL 协议,不过到现在还搞不清楚 GPL2 和 GPL3 有什么区别。
    tcdw
        26
    tcdw  
       2017-05-26 16:45:27 +08:00 via Android
    https://opensource.org/osd

    > 5. No Discrimination Against Persons or Groups
    > The license must not discriminate against any person or group of persons.
    firefox12
        27
    firefox12  
       2017-05-26 16:54:22 +08:00 via iPhone
    知道 freebsd 为什呢会输掉和 linux 的战争了吧。
    Sorrow
        28
    Sorrow  
       2017-05-26 17:11:36 +08:00
    你可以考虑使用 AGPL 协议。
    https://www.gnu.org/licenses/agpl-3.0.en.html
    cnbeining
        29
    cnbeining  
       2017-05-26 21:06:27 +08:00 via Android   ❤️ 2
    Tunar
        30
    Tunar  
       2017-05-26 21:09:38 +08:00 via Android
    @cstj0505 和心态有毛关系,开源又不是随便想怎么用怎么用
    yangqi
        31
    yangqi  
       2017-05-26 21:39:00 +08:00
    @Tunar MIT 协议基本就是想怎么样就怎么用,楼主既然用了 MIT 协议开源,就应该清楚协议内容。现在来说这些怎么不是心态问题了.
    Tunar
        32
    Tunar  
       2017-05-26 22:22:29 +08:00
    @yangqi 我说的是一楼的观点,不是具体某一个协议怎样怎样,看清楚再说,谢谢
    libook
        33
    libook  
       2017-05-26 22:29:37 +08:00
    新版本可以发布修改的开源协议,禁止特定公司使用。
    但是已发布的未修改协议的开源软件好像就不受限制了。
    毕竟开源协议也是协议的一种,双方遵守。
    yangqi
        34
    yangqi  
       2017-05-26 22:39:55 +08:00
    @Tunar 我看的很清楚,你自己没说清楚。开源前没想清楚,开源后跑来抱怨就是心态问题
    jininij
        35
    jininij  
       2017-05-26 22:45:58 +08:00 via Android   ❤️ 1
    协议是你写的,你想怎样就怎样呗。
    msg7086
        36
    msg7086  
       2017-05-27 01:32:41 +08:00
    开源授权是你自己撰写的,当然怎么写都可以。
    只要不借用别的开源协议条款就行了。
    如果你写 MIT,那就必须遵守 MIT 对你的限制。如果不写,当然也就不必遵守了。
    expy
        37
    expy  
       2017-05-27 01:43:57 +08:00
    Beerware 都存在,自己写个协议取个名字就好了。。。
    tyfulcrum
        38
    tyfulcrum  
       2017-05-27 01:51:45 +08:00
    如果担心有小人利用开源代码,以国内的环境看还是直接不开源比较好——毕竟连腾讯这种体量的公司也不遵守 GPL。
    monnand
        39
    monnand  
       2017-05-27 01:56:38 +08:00 via Android
    各位回答的人,如果不了解请不要瞎编。

    Q1: 不知道修改 MIT 后,是否还算有效或者仍然是一份有效的开源协议?

    不行。开源协议的定义是 OSI 确认的,自由软件协议是自由软件基金会确认的。你修改之后就不叫 MIT 许可证了,就不再被这两个组织承认了。另外,你如果针对某个特别的公司做特例不让他们用,那么 OSI 肯定不会承认,因为他们规定的开源软件定义里第一条就是:

    The license shall not restrict any party from selling or giving away the software as a component of an aggregate software distribution containing programs from several different sources. The license shall not require a royalty or other fee for such sale.

    全文参加 https://opensource.org/osd-annotated

    Q2: 因为涉及到禁止某些公司的条款,所以该软件不能算开源项目?

    不算,我前面说了,参加开源软件定义。注意:这是定义,是提出开源软件概念的组织 OSI 提出的定义,是和开源软件概念同时提出来的。

    Q3: 这么做是否违反某些法律条款,比如仅以作者喜好公开禁止某些公司使用项目?是不是有点任性?

    我不是律师,但以我的理解,应该不会违反国内或大多数国外的法律。
    monnand
        40
    monnand  
       2017-05-27 02:00:34 +08:00 via Android
    另外还有两条开源软件定义也会相关

    5. No Discrimination Against Persons or Groups
    The license must not discriminate against any person or group of persons.

    Rationale: In order to get the maximum benefit from the process, the maximum diversity of persons and groups should be equally eligible to contribute to open sources. Therefore we forbid any open-source license from locking anybody out of the process.

    Some countries, including the United States, have export restrictions for certain types of software. An OSD-conformant license may warn licensees of applicable restrictions and remind them that they are obliged to obey the law; however, it may not incorporate such restrictions itself.

    6. No Discrimination Against Fields of Endeavor
    The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research.

    Rationale: The major intention of this clause is to prohibit license traps that prevent open source from being used commercially. We want commercial users to join our community, not feel excluded from it.
    Silicon
        41
    Silicon  
       2017-05-27 02:07:53 +08:00
    如果你开源的目的是做到 EFF 或 FSF 近乎”洁癖“级别的开源的话,加入这种规则是不可以的

    如果你开源是为了希望让绝大多数社区成员受益但让部分组织和个人不能受益,且不是很关心是否为”纯正“的开源的话,应该没问题
    thinker3
        42
    thinker3  
       2017-05-27 05:13:04 +08:00
    可不可以选一个严格的开源协议,然后选择性起诉
    arakashic
        43
    arakashic  
       2017-05-27 05:37:22 +08:00
    Q1: 不知道修改 MIT 后,是否还算有效或者仍然是一份有效的开源协议?
    arakashic
        44
    arakashic  
       2017-05-27 05:37:43 +08:00
    Q2: 因为涉及到禁止某些公司的条款,所以该软件不能算开源项目?

    Q3: 这么做是否违反某些法律条款,比如仅以作者喜好公开禁止某些公司使用项目?是不是有点任性?
    arakashic
        45
    arakashic  
       2017-05-27 05:43:03 +08:00
    Q1: 不知道修改 MIT 后,是否还算有效或者仍然是一份有效的开源协议?
    不是有效的“开源协议”,因为没有 OSI 的认可。但是仍然是有效的授权协议。OSI 不认可,who gives a crap ?
    Q2: 因为涉及到禁止某些公司的条款,所以该软件不能算开源项目?
    不算是 OSI 定义上的“开源项目”。那你是不是把项目放到 github 上开放给大家获取了呢?。是的话,OSI 不认可,who gives a crap ?
    Q3: 这么做是否违反某些法律条款,比如仅以作者喜好公开禁止某些公司使用项目?是不是有点任性?
    并不违法。是有点任性,但是 who gives a crap ?
    cstj0505
        46
    cstj0505  
       2017-05-27 09:19:46 +08:00
    @Tunar 他都用 mit 了,你觉得不是想怎么用就怎么用。

    开源是共产主义精神的延续,是本着对这个圈子自由的认可。他和哪个公司那个是个人恩怨,就希望禁止别人使用他的代码。这当然没问题,但这种只愿意遇到对你好的人的心态你确定是开源的精神?

    微软都对 GNU linux 围剿了那么多年,是不是 gnu linux 就得禁止微软使用 gnu linux 了?
    Quaintjade
        47
    Quaintjade  
       2017-05-27 10:25:19 +08:00
    你可以修改协议,但可能会坑到别人或坑到自己。比如说:
    * 如果你把禁止语句写在许可第一段里,那么别人 fork 时也必须原样复制这句话,也就是说所有衍生作品带有的都是修改的 MIT 许可而不是原版的 MIT 许可。
    * 你最好提醒一下他人这不是原版 MIT 许可,否则别人不小心没注意到,抄了段原版 MIT 上去就违反你的许可了。
    * 如果你不把禁止语句写在许可第一段里,别人 fork 时可以使用原版 MIT 且擦掉禁止条款,那么你本来想禁止的公司可以二次 fork 从而绕过限制。

    是否仍算开源软件?算,但并不算 OSI 定义的开源软件,也不算 FSF 定义的自由软件。

    你的其他选择:
    * 项目以 GPL 或 AGPL 发布(你想禁止的公司也能使用,但必须用 GPL 或 AGPL );如果有人希望不用 GPL 或 AGPL 来 fork,可以单独问你索取其他授权。不过要注意的是,你能提供其他授权的前提是整个项目是你一个人的,或者其他贡献者都同意其他授权。
    * 像 FFMPEG 那样,不通过协议禁止,而是通过其他形式羞辱违反者。
    9nix00
        48
    9nix00  
    OP
       2017-05-27 11:32:43 +08:00   ❤️ 1
    谢谢大家的建议,我决定还是随他们去吧。

    为了恶心一部分人,而把自己的项目搞得非标准,冷静想想,自己都觉得划不来。
    再说工程师小伙伴们还是有些很不错的人,有些还一起共事好几年,为了恶心管理者而让小伙伴们受牵连,也有点残忍了。其他的因为有一些协议条款约束,也就不说什么了。

    随着自己阅历的增长,我越来越相信“人贱有天收”这句话。
    有些人自以为能在法律的边缘游走,重利轻诺,机关算尽,占尽便宜。
    我相信冥冥之中,自有天意,人算不如天算。不是对事件无奈的推脱,而是因宇宙的未知而感受到的渺小。

    最后友情提醒看官一条真理,以前我不太信,总觉得理解万岁,谁都有难处,现在我越来越相信: 一个团队,如果在它小的的时候不懂得分享利益。那么等它壮大了,更不会与成员分享利益。

    所以如果你正在处在这个阶段,那么请小心吧。
    vishun
        49
    vishun  
       2017-05-28 21:22:49 +08:00 via iPhone
    楼主的做法因为各种原因无可厚非,不做评价,但觉得楼主这种思想不对,天意什么的都是扯淡,贱人由于做的恶心的事多了,很大几率会被打,但楼主你为什么不是打的人呢,非要寄希望于下一个人?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1005 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 21:35 · PVG 05:35 · LAX 13:35 · JFK 16:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.