SPUG: canonical CPAN module distribution tactics: how to 'bootstrap' MANIFEST/SIGNATURE?

Adam Monsen haircut at gmail.com
Wed Aug 25 12:11:21 CDT 2004

I'm in the process of distributing my first CPAN module, and I have a
question on the canonical way of bundling a signed distribution

BTW, my module is a framework for writing email autoresponders, ala
UNIX vacation(1). See http://search.cpan.org/perldoc?Email::AutoReply
(comments/criticisms welcome!)

My issue is what files from the module should be checked in to my CVS
repository for version control. In general, I like to check in *only*
the files required for autogeneration of the distribution tarball, so
I don't check in MANIFEST (can be generated with 'make manifest' after
running 'perl Makefile.PL') or SIGNATURE (can be generated with 'make
distsign' after running 'perl Makefile.PL').

Problem is, SIGNATURE must be included in MANIFEST before 'make
distsign' can be run, yet MANIFEST cannot be created before 'make
distsign' is run, because cpansign needs an accurate checksum of
MANIFEST (which can only be acquired /after/ MANIFEST includes a line
for the SIGNATURE file!). Ugh.

Any ideas on how to do this gracefully?

Attached is a shell script I use to create a clean tarball
distribution of Email::AutoReply. The script is run from
, a directory which includes the subdirectory
. And is executed like so:
  ./makedist Email-AutoReply/
  ./makedist Email-AutoReply

My solution was to make the manifest, sign, make the manifest, and
sign again. It is pretty clunky to have to sign twice, and I'd like to
avoid it if possible.

Adam Monsen <adamm at wazamatta.com>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: makedist
Type: application/octet-stream
Size: 1280 bytes
Desc: not available
Url : http://mail.pm.org/pipermail/spug-list/attachments/20040825/2e35b398/makedist.obj

More information about the spug-list mailing list