Hacker News new | ask | show | jobs
by harlowja 4460 days ago
I wonder how licensing works here with mongodb being AGPL.

A message I proxied recently: http://lists.openstack.org/pipermail/openstack-dev/2014-Marc...

2 comments

Yahoo isn't the only large company to instruct its employees to avoid mongodb due to it being AGPL. In my opinion, the only people using mongodb in a commercial setting are those who are paying 10gen for a commercial license or those that don't know they are violating the AGPL license.
???

Most people in a commercial setting aren't modifying the MongoDB source code. AGPL does not require that any software that communicates with AGPL software be AGPL'd.

But yes, if you're using MongoDB in a commercial endeavor, and you modify the source code, and you're using AGPL version, you do need to share your changes to the MongoDB source code.

As I understand it, the drivers are a point of contention, and the parent's parent explains it well.

Technically, according the AGPL, MongoDB's database drivers licenses (apache) are incompatible with AGPL, and technically should be licensed under AGPL. Now the parent says that should be fine for official drivers because MongoDB isn't going to sue themselves, but the issue is for community drivers, like the Node Driver or the Golang driver. Since the AGPL states that any software built for the exclusive use for the accompanying software must be AGPL - then it follows that community drivers should be AGPL as well.

To me that means not only can you not modify the database, but you cannot modify the drivers. And I'm also unsure if that also means that any applications that link those drivers means that they must be AGPL as well. And if your web application must be AGPL, it also means that the source of whatever service you are providing must be available as well. So in a way it doesn't just affect corporations that want to modify Mongo, it affects everyone who wants to use Mongo (with a community driver atleast).

IANAL

The copyright holder can issue multiple licences for a given product.

It's not about suing themselves'.

Under my current understanding the reach is much farther, see for example google open source directors response @ http://www.theregister.co.uk/2011/03/31/google_on_open_sourc...

>>> The Affero GPL is designed to close the so-called "application service provider loophole" in the GPL, which lets ASPs use GPL code without distributing their changes back to the open source community. Under the AGPL, if you use code in a web service, you required to open source it.

I have no idea why you were downvoted, and I can't reply to your child post, but I wanted to point out that you're both agreeing with one another: if you're not changing the source, there shouldn't be an issue. Most deployments AFAIK wouldn't change the source, so no issue, but if you do AGPL does indeed require you to change it back even if you're not distributing said source.
> the only people using mongodb in a commercial setting are those who are paying 10gen for a commercial license or those that don't know they are violating the AGPL license.

It is not clear to me exactly what the problem is from the message. Are we now discouraged to use MongoDB as a database (from startup to university), or writing MongoDB database driver based on existing MongoDB language driver such as pymongo or writing on top of MongoDB's database driver?

I think the followup from yahoo 'might' help: http://lists.openstack.org/pipermail/openstack-dev/2014-Marc...
Yeah that definitely helps clarifying the issue, I think.

As long as Openstack only use Apache licensed code >>from MondgoDB Inc.<< and diligently avoids using any open source contributions from any community contributor to the MongoDB ecosystem, then you remain compliant the your CLA.

I wouldn't have known the APGL licensed database and the conflict with MongoDB, Inc. licensed code and community code. I guess now all ORM built upon pymongo used in commercial settings is that trouble zone then?

This is a huge bummer. Definitely an alert for those looking forward to use MongoDB at commercial settings as parent said.

This is actually really interesting. Due to it's nature, using mongo as a data source can easily become something very deeply ingrained into your application.

Whereas if mysql shipped with a similar restriction, you could easily flip the connection strings and have it mostly working on postgres or something else.