GlassFishはEPL 2.0とGPLv2のデュアルライセンスである。ここで、GPLv2にはクラスパス例外が付いている*1。わざわざクラスパス例外が付いているってことは、「クラスパス例外が付いていないGPLのJavaアプリケーションサーバでは、その上で動かすプログラムも、GPLと互換性のあるライセンスとする必要があるのでは?」という疑問が生じる。 「IoT 時代におけるOSS の利用と法的諸問題 Q&A 集」p.135 *2にも「共有アドレス空間上で実行されるもの(動的リンクおよび共有ライブラリ)の場合、サブプログラムのソースコードを提供する必要があると規定しており」という記載がある。
そこで、各種アプリケーションサーバ(フリーソフトウェアのもの)のライセンスを確認してみた。リストはList of application serversによる。
- Geronimo: Apache License 2.0*3
- GlassFish: EPL 2.0, GPL v2+CLASSPATH EXCEPTION*4
- JBoss EAP: LGPL (RED HAT LGPL-BASED EULA)*5
- Jetty: Apache License 2.0, EPL 2.0*6
- JOnAS: LGPL v2.1*7
- Lucee: LGPL v2.1*8
- Payara: CCDL v1.1*9*10
- Resin: GPL v3*11
- Tomcat: Apache License 2.0*12
- TomEE: Apache License 2.0*13
- WildFly: LGPL v2.1*14
これを見ると、怪しいのはClasspath ExceptionのないResinくらいでしょうか。
*1:https://glassfish.org/LICENSE
*2:https://www.softic.or.jp/ossqa/all_180328_mc.pdf#page=141
*3:http://geronimo.apache.org/
*4:https://glassfish.org/LICENSE
*5:https://www.redhat.com/en/about/agreements
*6:https://www.eclipse.org/jetty/licenses.php
*7:https://jonas.ow2.org/view/Main/License
*8:https://github.com/lucee/Lucee/blob/6.0/License.txt
*9:https://github.com/payara/Payara/blob/master/LICENSE.txt
*10:WikipediaにはGPLと書いてあるけれど、リポジトリにはGPLのライセンスファイルがないみたい。
*11:https://caucho.com/products/resin/download
*12:https://gitbox.apache.org/repos/asf?p=tomcat.git;a=blob_plain;f=LICENSE;hb=HEAD
*13:https://github.com/apache/tomee/blob/master/LICENSE
*14:https://github.com/wildfly/wildfly/blob/main/LICENSE.txt