I would like to use some parts of Glassfish in a proprietary software that are under a CDDL + GPLv2 license. Am I allowed to do that? I haven't modified anything in the code of these libraries, so is this OK, or my software, because it uses these libraries, is still considered derivative work, and thus a big no-no?
I mean, according to http://jaxb.java.net/, JAXB is also under CDDL + GPLv2, but I know I can freely use that in proprietary software. Is this because CDDL + GPLv2 actually allows that, or is it distributed under a different license when bundled with the JRE?
Okay, I found the answer. Wikipedia says:
GlassFish is free software, dual-licensed under two free software licences: the Common Development and Distribution License (CDDL) and the GNU General Public License (GPL) with the classpath exception.
The Classpath Exception is the main thing here. See the yellow section at the bottom of the license agreement on the Glassfish website:
"CLASSPATH" EXCEPTION TO THE GPL VERSION 2
Certain source files distributed by Sun Microsystems, Inc. are subject to the following clarification and special exception to the GPL Version 2, but only where Sun has expressly included in the particular source file's header the words "Sun designates this particular file as subject to the "Classpath" exception as provided by Sun in the License file that accompanied this code."
Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License Version 2 cover the whole combination.
As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module.? An independent module is a module which is not derived from or based on this library.? If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so.? If you do not wish to do so, delete this exception statement from your version.
Essentially that means that as long as I distribute the licenses with the Glassfish libraries, I am free to put them on the classpath of my proprietary software. Searching through the downloaded source of Metro (the part I want to use) I found only a handful of Java files that did not contain the required line in the comments. (More precisely they had no header comment at all.)
Regarding the CDDL and Jukka's posting:
As far as I understand the CDDL, your're not required to publish your proprietary software in source code form! Reason:
Section "3.1 Availability of Source Code" refers only to "Covered Software" and that type of software is:
1.3. Covered Software means (a) the Original Software, or (b) Modifications, or (c) the combination of files containing Original Software with files containing Modifications, in each case including portions thereof.
In other words: "Covered Software" is the "jar" released under the CDDL and any modifications on that "jar", if there are any. Software that is just using this "jar" in the classpath is mentioned as "Larger Work" and therefore must not published in source code form.
HTH Stephan
来源:https://stackoverflow.com/questions/2646431/using-glassfish-libraries-in-proprietary-software