A Change in License for Berkeley DB
meshedinsights.com
meshedinsights.com
BDB has had a commercial licence available for a long time, this move just closes a loophole that people were exploiting to use BDB in non-free software without contributing back.
Additionally, to the people saying 'oracle are only doing this to make money', this is one of the ways you are supposed to make money/fund the development of free software. RMS talks about it here: http://www.fsf.org/blogs/rms/selling-exceptions
I consider selling exceptions an acceptable thing for a company to do, and I will suggest it where appropriate as a way to get programs freed. -- RMS
> So very few web apps are open source,
> despite so many of the people who
> develop them claiming to support
> free/open source software.
So, if they use GPL'd software, and contribute back to it, but don't release their own software as GPL, then they are just a bunch of 'evil fat cats' that are leeching off of FOSS?Let me do the same to you.
> 'evil fat cats'
He didn't say "evil fat cats", so why do you feel the need to lie and say he did? Only a worthless troll would use those words, and words like "leeching" in place of discussing what he actually said.
So really? Is that what you want from HN? Couldn't you have spent a minute and phrased that without being so rude?
Regardless, that's not what he said, so your point doesn't make sense.
> Let me do the same to you.
<clippy>I see that you seem to be attempting to argue from a Moral High Ground. Would you like me to:
1) Remove your Ad Hominem attack?
2) Remove your rude remarks/tone that conflict with your desire for others to be less rude?
</clippy>
I'll agree that the 'evil fat cats' remark was probably a bit too far, and I apologize for that. Let me rephrase my comment:
I take issue with the view that someone that doesn't
commit 100% to an ideology (e.g. Free Software)
doesn't care about said movement. The original post
was (in so many words) trying to claim that all of the
web companies using FOSS software and claiming to 'love
Open Source' are being two-faced because none of their
own software is release under a GPL license. This Us-vs-Them
mentality isn't magically helpful when used in a FOSS
context instead of in a, "you're either with us, or
with the terrorists," context.This isn't about BSD/MIT style licences vs GPL style. The sources to most web apps are not available under any kind of licence. A few toy projects on github that nobody uses don't counterbalance spending all day working on non-free software. I do think a lot of these toy projects are motivated by a sense of guilt. You go in to work and spend all day working against free software, but you can tell yourself you are on the right side and 'contributing' if you share that script that downloads cat pictures.
Your criticism is the same one that has been made against the GPL countless times. History has proven it wrong: Linux is a huge success, thanks to the GPL.
The GNU GPL is not Mr. Nice Guy. It says "no" to some of the things that people sometimes want to do. There are users who say that this is a bad thing--that the GPL "excludes" some proprietary software developers who "need to be brought into the free software community." But we are not excluding them from our community; they are choosing not to enter. Their decision to make software proprietary is a decision to stay out of our community. Being in our community means joining in cooperation with us; we cannot "bring them into our community" if they don't want to join. What we can do is offer them an inducement to join. The GNU GPL is designed to make an inducement from our existing software: "If you will make your software free, you can use this code." Of course, it won't win 'em all, but it wins some of the time. -- RMS
| Your criticism is the same one that has been
| made against the GPL countless times. History has
| proven it wrong: Linux is a huge success, thanks
| to the GPL.
I'm curious how "my criticism" is proven wrong by Linux. While Linux does prove that the GPL can work, it is not proof that a hard-line approach to the GPL is useful (especially when it comes to advocacy). Have you ever switched to veganism because of the animal rights activist shouting, "Shame! Shame on you!" on a street corner? "Getting the message out there," isn't very useful if everyone is just ignoring you. At that point, you're just tilting at windmills, and putting in useless effort.Even your example, Linux, has a leader that is more pragmatic about software licenses than some FOSS hard-liner.
| I do think a lot of these toy projects are motivated by a
| sense of guilt.You go in to work and spend all day working
| against free software, but you can tell yourself you are on
| the right side and 'contributing' if you share that script
| that downloads cat pictures.
You're missing the point here:1) Many people working for companies that don't open source their product contribute significantly to open source projects. E.g.:
- GvR worked for Google which is 'closed source' but I don't think that anyone considers Python a 'toy project on Github.'
- Kenneth Reitz created the awesome Python Requests library and works at Heroku, which doesn't release it's code as open source.
2) Not everyone can create some significant piece of open source software, even if they would like to. What is your dividing line between 'toy project' and 'serious project?'
3) Statements like these don't win people over. You're attacking people and making giant assumptions about their motivations. It pushes you so close to the troll territory that it becomes hard to distinguish if you are a troll parodying a FOSS hard-liner, or an actual FOSS hard-liner.
It is difficult to predict the future, but I would bet that in 50 years software development will flip to either an almost all commercial world, or an almost all AGPL (or other open source license) free and open hardware designs, etc. world. Considering economics, it is hard for me to see a path to a mostly AGPL-like world, but it might happen.
The gist of AGPL is this:
* If you redistribute BDB with your software, then you must provide your software's source code (even if you haven't modified BDB).
* If you use BDB on your web server, then you must provide the source for your software only if BDB is modified.
Since hardly anyone modifies BDB (I would assume), this affects almost no one. It simply makes the license clear.
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.
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
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.
Also, a relatively restrictive (not BSD!) license has been a feature of Berkeley DB for a while:
> 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.
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. [...]
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.
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?
However, what does your rationale for finding them reprehensible have to do with the article? The Affero GPL/GPLv3 is arguably the most open source license available.
Using SVN has nothing to do with SVN being under GPL2, GPL3, AGPL, Apache or any other license that allows for free use, as long as you don't modify SVN and distribute (or provision over the network, in case of AGPL) the modified version. Using SVN to hosting your code repository is in no way modifying and distributing it.
i.e. we're better off in the end. Open source lives because of it's contributors and can not be killed off by a corporation.
EDIT: Removed my 'opinion' because it's not important :-)
When building a solution/product, you have to choose the components you use, and invest in it, in time and sometimes money, and its technical and legal specificities can have strong implications on your solution.
License change is a hazard than can happen, and it is also one the harder to foresee, and when it happens to a product to you depend on it can have a big impact.
And it is Berkeley DB, same house as BSD known for the ultra permissive license. I wouldn't have anticipated that, and I guess with many others.
Given the fact that you may not be able to move to another product, and that your business may depend on the license permissiveness, it can be assimilated with totally legal, but nonetheless, extortion.
And when free services shut down, or start charging, they say "If you aren't paying for it, you are the product" or "You can't complain if you didn't pay for it."
So now the same thing happens for the BDB, and people are upset. But it's the same exact thing. Well, except the BDB's older versions are still available with full source available, and there has always been a paid license available. And the AGPL only applies if you are modifying the BDB source.
It's the two-faced nature of this current culture of developers. We'll consume open source products. Hell, we'll contribute back open source tools. Hell, we'll ship it under BSD because we are want to be permissive and "really free." But we won't do it with our real products.
> Given the fact that you may not be able to move to another product, and that your business may depend on the license permissiveness
As has been said time and time again: there is nothing forcing you to upgrade. Nothing forcing you to change. You are free to continue using exactly what have depended on.
HN (as a general rule) doesn't support free (as in speech) software.
It's interesting to contrast Oracle with webapp providers who haved move from free to paid models. HN (as a general rule) supports the latter and responds to the complainers with "you shouldn't have expected anything from a product you weren't paying for".
When an app switches to a paid model, you aren't left with a choice. So even if you invested time and energy into integrating it into your system, you are sunk. You generally don't have a choice.
And if the app stops being produced (e.g. Sparrow), it can never be improved. At lease the BDB allows people to improve the GPL version if they want.
So really, the issue is only a problem if
* You were already modifying the BDB source * You need the latest version
Considering the people with the problem are already modifying source, it's not as if they can't fork BDB. Sure, the cost for using BDB has now gone up, but that can be compared to adopting the AGPL and the changes needed.
Furthermore, there are other, more open libraries that do what bdb does, yet don't have those restrictions. The breach of trust Oracle performed in adding more restrictions makes me not want to use this software in any circumstances, out of apprehension that they may provide more new "freedoms" in the future.
This pretty much only affects you if you are running some weird internal forked version that has upstream merged into it regularly. I don't get the impression that this is a common situation for BDB users.
(Although since Oracle did it it's probably inherently evil anyway of course.)
So, was it possible to use Berkley DB without releasing your code as open-source before this change or was it because no one thought it was necessary to mention it in the docs?
[1] http://docs.python.org/2/library/bsddb.html [2] http://jessenoller.com/2008/09/04/stirred-up-dem-bees-should...
Python 2.7.5 (default, May 15 2013, 22:43:36) [MSC v.1500 32 bit (Intel)] on win 32
Type "help", "copyright", "credits" or "license" for more information.
>>> from bsddb import db
>>> print db.DB_VERSION_STRING
Berkeley DB 4.7.25: (May 15, 2008)
>>>
And this[1] works completely. Just replace bsddb3 with bsddb.[1] http://code.activestate.com/recipes/189060-using-berkeley-db...