Can I bundle iText with my non-commercial software?

Category: 
Tags: open sourceFOSSopen source licensesAGPLGPLLGPLMPLiText 5iText 2iText 7

I'm trying to create a java based plugin for an IDE (non eclipse), for which I need PDF generation. I started using iText, but I read somewhere that I cannot bundle this as part of my plug-in for distribution. I'm finding it hard to comprehend license agreements.

Posted on StackOverflow on Apr 13, 2015 by user907737, but the question was removed. It's original URL was http://stackoverflow.com/questions/29604663/

If you want to distribute iText with your application, you should take into account that:

  • if you distribute your source code as AGPLv3 software, you can use iText under the AGPLv3 at no charge (there's no money involved).

  • if you distribute your source code under another type of open source license (e.g. the EPL, the Apache Software License,...), then you can't use iText because such a license isn't compatible with the AGPLv3 (there may be exceptions, such as the GPLv3 under conditions).

  • If you distribute your source code under a closed source license (e.g. a commercial license), then you can only use iText if you purchase a commercial iText license.

I teach this kind of stuff, so allow me to copy/paste some slides from my Startup Legal and IP class.

Open source license overview
Open source license overview

The quote was borrowed from the ZeroMQ guide; the figure is an adaptation of a schema drawn by David Wheeler.

Based on personal experiences in the business, I'd say it boils down to this:

  • if you publish your code under a permissive license, companies using your software will see your work as a free lunch. They will use it, but there is very little chance you'll be rewarded for your work. On the contrary: they will demand a solution if they have a problem with your software. (This is what happened to me: my son was in hospital with Cancer for almost a year and I got harassed by a company that expected me to solve their technical problem for free.)

  • if you publish your code as a closed source product, companies may see you as somebody stuck in the 20th century, because everything needs to be open source today and you're not very friendly if you only have a closed source offering.

  • if you publish your code under a copyleft license, then companies are obliged to cooperate, either by enhancing the software (the way you intend to enhance it), or by contributing financially which allows the open source vendor to invest in further development.

    iText used to be available under the MPL/LGPL, but switched to the AGPL in 2009. All the MPL/LGPL versions have been removed from our servers (see this question for more info).

What's the difference between LGPL, GPL and AGPL? This is explained in this overview:

What is distribution?
What is distribution?

Suppose that we'd be talking about hardware, more specifically about an engine.

  • If the engine is AGPL, then you can use that engine for free to build a car, and you can distribute this car commercially: you can ask money for selling the car and you don't have to pay for your use of the engine. Your main obligation is that you share all the improvements you've done to the engine.

  • If the engine is GPL, then you can only use that engine for free inside a car if you also distribute the car for free under the same license. The moment you start selling cars under other conditions, you can no longer use the engine for free. However, if you use that engine inside a bus and instead of selling the bus, you make money selling bus tickets, you don't need to pay for your use of the engine. This is what many SaaS companies do: they do not distribute software executables, they offer Software as a Service. This is commonly referred to as the "SaaS loophole" of the GPL.

  • The AGPL closes the SaaS loophole: with the AGPL, offering Software as a Service is also considered as "distribution", hence you need to distribute your complete application as AGPL for free. You can usually escape from this obligation by purchasing a commercial license.

So the answer is really simple: you want to offer your plug-in for community use. If you choose to release your plug-in under the AGPL, then you can use iText and we'll even promote your plug-in (e.g. by writing a blog post about it on the iText site). If you choose to release your plug-in under a license that isn't compatible with the AGPL, you shouldn't use iText.