Bug#551877: Robocode 1.9.2.3 for Debian: legal questions about GPL and EPL licensed code

Markus Koschany apo at gambaru.de
Tue Oct 28 12:25:36 UTC 2014


Hello Flemming,


I am the new Debian maintainer of Robocode and currently in the process
of packaging Robocode 1.9.2.3 for Debian. I think I have solved all
technical issues and there is nothing from this side what should prevent
a successful upload to the archive.

However I have noticed that several files carry two license headers
claiming that code is licensed under the GPL-2 with classpath exception
and the EPL-1.0 at the same time. There are other files which are
licensed only under GPL-3 (or later) or some that carry no license
header at all.

Unfortunately the GPL and EPL are incompatible licenses which makes it
impossible for Debian to legally distribute Robocode. For further
information please see

https://www.eclipse.org/legal/eplfaq.php#GPLCOMPATIBLE

Could you elaborate on why those licenses were chosen and if it would be
possible to relicense them? What license applies to the files without
any license header?

Here is my list with the files in question. I would be really grateful
if you could help to answer those questions.

Best regards,

Markus



GPL-2-with-classpath-exception-and-EPL-1.0
==========================================

 plugins/dotnet/robocode.dotnet.api/src/net/sf/robocode/nio/Buffer.cs
 plugins/dotnet/robocode.dotnet.api/src/net/sf/robocode/nio/ByteBuffer.cs
 plugins/dotnet/robocode.dotnet.api/src/net/sf/robocode/nio/HeapByteBuffer.cs
 plugins/dotnet/robocode.dotnet.api/src/robocode/Keys.cs
 robocode.host/src/main/java/net/sf/robocode/host/jarjar/JarJarURLConnection.java


GPL-3 (or later)
================

 plugins/dotnet/robocode.dotnet.host/src/main/java/net/sf/robocode/dotnet/repository/root/DllRoot.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/net/sf/robocode/dotnet/repository/root/handlers/DllHandler.java



Files without license header
============================

 jacobe.sh
 mvn.sh
 mvnassembly.sh
 plugins/dotnet/robocode.dotnet.content/src/main/resources/libs/control/Program.cs
 plugins/dotnet/robocode.dotnet.control.api/src/generated/java/util/Random.generated.cs
 plugins/dotnet/robocode.dotnet.control.api/src/generated/robocode/control/BattleSpecification.generated.cs
 plugins/dotnet/robocode.dotnet.control.api/src/generated/robocode/control/BattlefieldSpecification.generated.cs
 plugins/dotnet/robocode.dotnet.control.api/src/generated/robocode/control/RandomFactory.generated.cs
 plugins/dotnet/robocode.dotnet.control.api/src/generated/robocode/control/RobocodeEngine.generated.cs
 plugins/dotnet/robocode.dotnet.control.api/src/generated/robocode/control/RobotResults.generated.cs
 plugins/dotnet/robocode.dotnet.control.api/src/generated/robocode/control/RobotSetup.generated.cs
 plugins/dotnet/robocode.dotnet.control.api/src/generated/robocode/control/RobotSpecification.generated.cs
 plugins/dotnet/robocode.dotnet.control.api/src/generated/robocode/control/events/BattleCompletedEvent.generated.cs
 plugins/dotnet/robocode.dotnet.control.api/src/generated/robocode/control/events/BattleErrorEvent.generated.cs
 plugins/dotnet/robocode.dotnet.control.api/src/generated/robocode/control/events/BattleEvent.generated.cs
 plugins/dotnet/robocode.dotnet.control.api/src/generated/robocode/control/events/BattleFinishedEvent.generated.cs
 plugins/dotnet/robocode.dotnet.control.api/src/generated/robocode/control/events/BattleMessageEvent.generated.cs
 plugins/dotnet/robocode.dotnet.control.api/src/generated/robocode/control/events/BattlePausedEvent.generated.cs
 plugins/dotnet/robocode.dotnet.control.api/src/generated/robocode/control/events/BattleResumedEvent.generated.cs
 plugins/dotnet/robocode.dotnet.control.api/src/generated/robocode/control/events/BattleStartedEvent.generated.cs
 plugins/dotnet/robocode.dotnet.control.api/src/generated/robocode/control/events/IBattleListener.generated.cs
 plugins/dotnet/robocode.dotnet.control.api/src/generated/robocode/control/events/RoundEndedEvent.generated.cs
 plugins/dotnet/robocode.dotnet.control.api/src/generated/robocode/control/events/RoundStartedEvent.generated.cs
 plugins/dotnet/robocode.dotnet.control.api/src/generated/robocode/control/events/TurnEndedEvent.generated.cs
 plugins/dotnet/robocode.dotnet.control.api/src/generated/robocode/control/events/TurnStartedEvent.generated.cs
 plugins/dotnet/robocode.dotnet.control.api/src/generated/robocode/control/snapshot/BulletState.generated.cs
 plugins/dotnet/robocode.dotnet.control.api/src/generated/robocode/control/snapshot/IBulletSnapshot.generated.cs
 plugins/dotnet/robocode.dotnet.control.api/src/generated/robocode/control/snapshot/IDebugProperty.generated.cs
 plugins/dotnet/robocode.dotnet.control.api/src/generated/robocode/control/snapshot/IRobotSnapshot.generated.cs
 plugins/dotnet/robocode.dotnet.control.api/src/generated/robocode/control/snapshot/IScoreSnapshot.generated.cs
 plugins/dotnet/robocode.dotnet.control.api/src/generated/robocode/control/snapshot/ITurnSnapshot.generated.cs
 plugins/dotnet/robocode.dotnet.control.api/src/generated/robocode/control/snapshot/RobotState.generated.cs
 plugins/dotnet/robocode.dotnet.host/src/main/java/java_/util/Random_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/net/sf/robocode/core/ContainerBase_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/net/sf/robocode/dotnet/host/DotNetHost.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/net/sf/robocode/dotnet/nhost/ModuleN.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/net/sf/robocode/dotnet/repository/root/DllRootHelper.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/net/sf/robocode/host/IHostManager_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/net/sf/robocode/host/IHost_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/net/sf/robocode/host/RobotStatics_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/net/sf/robocode/host/proxies/IHostingRobotProxy_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/net/sf/robocode/io/Logger_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/net/sf/robocode/manager/IVersionManagerBase_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/net/sf/robocode/peer/BadBehavior_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/net/sf/robocode/peer/IRobotPeer_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/net/sf/robocode/peer/IRobotStatics_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/net/sf/robocode/repository/IRobotItem_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/net/sf/robocode/repository/IRobotSpecItem_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/net/sf/robocode/repository/RobotType_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/net/sf/robocode/security/HiddenAccess_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/net/sf/robocode/serialization/ISerializableHelper_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/net/sf/robocode/serialization/RbSerializer_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/robocode/BattleRules_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/robocode/control/BattleSpecification_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/robocode/control/BattlefieldSpecification_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/robocode/control/RandomFactory_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/robocode/control/RobocodeEngine_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/robocode/control/RobotResults_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/robocode/control/RobotSetup_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/robocode/control/RobotSpecification_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/robocode/control/events/BattleCompletedEvent_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/robocode/control/events/BattleErrorEvent_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/robocode/control/events/BattleEvent_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/robocode/control/events/BattleFinishedEvent_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/robocode/control/events/BattleMessageEvent_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/robocode/control/events/BattlePausedEvent_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/robocode/control/events/BattleResumedEvent_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/robocode/control/events/BattleStartedEvent_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/robocode/control/events/IBattleListener_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/robocode/control/events/RoundEndedEvent_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/robocode/control/events/RoundStartedEvent_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/robocode/control/events/TurnEndedEvent_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/robocode/control/events/TurnStartedEvent_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/robocode/control/snapshot/BulletState_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/robocode/control/snapshot/IBulletSnapshot_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/robocode/control/snapshot/IDebugProperty_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/robocode/control/snapshot/IRobotSnapshot_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/robocode/control/snapshot/IScoreSnapshot_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/robocode/control/snapshot/ITurnSnapshot_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/robocode/control/snapshot/RobotState_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/robocode/exception/AbortedException_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/robocode/exception/DeathException_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/robocode/exception/DisabledException_.java
 plugins/dotnet/robocode.dotnet.host/src/main/java/robocode/exception/WinException_.java
 plugins/dotnet/robocode.dotnet.nhost/src/generated/net/sf/robocode/core/ContainerBase.generated.cs
 plugins/dotnet/robocode.dotnet.nhost/src/generated/net/sf/robocode/dotnet/host/DotNetHost.generated.cs
 plugins/dotnet/robocode.dotnet.nhost/src/generated/net/sf/robocode/dotnet/nhost/ModuleN.generated.cs
 plugins/dotnet/robocode.dotnet.nhost/src/generated/net/sf/robocode/dotnet/repository/root/DllRootHelper.generated.cs
 plugins/dotnet/robocode.dotnet.nhost/src/generated/net/sf/robocode/host/IHost.generated.cs
 plugins/dotnet/robocode.dotnet.nhost/src/generated/net/sf/robocode/host/IHostManager.generated.cs
 plugins/dotnet/robocode.dotnet.nhost/src/generated/net/sf/robocode/host/proxies/IHostingRobotProxy.generated.cs
 plugins/dotnet/robocode.dotnet.nhost/src/generated/net/sf/robocode/io/Logger.generated.cs
 plugins/dotnet/robocode.dotnet.nhost/src/generated/net/sf/robocode/manager/IVersionManagerBase.generated.cs
 plugins/dotnet/robocode.dotnet.nhost/src/generated/net/sf/robocode/peer/BadBehavior.generated.cs
 plugins/dotnet/robocode.dotnet.nhost/src/generated/net/sf/robocode/peer/IRobotPeer.generated.cs
 plugins/dotnet/robocode.dotnet.nhost/src/generated/net/sf/robocode/peer/IRobotStatics.generated.cs
 plugins/dotnet/robocode.dotnet.nhost/src/generated/net/sf/robocode/repository/IRobotItem.generated.cs
 plugins/dotnet/robocode.dotnet.nhost/src/generated/net/sf/robocode/repository/IRobotSpecItem.generated.cs
 plugins/dotnet/robocode.dotnet.nhost/src/generated/net/sf/robocode/repository/RobotType.generated.cs
 plugins/dotnet/robocode.dotnet.nhost/src/generated/net/sf/robocode/security/HiddenAccess.generated.cs
 plugins/dotnet/robocode.dotnet.nhost/src/generated/net/sf/robocode/serialization/ISerializableHelper.generated.cs
 plugins/dotnet/robocode.dotnet.nhost/src/generated/net/sf/robocode/serialization/RbSerializer.generated.cs
 plugins/dotnet/robocode.dotnet.nhost/src/generated/robocode/exception/AbortedException.generated.cs
 plugins/dotnet/robocode.dotnet.nhost/src/generated/robocode/exception/DeathException.generated.cs
 plugins/dotnet/robocode.dotnet.nhost/src/generated/robocode/exception/DisabledException.generated.cs
 plugins/dotnet/robocode.dotnet.nhost/src/generated/robocode/exception/WinException.generated.cs
 plugins/testing/mvn.sh
 plugins/testing/mvnassembly.sh
 robocode.api/src/main/java/robocode/annotation/package-info.java
 robocode.api/src/main/java/robocode/control/events/package-info.java
 robocode.api/src/main/java/robocode/control/package-info.java
 robocode.api/src/main/java/robocode/control/snapshot/package-info.java
 robocode.api/src/main/java/robocode/exception/package-info.java
 robocode.api/src/main/java/robocode/package-info.java
 robocode.api/src/main/java/robocode/robotinterfaces/package-info.java
 robocode.api/src/main/java/robocode/robotinterfaces/peer/package-info.java
 robocode.api/src/main/java/robocode/util/package-info.java
 robocode.battle/src/main/java/net/sf/robocode/battle/Command.java
 robocode.content/src/main/resources/compilers/CompilerTest.java
 robocode.content/src/main/resources/meleerumble.sh
 robocode.content/src/main/resources/robocode.sh
 robocode.content/src/main/resources/roborumble.sh
 robocode.content/src/main/resources/teamrumble.sh
 robocode.content/src/main/resources/twinduel.sh
 tools/bin/ant.sh
 tools/loadTools.sh

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 949 bytes
Desc: OpenPGP digital signature
URL: <http://lists.alioth.debian.org/pipermail/pkg-java-maintainers/attachments/20141028/3dbc2fc1/attachment.sig>


More information about the pkg-java-maintainers mailing list