Discussion:
Licensing question
(too old to reply)
evolvah
2007-01-25 20:00:27 UTC
Permalink
I have a few questions related to the licensing regulations on
BerkeleyDB.

How exactly does the Open Source License work for BerkeleyDB? Does it
imply that any application that uses (links with) it has to be under
GPL license? Or can it be under some other Open Source License like BSD
License for instance?

How to properly read the term "use" in this context? Is the direct
invocation of BDB API a "use"? I assume it is. But what about more
complex cases? Is the use determined by the fact of linking (statically
or dynamically) with libraries built from BDB source code? Or may be by
having some of BDB header files in the dependencies of the developed
source code even if they are not directly included in the application
source code?

Could somebody please clarify these questions?


Thanks!
/evolvah
Florian Weimer
2007-01-25 20:34:49 UTC
Permalink
Post by evolvah
How exactly does the Open Source License work for BerkeleyDB? Does it
imply that any application that uses (links with) it has to be under
GPL license? Or can it be under some other Open Source License like BSD
License for instance?
It doesn't have to be GPL, but at least the resulting executable has
to be treated as if it were covered by the GPL (that is, you must
distribute source code along with them).
Post by evolvah
How to properly read the term "use" in this context? Is the direct
invocation of BDB API a "use"? I assume it is. But what about more
complex cases? Is the use determined by the fact of linking (statically
or dynamically) with libraries built from BDB source code?
I can't help you with these questions. Sleepycat's position was
somewhat inconsistent in the past. I'm pretty sure they assume that
dynamically linking against the library causes the resulting work to
be covered by the source code distribution requirement. But on the
other hand, Perl and Python scripts can use the library, independently
of the licensing terms:

| Do I have to pay for a Berkeley DB license5A to use it in my Perl or Python scripts?
|
| No, you may use the Berkeley DB open source license at no cost. The
| Berkeley DB open source license requires that software that uses
| Berkeley DB be freely redistributable. In the case of Perl or Python,
| that software is Perl or Python, and not your scripts. Any scripts you
| write are your property, including scripts that make use of Berkeley
| DB. None of the Perl, Python or Berkeley DB licenses place any
| restrictions on what you may do with them.

<http://www.oracle.com/technology/software/products/berkeley-db/htdocs/licensing.html>

An interesting question is how Java fits into that interpretation.
evolvah
2007-01-25 22:38:16 UTC
Permalink
Thanks for the response, Florian!

To bring things into a more or less concrete state, let's imagine that
I wrote an application which is a custom database server with
BerkeleyDB as a storage back-end. Please correct me if I'm wrong but my
understanding is that the source code of this server has to be made
Open Source to meet the requirements but it does not have to be GPL'ed
though. It can be distributed under BSD license, for instance.

But what about a remote application that connects to this custom DB
server and manipulates data? Does it have to be made Open Source as
well? My understanding is that if Oracle uses a standard GPL then by
the "viral" nature of it I would have to make my DB server GPL'ed as
well as the application itself has to be GPL'ed; otherwise, it will
turn into a maintenance nightmare to support a client and a server
which do not really share marshaling routines.


/evolvah
Post by Florian Weimer
Post by evolvah
How exactly does the Open Source License work for BerkeleyDB? Does it
imply that any application that uses (links with) it has to be under
GPL license? Or can it be under some other Open Source License like BSD
License for instance?It doesn't have to be GPL, but at least the resulting executable has
to be treated as if it were covered by the GPL (that is, you must
distribute source code along with them).
Post by evolvah
How to properly read the term "use" in this context? Is the direct
invocation of BDB API a "use"? I assume it is. But what about more
complex cases? Is the use determined by the fact of linking (statically
or dynamically) with libraries built from BDB source code?I can't help you with these questions. Sleepycat's position was
somewhat inconsistent in the past. I'm pretty sure they assume that
dynamically linking against the library causes the resulting work to
be covered by the source code distribution requirement. But on the
other hand, Perl and Python scripts can use the library, independently
| Do I have to pay for a Berkeley DB license5A to use it in my Perl or Python scripts?
|
| No, you may use the Berkeley DB open source license at no cost. The
| Berkeley DB open source license requires that software that uses
| Berkeley DB be freely redistributable. In the case of Perl or Python,
| that software is Perl or Python, and not your scripts. Any scripts you
| write are your property, including scripts that make use of Berkeley
| DB. None of the Perl, Python or Berkeley DB licenses place any
| restrictions on what you may do with them.
<http://www.oracle.com/technology/software/products/berkeley-db/htdocs...>
An interesting question is how Java fits into that interpretation.
Florian Weimer
2007-01-26 14:58:50 UTC
Permalink
Post by evolvah
But what about a remote application that connects to this custom DB
server and manipulates data? Does it have to be made Open Source as
well? My understanding is that if Oracle uses a standard GPL then by
the "viral" nature of it I would have to make my DB server GPL'ed as
well as the application itself has to be GPL'ed;
I do not consider network access to the functionality of a server
distribution of the server's object code. In other words, no
distribution in the GPL sense takes place, and its viral nature
doesn't come into effect. (I can't tell you if Oracle shares this
view.)
evolvah
2007-01-30 17:13:54 UTC
Permalink
I agree. Besides, GPL is not even mentioned in the License Agreement
<http://www.oracle.com/technology/software/products/berkeley-db/htdocs/
oslicense.html>.

I sent an inquiry to the official address in Oracle on January 25th
and still I have no official response...


/Sergey
Post by Florian Weimer
Post by evolvah
But what about a remote application that connects to this custom DB
server and manipulates data? Does it have to be made Open Source as
well? My understanding is that if Oracle uses a standard GPL then by
the "viral" nature of it I would have to make my DB server GPL'ed as
well as the application itself has to be GPL'ed;I do not consider network access to the functionality of a server
distribution of the server's object code. In other words, no
distribution in the GPL sense takes place, and its viral nature
doesn't come into effect. (I can't tell you if Oracle shares this
view.)
Florian Weimer
2007-01-30 18:31:44 UTC
Permalink
Post by evolvah
I agree. Besides, GPL is not even mentioned in the License Agreement
<http://www.oracle.com/technology/software/products/berkeley-db/htdocs/
oslicense.html>.
Yes, but it uses the same copyleft trick as the GPL. The GPL is much
stronger because it's made much more explicit that you cannot impose
additional restrictions on the recipient. But the basic question,
whether access to a server running a piece of software implies
distribution, should have the same answer for both licenses.
Gregory Burd
2007-03-05 17:11:45 UTC
Permalink
Sergey,

I normally get such questions when they are sent to 'berkeleydb-
***@oracle.com', is that the address you used? I apologize for
the delay. We're happy to answer questions. We're easier to find on
the OTN forums (http://forums.oracle.com/forums/category.jspa?
categoryID=18).

-greg

_____________________________________________________________________

Gregory Burd ***@oracle.com
Product Manager, Berkeley DB/JE/XML Oracle Corporation
Gregory Burd
2007-03-05 17:08:14 UTC
Permalink
Florian,

You are correct, according to most common interpretations of the
GNU GPL v2 invocation over a network (as in a web service) is not
considered 'use'. Interestingly the GPL v3 may change that. But that
is still up in the air. Remember that Berkeley DB products are not
under the GPL but the Sleepycat license. It is unclear how or if our
interpretation of use over a network will change if the GPL v3 changes
that aspect of the definition of 'use'. Historically we've tracked
the GPL's definitions, but take that with a grain of salt.

-greg

_____________________________________________________________________

Gregory Burd ***@oracle.com
Product Manager, Berkeley DB/JE/XML Oracle Corporation
Gregory Burd
2007-03-05 17:03:57 UTC
Permalink
Florian,

I'm sorry if you feel we've been inconsistent, let me know when
that happens and I'll try to help clear things up. You are right
about 'scripting languages'. Java is considered *not* to be a
scripting language.

-greg

_____________________________________________________________________

Gregory Burd ***@oracle.com
Product Manager, Berkeley DB/JE/XML Oracle Corporation
Florian Weimer
2007-03-05 21:34:21 UTC
Permalink
Post by Gregory Burd
I'm sorry if you feel we've been inconsistent, let me know when
that happens and I'll try to help clear things up. You are right
about 'scripting languages'. Java is considered *not* to be a
scripting language.
Your exception for scripting languages is quite non-obvious, and the
rationale you give looks bogus to me. But of course you are free to
license your work as you wish, and as long as you add more liberties,
I surely won't complain too much. 8-)

Gregory Burd
2007-03-05 17:01:50 UTC
Permalink
Evolvah,

I'm happy to answer your questions. Your basic understanding of
the license is correct, but there are some things I should clear up.
The "Sleepycat Public License" works much like the GNU GPL, but in
some ways is less restrictive. Essentially, in order to use Berkeley
DB Products under the Sleepycat license you must open source the
application that uses DB and make it available to others. The
definition of 'use' we use is the same as for the GNU GPL v2. So,
your product may be GPL, or ASL, or any other OSI approved open source
license. Under those conditions your use is covered by the Sleepycat
license. If your use falls outside of that, you need to speak to
Oracle about acquiring a commercial license.

Linking against the library (or including the JAR in the case of
Berkeley DB Java Edition) and invoking the APIs is clearly 'use'.
Static and dynamic linking are not differentiated. That means that if
you ship an application that doesn't include the DB library in your
packaging but then links dynamically against DB later on a customer
machine and your code invokes the DB APIs it is still 'use'.
Including a header file could mean that you're calling the API or it
could be a coding mistake. :) If you 'use' the APIs we provide then
you must comply with the terms of the Sleepycat license. By the way,
that license is unchanged despite the acquisition and we plan on
keeping it that way.

regards, sorry for the delayed response,

-greg

_____________________________________________________________________

Gregory Burd ***@oracle.com
Product Manager, Berkeley DB/JE/XML Oracle Corporation
Loading...