MongoDB is dual-licensed with AGPL (the engine) and ASL 2.0 (the drivers). In a nutshell, merely using MongoDB through the drivers does not dictate to release your source code (due to drivers' ASL 2.0 license).

AFAIK, only if you directly call the mongo engine, you need to give out your code that's using it (but still not the application code that talks to mongo via the drivers).

Check this MongoDB blog entry: http://blog.mongodb.org/post/103832439/the-agpl

What if you deploy (install, configure) mongodb in your deployment scripts. And then start/stop/restart those processes. And then maybe create some users via mongo shell. Do you need to publish your deployment scripts?

(A bonus question: how can they publish the drivers as ASL 2.0 if those drivers use the AGPL-licensed part of MongoDB over the network? Because they are authors of both?)


Cue the usual "I'm not a lawyer" disclaimer.

This saying, GPL licenses aim to protect the users right to study the code of a piece of software, even if modified and redistributed. AGPL adds another channel of "redistribution" by explicitly stating that exposing the software to use through network systems entails the same consequences as redistributing it.

In your case, however, you are NOT modifying the MongoDB software. You merely creating related, but distinct, works that happen to interact with MongoDB. Just like a web application which uses Mongo as its storage engine, your deployment script are therefore NOT required to be published.

Relevant quote from the linked blog post is here:

The copyleft applies only to the mongod and mongos database programs.

You aren't modifying either of those two programs, so the copyleft doesn't apply.

  • I'm not sure about this: 1) AFAIK, even if I didn't modify the mongo engine code, I had to publish my source code using it with (A)GPL, 2) The blog post indeed states that if you're application is not directly calling mongo processes, then copyleft is not invoked. But my deployment scripts are directly calling ("interact") those, so should I publish them? 3) AGPL license applies to every artifact distributed in MongoDB package, containing also mongo shell, I think those mongod and mongos processes they give are just examples – Tuukka Mustonen Apr 17 '14 at 9:42
  • 1
    @TuukkaMustonen Usage is very different to modification. The purpose of such licences in this case are to protect against someone taking the available source code for the MongoDB server itself or otherwise the driver software and then "on selling" that in a commercial software product. So implementation or "calling" itself if fine, but as the licence only asks if you "modify" the code as published, that you also publish those "modifications" yourself or otherwise arrange licencing. But even then this would not apply to code that "utilizes" the library or services. – Neil Lunn Apr 24 '14 at 0:36
  • @NeilLunn I disagree about the idea of a GPL license. If you merely use GPL software (and distribute it), you need to publish your source code (not just modifications, but source code for your whole application using the GPL-licensed product). No matter if you actually modify the GPL library or not. Same applies to AGPL, except it states that you don't have to distribute the GPL-licensed product, the copyleft is invoked when an end-user utilizes the GPL product over a network. So I wonder if deployment scripts must be published, as they use (A)GPL product (and my scripts might be distributed). – Tuukka Mustonen Apr 24 '14 at 13:12
  • @TuukkaMustonen Very well, I think you made your opinion quite clear in your initial comments. So yo help you in your development, feel free to ask all the people who have done otherwise for their source code. As you state, they need to publish it. There are plenty of projects out there so that should cut development time for you down quite a lot. – Neil Lunn Apr 25 '14 at 0:17
  • @NeilLunn No need to go sarcastic. I merely disagreed about how GPL works and still see the problem. If I'm misunderstanding GPL, I'm open to changing my view. If I use GPL software in a product that I distribute, I need to publish my source code, simple as that. It is true that I haven't (ever) bumped into deployment scripts, yet that doesn't explain the reason of not having to publish them. Your statement was about modifying the software and is not relevant in the context of my question (afaik). – Tuukka Mustonen Apr 29 '14 at 12:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.