V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐工具
RoboMongo
推荐书目
50 Tips and Tricks for MongoDB Developers
Related Blogs
Snail in a Turtleneck
n0th1ng
V2EX  ›  MongoDB

MongoDB 的协议问题

  •  
  •   n0th1ng · 2015-03-06 23:39:13 +08:00 · 4058 次点击
    这是一个创建于 3332 天前的主题,其中的信息可能已经有所发展或是发生改变。
    打算做一个商业的客户端软件,数据库打算用sqlite或者MongoDB,发现MongoDB使用的是AGPL,那我能把mongod.exe打包到我的商业软件里并销售吗?
    12 条回复    2015-03-10 22:29:53 +08:00
    n0th1ng
        3
    n0th1ng  
    OP
       2015-03-07 07:57:22 +08:00
    谢谢楼上两位
    n0th1ng
        4
    n0th1ng  
    OP
       2015-03-07 07:58:17 +08:00
    是一位。。。
    155
        5
    155  
       2015-03-07 14:25:22 +08:00
    打包基于AGPL的mongod进你的闭源程序是不行的。

    但是你写个文档教用户自己下载mongodb, 你的程序只调用基于MIT的mongo client library是可以的。
    swordfeng
        6
    swordfeng  
       2015-03-07 15:19:15 +08:00
    你可以做个自动下载安装mongod的脚本,在安装前提示用户要安装mongod并展示AGPL许可的内容
    打包进去是不行的,但是下载脚本应该没问题
    n0th1ng
        7
    n0th1ng  
    OP
       2015-03-08 22:12:51 +08:00
    到期行不行呢
    n0th1ng
        8
    n0th1ng  
    OP
       2015-03-09 00:29:20 +08:00
    经过这几天的了解询问,我认为是可以的。10gen选择APGL的目的是要求对mongodb的更改必须回馈社区,而不是像google修改了mysq(GPL)那样自己爽。但10gen又做了解释,承认驱动(Apache)和你的客户端是单独的工作。所以,只要不更改mongod的源码,你可以任意的使用。
    155
        9
    155  
       2015-03-09 17:41:21 +08:00
    @n0th1ng Oracle给商业客户提供了OEM、ISV等付费授权用来绕过社区版的GPL, 如果只需要client library一环脱出去就行, 那只需要调用脱离官方的mysqlclient的一些类库, 比如MIT协议的pymysql和go-mysql-driver, 甚至还可以极小成本的通过二次链接LGPL的mariadbclient规避, 那Oracle这些东西还怎么卖? AGPL只比GPL更严.
    n0th1ng
        10
    n0th1ng  
    OP
       2015-03-09 21:18:01 +08:00
    @155 "To say this another way: if you modify the core database source code, the goal is that you have to contribute those modifications back to the community.

    Note however that it is NOT required that applications using mongo be published. The copyleft applies only to the mongod and mongos database programs. This is why Mongo DB drivers are all licensed under an Apache license. You application, even though it talks to the database, is a separate program and “work”." 怎么理解
    155
        11
    155  
       2015-03-09 22:23:15 +08:00   ❤️ 1
    @n0th1ng 这两段和我的看法是一致的吧, mongod和mongos是AGPL的, 但是官方给了driver APACHE的协议用来隔离传染性, 所以只要你单纯的调用driver做db操作(纯GPL或者AGPL的程序, 即使你不包含, 但是你把调用这个程序实现一些应用作为必选项, 你也会被污染, 所以用了"even though it talks to the database")实现a separate program是完全没问题的, (再回到第一段), 除非你改了mongod或者mongos, 那你就需要贡献出来了. 但问题是你想打包mongod是主动引入污染了, 谈不上a separate program.

    我是觉的这操作没什么争议, mongo的做法是官方把driver APACHE了做隔离, mysql是做了FOSS豁免, 对用户来说都差不多, 但是Oracle写得很明白, 你要想打包mysqld又不想被GPL污染得去买OEM等一些额外的授权. AGPL只比GPL更严.
    n0th1ng
        12
    n0th1ng  
    OP
       2015-03-10 22:29:53 +08:00
    @155 谢谢解读
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2861 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 02:38 · PVG 10:38 · LAX 19:38 · JFK 22:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.