-
Notifications
You must be signed in to change notification settings - Fork 59
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Wrapper around pandoc should also be GPL #92
Comments
As for myself. I did this fast hack: https://github.com/kiwi0fruit/knitty/blob/master/LICENSE |
AFAIK Panflute is not distributing any part of Pandoc's source code nor is it distributing Pandoc compiled binaries or shared libraries. IANAL but my understanding is that this means the Panflute source code can have any license. Can you clarify why you think this should also be GPL? |
It's actually a "gray area"... So one cannot be certain (unless he knows about precedents and actually a lawyer). From this conversation:
And there a good SE question that redirect to the rather ambiguous FAQ:
And a reasonable comment:
|
Besides the discussion about the differences between importing a library in Python vs linking a library as in C (in which case there is no gray area), does the fact that panflute uses the MIT license prevent any issue? (It's GPL compatible) https://www.gnu.org/licenses/license-list.en.html#GPLCompatibleLicenses |
Something else to note is that the wrapper is not even a Python wrapper.. it's equivalent to calling pandoc on shell and then piping results from stdout (in fact, that's literally what it does) |
The question is if that quotes about CLI and pipes do really matter or they
are just irresponsible talk. If I understood correctly the GPL itself
doesn't mention particular mechanisms of communication.
If you ask me about using pipes inside another program and how it related
to GPL spirit as I know it - then that I thinks it's a derivative work and
should be GPL.
May be I'm wrong and there were precedents that show that such way of
communication should not lead to GPL. I'm not experianced in this area
unfortunately (or fortunately :) May be I'm wrong even more and there are
actually something about it in GPL text. But it wasn't quoted in that SE
question.
|
MIT is compatible with GPL in sence that derivative work of both MIT program and GPL program can be released under GPL license. |
Thanks for all the references @kiwi0fruit. I'm curious about this since I have a couple of other projects that I anticipate I'll need to figure out the details for. I think here, as @sergiocorreia has said, since Panflute is just making a subprocess call |
From practical point of view tha doesn't relly matter as nobody would sue
you :-) But theoretically the people that use panflute and think that it's
MIT and release some commercial product **may** have problems.
|
Even [1] https://github.com/jgm/pandocfilters/blob/61edb2b002e322cca93985d41d47eb38314679fa/LICENSE |
This is off topic slightly but even if someone used Panflute (and in turn used Pandoc) in a commercial application, wouldn't it be fine as long as they weren't making modifications to the source code of Pandoc? |
Why should not it be BSD? It only operates over some special JSON format.
It doesn't use Pandoc (or may be re-uses some code - I don't know - but
even in this case jgm can republish it with any license he wants).
|
Isn't Panflute doing the same thing as pandocfilters, operating over the JSON format using stdin and stdout? To clarify, I brought up pandocfilters because since Panflute is operating in almost the same way as pandocfitlers, it can have the same type of license as pandocfilters (unless my understanding is incorrect. It has been a while since I looked through the source of Panflute). |
Yep. That part is fine. The problem may be about this function only. |
I see what you mean. The function you linked uses Python's subprocess.Popen underneath. This is what the GPL license has to say about that: https://www.gnu.org/licenses/gpl-faq.html#GPLPlugins
It's hard to say exactly what they mean by the language used there. For example, what exactly does "intimate communication" mean in the context of a "fork and exec"? I've also done a cursory scan of other instances of similar use, and almost every other package I've scanned on GitHub that uses Pandoc through fork and exec seems to be using a permissive license. |
Couldn't this be solved with word play by stating that panflute requests a binary installed with certain established CLI Interface and output methods, not pandoc? Stating pandoc as an optional dependency wouldn't fix the problem?, we are working with the AST And also It appears to be a de facto acceptance towards panflute by pandoc, and having pandoc wrappers to assist the functionality and not to rely on seems pretty natural, so I think this could actually get out of any apparent gray area by requesting an actual approval if necessary, that to be honest I don't think pandoc won't provide. Hope, I help to this discussion. |
The quote about plug-ins mean plugins. In case of panflute it's not a
plug-in. It's a built-in functionality.
|
The underlying pandoc data structures are BSD licensed (jgm/pandoc-types); GPL seems to be overkill here. But it's an interesting question, maybe raise it on Open Source SE? |
But this calling Pandoc from Panflute is a powerful and convenient tool. So I guess removing it is not an option. |
At the end of the day, the only thing that Panflute is doing is calling Pandoc through shell and processing its output. That's not different from calling If Panflute had C-level Pandoc bindings, then it might be a different situation, but even with normal Python imports, people are free to import code with a different licensing than the one you have (otherwise all hell would break loose). |
Also, as others have pointed, Panflute has a BSD-3 license, which is GPL-compatible (so even if we were using C bindings it would be fine). |
Sounds convincing. I hope you are right (but I'm still doubtful). But I
guess it's OK for until that would matter.
|
No problem. Best, |
There are no exceptions about that in Pandoc license and the way of linking doesn't matter (though the way of linking would have mattered if Pandoc was LGPL).
And Panflute uses some helper functions that are wrappers around Pandoc and that not really needed by most of the filters. So I suggest removing them and keeping the current license.
The text was updated successfully, but these errors were encountered: