incubator-lucy-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Marvin Humphrey <mar...@rectangular.com>
Subject Re: [lucy-dev] Generalize Tutorial for multiple host languages
Date Fri, 05 Nov 2010 22:00:06 GMT
On Fri, Nov 05, 2010 at 10:50:53AM -0500, Peter Karman wrote:
> > Additionally, by eliminating those CPAN prerequisites entirely, we skirt the
> > issue of dependency licensing.
> 
> How is documenting something, in a tutorial, affected by software
> licensing? We don't distribute those modules.

The problem is the sample application itself.  We distribute it in finished
form as indexer.pl and search.cgi under trunk/perl/sample/, and it's also
available in fragmented form within the Tutorial documentation itself. 

The GPL asserts itself on "derived works" under copyright law.  The position
of the FSF, and of some other prominent GPL advocates such as Linus Torvalds,
is that interfacing with GPL'd software in your source code is sufficient to
create a derived work.  This is not a universally held position -- see e.g.
the qualifying language that Larry Wall inserted into the Perl license text --
and ultimately, enforcement of the GPL depends upon a copyright owner with
standing and willingness to bring suit.  But regardless of the position of
individual copyright holders, the text of the GPL is what it is, and that
makes the licensing of our present sample app questionable.

As I understand things, the position of the ASF is that sample code, like core
project code, must follow the rules for dependencies laid down at
<http://www.apache.org/legal/resolved.html>.  When Apache Pivot proposed
moving demo code with LGPL dependencies off of ASF servers to a separate home
at Google Code, they received this response on legal-discuss@a.o:

  http://markmail.org/message/3th3yoasvmyaugzg

  Understanding that these are demos/examples, that's a substantially
  disappointing direction. You pretty much ensure that the world can't really
  count on basing their code on the demos or examples without being locked
  into a copyleft schema (or questioning the providence of the code and again,
  being unable to use this).

  So if the plan is to build upon these mixed-license demos at an external
  location, I'd encourage the project to rethink the sense in that (and
  perhaps bring in all IP-clear AL examples back to the project, abandoning
  those with licensing or providence issues.) This would ensure there are a
  set of adoptable, modifiable demos for users to start with. 

Many Perl users are accustomed to working with GPL'd CPAN modules and won't
care about the licensing.  But we still have to ensure that we are in
compliance with the ASF policy, and I fully agree with the rationale behind
that policy.  Ensuring that GPL'd dependencies do not sneak into your code
requires vigilance and can consume a lot of energy.  The consumers of Apache
Lucy's Tutorial code should not have to concern themselves with whether our
sample apps introduce a vector for the insertion of GPL'd code into their
codebases.

Fortunately, even if the Lucy sample apps continue to operate in an HTML/CGI
context rather than migrate to plain-text/command-line as proposed, it's easy
to remove the dependencies on HTML::TreeBuilder, HTML::Entities, and
Data::Pageset, which were actually introduced not too long ago.  We'll just go
back to manual paging code (slightly more verbose but in an area that doesn't
matter), CGI::escapeHTML() instead of HTML::Entities::encode_entities() (I
generally try to avoid CGI.pm but oh well), and stripping of HTML tags with
regexes (hackish but fine for a demo).

Marvin Humphrey


Mime
View raw message