sverweij / mscgen_js

text => sequence charts
https://mscgen.js.org
GNU General Public License v3.0
206 stars 25 forks source link

Dual License? #105

Closed Torawk closed 9 years ago

Torawk commented 9 years ago

I've been looking at mscgen_js to use for product documentation for some APIs as it saves the step of running mscgen to get an image/etc and works very well.

The issue is the GPLv3 license which likely means we can not use it as then all other code would need to be GPL also... there's a kinda grey area with javascript but we don't want to go there and also want to honor the wishes of the dev(s).

Is mscgen_js available under another license or could it be?

Thanks.

sverweij commented 9 years ago

At this time it is not available under another license, but it could be. I will look into it. It could very well be the GPLv3 license is not aligned anymore with what mscgen_js has become.

Give me a few days.

-> is the source disclosure the only objection?

(And thanks for the compliment :-) )

Torawk commented 9 years ago

The main issue is disclosing all of our product code. It's a bit grey with how our documentation is generated from it's source. On one hand I can see the divide since it's really just reading the source as input and generating the HTML/etc which would link mscgen_js if we use it for the sequence diagrams. But on the other I could see someone saying it's all linked and due to the GPLv3 all needs to be licensed as such. And I do not want to worry about the second argument legally.

There's lots of interesting reading on javascript and GPL, Richard Stallman has an interesting article on non-GPL compatible licensed js being run in GPL browsers.

Thanks for considering this.

sverweij commented 9 years ago

I'm considering two alternatives;

-> any thoughts?

add an exception

This answer to a FAQ on gnu.org suggests to add an exception for what looks like exactly like using the mscgen_js mscgen-inpage.js:

As a special exception to the GPL, any HTML file which merely makes function calls to this code, and for that purpose includes it by reference shall be deemed a separate work for copyright law purposes. (...)

(emphasis mine)

This leaves little room for interpretation. With this exception anyone can use the mscgen-inpage.js in their HTML, without it having to be GPL'ed (let alone having to GPL the application the HTML documents/ describes).

LGPL

The GNU Lesser General Public License, was created with libraries in mind. Applications that link to LGPL libraries need not be released under LGPL. So in your case you wouldn't have to LGPL the html page(s) (= the application) in which you link to mscgen-inpage.js (the library).

Torawk commented 9 years ago

Either alternative would be good for me, as they would both allow mscgen_js to be used as we are doing so.

The LGPL is worded a bit more for compiled languages, since it references object code/etc.. so the exception may be clearer to others looking at it.

Thanks again for considering this. I've been using mscgen_js in house on just a static html to test with and getting some nice sequence diagrams.

sverweij commented 9 years ago

I'll try to update the license text(s) this weekend (have to find out how to exactly do that first).

sverweij commented 9 years ago

Forgot to mention this issue in the commit last week, so FTR: updated docs in this commit: bb1ff943a1392ee4da40b970733281a947a9161c

Torawk commented 9 years ago

I did notice earlier, and thanks again. I'll close this issue.