RFC: Test::Copyright

Salve J Nilsen sjn-london.pm at pvv.org
Tue Jun 14 12:52:01 BST 2011

David Cantrell said:
> On Mon, Jun 13, 2011 at 10:25:00PM +0100, Nicholas Bamber wrote:
>> Experience in packaging perl modules from CPAN , suggests that most 
>> CPAN authors are woefully ignorant of copyright and licensing 
>> issues.

Doing the Right Thing isn't exactly obvious/easy either, so I don't 
find this surprising at all.

> The concept appears to be flawed, as it appears to care about the 
> licence field in META.yml, which is known to have been a bad idea. 
> It's a bad idea because it only supports one value and because that 
> value has to be one of a small set of licences deemed acceptable.

What you describe here is a bug in the META.yml spec and/or its 
supporting modules. No need to work around those when they can be 
fixed, eh? :)

> If you want to use any other licence, you're supposed to lie in 
> META.yml and say that your licence is "unknown".

"you're supposed to lie" sounds like a tremendously bad advice. 
Obviously, there's something wrong here that can be fixed?

> It also has the problem that only people who care will use your 
> module in their tests, and they will be exactly the sort of people 
> who don't need your module!

Adding copyright statements (even if arcane/outdated/whatever) is 
useful to tell the world who decides the license. This is sometimes 
very useful information (especially when the copyright holder chooses 
stricter licenses, and the module is useful in commercial settings). I 
think adding copyright and license information is helpful for the 
former and necessary for the latter - especially if different files in 
a distribution have different licenses, or some files are "imports" 
from other projects (e.g. distributing a Catalyst app that has the 
jQuery files packaged for conveniency.)

For this reason I think having a Test module might be useful (I'd 
rather name it Test::License, though.) Make it an author test and put 
it in xt/ somewhere.

- Salve (Oslo.pm)

sub AUTOLOAD{$AUTOLOAD=~/.*::(\d+)/;seek(DATA,$1,0);print#  Salve Joshua Nilsen
getc DATA}$"="'};&{'";@_=unpack("C*",unpack("u*",':4@,$'.#     <sjn at foo.no>
'2!--"5-(50P%$PL,!0X354UC-PP%/0\`'."\n"));eval "&{'@_'}";   __END__ is near! :)

More information about the london.pm mailing list