Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister

Re^2: What's the deal with ExtUtils::MakeMaker [build_requires]

by ait (Hermit)
on Aug 04, 2011 at 15:27 UTC ( #918565=note: print w/replies, xml ) Need Help??

in reply to Re: What's the deal with ExtUtils::MakeMaker [build_requires]
in thread What's the deal with ExtUtils::MakeMaker [build_requires]

OK. So taking your word for it, I upgraded the cpan shell and Bundle::CPAN, and have 1.9600, and then tried a fresh install of MooseX::NonMoose and it did it AGAIN, it tries to install MakeMaker. This is insane! Why the hell does it always want to download and install MakeMaker? WHY? WHY? WHY?

  • Comment on Re^2: What's the deal with ExtUtils::MakeMaker [build_requires]

Replies are listed 'Best First'.
Re^3: What's the deal with ExtUtils::MakeMaker [build_requires]
by DStaal (Chaplain) on Aug 04, 2011 at 16:33 UTC

    Something sounds messed up in your system. What's the permissions on and what's your path settings?

      Thanks for your reply, but the problem is the same in Linux, FreeBSD, and Mac and I run over a dozen workstations and many servers with Catalyst development and they can't all be broken!

      People just don't notice it because is a temporary install that's only needed for the build process and many people probably use "follow" for the prereq policy, and hardly ever sit there to actually witness the MakeMaker install every single time you first commence your CPAN shell installs. It even asks you if you want to keep this temporary requirement and even if you say yes, it will temporarily build MakeMaker the next time you use CPAN. Of course, for many people they just don't notice it because it builds fine, it just takes a little extra time, but for those of us who run Perl stuff in chrooted envs like FBSD Jails, do very well notice this, because MakeMaker and similar modules hang on some of the tests, so we usually create FBSD packages in the root server and just copy them over and install them in our jail flavours.

      So the only workaround for the FBSD Jail is that every single time you're gonna use the CPAN shell is to first install MakeMaker wait until it hangs on the INSTALL_BASE.t, ąC, remove that test (using the look shell), and re-run the MakeMaker install, after that you can use that cpan shell session all day. It's a pain, but it works. Besides, I know the module works perfectly because it's built and installed via the pkg system anyway.

      There is some evil here that seems to be related to CPAN itself and I'm trying to get to the bottom of this horrible behavior. There is of course another path, and that is to keep hiding this ugly cousin and just figure out why MakeMaker hangs in Jails,but I am hoping for someone to actually come forward and explain the reason why MakeMaker is temporarily built with every single CPAN session. It's like some hardwired dependency.

        I don't run 'follow' as my prereq policy. I have never seen this issue. Including in a test I'm running right now.

        You are doing something weird somewhere in you config, that you've managed to replicate out. I have no idea what, but that is not normal behavior.

        Edit: It's possible that some module you are using has done an exceptionally bad job of specifying it's requirements, and managed to confuse perl into thinking it wants a newer version of that module, despite it already having the newest version. I'm not exactly sure what type of bug would cause that, but I can see something along that line happening with the mess that is the various different ways to specify version strings in Perl.

        This is absolutely, positively, not my experience, and I've been installing CPAN modules since the beginning of the CPAN.

        I agree with other responders: something is very broken in your environment.

        -- Randal L. Schwartz, Perl hacker

        The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.

        from ExtUtils/
        sub get_dir_list { my ($him,@files) = @_; my %alldirs; for my $file (@files) { $file =~ s|/[^/]+$||; while (-d $file) { $file =~ s|/([^/]+)$||; my $last = $1;
        This loop hangs with $file eq '..' and $last eq 'dummy-install'. This code doesn't check was the regexp substitution successful, and if not, uses $1 from the last time. Change this line to:
        $file =~ s|/([^/]+)$|| or last;
        and t/INSTALL_BASE.t will pass the test in a couple of seconds.
        For what it works I've been seeing this also. I maintain multiple build environments using FreeBSD, some jailed and some not... and many seem to fall into this state. I've tried to dig into it a few times but have always had other fish to fry (real work). Super annoying. I'll add this... the obsessive reinstalling of ExtUtils::MakeMaker is routine, thought I don't always seem to see the getting-stuck-on-INSTALL_BASE.t behavior.
        PS: the reason of this problem is BSDPAN::ExtUtils::Packlist and not ExtUtils::MakeMaker itself.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (6)
As of 2019-11-14 03:50 GMT
Find Nodes?
    Voting Booth?
    Strict and warnings: which comes first?

    Results (76 votes). Check out past polls.