www-legal-discuss mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Marvin Humphrey (JIRA)" <j...@apache.org>
Subject [jira] Commented: (LEGAL-86) Artistic License / CPAN dependencies
Date Mon, 21 Feb 2011 15:38:38 GMT

    [ https://issues.apache.org/jira/browse/LEGAL-86?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12997447#comment-12997447
] 

Marvin Humphrey commented on LEGAL-86:
--------------------------------------

> No concerns about usage at build time. No concerns about usage in cookbook. 

That's great. :)  That resolves questions about our usage of Parse::RecDescent,
which is the more difficult of the two dependencies to replace.

> If the dependency is other than from code written in Perl, can somebody
> clarify what the dependency is? 

At this point, Lucy can only be used via its Perl bindings.  Therefore, all
userland code which depends on Lucy and by proxy on JSON::XS will be Perl
code.

Removing Lucy's runtime dependency on JSON::XS is a prerequisite for adding
other language bindings, so before Lucy publishes public APIs for Python,
Ruby, or even C, this issue will have been rendered moot.  

Internally, Lucy core code, which is written in C, reads and writes JSON via a
generic interface defined in
[http://svn.apache.org/viewvc/incubator/lucy/trunk/core/Lucy/Util/Json.cfh?view=markup].
The implementation behind that interface presently calls back into Perl; the
actual code utilizing JSON::XS is in
[http://svn.apache.org/viewvc/incubator/lucy/trunk/perl/lib/Lucy.pm?view=markup],
lines 530-600.  

Eliminating JSON::XS as a dependency will require either changing the
implementation to use a different library or writing our own parser a la
[https://issues.apache.org/jira/browse/AVRO-58].  That's our eventual plan,
but the current code is very stable and we'd prefer not to mess with it just
prior to our first release, since screwups will result in index corruption.

Lucy uses JSON to write index metadata, such as schema files.  No part of
Lucy's runtime usage of JSON is exposed via a public API; the encoding of the
index files is an implementation detail.

> Artistic License / CPAN dependencies
> ------------------------------------
>
>                 Key: LEGAL-86
>                 URL: https://issues.apache.org/jira/browse/LEGAL-86
>             Project: Legal Discuss
>          Issue Type: Question
>            Reporter: Marvin Humphrey
>
> The Apache Lucy Incubator podling is working to pare down its list of
> dependencies, but there are two CPAN distributions which we would like to 
> put off replacing for the time being (Parse::RecDescent and JSON::XS).
> These two distributions are both licensed, as is common for CPAN modules,
> under the "same terms as Perl itself".  Perl's licensing is here:
>     [http://dev.perl.org/licenses/]
> We do not wish to bundle these CPAN distributions with Lucy, but instead
> specify them as prerequisites.  We assert that our usage of the modules in
> question falls under the terms of the Artistic License and *not* the GPL.
> Lucy interfaces with these modules in three places:
>     * At build time (Parse::RecDescent).
>     * Within Lucy itself at runtime (JSON::XS).
>     * Within sample/cookbook code (Parse::RecDescent).
> We have two questions:
>     * Is it acceptable for code released under the Apache License 2.0 to have
>       a non-optional dependency on code which is licensed under the Artistic
>       License?
>     * Is it acceptable to classify these modules as "system dependencies",
>       which the user is expected to install?

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: legal-discuss-unsubscribe@apache.org
For additional commands, e-mail: legal-discuss-help@apache.org


Mime
View raw message