Apache legal team,

Apache ORC had a benchmark module that linked against the GPL'ed library
JMH. JHM is a micro-benchmarking framework that is tightly integrated into
OpenJDK, but it is shipped separately through Maven Central. I removed the
benchmark module from ORC, because my understanding was that any Java code
that linked against a GPL'ed library had to be released under GPL. It looks
like Apache Druid, Calcite, Hive, Log4j2, and Camel also have been using
JMH for various benchmarking tasks.

Under what circumstances can we use JMH in an Apache project?

.. Owen

---------- Forwarded message ----------
From: Julian Hyde <jh...@apache.org>
Date: Mon, Apr 23, 2018 at 3:12 PM
Subject: Re: Legal implications of using JMH
To: dev@druid.apache.org, Owen O'Malley <omal...@apache.org>
Cc: Slim Bouguerra <sbougue...@hortonworks.com>, Gian Merlino <
g...@apache.org>


We use JMH in Calcite for microbenchmarking. My understanding was that our
use is OK. We are not linking it into the product; during tests, we link
against JMH, run the test, then delete the executable.

In addition to Calcite, it is used in Hive [1] Log4j2 [2], and Camel [3].

I think we should ask for a decision from Legal before changing anything.

Julian

[1] https://github.com/apache/hive/blob/master/itests/hive-jmh/pom.xml

[2] https://github.com/apache/logging-log4j2/tree/master/
log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh

[3] https://github.com/apache/camel/blob/master/tests/camel-jmh/pom.xml

On Apr 23, 2018, at 2:48 PM, Owen Omalley <o...@hortonworks.com> wrote:

The relevant page from Apache is:

https://www.apache.org/licenses/GPL-compatibility.html and
https://www.apache.org/legal/resolved.html#category-x

GPL software can not be linked to from Apache projects at all. The problem
is that the GPL is viral and you’d have to license the rest of the code
under the GPL.

.. Owen

Begin forwarded message:

From: Gian Merlino <g...@apache.org<mailto:g...@apache.org <g...@apache.org>
>>
Subject: Re: Legal implications of using JMH
Date: April 23, 2018 at 2:14:31 PM PDT
To: dev@druid.apache.org<mailto:dev@druid.apache.org <dev@druid.apache.org>>
Reply-To: dev@druid.apache.org<mailto:dev@druid.apache.org
<dev@druid.apache.org>>

I'm not sure why the ORC folks decided this was necessary. I found these
two links,

- https://issues.apache.org/jira/browse/ORC-298
- https://lists.apache.org/thread.html/c27267a6a3df9b76c5e036fc181c86
5150639f4cf15ffc5cca27b690@%3Cdev.orc.apache.org<http://
3cdev.orc.apache.org/>%3E

It looks like they ended up moving the code to a different, non-Apache
repository.

The relevant Apache policy, I think, is: http://www.apache.org/
legal/resolved.html#optional. From what I've seen it comes up most often
with MySQL drivers (which we also use). See also https://issues.apache.org/
jira/browse/LEGAL-200.

It seems to me like JMH and MySQL are in the same boat. Both are optional
dependencies -- there is no reason that a "normal" user needs to run
druid-benchmarks. If this understanding is correct, then we should just
make sure we aren't distributing JMH (or MySQL drivers) as part of binary
releases. But I would be interested in understanding the thought process of
the ORC folks in more detail.

On Mon, Apr 23, 2018 at 1:44 PM, Roman Leventov <leventov...@gmail.com<
mailto:leventov...@gmail.com <leventov...@gmail.com>>>
wrote:

See this:
http://mail.openjdk.java.net/pipermail/jmh-dev/2018-April/002743.html JMH
might be not welcome in an Apache-licensed project.

Reply via email to