Hacker News new | ask | show | jobs
by DoubleMalt 4735 days ago
While I don't have made up my mind completely about AGPL but lean to liking it, changing to it for an infrastructure library, is really a backstabbing move.

Nice to see a company so consistently living up to its reputation.

And one simply must appreciate the elegant irony of using a strong copyleft license as a dagger.

2 comments

> And one simply must appreciate the elegant irony of using a strong copyleft license as a dagger.

That's always been one of the ways to make money from free software. Mysql did the same thing, and I think Qt did as well at some point in its history. If I recall correctly, even RMS sort of approves of it.

Downvoters: go read some history, there's nothing factually incorrect in what I wrote above. The bozo proliferation seems to continue unabated here:-(

Here's RMS himself: http://www.fsf.org/blogs/rms/selling-exceptions

The difference being that these projects had the restrictive licenses from early on. They did not change from permissive (and in the context of web service infrastructure GPL is actually a permissive license) to something more restrictive.

On the contrary Qt changed the license from GPL to LGPL what definitely helped the proliferation (and the survival after the Nokia disaster).

MySQL ... well moving this to AGPL would give MariaDB the final push it needs (if it still needs one). So they just let it rot.

Too bad there was no equivalent project for BerkeleyDB.

You can always fork from the last version that had a license you found acceptable.

Also, a relatively restrictive (not BSD!) license has been a feature of Berkeley DB for a while:

http://en.wikipedia.org/wiki/Sleepycat_Software

Regarding a Berkeley DB equivalent, how about Tupl?

https://github.com/cojen/Tupl

> Tupl is a high-performance, concurrent, transactional, scalable, low-level database. Intended to replace BerkeleyDB, Tupl supports true record-level locking. Unlike BerkeleyDB-JE, Tupl doesn't suffer from garbage collection pauses with very large databases. Tupl also includes support for cursors, upgradable locks, deadlock detection, hot backups, striped files, encryption, nested transaction scopes, and direct lock control.

In Java. For a low-level in-process library that most people link in to their actual app Java is completely unsuitable. Not quite sure how this replaces most of the BDB use-cases, but if you are going to run in another process then there are a whole host of options to consider. Tupl looks pretty interesting and it would be fun to have a reason to play with it, but this does not handle any of the cases where I turn to BDB.
changing to it for an infrastructure library, is really a backstabbing move.

Well, Berkeley DB was already a copyleft library[1] (basically a BSD/MIT-style license with an extra copyleft clause). So, unless you had a commercial DB license, you already had to provide the source code for applications that used it. This 'just' extends it to applications that are used over a network.

[1] From the Berkeley DB license:

3. Redistributions in any form must be accompanied by information on how to obtain complete source code for the DB software and any accompanying software that uses the DB software. The source code must either be included in the distribution or be available for no more than the cost of distribution plus a nominal fee, and must be freely redistributable under reasonable conditions. [...]

The old license only required providing source code if you redistributed it. The new license requires it even if you never distribute anything, e.g., you use it in the backend of a SaaS app.
That more or less just brings the license up to date with the original intent. You used to typically have to distribute apps if you wanted end-users to run them. Now you can half-distribute the app by only distributing the client half to browsers, and claim that that doesn't constitute redistribution. The AGPL, on the other hand, defines that kind of half-distribution as distribution.
> you can half-distribute the app by only distributing the client half to browsers

Calling the client portion of the code of an SaaS application "the client half" is a stretch. 1% is a better estimate, and "1%-distribution" is a better word than "half-distribution". The client portion of code has its source distributed at the same time as when it runs on the browser.

> That just brings the license up to date with the original intent

The only clue to intent users of software have is the specific wording of the license. Changing the license cripples the software. How do we know the original intent wasn't to bait users in with an wrongly used license, then change it later on?

Yes, that's what I said, it's the definition of copyleft.

For most companies the open source version was not acceptable anyway. E.g. most customers with sensitive information (such as government organizations) require on-site firewalled installations of your software anyway. So, you either pony up the relatively high per-CPU cost, or use a less restrictively licensed alternative such as leveldb.

This change will mostly make a difference for web applications. But my point was that Berkeley DB was already licensed quite restrictively before, contrary to some people's beliefs.

So fork it from the older version - that is still available under the old license.
The AGPL requires no such thing. If you use BDB in the backend you don't have to open anything; only if you actually modify the BDB source code.