This is in no way a dig on Plagger, its authors or even the Module::Install people either....but crap like this is why I will never use Module::Install.
A simple perl Makefile.PL should not induce this kind of instanity....
This isn't even all of it...just the scrollback that filled the buffer...
- Test::Pod ...missing. - Test::Pod::Coverage ...missing. ==> Auto-install the 2 optional module(s) from CPAN? [n] [Cookie sharing with Firefox] - HTTP::Cookies::Mozilla ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [n] [Liberal XML parsing] - XML::Liberal ...missing. (would need 0.14) - XML::RSS::Liberal ...missing. ==> Auto-install the 2 optional module(s) from CPAN? [y] [XPath support in Subscription and Feed Upgrader] - HTML::TreeBuilder::XPath ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [y] [Better html to text formatter] - HTML::TreeBuilder ...missing. - HTML::FormatText ...missing. ==> Auto-install the 2 optional module(s) from CPAN? [y] [Bundle::Planet] [Filter::HTMLScrubber] - HTML::Scrubber ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [y] [Publish::Feed] - XML::Feed ...missing. (would need 0.09) - XML::Atom ...missing. (would need 0.20) ==> Auto-install the 2 optional module(s) from CPAN? [y] [Publish::Gmail] - Net::SMTP::TLS ...missing. - MIME::Lite ...missing. - Mail::Address ...loaded. (1.74) ==> Auto-install the 2 optional module(s) from CPAN? [y] [Publish::Planet] - HTML::Scrubber ...missing. - File::Copy::Recursive ...loaded. (0.28) ==> Auto-install the 1 optional module(s) from CPAN? [y] [Rule::Deduped] - DB_File ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [y] [Rule::Fresh] - Time::Duration::Parse ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [y] [Subscription::Bloglines] - WebService::Bloglines ...missing. (would need 0.11) ==> Auto-install the 1 optional module(s) from CPAN? [y] [Subscription::OPML] - XML::LibXML::SAX ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [y] [Aggregator::Xango] - Cache::FastMmap ...missing. - POE::Component::Client::DNS ...missing. - POE::Component::Client::HTTP ...missing. - Xango ...missing. (would need 1.04) - POE ...missing. ==> Auto-install the 5 optional module(s) from CPAN? [n] [Bundle::Defaults] [CustomFeed::FlickrSearch] - Flickr::API ...missing. - DateTime::Format::Epoch ...missing. ==> Auto-install the 2 optional module(s) from CPAN? [n] [CustomFeed::Mixi] - WWW::Mixi ...missing. (would need 0.46) ==> Auto-install the 1 optional module(s) from CPAN? [n] [CustomFeed::SVNLog] - SVN::Core ...missing. - SVN::Client ...missing. ==> Auto-install the 2 optional module(s) from CPAN? [n] [CustomFeed::Script] - YAML::Syck ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [n] [Filter::2chNewsokuTitle] [Filter::2chRSSContent] [Filter::AtomLinkRelated] - List::Util ...loaded. (1.18) [Filter::Babelfish] - Locale::Language ...loaded. (2.07) - WWW::Babelfish ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [n] [Filter::BlogPet] [Filter::Delicious] [Filter::DeliciousFeedTags] [Filter::Emoticon] - Text::Emoticon ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [n] [Filter::EntryFullText] - HTML::ResolveLink ...loaded. (0.03) [Filter::ExtractAuthorName] - Email::Address ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [n] [Filter::FeedFlareStripper] [Filter::FindEnclosures] - List::Util ...loaded. (1.18) - HTML::TokeParser ...loaded. (2.37) [Filter::FloatingDateTime] [Filter::ForceTimeZone] [Filter::GuessLanguage] - Lingua::ZH::HanDetect ...missing. - Locale::Language ...loaded. (2.07) - Text::Language::Guess ...missing. ==> Auto-install the 2 optional module(s) from CPAN? [n] [Filter::GuessTimeZoneByDomain] - DateTime::TimeZone ...missing. (would need 0.51) - IP::Country ...missing. ==> Auto-install the 2 optional module(s) from CPAN? [n] [Filter::HatenaBookmarkTag] [Filter::HatenaBookmarkUsersCount] - XMLRPC::Lite ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [n] [Filter::HatenaDiaryKeywordLink] - XMLRPC::Lite ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [n] [Filter::HatenaFormat] - Text::Hatena ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [n] [Filter::HatenaKeywordTag] - Hatena::Keyword ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [n] [Filter::ImageInfo] - Image::Info ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [n] [Filter::Kansai] [Filter::LivedoorClipUsersCount] - XMLRPC::Lite ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [n] [Filter::Markdown] - Text::Markdown ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [n] [Filter::POPFile] - XMLRPC::Lite ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [n] [Filter::Pipe] - IPC::Run ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [n] [Filter::Profanity] - Regexp::Common::profanity_us ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [n] [Filter::RSSLiberalDateTime] - Date::Parse ...loaded. (2.27) [Filter::ResolveRelativeLink] - HTML::ResolveLink ...loaded. (0.03 >= 0.02) [Filter::Romanize] - Text::Kakasi ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [n] [Filter::SpamAssassin] - Mail::SpamAssassin ...missing. - MIME::Lite ...missing. ==> Auto-install the 2 optional module(s) from CPAN? [n] [Filter::StripRSSAd] [Filter::TTP] - URI::Find ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [n] [Filter::Thumbnail] [Filter::URLBL] - URI::Find ...missing. - Net::DNS::Resolver ...loaded. (513) ==> Auto-install the 1 optional module(s) from CPAN? [n] [Filter::UnicodeNormalize] - Unicode::Normalize ...loaded. (0.32) [Filter::tDiaryComment] [Namespace::ApplePhotocast] [Namespace::HatenaFotolife] [Namespace::MediaRSS] [Notify::Audio] [Notify::Audio::MSWin32] - Win32::Sound ...loaded. (0.47) [Notify::Audio::iTunesWin32] - Win32::OLE ...loaded. (0.1703) [Notify::Balloon] - Win32::Console ...loaded. (0.07) [Notify::Beep] - Audio::Beep ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [n] [Notify::Command] [Notify::Eject::mswin32] - Win32::MCI::Basic ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [n] [Notify::IRC] - POE::Component::IRC ...missing. - POE::Component::IKC::Client ...missing. ==> Auto-install the 2 optional module(s) from CPAN? [n] [Notify::NetSend] - Net::NetSend ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [n] [Notify::OpenBrowser] [Notify::OpenBrowser::FirefoxRemote] [Notify::UpdatePing] - XMLRPC::Lite ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [n] [Publish::2chdat] - DateTime::Locale ...loaded. (0.22) [Publish::CHTML] [Publish::CSV] - Text::CSV_PP ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [n] [Publish::Delicious] - Net::Delicious ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [n] [Publish::Excel] - Spreadsheet::WriteExcel ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [n] [Publish::IMAP] - Mail::IMAPClient ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [n] [Publish::JSON] - JSON::Syck ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [n] [Publish::JavaScript] - Template::Plugin::JavaScript ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [n] [Publish::MT] - Net::MovableType ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [n] [Publish::Maildir] - MIME::Lite ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [n] [Publish::PDF] - PDF::FromHTML ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [n] [Publish::PalmDoc] - Palm::PalmDoc ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [n] [Publish::PowerPoint] - Win32::PowerPoint ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [n] [Publish::SWF] - SWF::Builder ...missing. - Text::WrapI18N ...missing. ==> Auto-install the 2 optional module(s) from CPAN? [n] [Publish::Serializer] - Data::Serializer ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [n] [Publish::Speech::Win32] - Locale::Language ...loaded. (2.07) - Win32::OLE ...loaded. (0.1703) - Locale::Country ...loaded. (2.07) - Win32::SAPI4 ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [n] [Publish::Takahashi] [Publish::iCal] - DateTime::Format::ICal ...missing. - Data::ICal ...missing. ==> Auto-install the 2 optional module(s) from CPAN? [n] [Rule::URLBL] - Net::DNS::Resolver ...loaded. (513) [Search::Estraier] - Search::Estraier ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [n] [Search::Grep] - File::Grep ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [n] [Search::KinoSearch] - KinoSearch ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [n] [Subscription::Bookmarks::InternetExplorer] - Win32::Locale ...missing. - Win32::IEFavorites ...missing. (would need 0.03) ==> Auto-install the 2 optional module(s) from CPAN? [n] [Subscription::Bookmarks::Mozilla] [Subscription::DBI] - DBIx::Class::Schema ...loaded. (0) [Subscription::FOAF] - XML::FOAF ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [n] [Subscription::HatenaRSS] - WWW::Mechanize ...loaded. (1.21_01) [Subscription::LivedoorReader] - WWW::Mechanize ...loaded. (1.21_01) - JSON::Syck ...missing. (would need 0.1) ==> Auto-install the 1 optional module(s) from CPAN? [n] [Subscription::Odeo] [Subscription::PingServer] [Subscription::PlanetINI] - Config::INI::Simple ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [n] [Subscription::XOXO] [Subscription::XPath] - HTML::TreeBuilder::XPath ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [n] [Summary-Auto] [Summary-English] - Lingua::EN::Summarize ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [n] [Summary-HatenaBookmark] [Summary-Simple] [Summary-TextOriginal] - Text::Original ...missing. ==> Auto-install the 1 optional module(s) from CPAN? [n] [Summary-TrackbackRDF] [Widget::Simple] *** Dependencies will be installed the next time you type 'dmake'. *** Module::AutoInstall configuration finished. Checking if your kit is complete... Looks good Warning: prerequisite Term::Encoding 0 not found. Warning: prerequisite XML::Atom 0.23 not found. Warning: prerequisite XML::Feed 0.12 not found. Warning: prerequisite XML::LibXML 0 not found. Warning: prerequisite XML::RSS::LibXML 0.23 not found. Writing Makefile for Plagger
Now that's strong typing!
Re:Ack!
DAxelrod on 2006-10-21T02:22:26
Dangit, chromatic, now everybody's looking at me funny becasue I'm laughing so hard.:)
Re:Huh?
Aristotle on 2006-10-21T15:48:08
Some sort of UI::Dialog thingie for that kind of task would be infinitely nicer, though.
Re:Huh?
brian_d_foy on 2006-10-22T06:33:00
When I run into these situations, I don't know which optional dependencies I want. Just install everything and stop asking me!
People could write wacky Makefile.PLs in any method, as you say, but the only one that annoys me about once a week (or ever, really), is Module::Install. If it did it's work without me knowing about it, I wouldn't care.
It really sucks to walk away from a terminal thinking everything will be downloaded and installed when I get back, only to find Module::Install asking me a question about whether it should do something automatically.
Re:Auto-Install isn't
Alias on 2006-10-24T14:23:34
The auto-install parts of Module::Install is one part I'm gradually trying to pull out, as they have taken on something of a mitichondrial role, and we really need something better.
As for what it does, it does two things.
1. Makes writing Makefile.PL much simpler
2. Allows new install functionality WITHOUT needing every single end user to upgrade.
For example, here's a sample Module::Install installer.
use strict;
use inc::Module::Install;
name 'Foo-CVS';
all_from 'lib/Foo/CVS.pm';
requires_external_bin 'cvs';
install_share;
WriteAll;
This is for the Foo::CVS module, which is a notional wrapper around the cvs program. It pulls all the metadata it can out of the file, including license and author and minimum perl version and such, checks that the binary application 'cvs' is installed on the host, and then when installing installs a bunch of read-only shared data into the appropriate place on the system for File::ShareDir to find it.
And new installer functionality only requires that the authors upgrade, not the end users. The flaw in this is that if authors have released modules using very old versions, then they exhibit old behaviour.
Unfortunately, Module::Install got hyped a bit much early and so there's a number of modules floating around with very old non-sane behaviour.
Odds are you use a bunch of Module::Install modules all the time and you don't even know it, it's just the interactive ones causing you trouble.