On Tue, May 25, 2010 at 04:48:59PM +0200, Martin Gieseking wrote:
Am 25.05.2010 16:27, schrieb Chen Lei:
> The package under reivew is actually Mixed Source Licensing Scenario
> rather than Multiple license scenarios.
Nonetheless, even in the guideline about mixed source licensing
scenarios I can't find anything about omitting one of the licenses in
the License field. In the given example, all licenses are mentioned
rather than merged. I'd understand that (GPLv2+) + (GPLv3+) = GPLv3+,
but (LGPLv2+) + (BSD) = LGPLv2+ seems strange to me. Why omit BSD and
not LGPLv2+ then?
Having sources under multiple licenses is tricky. The packager needs to
look at the licenses of the sources, see how they combine to make one or
more end products, and then add the appropriate licenses. For instance:
foo.c (GPLv2+) ----\
bar.c (LGPLv2+) ---+---> /usr/bin/foobarbaz (GPLv2+)
baz.c (BSD) ------/
In this example we have three source files with three compatible licenses
leading to a single program. That binary program that we distribute to end
users is licensed GPLv2+ since we can't separate out each of the individual
foo.c, bar.c, and baz.c files to use their functionality separately.
foo.c (GPLv2+) ----+----> /usr/bin/foobar (GPLv2+)
bar.c (BSD) ------<
baz.c (BSD) -------+----> /usr/bin/bazbar (?)
Here, we have three source files under two different licenses. The end
result is two separate programs. One of those (foobar) contains GPLv2+ code
and therefore it will be GPLv2+ just like the previous example.
bazbar is trickier. It does not contain any GPLv2+ code so it is possible
that it is BSD licensed. However, you'd want to check if the upstream
package's author makes any claims about this (they may feel that everything
in the tarball is licensed GPLv2+ as part of a complete work) and in
ambiguous cases, may want to run it by legal.