Satisfying multiple licenses upon distribution

Suraj N. Kurapati skurapat at
Sun Apr 15 17:19:14 UTC 2007


I learned more about this topic on the debian-legal mailing list:

  This is the main thread for the topic:

  See this message and both of its follow-ups:

I am answering below based on what I learned there.

Matthew Flaschen wrote:
> I don't have the right to include Sleepycat/MIT code in a BSD
> work.  If I did so, I would be telling people they could make it
> proprietary.  I'm not the copyright holder, so I can't give them
> that additional right.

No.  After you copy&paste some Sleepycat/MIT code into a file
containing purely BSD code, the result is that:

1. You now have two disjoint portions of code: the copied&pasted
portion is governed by the Sleepycat/MIT license, whereas the
remainder is governed by the BSD license.

2. The entire file is now governed by both licenses.

In particular, when acting upon the entire file, you must obey (1)
the intersection of permissions granted by both licenses and (2) the
sum of restrictions placed by both licenses.

Here, the intersection of permissions is equivalent to the
permissions granted by the MIT license or the 2-clause BSD license.

3. When acting upon a single portion of the file, you need only obey
the portion's associated license.

For example, when you act upon the copied&pasted portion, you must
follow the Sleepycat/MIT license -- the BSD license does not apply
to this portion.

Likewise, when you act upon the non copied&pasted portion, you must
follow the BSD license -- the Sleepycat/MIT license does not apply
to this portion.

>> By incorporating code under my license, an MIT or BSD developer
>> is not surrendering his entire project to my license
> By doing that, he would be putting *your* Sleepycat/MIT code
> under BSD (unless he chose to relicense the combination under
> Sleepycat). Sleepycat/MIT doesn't allow that, so he would be
> breaking the law.

No.  After incorporation, the Sleepycat/MIT code remains governed by
Sleepycat/MIT; the BSD code remains governed by BSD.

Another reason why the Sleepycat/MIT code does not become pulled
under the BSD upon incorporation is that, as you said, he cannot
relicense my code because he is not the copyright holder.

>> That "extra work" is simply to make the source code (only for
>> the portions under my license) available upon distribution.
> Even if he did so, he would be giving others (through the BSD
> license) permission not to provide source.

No.  The copied&pasted Sleepycat/MIT code is only governed by the
Sleepycat/MIT license -- the BSD license does not apply to it.

Thanks for your consideration.

More information about the License-discuss mailing list