emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Daniele Nicolodi <daniele@grinta.net>
To: emacs-orgmode@gnu.org
Subject: Re: How to make a non-GPL Org-mode exporter?
Date: Mon, 27 Jul 2015 14:39:04 +0200	[thread overview]
Message-ID: <55B62668.7020100@grinta.net> (raw)
In-Reply-To: <87pp3dvm18.fsf@mbork.pl>

Hello Marcin,

On 27/07/15 14:10, Marcin Borkowski wrote:
> 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.))

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:
> 
> ,----
> | 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.

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.  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?

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 use
> 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 supposed
> 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 similar.

Cheers,
Daniele

  parent reply	other threads:[~2015-07-27 12:38 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-27 12:10 How to make a non-GPL Org-mode exporter? Marcin Borkowski
2015-07-27 12:16 ` Oleh Krehel
2015-07-27 13:02   ` Rainer M Krug
2015-07-27 13:09     ` Greg Troxel
2015-07-27 13:13       ` Andreas Hilboll
2015-07-27 13:30         ` Rainer M Krug
2015-07-27 14:05       ` Marcin Borkowski
2015-07-27 14:03   ` Marcin Borkowski
2015-07-28 12:33   ` Paul Rudin
2015-07-27 12:39 ` Daniele Nicolodi [this message]
2015-07-27 16:59   ` Marcin Borkowski
2015-07-27 18:02     ` Nick Dokos
2015-07-27 18:12       ` Marcin Borkowski
2015-07-27 18:45     ` Daniele Nicolodi
2015-07-28  7:55     ` Oleh Krehel
2015-07-29 14:54       ` Aaron Ecay
2015-07-30 10:08         ` Oleh Krehel
2015-07-27 13:05 ` Greg Troxel
2015-07-27 14:32   ` Marcin Borkowski
2015-07-27 13:58 ` Scott Randby
2015-07-27 16:32   ` Marcin Borkowski
2015-07-27 15:13 ` Eric S Fraga
2015-07-27 16:01   ` Marcin Borkowski
2015-07-27 16:12     ` Oleh Krehel
2015-07-27 17:12       ` Marcin Borkowski
2015-07-27 17:13       ` Thomas S. Dye
2015-07-27 16:54     ` Eric S Fraga
2015-07-27 17:04       ` Marcin Borkowski
2015-07-27 18:38         ` Eric S Fraga
2015-07-28  8:07           ` Oleh Krehel
2015-07-28  9:00             ` Eric S Fraga
2015-07-28  9:00               ` Oleh Krehel
2015-07-28 10:38                 ` Eric S Fraga
2015-07-28  9:20               ` Andreas Hilboll
2015-07-28  9:30                 ` Oleh Krehel
2015-07-28 10:14                   ` Andreas Hilboll
2015-07-28 10:29                     ` Oleh Krehel
2015-07-27 18:32 ` Richard Lawrence
2015-08-04 15:04 ` Phillip Lord

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=55B62668.7020100@grinta.net \
    --to=daniele@grinta.net \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).