The Sneaky Sleepycat License

Generally, commercial entities are fairly comfortable using open source software in the products they distribute if the license is a the BSD license. Entities other than UC Berkeley often deploy the BSD license in their own name, so it is common to hear people refer to a BSD-style license, or a license that is BSD-esque when referencing the BSD license in another entity’s name.

Oracle Berkeley DB is one of the few open source software products that Oracle sells. It is dually licensed under a commercial license and an open source license. You can use the open source version for free or you can pay to use the commercial version.

A quick glance at the Oracle Berkeley DB open source license looks like a collection of BSD licenses, first from Berkeley, then from Harvard, and then from Oracle.

Visually, it would easily fall into the category of “BSD-style” or “BSD-esque.”

The standard BSD license has a copyright statement, 3 numbered paragraphs, and a big disclaimer of warranties and limitation of liability in all caps at the bottom. At a glance, it’s fairly easy to recognize (partially because it is so short and sweet compared to many open source licenses).

From 2000-2006, the top license in the Berkeley DB license was in the name of Sleepycat, and when Oracle acquired Sleepycat, they modified the copyright statement in the top license to refer to Oracle.

On closer look, the former Sleepycat and current Oracle license is most definitely *not* identical to the standard BSD license. In fact, it is very, very different.

The third paragraph in the standard BSD license states:

  • Neither the name of the [COPYRIGHT HOLDER] nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

But, the third paragraph in the Sleepycat/Oracle Berkeley DB license is quite different:

  • 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 an executable file, complete source code means the source code for all modules it contains. It does not include source code for modules or files that typically accompany the major components of the operating system on which the executable file runs.

Both of these requirements are completely legitimate license conditions.

However, the traditional BSD license is a license that is notable for its lack of copyleft obligations — in other words, you can use software that comes to you via the BSD license without too much concern about it affecting the commercial license terms that you may put on your software that incorporates it.

On, the other hand, the Sleepycat/Oracle Berkeley DB license is an extremely strong copyleft license and requires that you distribute the source code to every piece of code you distribute that utilizes the Berkeley DB.

So, word to the wise, engineering managers and software legal departments: just because it’s a BSD-style license in the visual form, does *NOT* mean it’s BSD-style with respect to software freedom and copyleft.

As much as it’s annoying, someone with a licensing background needs to review and approve every third party in-license if the technology or software is going to be incorporated into a proprietary product or code.

  1. Thanks for taking a look at the Sleepycat License. It wasn’t intended to be a “sneaky BSD variant” at all. :) In fact, the BSD is the license of the version 1.x libdb product before the founding of the Sleepycat company which improved and commercialized the product. To do that we wanted to walk a fine line in terms of licensing. We wanted to be freely usable (F/OSS) by those who are also free (essentially, those projects licensed under and OSI approved license) only. Anyone not able to open source their software which uses Berkeley DB (products licensed under the Sleepycat License) would need to come to Sleepycat (now Oracle) and negotiate a commercial license with more favorable terms. This was arguably the first successful open-source dual-license model. Others followed, MySQL being one but they used the GPL (which is much more restrictive than the Sleepycat License) for their open source versions. Hopefully you better understand our business/market model now. Oracle has not changed in this regard. Licensing today is as it was pre-acquisition.

    best regards,
    -greg

    Product Manager, Oracle Berkeley DB

  2. Thanks for the response, Greg.

    I don’t actually think it’s sneaky — the language is quite clear, and the Oracle website explains the dual-licensing very well.

    However, many licensing departments have a general rule that “BSD-style” or “BSD-esque” licenses are okay to include in proprietary distributions of code.

    The sleepycat license does not meet the goals of those departments, but visually looks like a “BSD-style” or “BSD-esque” license, so they could end up with a situation they didn’t intend if they assume it’s “BSD-style” and don’t read and understand the license before using it.

    • Rami Ojares
    • April 22nd, 2013 7:44pm

    Hi,

    I just wanted to confirm if I understood this correctly.
    I will give you an example.
    There is an open-source database product Rel (http://dbappbuilder.sourceforge.net/Rel.php) that uses Apache license.
    Under the covers it uses Oracle Berkley DB as a storage engine.

    So if I distribute Rel as part of my product then because my software indirectly uses the Berkley DB (that uses the SleepyCat license) then I have to opensource all of my own software or pay license fee to Oracle.

    So as a consequence the Apache license of Rel becomes meaningless.

    Is this a correct interpretation?

  3. Hi Rami:

    I am unable to give you legal advice as you are not my client. However, I think you raise a very good question and would encourage you to engage a lawyer and seek legal advice before relying upon the Rel Apache license.

    Cheers,

    • Patrick
    • August 4th, 2013 5:55pm

    The last comment really gets to me. I ended up just coding the key/value and removed all this nonsense. Oracle was wise to buy this database, that with java/mysql I see everyone switched over to postgres.

  1. No trackbacks yet.