Update on the licenses and the repository links on CPAN

In December 2012 I checked how many Perl modules on CPAN have license information, and link to their repository in their META files. Later, in February 2013, I published an update.

Today I checked the 1,000 most recently uploaded modules again:

DateHas licenseHas repository link
December 201282.6%49.6%
February 201383.4%49.7%
July 201387%60.1%

It's a nice improvement, but remember these are the 1,000 most recent uploads. The percantages would be a lot lower if we looked at all the packages currently on CPAN.
I think both of these numbers should be around 99.7%.

If you'd like to check your module, you can use the metacpan_meta.pl 1000 PAUSEID command with you PAUSEID after installing MetaCPAN::Clients. That will show the 1000 most recent upload for the given PAUSEID. Even if some of them were 5 years ago. It will also show the list of offending distributions.

If you'd like to update them, here are two articles I wrote showing how to make that happen:
link to repository and add license field to META files.

ps. I just checked my own PAUSEID and it tells me 6 packages are missing their license and 11 are missing their repository out of the 62 I have on CPAN. Let's see if I can improve.

p2. I went through the list. Deleted two of the modules from CPAN as they were not relevant any more, and added the above information to most of the others. I have not released them as they don't have any other changes, but the next time I release them they will alrady come with the updated META files.


If distro does not have license in META, it does not mean it has no license at all. README, LICENSE file or POD can contain license.

On the other side, META license can be just wrong or useless.
For example "open_source" - almost useless. Or, for example there is some mess with GPLv3


(M:B does not support GPLv3 at all, distzilla reports it wrong in META 1.4, but correct in META2)

Probably same with GPLv2

There's a reusable quest related to this on Questhub (the perl realm on Questhub is what was previously called play-perl). On this quest you fix up 5 dists with respect to license and repository link.

Reusable quests are called stencils: they're standard quests to help people get started with Questhub and also contribute to Perl.

Here's my instance of the stencil: feel free to +1 me :-)

Note that the documentation for META_MERGE in ExtUtils::MakeMaker was until recently wrong.
This is now patched, but not yet released. So, if you plan to add meta information to your EUMM-based build, check what is generated in META.yml/META.json.

Leave a comment

About Gabor Szabo

user-pic Perl author and trainer. Usually writing on other sites: Writing the Perl 5 Maven tutorial Perl 6 articles. Started a Perl IDE. Running the Weekly Perl newsletter. My personal blog.