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] ASL headers, etc.
Date Sat, 16 Oct 2010 20:40:40 GMT
On Thu, Oct 14, 2010 at 04:52:06PM -0700, Marvin Humphrey wrote:
> That should be enough to get us started.

The core/ and charmonizer/ directories have now been taken care of, pending
the application of a couple patches.

Next up will be clownfish/, perl/buildlib, and perl/lib/.

The clownfish/ directory contains three kinds of files:

    .pm  Perl module files
    .t   Perl test files
    .cfh Clownfish header files.

The .cfh files are bare bones and are only used by the test suite.  They don't
contain any copyright or licensing info which needs to be removed; adding the
ASL2 header is straightforward.

The .t test files don't presently have any copyright or licensing information,
either.  This is common for such files within CPAN distros, and I see that
other Apache projects with .t files haven't necessarily added headers to such
files.  However, there's no harm in doing so, and the src-headers.html policy
file seems to indicate that adding them is preferable.

    http://www.apache.org/legal/src-headers.html#faq-exceptions

    What files in an Apache release do not require a license header?

    A file without any degree of creativity in either its literal elements or its
    structure is not protected by copyright law; therefore, such a file does not
    require a license header. If in doubt about the extent of the file's
    creativity, add the license header to the file.

The .pm files all have a "COPYRIGHT & LICENSE" section within their POD.  I
see that SpamAssassin includes the ASL2 header using standard Perl #-prefixed
comments at the top of each file, but only includes a "COPYRIGHT" section in
the POD for SpamAssassin.pm itself (and the POD for the free-standing script
"spamassasin-run"), omitting it from all the other modules.

    =head1 COPYRIGHT

    SpamAssassin is distributed under the Apache License, Version 2.0, as
    described in the file C<LICENSE> included with the distribution.

I like this convention and think we should adopt it.  Clownfish is a
build-time implementation detail which does not get installed, but we can
still use the above text, simply swapping out "SpamAssassin" for "Clownfish".

    =head1 COPYRIGHT

    Clownfish is distributed under the Apache License, Version 2.0, as
    described in the file C<LICENSE> included with the distribution.

Thus changing the licensing for the .pm files under clownfish/ should proceed
like so:

    1. Remove the existing copyright notices.
    2. Add the ASL2 header using # comments.
    3. Add the "COPYRIGHT" POD section above to Clownfish.pm.

The perl/buildlib/ directory contains four .pm files, none of which are
public.  Adapting those is as simple as removing the existing license notices
and installing the header using # comments.

The perl/lib/ directory is a bit more complicated.  It contains standard-issue
.pm files, standard-issue .pod files, .pod files which are auto-generated
using specs embedded in the .pm files, and one auto-generated .pm file
(Autobinding.pm).

To adapt the standard-issue .pm and .pod files, we can apply the same
technique we used for the .pm files within the clownfish/ directory:

    1. Remove the existing copyright notices.
    2. Add the ASL2 header using # comments.
    3. Add the "COPYRIGHT" POD section above to KinoSearch.pod

Adapting the autogenerated .pod files requires making slight adjustments to
part of Clownfish, specifically Clownfish::Binding::Perl::Class, which needs
to start inserting the ASL2 header with # comments, and should stop inserting
the "COPYRIGHT AND LICENSE" section for each file.

Adapting Autobinding.pm with the ASL2 header also requires a small change to
Clownfish: the insertion of the header text into the appropriate template
variable within Clownfish::Binding::Perl.

That should do it for the next stage.

Marvin Humphrey


Mime
View raw message