Bug 1082367 - azureus: GPL code linked with GPL-incompatible libraries
Summary: azureus: GPL code linked with GPL-incompatible libraries
Alias: None
Product: Fedora
Classification: Fedora
Component: azureus
Version: rawhide
Hardware: Unspecified
OS: Unspecified
Target Milestone: ---
Assignee: David Juran
QA Contact: Fedora Extras Quality Assurance
Depends On:
Blocks: FE-Legal
TreeView+ depends on / blocked
Reported: 2014-03-30 20:14 UTC by Mikolaj Izdebski
Modified: 2018-07-30 16:51 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2018-07-30 16:51:38 UTC
Type: Bug

Attachments (Terms of Use)

Description Mikolaj Izdebski 2014-03-30 20:14:47 UTC
Description of problem:
Despite the fact that license tag states "GPLv2+", parts of Azureus are licensed under GPL v2 only:
  grep "version 2 of the License only" `find -name *.java`

Azureus links with a number of GPLv2-incompatible components:
  apache-commons-cli (ASL 2.0)
  apache-commons-lang (ASL 2.0)
  eclipse-swt (EPL)
  log4j (ASL 2.0)
  junit (CPL, build-time only)
  json_simple (ASL 2.0)

Azureus also bundles some code under CPL (classes in org.pf).

Version-Release number of selected component (if applicable):

Comment 1 Sergio Basto 2014-03-31 01:03:42 UTC
on https://sourceforge.net/projects/azureus/ 
License is GNU General Public License version 2.0 (GPLv2).

So drop the "+" fix this bug ? 
Linked to a number of GPLv2-incompatible components, but all in Fedora repos and one Common Public License also accepted by Fedora [1], what we need to do ? 


Comment 2 Mikolaj Izdebski 2014-03-31 06:49:50 UTC
The main problem is that the libraries azureus links with are all under GPLv2-incompatible licenses.  For example GPL code cannot be linked with EPL code.  Fedora licensing page you linked confirms that.  For more information, see:

Comment 3 David Juran 2014-04-07 06:39:01 UTC

Regarding the GPLv2+ tag, the '+' is probably a mistake on the behalf of the packager, for all I know, azureus is licensed for GPLv2 only, see http://wiki.vuze.com/w/Vuze_License.

Regarding linking with Eclipse SWT, The azureus project make an exception from the GPLv2 (also on http://wiki.vuze.com/w/Vuze_License) for this purpose. I don't claim I fully understand the details but would that make this linking acceptable and should the Licence tag then be "GPLv2 with exceptions"?

Regarding the rest, let me see what I can do...

Comment 4 Mikolaj Izdebski 2014-04-07 07:55:33 UTC
Thank you David for looking into this.

I agree with changing the license tag to "GPLv2" or "GPLv2 with exceptions".  In any case adding a comment to the spec file with the link to the wiki page would be nice.

The exception (if you can even call it this way) was to link with "EPL-licensed SWT" code only, but azureus also links with other components under EPL or CPL and with code under ASL 2.0 license, which is incompatible with GPLv2.

Comment 5 David Juran 2014-04-07 08:50:45 UTC
Yes, the EPL and CPL parts will need to be looked into/replaced. Reason I asked about SWT was that I don't think it's really feasible replacing this, so if the exception would not be sufficient, there would be little point putting effort into fixing the rest.
But I interpret #4 as SWT would be OK with the exception and I'll get started on the rest of the issues later during the week.

Comment 6 David Juran 2014-07-07 20:57:21 UTC

Comment 7 David Juran 2014-07-08 16:06:11 UTC
Mikolaj, regarding the ProgrammersFriend library, it seems it was LGPL at the time it was bundled into Vuze.
 Could you have a look at the discussion on http://forum.vuze.com/thread.jspa?threadID=122409 if you agree with what is said there?

Comment 8 Mikolaj Izdebski 2014-07-08 16:24:41 UTC
Azureus bundles verison ProgrammersFriend 2.0, which is dated July 26, 2003.  Judging from the web archive links it seems that older versions of ProgrammersFriend (before 2005) were indeed under LGPL (any verison), so that's not a problem from legal point of view as GPL code can be linked with LGPL.

The problem of bundled code *could* be justified by upstream license change - it is not possible to legally link azureus with latest PF, hence bundling.  But FPC still needs to revisit the case and grant an exception.

Of course the problem of linking with other libraries remains.

Comment 9 David Juran 2014-07-23 20:19:01 UTC
Discussion in upstream project about what their actual licence is ongoing in http://forum-archive.vuze.com/thread.jspa?threadID=122409

Comment 10 Jaroslav Reznik 2015-03-03 15:38:51 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 22 development cycle.
Changing version to '22'.

More information and reason for this action is here:

Comment 11 Jan Kurik 2016-02-24 13:14:38 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 24 development cycle.
Changing version to '24'.

More information and reason for this action is here:

Comment 12 Fedora End Of Life 2017-07-25 18:38:50 UTC
This message is a reminder that Fedora 24 is nearing its end of life.
Approximately 2 (two) weeks from now Fedora will stop maintaining
and issuing updates for Fedora 24. It is Fedora's policy to close all
bug reports from releases that are no longer maintained. At that time
this bug will be closed as EOL if it remains open with a Fedora  'version'
of '24'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version'
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not
able to fix it before Fedora 24 is end of life. If you would still like
to see this bug fixed and are able to reproduce it against a later version
of Fedora, you are encouraged  change the 'version' to a later Fedora
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's
lifetime, sometimes those efforts are overtaken by events. Often a
more recent Fedora release includes newer upstream software that fixes
bugs or makes them obsolete.

Comment 13 Fedora End Of Life 2017-08-08 11:45:51 UTC
Fedora 24 changed to end-of-life (EOL) status on 2017-08-08. Fedora 24 is
no longer maintained, which means that it will not receive any further
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version. If you
are unable to reopen this bug, please file a new report against the
current release. If you experience problems, please add a comment to this

Thank you for reporting this bug and we are sorry it could not be fixed.

Comment 14 Tom "spot" Callaway 2017-08-08 19:32:54 UTC

Comment 15 Jan Kurik 2017-08-15 06:36:04 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 27 development cycle.
Changing version to '27'.

Comment 16 Tom "spot" Callaway 2018-06-13 18:51:18 UTC
I know I reopened this, but I'm going to close it again. I'm not very concerned about license compatibility issues with interpreted programming languages (e.g. Java).

Comment 17 Mikolaj Izdebski 2018-06-14 07:53:24 UTC
(In reply to Tom "spot" Callaway from comment #16)
> I know I reopened this, but I'm going to close it again. I'm not very
> concerned about license compatibility issues with interpreted programming
> languages (e.g. Java).

Java is a compiled language. Binary Fedora packages (rpms other than source rpms) contain only compiled object code of Azureus and its dependencies, which is used for execution. Sources are included only in source RPM.

Comment 18 Tom "spot" Callaway 2018-06-14 14:55:04 UTC
Okay, fair enough. Let's look at the current state of this.

junit (EPL-1.0): Only used by one file: 
* org/gudy/azureus2/ui/console/multiuser/TestUserManager.java

That file is clearly GPLv2+, but EPL-1.0 is incompatible with GPLv2 and v3. This file is used for testing only, I was able to delete it in %prep and it builds/runs fine (further confirmed by the fact that the binary never tries to load json.jar).

eclipse-swt (EPL): They have a license exception in place to cover this combination.

apache-commons-cli (ASL 2.0)
apache-commons-lang (ASL 2.0)
log4j (ASL 2.0)
json_simple (ASL 2.0)

These components are widely used. As originally noted, they are clearly incompatible with GPLv2, but compatible with GPLv3. Looking at the current code, the following files are GPLv2 only:

* org/gudy/azureus2/plugins/PluginState.java
* org/gudy/azureus2/pluginsimpl/local/PluginStateImpl.java

Unfortunately, as those files underpin the plugin code, they cannot simply be removed. I have done some searching, and I believe I have located the author (and probably copyright holder), and have emailed them to see if they are willing and able to relicense these files to GPLv2+. If so, this would resolve the license compatibility concerns.

Comment 19 Tom "spot" Callaway 2018-07-30 16:51:38 UTC
On 2018-07-01, I was able to contact Allan Crooks via email. He gave permission for those two files to be used under the terms of GPLv2+. 

I have applied this change in rawhide (it can be considered to be active for all versions of azureus even if not updated), but did not make any stable branch updates for this, mainly because azureus (aka vuze) is no longer maintained upstream, as far as I can see. The maintainer for azureus can make updates if they wish, but are not required to do so.

The living fork of that code is BiglyBT, and I have put in a PR for this change there as well. BiglyBT is not in Fedora at this time.

Note You need to log in before you can comment on or make changes to this bug.