TrustTheVote-Project / horatio-server

Turns JSON absentee ballot requests into PDFs and delivers them to registrars.
MIT License
1 stars 3 forks source link

Figure out if mPDF is license-compatible #34

Closed waldoj closed 9 years ago

waldoj commented 9 years ago

mPDF is published under the GPL, and I don't have the foggiest idea whether that's compatible with the OSET license. If we want to bundle mPDF, we need to know that it's license-compatible. (Otherwise, people have to download and install it separately. Not the worst thing.)

paultag commented 9 years ago

Hey @waldoj !

I'm speaking as myself, this isn't the opinion of the OSI or Debian's FTP team nessasarally

3.3.    Distribution of a Larger Work
    You may create and distribute a Larger Work under terms of Your choice, provided that You also comply with the requirements of this License for the Covered Software. If the Larger Work is a combination of Covered Software with a work governed by one or more Secondary Licenses, and the Covered Software is not Incompatible With Secondary Licenses, this License permits You to additionally distribute such Covered Software under the terms of such Secondary License(s), so that the recipient of the Larger Work may, at their option, further distribute the Covered Software under the terms of either this License or such Secondary License(s).

Where secondary license(s) are defined as

1.12.   “Secondary License”
    means either the GNU General Public License, Version 2.0, the GNU Lesser General Public License, Version 2.1, the GNU Affero General Public License, Version 3.0, or any later versions of those licenses.
waldoj commented 9 years ago

Thanks! That clears up half of the mystery. :) The bit I'm left wondering about is whether it's a problematic to bundle GPLed software under the OSET license in terms of the GPLed software. That is, OSET's cool with GPL, but I don't know how the GPL feels about OSET. I'd hate to upset the developers of GPLed software, if they've licensed their software in such a fashion that it ought not be included in OSET-licensed software.

paultag commented 9 years ago

Ah, that clause fixes that, since the derived/combined work, can distributed under the terms of the GPLv2+ satisfying both licenses at once :)

waldoj commented 9 years ago

Ohhh, I did not understand that in any way. Well, great! Thank you!

As an aside, I think any organization publishing a new FOSS license should provide a matrix of what it's compatible with, bidirectionally. Not doing that severely limits uptake of the license. If you and @copiesofcopies hadn't helped me out here, I probably would have abandoned the OSET license.

paultag commented 9 years ago

Ah, yeah, it's annoying, and really depends if it's mere aggregation or actually combined / derived.

I agree it's confusing, it's why the OSI fights license proliferation :)

:+1: rock on, Waldo!

copiesofcopies commented 9 years ago

Just want to make sure I understand the resolution here. You're licensing your original absentee-server code under OSET 2.0, but actually distributing the application under GPLv2 because it depends on a GPLv2 library/class?

paultag commented 9 years ago

(I'll let waldo actually reply, but I could see that making sense, since it's two parts -- if the client shares models / is derived, it'd let it be licensed OSET even if the server is distributed under GPLv2+ to comply there - of course, I'd be happy to see GPL everywhere :) )

waldoj commented 9 years ago

Uh...yes? Though I'm not sure what I need to put in my LICENSE file to make that clear, since I only vaguely grasp the concept myself. :-/

copiesofcopies commented 9 years ago

Well, the OSET 2.0/MPL 2.0 escape hatch for *GPL compatibility is pretty unusual, and not very intuitive. Basically, the GPL says that any combination involving GPL'd code must be licensed "as a whole" under the GPL, and cannot be subject to any restriction beyond those in the GPL. Very permissive licenses (MIT, 2- and 3-clause BSD) contain no such restrictions, so they raise no compatibility issues with the GPL. OSET 2.0, on the other hand, does contain "additional restrictions" that typically prevent compatibility with the GPL -- the choice-of-law and -venue clauses, to pick some easy ones.

So without the compatibility clause, you couldn't combine OSET and GPL code. But OSET bends over backward to say that, unless the project says otherwise, the OSET-licensed code can be combined with GPL-licensed code and the resulting work distributed under GPL, without the OSET-specific restrictions applying to the combined work. It's a very particular kind of compatibility, and it's not very easy to understand. Which is one reason, maybe, to consider not using OSET or MPL 2.0 when you have GPL dependencies, because the licensing situation is sort of immediately misleading and weird.

Was the rationale for adopting OSET to begin with that it's government-focused provisions will make the software easier for government agencies to adopt?

waldoj commented 9 years ago

Was the rationale for adopting OSET to begin with that it's government-focused provisions will make the software easier for government agencies to adopt?

Yes, that's the only reason that I've used the OSET license. OSET creates open source election software for governments to use, and this is open source election software that I'd like government to be able to use. But it sure sounds like OSET is more licensing trouble than it's worth in this scenario. :-/

copiesofcopies commented 9 years ago

Yeah, I think the main issue is that, as long as you have a GPLv2 dependency, you're compelled by the GPL to drop the terms that you chose OSET for in the first place (at least the ones that qualify as additional restrictions under GPLv2).

paultag commented 9 years ago

Just to add more, since this isn't in conflict -- but the terms are only dropped on distribution, not on the work or derived work that isn't being combined with GPL code

On Fri, Jun 12, 2015 at 9:19 AM, Aaron Williamson notifications@github.com wrote:

Yeah, I think the main issue is that, as long as you have a GPLv2 dependency, you're compelled by the GPL to drop the terms that you chose OSET for in the first place (at least the ones that qualify as additional restrictions under GPLv2).

— Reply to this email directly or view it on GitHub https://github.com/waldoj/absentee-server/issues/34#issuecomment-111489970 .

:wq

waldoj commented 9 years ago

Uuuggggghhhhhhh.

I mean, not at you guys. I'm really grateful to y'all for guiding me through this.

But, you know: uuuggggghhhhhhh.

waldoj commented 9 years ago

I think I'm going to relicense this. The license is getting in the way of getting work done.

waldoj commented 9 years ago

With f6a439e651934285ac43a5b76f4e23faebe466ad, I changed to the MIT license. The problems raised by OSET are just more than I can deal with within the scope of this project.

Thanks for your help, @paultag and @copiesofcopies!