Skip to end of metadata
Go to start of metadata

The author is not a lawyer, so this is just a developer's stand on his interpretation of Taverna's license.


This page describes Taverna 2.x, licensed as LGPL 2.1.

Apache Taverna 3 is licensed under the Apache License 2.0, which is even friendlier for commercial projects.



Can I use Taverna code in my commercial project?

The short answer is yes.

The not so long answer is your Taverna plugins can be distributed under any license.

The long answer:

First of all, you can of course always use GPL or LGPL code in your commercial projects, the difference between the two licences comes down to what happens when you want to distribute your end-product. For products built using GPL you should supply source for all code that is linking with the GPL-ed part - as GPL would apply for that binary as a whole. Now in Java "linking" is a bit too C-ish term, but as a short you could say anything running in the same OS-level process as your code. (Big can of worms to explore: What if you put GPL-ed code inside a web container like Tomcat? Do all the other web applications have to be GPL?)

Relax - you won't have to dive into these areas - as Taverna is using the not-so-strict license LGPL - Lesser GPL.

What this means for you as a Java developer is that you can use any code (ie JAR) from Taverna under a LGPL licence (and be willing to distribute the source code for those JAR), but anything using those JARs - like your own or purchased code - can be under whatever license you want. The restriction that applies is that the LGPL libraries should be replaceable - so if one of your customers wanted to change something in any of Taverna's JARs - he should be able to get the source code for that (conveniently provided by myGrid) - make his changes - compile it - and given that he didn't mess it up in his own code - this should then work in your end-product by just replacing the Taverna JAR he has modified. 

If you change or copy any of Taverna's code, those changes would be covered by LGPL. So for instance if you make a version of Taverna where you have fixed a bug with window resizing, or copy a function from our code and possibly modify it - then that code would be considered to be under LGPL, and you would have to provide your customer with the source code for that module. In most of the cases this shouldn't be a big issue. Remember that your customers can choose if they want to distribute the LGPL code further. For instance, if you make a customized Taverna for a specific customer that doesn't want those changes distributed - that's not a problem - just don't give the product to anyone else. If the company doesn't want to give the software to anyone else, that's up to them. The only restriction is that if they do distribute the modified product, then they would also have to (be willing to) distribute the source code of those LGPLed libraries. (But as stated above - not necessarily for their own modules).

If you wanted to modify a core piece of Taverna to work with your product, and there was no easily accessible API available in Taverna's code for your functionality (say you need to modify the Workflow Diagram), then the best action would be to make a patch on the diagram code (covered by LGPL) exposing some API hook which your commercial code can link with and/or implement. You can then distribute the modified Taverna (with the source code for your patch) under LGPL, but keep your commercial code and Taverna plugin under its own license.

For the majority of cases, where you are simply using or implementing our public APIs, like adding new components to the workbench, new service implementations or embed parts of Taverna in your product, then Taverna's LGPL license would not affect those components as long as you don't copy any Taverna-specific code in your components.

  • None