Please don't include anything in your distribution that uses a CPAN-registered
module name. I've been bitten more than once on that, the most memorable
being the "Minivend" shopping cart package.
The "Minivend" author started with
the attitude you had: he had wanted to make a "turnkey" solution for end users,
and needed some modules that perhaps were not commonly installed, so he had
included frozen versions of them into his distribution, under the original names.
Well, time passed, and he didn't incorporate the latest version of those modules
into his distribution, but it came time for me to install Minivend to test it to see
if I wanted to do a column about it. Imagine my horror when Minivend
uninstalled my more modern versions of those handful of central modules,
and replaced them with his own downrev versions!
I immediately posted a note to his support list and to P5P warning people that
"minivend is evil", and got some interesting responses, but mostly the P5P
group sided with me: a distribution should not have private versions
of public modules under the CPAN-registered name. This leaves him (and you)
with two solutions:
- Include (as you suggested) a version of the module, but safely tucked away
under your own namespace. Like a version of Minivend::Foo::Bar
for a module that everyone else knows (or once knew) as Foo::Bar.
- Simply list the prerequisites in the Makefile.PL, and let the installer
sort it out.
The latter is highly preferred, although the former insulates you from any
"upward compatibility" problems, but most modules I've seen only get better,
and have sacrificed very few items in the name of backward compatibility.
The "Minivend" author learned his lesson, and now does the latter. I suggest you
seriously look at doing the same. Do you really think a site can be self supporting
if they can't even install a module or two from the CPAN? There is a
support cost to using Open Source software, and part of it includes being able
to include components. If they want Microsoft, they know where to get it. {grin}
-- Randal L. Schwartz, Perl hacker
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.