Hacker News new | ask | show | jobs
by exhilaration 3745 days ago
AGPL license if anyone's curious: https://github.com/citusdata/citus/blob/master/LICENSE
3 comments

Which means there is no chance this would ever become part of PostgreSQL proper.
That's correct, and with such a significant license change I think the term 'unfork' is being used inappropriately in the title.

Edit: the PostGIS extension is GPL, and that license choice has been very successful. Hopefully the AGPL works out at least as well for Citus, I'm just not familiar enough to know what the implications will be in this context.

>> the PostGIS extension is GPL

But then it doesn't really belong or aim to be in PostgreSQL proper, at least IMO, so I think that's fine.

The functionality (i.e. distributed processing and horizontal scaling) that Citus has done is something that I predict will eventually be part of standard PostgreSQL, but it will not be Citus's code (unless they change the license, of course).

Alternative implementations will probably surface, but those will almost certainly be packaged as extensions as well.

I think the model could work in this case, both for the business and for PostgreSQL in general.

AGPL actually makes a lot more sense for a database (except for SQLite, which is typically redistributed).
Citus owns the copyrights, and the CLA ensures that they will continue to. That means that they can reassign it under a different license if they so choose, and they could at some point choose a liberal license.
And a CLA in place also means many contributors will shy away from doing so because they have no idea what happens with their contribution in the next version. Either it's a community project owned by everyone under an agreed upon license or it's more like a record deal for new artists.
Does that mean that whatever connects to this database needs to be AGPL too?
No .. it means any changes you make to CitusDB should be made public.

[0] https://en.wikipedia.org/wiki/Affero_General_Public_License

No, it means if you make changes to the code and use it over a network you have to be AGPL too (think "network" as "distribution" in the GPL sense).
This is a really bad argument, probably wouldn't stand up in court, and in any case doesn't have precedent.

Hint: How did you (the developer) originally acquire a _copy_ of the AGPL'd sourcecode?

Not only that: running the app requires copying it into memory; editing files requires making copies; deploying it to your production servers requires making copies.
Copying it into memory solely in order to run it probably isn't an issue

https://www.law.cornell.edu/uscode/text/17/117

U.S. Copyright code allows you to make copies into memory or otherwise if it is required in order to utilize the software.

https://www.law.cornell.edu/uscode/text/17/117

I don't think acquiring a copy is an act of distribution by the acquirer. Besides, the copy you received while acquiring it was not modified by you, so that would not affect the modified version which was never published. AGPL cannot change the definition of the word publish to be different than that of the U.S. Copyright Code.
You don't own the copyright. You don't have the right to download it on to your hard drive (aka "reproduce the copyrighted work in copies"), except to the extent AGPL allows you to.
As far as I know it means it is contagious over the network.

If not I have misread and quite a few other people have misunderstood as well I guess.

See for example MongoDB and others that distribute the core under AGPL and the drivers under MIT or something so that you can actually use it for something without having to make your product AGPL licensed as well.

Edit: did some quick googling and found this in another HN thread about some other nice but AGPL licensed software I've never heard about again:

"""The Opa web site says that I cannot: "Firstly, `‘if I'm using AGPL Opa to develop an app does it need to be AGPL, too?’'. Long story short — yes, it does." """ [0]

IANAL but being a nerd I have read a lot of licenses and it seems pretty clear to me that thats what companies has in mind when they license something under AGPL.

Unless someone can prove me wrong I hope we can stop spreading the misconception that AGPL somehow isn't viral.

[0]: https://news.ycombinator.com/item?id=2928030

You have misread and other people have misunderstood then.

https://www.gnu.org/licenses/why-affero-gpl clearly explains what the license intends as does the second paragraph in https://en.wikipedia.org/wiki/Affero_General_Public_License.

See my edit as well.

Based on what GNU says in the first link it seems kind of reasonable although I will not dare to use it without checking carefully with lawyers as this obviously this isn't what a lot of people think.

Unfortunately very few of those people have actually read the license. As another commenter said, I don't see how you can read the license and come to the conclusion that a user of an AGPL program over the network would have to AGPL their code. It just doesn't make any rational sense.
That might be what some companies have in mind, but those companies are wrong to use the AGPL because that isn't what the license says. I don't really know how one could read the AGPL and think that it requires clients to be AGPLed.

The only difference between the AGPL and GPL, other than the name, is that the AGPL requires you to offer to provide the source of your modified version of the software to all of its users. In short: network interaction equals distribution.

It says nothing about what licenses may apply to any software that interacts with the AGPLed software over a network. Anyone that suggests otherwise is misleading you or are mislead themselves.

Edit:

Note that MongoDB's drivers are MIT-licensed because they are made "part of" the client software. (A)GPL virality would come into play for drivers incorporated into clients.

  Note that MongoDB's drivers are MIT-licensed
  because they are made "part of" the client
  software. (A)GPL virality would come into play
  for drivers incorporated into clients.
OK. Makes sense. I might have misunderstood in which case I feel I almost owe GNU some kind of apology. If I become convinced I can at least try to add that fact to later discussions about AGPL.

That said it seems more than one company thinks it is viral over the net (Odoo, OPA comes to mind) and I would really be interested if someone who really understands licenses would explain.

Odoo thinks it is viral over the net? I've never seen that argument. It was only viral to modules running on the Odoo server. If you used XML-RPC to talk to it over the net, I don't think Odoo S.A. would claim you had to distribute your code.
Since citus is just an extension, the normal drivers for postgres just work. And those are BSD licensed (well, it's the postgres license, but the difference is essentially nonexistent).
No license is contagious, or viral. It's a license, not a law, you are under no obligations to honor it. It is not an implicit contract between you, or anybody else. It simply states what rights are granted to you, and under which conditions. If you fail to comply you simply don't have those rights, and it's just normal copyright violation.

Should you redistribute a modified copy, and not license your modification accordingly, the recipients do not get an implicit license to you modifications.

The only way your code will get licensed to others is when you explicitly say so.

Opa is a really bad example since every program that uses the standard library will be utterly depended on that library. The program can not work at all without the copyrighted work of the library authors, and as such, do not even have basic aspect like independence.

If I write a program that connect to a database, my program will happy work fine without the database software. I could replace the database with a different one, and the program would work identically. Outside some database specific quirks, programs that connect to a database do so as independent works.

An other aspect is that if you change the standard library of a programming language, the programs that uses it will utterly change too. If you change the database software, most well written software won't be effected and will run identically as if it connected to a older version of the database.

And last, software that connects to a database won't share memory with the database software. Programs that uses a standard library will share memory with the standard library. The connection between a program and it's standard library is significant closer than the connection between a program and a database.

GNU AGPL to be precise (GNU Affero General Public License).