V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
JarvisTang
V2EX  ›  开源软件

产品开源,但不希望别人拿我的程序和我竞争,应该选哪个开源协议呢?

  •  1
     
  •   JarvisTang · 2020-08-09 14:25:46 +08:00 · 8362 次点击
    这是一个创建于 1596 天前的主题,其中的信息可能已经有所发展或是发生改变。

    求教各位

    产品开源,不限个人学习或商业使用,但是不想别人优化改良后再以新产品与我的产品竞争,应该选哪个开源协议合适呢?

    47 条回复    2020-08-10 11:15:50 +08:00
    changdy
        1
    changdy  
       2020-08-09 14:28:28 +08:00   ❤️ 4
    闭源协议.
    zcjfesky
        2
    zcjfesky  
       2020-08-09 14:28:58 +08:00 via Android   ❤️ 16
    没啥区别,真要抄你的人不会管你用啥协议,遇到南山必胜客你还可能会被反告
    yankebupt
        3
    yankebupt  
       2020-08-09 14:29:55 +08:00
    允许商业使用但禁止竞争的意思是 ZF 专用么?
    别打我(包括楼下
    WittBulter
        4
    WittBulter  
       2020-08-09 14:29:56 +08:00   ❤️ 1
    如果不希望别人出现商业形式竞争,那就 GPL,基于你的开源项目做了修改的任何项目都应该开源且继承 GPL 。
    neoblackcap
        5
    neoblackcap  
       2020-08-09 14:33:16 +08:00   ❤️ 3
    那你应该是用 AGPL,别人做云服务都要给你全部开源。一般看到 AGPL 都会掉头就走,当然你可以出双授权协议,开源用 AGPL,闭源用 EULA
    yankebupt
        6
    yankebupt  
       2020-08-09 14:34:21 +08:00
    4 楼说的可能最接近,鼓励竞争同时压制恶意竞争(没有被恶意解释的话,南山 xxx......
    swulling
        7
    swulling  
       2020-08-09 14:34:52 +08:00 via iPhone
    适合你要求的人应该没有现成的,最接近的是 CC 中有禁止商用的几个协议。

    但是许可证本身你也可以自己找个律师让他帮你写一份,内容随你,但是打官司认不认不好说
    swulling
        8
    swulling  
       2020-08-09 14:36:37 +08:00 via iPhone
    @WittBulter GPL 也好,AGPL 对方只要满足公开代码依然可以和 lz 竞争,不满足 lz 的条件。

    比如同样的代码别人收费更少,服务更好,还是会有抢生意
    hoyixi
        9
    hoyixi  
       2020-08-09 14:41:38 +08:00
    想法很好,但是如果你打算在国内靠这代码赚钱或者创业之类,最好不要开源
    neoblackcap
        10
    neoblackcap  
       2020-08-09 14:42:29 +08:00
    @swulling 那就学 unreal 那一票游戏引擎好了,公布源代码,但是授权用 EULA
    wdhwg001
        11
    wdhwg001  
       2020-08-09 14:51:27 +08:00 via iPhone
    你的开源只是作为源码参考、展示炫耀的话,那么就保留版权、开放不可轻易 build 的源码即可。
    如果你还要收集建议的话,可以让源码可 Build 。
    firefox12
        12
    firefox12  
       2020-08-09 15:25:59 +08:00   ❤️ 1
    如果想赚钱,那就闭源。如果开源了,别人靠这个代码就能打败你,说明这里的技术含量并不高。

    最后泼冷水,你的代码没这么值钱。
    zhuangzhuang1988
        13
    zhuangzhuang1988  
       2020-08-09 15:28:19 +08:00
    facebook 的 mit + 附加协议
    wzzzx
        14
    wzzzx  
       2020-08-09 15:33:05 +08:00
    比较好奇有什么代码是只有你能写,别人写不出的。代码是不值钱的,跟你竞争的是别人的商业头脑
    angryfish
        15
    angryfish  
       2020-08-09 15:41:26 +08:00 via iPhone
    不要开源
    miniwade514
        16
    miniwade514  
       2020-08-09 15:45:32 +08:00
    @wdhwg001 思路独特👍。你可以下我的代码,但是你跑不起来,哈哈。
    neoblackcap
        17
    neoblackcap  
       2020-08-09 15:54:50 +08:00   ❤️ 1
    @miniwade514 其实不是什么特别的思路,因为之前就有人做过。在早很多年之前,CentOS 的维护者就说过同样的源代码,他们编译出来的产物就是不如 RHEL 上面一样的软件效率快。所以他们是怀疑红帽对编译脚本进行过优化,但是没有放出来。
    newee
        18
    newee  
       2020-08-09 15:56:47 +08:00 via iPhone
    协议只是协议,如果别人不遵守协议咋办。你可以搞一个社区版开源,商业版闭源。
    CODEWEA
        19
    CODEWEA  
       2020-08-09 15:57:33 +08:00
    当然是自己留一手,搞两种版本的,开源阉割版本
    wdhwg001
        20
    wdhwg001  
       2020-08-09 16:09:48 +08:00 via iPhone
    @miniwade514 但是不绝对,参考红帽和 CentOS 。
    charlie21
        21
    charlie21  
       2020-08-09 16:10:47 +08:00
    开源一个假的 甚至有误导性的源代码
    loading
        22
    loading  
       2020-08-09 16:35:16 +08:00
    先申请一个相关专利,然后随便你怎么开源,谁牛逼就告谁。
    akring
        23
    akring  
       2020-08-09 16:39:46 +08:00
    这种情况建议闭源,强行开源不是给自己找麻烦么
    maduoduo
        24
    maduoduo  
       2020-08-09 17:20:20 +08:00
    开源协议除了你用公认的开源协议以外,你也可以自己撰写这个项目特定的开源协议,然后把你公开和反对的内容都写在里面就可以。
    huayumo
        25
    huayumo  
       2020-08-09 17:44:46 +08:00
    开源的意义不大,建议自己用就好,又想让别人做贡献,又不想别人超过自己
    avrillavigne
        26
    avrillavigne  
       2020-08-09 17:47:30 +08:00
    专利诉讼,也需要时间。 如果是面向大众的软件,靠的还是运营。。
    shyangs
        27
    shyangs  
       2020-08-09 17:49:50 +08:00
    CC BY-NC
    black11black
        28
    black11black  
       2020-08-09 17:54:22 +08:00
    @neoblackcap 查了查,查不到 eula 协议的文本啊。不像一般开源协议一查就有
    micean
        29
    micean  
       2020-08-09 17:58:18 +08:00 via Android
    个人项目选择何种开源协议都要考虑维权成本问题……最好还是按前面说的,要么闭源,要么双版本
    a719114136
        30
    a719114136  
       2020-08-09 18:08:17 +08:00 via Android
    自己写一个协议。

    另外你这个描述是有冲突的,不能和你竞争那不就相当于不可以商用,商用必然会和你有竞争。

    那你这个开源还有啥意义??
    herozzm
        31
    herozzm  
       2020-08-09 18:28:13 +08:00   ❤️ 1
    @wzzzx 你这话说的,windows 代码不值钱?你能写出来?
    echo1937
        32
    echo1937  
       2020-08-09 18:31:08 +08:00   ❤️ 1
    一般常见的开源的目的有这些:
    - 弄出来了一个可能有用的东西,但我自己精力有限,开源出来清大家一起帮忙开发。
    - 弄出来了一个东西,我希望它能够抢占市场,避免别人使用其它方案,为了抢夺话语权,我将它开源,从而打压竞品。
    - 弄出来了一个东西,将他开源,从而证明我自己的能力。

    Linux 的开源是第一个理由,
    Android/Apache 的开源是第二个理由,
    最大同性交友网站上的软件们有些是第三个理由。

    作者:pansz
    链接: https://www.zhihu.com/question/23909210/answer/1393678873
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    所以 GPL 系的协议比较接近你的需求。
    gejun123456
        33
    gejun123456  
       2020-08-09 18:34:49 +08:00 via iPhone
    不要开源 要么靠广告赚钱
    akira
        34
    akira  
       2020-08-09 20:05:52 +08:00
    选哪个开源协议 都没用
    tairan2006
        35
    tairan2006  
       2020-08-09 20:05:58 +08:00
    GPLv3
    neoblackcap
        36
    neoblackcap  
       2020-08-09 20:51:38 +08:00
    @black11black EULA 即最终用户授权协议,你给钱找律师写吧
    webshe11
        37
    webshe11  
       2020-08-09 21:03:53 +08:00
    AES 协议,开源密文
    FS1P7dJz
        38
    FS1P7dJz  
       2020-08-09 21:54:02 +08:00
    条条大路通罗马
    一个实现有几百种方法

    更何况,你开源目的是啥?让别人帮你找 bug 修 bug?
    仅仅是免费使用,并不需要开源啊
    iConnect
        39
    iConnect  
       2020-08-09 23:51:43 +08:00 via Android
    @zhuangzhuang1988 fb 旗下 react 有附加协议被骂死了,fb 已经取消 react 附加协议,只保留 mit 了。
    passerbytiny
        40
    passerbytiny  
       2020-08-10 04:54:27 +08:00
    商业化开源卖(租)的是服务(一群特别的人)而不是代码,个人就不要想这种形式了,单个人要么不够价值要么直接被包养。
    Rheinmetal
        41
    Rheinmetal  
       2020-08-10 07:37:06 +08:00
    如果只想达到个人免费的话发布免费 binary 就行了
    加壳甚至功能放到服务端都能给破了 开源就更别说了 不要脸的话怎么都能竞争
    greatbody
        42
    greatbody  
       2020-08-10 09:21:45 +08:00
    建议考虑下自己写一个协议,中心思想就是个人使用不限制,但需要提交发行的修改代码。商业使用完全禁止,就可以了。

    个人使用不会和你构成竞争的。
    SynMax
        43
    SynMax  
       2020-08-10 09:43:51 +08:00
    国内的问题不在于用什么协议,而在于它们可能根本不知道世界上还有协议这种东西。
    BigDogWang
        44
    BigDogWang  
       2020-08-10 10:03:45 +08:00
    楼主,开源的目的有两个:
    1. 打名声
    2. 召集社区一起修复项目 bug
    如果你两个都不想要,就闭源,不要为了开源而开源
    tzigone
        45
    tzigone  
       2020-08-10 10:17:33 +08:00
    怕竞争还开源做什么,代码一出就是为爱发电.
    nrtEBH
        46
    nrtEBH  
       2020-08-10 11:07:40 +08:00
    在中国开源协议就是废纸吧
    软著和专利先申请起来
    BadAngel
        47
    BadAngel  
       2020-08-10 11:15:50 +08:00 via Android
    关键代码剥离,开源其他代码调用封装 SDK 接口
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2674 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 15:15 · PVG 23:15 · LAX 07:15 · JFK 10:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.