emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] How to make a non-GPL Org-mode exporter?


From: Marcin Borkowski
Subject: Re: [O] How to make a non-GPL Org-mode exporter?
Date: Mon, 27 Jul 2015 16:32:59 +0200

On 2015-07-27, at 15:05, Greg Troxel <address@hidden> wrote:

> Marcin Borkowski <address@hidden> 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
>
> I will assume that you mean "write and distribute".  (The GPL grants
> permission to create derived works that are not distributed.)

As I said a minute ago: I hope (at least) that I can write something
non-GPL'd in Elisp and not distribute it.

>> 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.))
>>
>> How do I do that?  Is that even possible?  Also, is it possible to get
>> an actual answer to this question without spending money on lawyers?
>
> Generally, no, it is not really possible, and a lawyer will not give you
> an answer, just an opinion about what the answer is likely to be, and
> the risks of various choices on your part.  The exact boundaries of
> derived works in software is not settled case law.  (Yes, I have
> actually consulted with lawyers on Free Software licensing issues.)

Well, I do understand that a lawyer won't give me an answer.  It's not
something I would expect from a lawyer, after all. ;-/ But thanks for
your answer!

It seems that the most interesting (and most important) question, "what
is derived work", is answered nowhere.  Cool.  I find it a bit difficult
not to be harsh in this situation - not against all you people who
actually bear my rants, but against the system in general.

*Hypothetically*, if someone asked me (in private, mind you) what he or
she should do about the IP law system, I *might* consider the advice
"the best idea is to deliberately break it so that it falls apart
faster" to be among the better ones.

> Note that I'm a not a lawyer, and I'm certainly not yours -- and I have
> no idea what jurisdiction you're in, but I'm assuming a legal system
> somewhat similar to the US and Europe, with the Berne convention.

Europe.

>> ,----
>> | Your two entry points are respectively ‘org-export-define-backend’ and
>> | ‘org-export-define-derived-backend’.  To grok these functions, you
>> | should first have a look at ‘ox-latex.el’ (for how to define a new
>> | back-end from scratch) and ‘ox-beamer.el’ (for how to derive a new
>> | back-end from an existing one.
>> `----
>>
>> So basically you are expected to use existing GPL'd code to learn to
>> write new exporters.
>
> Learning is not a right reserved to the copyright owner.  In all
> seriousness, copyright protects expression, not ideas, so learning
> things from copyrighted code is fine.

I was not precise.  What I meant was: if I learn from GPL'd code, I will
(most probably) naturally tend to mimic it myself when writing my own.
AFAIK, this is (more or less) how *culture* works.  Am I the only one
who sees "IP law" and "culture" be at some kind of opposition here?

>> Also, the overall structure of the exporters is extremally similar.
>> For instance, the :menu-entry argument of org-export-define-backend is
>> almost the same for all exporters (and it should be, in order not to
>> break usability!).  Should I follow such conventions, in order to
>> satisfy users, or should I deliberately break it, in order to satisfy
>> lawyers?
>
> The basic problem you have is that an existing body of code and culture
> of users is built around a particular license, and trying to deviate
> From that is in general rude (in general; a PD example is not a bad
> goal).  I suggest that you stop trying to be inflammatory, especially
> incorrectly so.  It's not about satisfying lawyers -- it's about
> following both the law and the norms of the Free Software commnity.

I am really, really sorry if someone considers me rude.  But - forgive
me - as I'm getting older (and wiser, I hope) I care less and less about
following the law *blindly* (e.g., I consider my moral duty to follow
the law, unless the law itself is immoral, when I may consider my moral
duty to break the law.  And that apart from the question of what to do
if the law is at a contradiction with itself...).

> The key question is what is and what isn't a derived work.  That's more
> or less a work that extends the original work, a concept born in
> literature and applied to software.

Agreed.

>> Also, the names of functions (like `org-latex-export-as-latex' vs
>> `org-latex-export-to-latex') are similar across exporters.
>
> Generally, there is a notion of the size of copying that is big enough
> to matter.  I have not heard much support for the notion that using
> similar variable names constitutes a derived work.
>
>> Also, the docstrings of many transcoders are similar.  How am I supposed
>> to write a docstring which is at the same time more or less
>> comprehensive and different enough from the existing ones?
>
> You certainly could rewrite it in your own words.

That is of course true, though perhaps in some cases falling in-between
the "funny" and "absurd" situations I mention below.

> But, you ask "how am I supposed to" as if there is some guarantee that
> you can essentially duplicate what's done but not be a derivative work.
> That isn't necessarily true, and you have no right to expect it.  The
> law and licenses have consequences and it's entirely possible that you
> can't (legally and politely) do what you want.

The more I read the more I think you are right: it may not be possible
to do this legally.  Politely probably yes, though I'm afraid it might
be outside my reach at the moment.  But I'll try hard to correct myself.

> The tricky part about derived works is that a program which makes many
> calls into org to do something is arguably a derived work, even if you
> wrote all the lines yourself, because it extends the underlying program
> and is not sensible without that underyling code.

And (depending on the particular case, and judging by common sense) this
seems to oscillate between "reasonable", "expected", "the right thing",
"just", "funny", "ridiculous", "absurd" and "stupid".

> I believe that the example of using "defun" is different, because lisp
> is something that's been implemented many times, differently.  I see a
> lisp program as not being a derived work of the lisp implementation.

Isn't this a bit vague?  What about Python, which has a few
implementations?

> This is much like a C program not being a derivative work of the
> operating system it runs on, because it is (or should be) coded to
> POSIX.
>
> All in all, I suspect that in practice, legally distributing a non-GPL
> exporter is iffy, and so I don't see any real downside to an example
> being GPL.   (Do you know of an actual situation where someone who is
> going to write an exporter genuinely wants to distribute under other
> terms, and has a rational basis for that desire?)

Thanks for teaching me a new English word ("iffy").  An example (maybe
a bit contrived - but only a bit!) of such situation: someone working at
a university wants the students to use a particular LaTeX template when
writing their thesis (my case), writes an Org exporter for those of them
who want to use Org (not my case), and having the president of the
university who is strongly opposed to GPL'ing anything written by his
employees (possibly my case).

> Your anger about copyright, when directed at other list members, is
> highly misplaced.  This all originates from laws in various countries
> and the Berne Convention.  It is those laws which prohibit you from
> copying other people's creative works without their permission.  And in
> the FSF culture, permission is granted via a license that intentionally
> withholds from you the permission to distribute works under other terms.
> If you don't like that you should choose not to use emacs.

Again: I'm really sorry.  Please understand that it's not you (=the list
members) who I'm angry at.  I'm angry at the stupid legal system I have
to live in.  I do not believe that those laws "prohibit me from copying
other people's creative works without their permission".  This purpose
is better fulfilled by ethics (at least for the currently predominant
values of "law").  Those laws serve (a) the lawyers and (b) the
corporations much more than the authors.

Best,

-- 
Marcin Borkowski
http://octd.wmi.amu.edu.pl/en/Marcin_Borkowski
Faculty of Mathematics and Computer Science
Adam Mickiewicz University



reply via email to

[Prev in Thread] Current Thread [Next in Thread]