(Attention conservation notice: Way too many words about software licensing arcana. You can safely skip this.)
kaegi wrote:I'm now done with
aligner, which is the tool I promised. The API is very easy and can hopefully be integrated in
substudy without any problems.
Thank you for building this tool and releasing it as free software!
kaegi wrote:One thing though: I strongly prefer copylefted licenses for my personal projects, so this project is published under the AGPL-3.0 and will stay that way. I'm sorry for that inconvenience.
I'm quite sympathetic to the goals of the free software movement. I've been a paying member of the Free Software Foundation on and off over the years, I've personally released over a hundred libraries and programs under free licenses, and I've helped previous employers release literally millions of dollars of code under the GPL and LGPL. I've even helped one company who was accidentally in violation of the GPL (thanks to a third-party vendor) negotiate with the FSF to fix the problem and come into compliance.
So I strongly support your right to license your code as you wish, and I thank you for choosing a free license. The world needs more free software!
But unfortunately, I'm not going to incorporate AGPLed code in
substudy. Let me explain why. The AGPL raises particular issues that the GPL and LGPL do not, thanks to this key clause:
Notwithstanding any other provision of this License, if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version by providing access to the Corresponding Source from a network server at no charge, through some standard or customary means of facilitating copying of software.
The big question here is what does "interacting" mean in this context? Obviously if somebody were to create a web application which directly uses your library to align subtitles, then using that application through a web browser would qualify as "interacting", and they would also need to license
their application under the AGPL. But what if a web application calls
substudy as a command-line tool? What if I package up
substudy as a REST API and a web application calls
that? In the case of the GPL and LGPL, there are well-understood answers to these questions, based on court precedents, industry practice and the definition of "derivative work" in copyright law. But the AGPL is more of an unknown quantity. It's used by only two major, popular projects that I'm aware of (MongoDB and iText), and one of those projects (MongoDB) was forced to include an
explicit clarification:
To make the above practical, we promise that your client application which uses the database is a separate work. To facilitate this, the mongodb.org supported drivers (the part you link with your application) are released under Apache license, which is copyleft free.
If I chose to use your library in
substudy, I would need to figure out whether or not I needed a similar license clarification from you. But there's also the issue of relicensing all of my own code. Let's look at the license text (emphasis added):
You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions:
[list]
[*]...
[*]c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it.
So if I were to use your AGPLed library in
substudy,
I would need to relicense all of my own substudy code under the AGPL, as well as any future GUI apps or websites that I build to make
substudy easier to use.
Personally, this is all too much work for me. I certainly could have chosen to use the GPL for
substudy, which is clearer and more popular than the AGPL. But honestly, if somebody chooses to use
substudy code in a proprietary software product, I'm not actually going to call up the copyright lawyer I usually work with and file a copyright suit. (For something bigger than
substudy I might feel differently. If I actually use the GPL for my code, I have every intention of enforcing it.) But for
substudy, I simply chose to eliminate all of these legal complications and
dedicated my code to the public domain, with a fallback license for countries like Germany that don't allow public domain dedications. So
substudy is as legally unrestricted as I can possibly make it. Honestly, the intent here is pretty much the same as that behind the hilarious
WTFPL.
So anyway, that's why AGPLed licensed code is off-limits for inclusion in
substudy. Sorry about that, but thank you for releasing your program!