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 [email protected]: 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
