From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniele Nicolodi Subject: Re: How to make a non-GPL Org-mode exporter? Date: Mon, 27 Jul 2015 14:39:04 +0200 Message-ID: <55B62668.7020100@grinta.net> References: <87pp3dvm18.fsf@mbork.pl> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:41112) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZJhgI-0004R7-75 for emacs-orgmode@gnu.org; Mon, 27 Jul 2015 08:38:59 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZJhgC-0004Dx-Qt for emacs-orgmode@gnu.org; Mon, 27 Jul 2015 08:38:58 -0400 Received: from zed.grinta.net ([109.74.203.128]:47237) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZJhgC-0004B3-Hq for emacs-orgmode@gnu.org; Mon, 27 Jul 2015 08:38:52 -0400 Received: from macbook-nicolodi.obspm.fr (macbook-nicolodi.obspm.fr [145.238.204.178]) (Authenticated sender: daniele) by zed.grinta.net (Postfix) with ESMTPSA id 23A4D600C for ; Mon, 27 Jul 2015 12:38:51 +0000 (UTC) In-Reply-To: <87pp3dvm18.fsf@mbork.pl> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org Hello Marcin, On 27/07/15 14:10, Marcin Borkowski wrote: > Assume that (for some reason) I want to write an Org-mode exporter whic= h > 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=E2=84=A2. (The idea of a programming tutorial i= s that > other people can or even should reuse the code in the tutorial, right? > And I see no reason to impose GPL on them.)) As Oleh Krehel pointed out in a reply to another mail of yours, if your code links to org-mode code (or other GPL code) you cannot release it under a different license. I'm not sure about how linking is intended in Elisp sense of ('require)ing a library, but I believe it is analog to executable linking in machine code programs. Therefore, the only extensions to org-mode that can exist (and be distributed, if you write code and keep it for yourself you are not affected by the licensing terms) must be GPL. Thus, it makes little sense to continue the discussion: even if you would release the code in your tutorial under a different license, it would be or no use for who will read it. > 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? There is no need to have lawyers involved, if you are in doubt about the interpretation of the GPL you can consult the FSF (or other organizations) on the matter. They will be happy to answer your question with a very high degree of authority on the matter. > The manual says: >=20 > ,---- > | Your two entry points are respectively =E2=80=98org-export-define-bac= kend=E2=80=99 and > | =E2=80=98org-export-define-derived-backend=E2=80=99. To grok these f= unctions, you > | should first have a look at =E2=80=98ox-latex.el=E2=80=99 (for how to= define a new > | back-end from scratch) and =E2=80=98ox-beamer.el=E2=80=99 (for how to= derive a new > | back-end from an existing one. > `---- >=20 > So basically you are expected to use existing GPL'd code to learn to > write new exporters. The manual makes the thing easy for the ones that want to respect the authors choice of license. > Also, the overall structure of the exporters is extremally similar. Fo= r > 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? First, your goal is not to satisfy lawyers, but to comply with the license terms. The license terms are chosen by the authors of the code, thus you are satisfying the wishes of whom granted you access to their code. It is the minimum you should do to thank them. Second, if that is the only structure that makes sense, you can re-invent it without looking at the GPL code. Thus you can use a similar structure in your differently licensed code. However, you should really have re-created it without looking at the original. This email already suggests otherwise. > Also, the names of functions (like `org-latex-export-as-latex' vs > `org-latex-export-to-latex') are similar across exporters. Should I us= e > this convention, too, in order to satisfy fellow programmers, or should > I deliberately break it, in order to satisfy lawyers? Function names are not copyrightable (as far as I know). > Also, the docstrings of many transcoders are similar. How am I suppose= d > to write a docstring which is at the same time more or less > comprehensive and different enough from the existing ones, so that > I don't end up in jail? (<--- this is actually a joke. I hope so at > least...) There is a minimum unit of "code" that is copyrightable (the word "the" appears in many copyrighted works, but you can still use it in your own). If the doc-strings are trivial you can freely write something simil= ar. Cheers, Daniele