iipc / webarchive-commons

Common web archive utility code.
Apache License 2.0
49 stars 72 forks source link

Use of GPL v2 code #20

Open kris-sigur opened 9 years ago

kris-sigur commented 9 years ago

webarchive-commons uses GPL v2 code in at least two places.

OpenJDK7GZIPInputStream OpenJDK7InflaterInputStream

These are both variants on classes from the OpenJDK 7 standard library.

This is likely incompatible with our Apache license.

johnerikhalse commented 9 years ago

These two classes contains this text in the license header:

Oracle designates this particular file as subject to the "Classpath" exception as provided by Oracle in the LICENSE file that accompanied this code.

After reading the Classpath exception part of the license, it is my understanding that we are fine by using this code with our Apache licensed code.

Here is the relevant part from the license:

"CLASSPATH" EXCEPTION TO THE GPL

Certain source files distributed by Oracle America and/or its affiliates are subject to the following clarification and special exception to the GPL, but only where Oracle has expressly included in the particular source file's header the words "Oracle designates this particular file as subject to the "Classpath" exception as provided by Oracle 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 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.

gojomo commented 9 years ago

That this use is in accordance with the classpath exception is my interpretation as well, as noted in the Heritrix issue which introduced these classes: https://webarchive.jira.com/browse/HER-1865?focusedCommentId=28466&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-28466.

If/when a project is willing to require JDK7-or-later, these will likely be unnecessary... they were pulled in, from OpenJDK7, to work-around a bug in some JDK6 gzip class versions.