Beefy Boxes and Bandwidth Generously Provided by pair Networks kudra
Don't ask to ask, just ask
 
PerlMonks  

Module::Build article on perl.com, MakeMaker is doomed

by autarch (Hermit)
on Feb 15, 2003 at 00:14 UTC ( #235463=perlnews: print w/ replies, xml ) Need Help??

My first article on Module::Build is now available. Module::Build is a module build/install system which aims to replace ExtUtils::MakeMaker with a pure-Perl solution, in order to eliminate the problems caused by using make. Michael Schwern, the current EU::MM maintainer, has put slides for his MakeMake is Doomed presentation online, as well.

Comment on Module::Build article on perl.com, MakeMaker is doomed
Re: Module::Build article on perl.com, MakeMaker is doomed
by VSarkiss (Monsignor) on Feb 15, 2003 at 01:13 UTC

    If nothing else, take a look at schwern's presentation for the hilarious graphics on the slides. My favorite is the one on slide 12.

Re: Module::Build article on perl.com, MakeMaker is doomed
by grantm (Parson) on Feb 15, 2003 at 02:43 UTC

    Great article! I'd been meaning to look at Module::Build since it was released, but hadn't quite got round to it. Your article answers all my initial questions. I look forward to part 2.

•Re: Module::Build article on perl.com, MakeMaker is doomed
by merlyn (Sage) on Feb 15, 2003 at 05:36 UTC
    Module::Build will not get my support until there's a replacement for h2xs -AXn Module::Name that builds the templates to use Module::Build rather than ExtUtils::MakeMaker.

    When I last checked, Schwern wasn't planning one of these. But it must be done before the new module can fully replace the old.

    Similarly, CPANPLUS doesn't support o conf-style directives to change minor configuration things without going through a fullblown configuration. I can't support CPANPLUS replacing CPAN.pm until this option is available.

    I'm not sure why people believe they can change-out core modules without providing at least as much as what was working in the past. {sigh}

    Yes, I know, "patches welcome". That's not the point here.

    -- Randal L. Schwartz, Perl hacker
    Be sure to read my standard disclaimer if this is a reply.

      Module::Build will not get my support until there's a replacement for h2xs -AXn Module::Name that builds the templates to use Module::Build rather than ExtUtils::MakeMaker.

      That's easy enough to fix. I'll try to remember to send the author of ExtUtils::ModuleMaker a patch to support Module::Build. I much prefer eumm to h2xs.

      I'm not sure why people believe they can change-out core modules without providing at least as much as what was working in the past. {sigh}

      I'm not sure why people believe that a plan to replace a core module doesn't include doing exactly this. In other words, I don't think anyone is planning to throw Module::Build, in its current state, into the core. The goal is to get all the functionality it needs, then put it in the core.

        It would help if you could install Module::Build on Win32 with either CPAN or PPM.... On what I would regard as a very stock Win2K server with 5.6.1 (as above) you can't. Well I take that back. Of course you can but I don't have the time to patch something I am in no rush to use.

        cheers

        tachyon

        s&&rsenoyhcatreve&&&s&n.+t&"$'$`$\"$\&"&ee&&y&srve&&d&&print

Re: Module::Build article on perl.com, MakeMaker is doomed
by tachyon (Chancellor) on Feb 15, 2003 at 13:08 UTC

    The current problem with Module::Build is that it is not included in a lot of currently active perl distributions. As a result including a Build.PL creates a dependency that does not currently exist. For instance on my Win2K and Redhat 7.3 boxes:

    [root@www root]# perl -v This is perl, v5.6.1 built for i386-linux [snip] [root@www root]# perl -MModule::Build Can't locate Module/Build.pm in @INC (@INC contains: /usr/lib/perl5/5. +6.1/i386-linux /usr/lib/perl5/5.6.1 /usr/lib/perl5/site_perl/5.6.1/i3 +86-linux /usr/lib/perl5/site_perl/5.6.1 /usr/lib/perl5/site_perl/5.6. +0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.6.1/i386-linu +x /usr/lib/perl5/vendor_perl/5.6.1 /usr/lib/perl5/vendor_perl .). BEGIN failed--compilation aborted. [root@www root]# C:\>perl -v This is perl, v5.6.1 built for MSWin32-x86-multi-thread (with 1 registered patch, see perl -V for more detail) Copyright 1987-2001, Larry Wall Binary build 626 provided by ActiveState Tool Corp. http://www.ActiveS +tate.com [snip] C:\>perl -MModule::Build Can't locate Module/Build.pm in @INC (@INC contains: C:/Perl/lib C:/Pe +rl/site/li b .). BEGIN failed--compilation aborted. C:\>

    Until Module::Build starts to appear as part of the standard distribution it is hard to justify the(albeit minimal) effort of including a Build.PL and documentation and testing for same. If I include one (and the fact you will need to download Module::Build in the README) all those people who never READIT will feel free to email complaining that Build.PL does not work..... If I leave a Makefile.PL in the distro people will use this instead of the Build.PL but if I don't....

    cheers

    tachyon

    s&&rsenoyhcatreve&&&s&n.+t&"$'$`$\"$\&"&ee&&y&srve&&d&&print

      Did you see the part of the article where I showed a Makefile.PL script that simply gets Module::Build installed and then proxies all commands through to M::B? That works just fine without Module::Build already installed. Go ahead and try to install my Thesaurus module from CPAN to see it in action. Bug reports welcome ;)

        OK here is a bug report. Module::Builder requires Archive::Tar > 0.22 On Win2K this craps out and without it I can't install your Module unless I edit the Makefile.PL (easy enough). I cna't use PPM to get 0.22 because the latest PPM is 0.072. So to install your module I need to write a new Makefile, rearrange the directory structure, fix the MANIFEST and then it will work. Hmmm. A second bug report is that if a user has never run CPAN it defaults into interactive mode which results in an automated script calling CPAN effectively hanging as it waits for user input that never comes if you call it using backtics. If you use piped opens it is not portable.....

        Here is the install:

Re: Module::Build article on perl.com, MakeMaker is doomed
by Anonymous Monk on Feb 16, 2003 at 13:07 UTC
    Quoting Randal:
    Module::Build will not get my support until there's a replacement for h2xs -AXn Module::Name that builds the templates to use Module::Build rather than ExtUtils::MakeMaker.

    And quite more frequent have the complaints been that h2xs is a steaming pile of dog doo, doing most everything, except what it should. For this reason, Geoff Avery wrote ExtUtils::ModuleMaker, which is the suggested way to approach the creation of new modules.

    Similarly, CPANPLUS doesn't support o conf-style directives to change minor configuration things without going through a fullblown configuration. I can't support CPANPLUS replacing CPAN.pm until this option is available.

    I wonder how often you wrote this complaint by now? And how often I pointed out to you that you're wrong. CPANPLUS /does/ do that. Actually, it /has/ been doing that for the last year. Maybe the syntax is what is confusing you, since it's not the same trick you've been memorising for the last 5 years:
    s [conf | save | OPTION VALUE]

    I'm sure as the perl wizard you are, you understand the following acronym quite clearly: RTFM.
    And if this still proves overly challenging, you might want to consider using the Classic Shell, which gives the look and feel of the CPAN.pm shell, but uses CPANPLUS under the hood.

    As for your support, although it will be sadly missed, I'm afraid it's not up to you to decide. On a related note, I'm happy to announce that as of CPANPLUS release 0.050, it will be integrated into the perl core, for people to play with and to be released with perl 5.10.

    Quoting tachyon:
    OK here is a bug report. Module::Builder requires Archive::Tar > 0.22 On Win2K this craps out and without it I can't install your Module unless I edit the Makefile.PL (easy enough). I cna't use PPM to get 0.22 because the latest PPM is 0.072.

    It used to require Archive::Tar > 0.22. I've pointed Ken out to this exact problem, and now it doesn't 'just' upgrade the Archive::Tar module. Of course, this is not Ken's fault. Archive::Tar has been in a broken state, and unmaintained on the CPAN for over 3 years. I've recently taken over the namespace and released Archive::Tar version 0.23, which will transparently fall back to the 0.072 code on Win32, without nice fatal errors from gzwrite_().

    --Kane

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlnews [id://235463]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (5)
As of 2014-04-20 12:39 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    April first is:







    Results (485 votes), past polls