Matthew,

I’m no lawyer, but...

On Tuesday, April 25, 2017 at 4:45:29 PM UTC+1, Matthew Butterick wrote:
> PS about Rosetta Code generally. As a user, its utility is hugely
> undermined by the fact that I can't take code from the site and easily
> adapt / reuse it (at least, if I want to comply with the GFDL). 
> 
> http://www.gnu.org/licenses/fdl-1.2.html
> 
> IMO a library of sample Racket code ought to be available under the
> same license as Racket (IIRC we are heading toward MIT/Apache)
> 
> https://github.com/racket/racket/issues/1570

That’s a sticky one.


Rosetta Code examples are often structured as such:

TITLE: Bogo Sort
       ---------

INTRO: In computer science, <a href="wikipedia/bogosort">bogosort</a>
       is a highly ineffective sorting algorithm...

TASK:  Write a program to bogosort a list of 50 numbers. Print out how
       long it takes to complete.

IMPLEMENTATIONS:

       =={{header|ADA}}==
       <lang ada>...</lang>
       ...

       =={{header|Racket}}==
       <lang racket>(define bogo-sort ...)
                    (time (bogo-sort ...))</lang>


The INTRO is lifted from Wikipedia, and probably properly credited since
it’s a URL. Without being under the GFDL, would that be permitted by
Wikipedia’s licence?


The TASK is written by an RC contributor. Said contributor can release
the task description under another licence (would only make sense to
make it more permissive). Or someone complying with the GFDL could copy
it.


There seems to be an incompatibility between source code and
documentation and the GPL and the GFDL. But assume for a moment that the
text of code is documentation covered by GFDL (although the same is
true of it as code covered by GPL): The IMPLEMENTATION writers can
release their implementations permissively.

Now, I wouldn’t bother asking the ADA implementor’s permission, since
I’m not interested in copying their code (maybe I am deriving from the
overall work by removing it).

I want to copy the Racket implementors’ documentation/source code. I
would need to ask the Racket implementors whether, for the benefit of
the Racket community (and therefore humanity at large) they could ensure
the code is explicitly released for (at least) that purpose.


So we could end up writing the example below. The TASK and
IMPLEMENTATION would either be uncopied/non-derivative or relicenced.
But, the INTRO is still a copy of the Wikipedia content. And even if my
previous arguments hold true WRT Rosetta Code -- this project would
/still/ have issues with GFDL.

TITLE: Bogo Sort
       ---------

INTRO: In computer science, <a href="wikipedia/bogosort">bogosort</a>
       is a highly ineffective sorting algorithm...

TASK:  [In this case not necessary after WP has described it, and in any
        other case probably not appropriate to lift verbatim]

IMPLEMENTATION:
       (define bogo-sort ...)
       (time (bogo-sort ...))


Racket is permissive enough to use Scribble (scribble/lp) on a separate
site (not necessarily a Wiki).

A package could be pre-built with only the released library code and no
documentation (at least allowing folk to use the examples). Which would
pervert any idea of easy open source.

I wouldn’t know how to describe BogoSort without reference to WP (or
worse, another printed source)†. So it would be difficult in this respect
to, for example, gather together a canonical list of sorts; and
illustrate them in Racket.


Has anyone any ideas of how to navigate this minefield?

Tim

† Am I missing a resource here?



-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to