Hi Marcin and all, Marcin Borkowski <mb...@mbork.pl> writes:
> after a short discussion in a recent thread, I have a serious technical > question. > > Assume that (for some reason) I want to write an Org-mode exporter which > won't be GPL'd. (Use-case: having written a few custom exporters, I'm > writing a tutorial on them, and I consider publishing a *tutorial* with > GPL'd code a Bad Thing™. (The idea of a programming tutorial is that > other people can or even should reuse the code in the tutorial, right? > And I see no reason to impose GPL on them.)) I am not a lawyer, this is not legal advice, etc., but for what it's worth, here's my opinion: It sounds to me like you are not creating a program derived from GPL'ed code, but rather *quoting* GPL'ed code (and introducing some modifications to those quotes) in a document whose purpose is to educate its readers. I don't know about your jurisdiction, but in the U.S., that sounds to me like it would fall well within the bounds of fair use: https://en.wikipedia.org/wiki/Fair_use (There is also a brief section there about fair use in Poland; maybe that will help you?) Only a court can say, but if you are only publishing this source code as part of a tutorial, so that it - has an educational purpose - serves to discuss ideas that can be gleaned from reading the original - does not substantially copy the original - does not devalue the original then I would guess the GPL does not apply to the code, as it is quoted/derived in your tutorial, due to a fair use limitation. So my advice would be: (1) treat the code in your tutorial along whatever lines are appropriate for quotation of copyrighted works in your jurisdiction; and (2) maybe include a notice in your tutorial to your readers, that if they create *and distribute* a working exporter based on the code in your tutorial and/or code in the Org distribution, the GPL may apply. If you are actually distributing the complete exporter as a working program, that seems a little murkier to me; the issue there, as you are aware, is whether that working program counts as a derived work. I have no idea how to answer that question. Hope that helps! Best, Richard