Today I have been mostly shifting furniture around. Well, not literally. But as a sometime lead for assorted projects with a talent for yelling "well volunteered" I get to pay the karma forward from time to time by doing grunt work to save other people the trouble. Today was one of those days.
I happen to be rather fond of the Debian Linux distribution (no, I'm not saying GNU/Linux, sod off) and they happen to be rather good at packaging up perl modules for us these days. However, while doing a review they discovered that a bunch of Catalyst related distributions didn't have suitable copyright lines to be updated in debian. So, we solved this by the following simple multi-step process:
First, I came up with a generic set of copyright text that seemed to be easy to copy and paste into docs -
=head1 COPYRIGHT Copyright (c) 2008 - 2009 the DBIx::Class::EncodedColumn L</AUTHOR> and L</CONTRIBUTORS> as listed above.
and shipped it as part of EncodedColumn so we could test that one out by sending it as a new dist. That worked. Second, we added it to DBIx::Class's POD since we generally point to that dist as a not-completely-awful practice for doing dist work.
Third, once that got in, I scripted up the generation of the relevant sections by snarfing through the change log of dists for the years - see the gitweb link since I threw it into the Catalyst git cluster we host for other people's usage.
Fourth, I went through all the dists that were blocking a new libcatalyst-modules-perl release and either marked them dead (not released since 2006 and not used in sane code since about then) or, if they were live, cracked open the relevant file, ran
in vi to yank the info in, upped the version, tweaked the changes, built a dist, and then t0m and I shipped them between us depending on who had permissions.
They're all now commmited into the Catalyst repo and the only thing left is to check that the Catalyst::Model::DBI author doesn't hate me for changing his module and is happy to ship the remaining dist, and the debian packagers should be good to go (and thereby owe me a beer, I hope :).
So, if you want a quick way to do copyright right and make the packagers' lives easier downstream, this way seems to work at least for debian.
-- mst, out