Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RT-62350 #26

Open
kevindawson opened this issue Mar 25, 2014 · 5 comments
Open

RT-62350 #26

kevindawson opened this issue Mar 25, 2014 · 5 comments

Comments

@kevindawson
Copy link
Member

yet another RT about ExtUtils::MakeMaker as this is now set to 6.59 in Makefile.PL and has been since 1.08

Q1, can we now review code and remove all the EUMM what version do we have and which features we support code chunks, as they are no longer relevant.

Q2, is EUMM 6.59 high enough

@ribasushi
Copy link
Contributor

On Tue, Mar 25, 2014 at 07:26:01AM -0700, BOWTIE wrote:

yet another RT about ExtUtils::MakeMaker as this is now set to 6.59 in Makefile.PL and has been since 1.08

Q1, can we now review code and remove all the EUMM what version do we have and which features we support code chunks, as they are no longer relevant.

Not easily. A high enough EUMM is required at distbuiling time (when MI
must be installed on the user machine). On the other hand module
installation time works against the M::I bundled in inc/, on a system with
possibly very low EUMM. If you do remove checks you have to be extremely
careful to not cross into the installation side.

Q2, is EUMM 6.59 high enough

Afaik yes.

@kevindawson
Copy link
Member Author

Sorry I forgot to say that all the internal refs to eumm are less than or equal to 6.59
see below.

will it in that case be safe?

./lib/Module/Install/Admin/Metadata.pm: if ( $self->_cmp( $meta->{configure_requires}->{'ExtUtils::MakeMaker'}, '6.36' ) > 0 ) {
./lib/Module/Install/Makefile.pm:use ExtUtils::MakeMaker   ();
./lib/Module/Install/Makefile.pm:       $self->build_requires(     'ExtUtils::MakeMaker' => 6.59 );
./lib/Module/Install/Makefile.pm:       $self->configure_requires( 'ExtUtils::MakeMaker' => 6.59 );
./lib/Module/Install/Makefile.pm:       $self->build_requires(     'ExtUtils::MakeMaker' => 6.36 );
./lib/Module/Install/Makefile.pm:       $self->configure_requires( 'ExtUtils::MakeMaker' => 6.36 );
./lib/Module/Install/Share.pm:  my $perm_dir = eval($ExtUtils::MakeMaker::VERSION) >= 6.52 ? '$(PERM_DIR)' : 755;
./lib/Module/Install/Share.pm:  $self->build_requires( 'ExtUtils::MakeMaker' => '6.11' );

@ribasushi
Copy link
Contributor

On Tue, Mar 25, 2014 at 07:49:30AM -0700, BOWTIE wrote:

Sorry I forgot to say that all the internal refs to eumm are less than or equal to 6.59
see below.

will it in that case be safe?

I think you are misunderstanding me.

./lib/Module/Install/Admin/Metadata.pm:   if ( $self->_cmp( $meta->{configure_requires}->{'ExtUtils::MakeMaker'}, '6.36' ) > 0 ) {
./lib/Module/Install/Makefile.pm:use ExtUtils::MakeMaker   ();
./lib/Module/Install/Makefile.pm:     $self->build_requires(     'ExtUtils::MakeMaker' => 6.59 );
./lib/Module/Install/Makefile.pm:     $self->configure_requires( 'ExtUtils::MakeMaker' => 6.59 );
./lib/Module/Install/Makefile.pm:     $self->build_requires(     'ExtUtils::MakeMaker' => 6.36 );
./lib/Module/Install/Makefile.pm:     $self->configure_requires( 'ExtUtils::MakeMaker' => 6.36 );

^^ This code likely runs on the user's machine from within
inc/Module/Install.pm. There are 0 guarantees about the version of EUMM
available at this time. Note I said "likely" - it may only run in Author
mode. But you need to look at much more than a piece of grep output to
decide that.

Is this clearer?

@kevindawson
Copy link
Member Author

thanks

I will go and check the contents of inc/...

on some different perls

@kevindawson
Copy link
Member Author

from inc::Module::Install::Makefile;

    # Make sure we have a new enough MakeMaker
    require ExtUtils::MakeMaker;

    if ( $perl_version and $self->_cmp($perl_version, '5.006') >= 0 ) {
        # This previous attempted to inherit the version of
        # ExtUtils::MakeMaker in use by the module author, but this
        # was found to be untenable as some authors build releases
        # using future dev versions of EU:MM that nobody else has.
        # Instead, #toolchain suggests we use 6.59 which is the most
        # stable version on CPAN at time of writing and is, to quote
        # ribasushi, "not terminally fucked, > and tested enough".
        # TODO: We will now need to maintain this over time to push
        # the version up as new versions are released.
        $self->build_requires(     'ExtUtils::MakeMaker' => 6.59 );
        $self->configure_requires( 'ExtUtils::MakeMaker' => 6.59 );
    } else {
        # Allow legacy-compatibility with 5.005 by depending on the
        # most recent EU:MM that supported 5.005.
        $self->build_requires(     'ExtUtils::MakeMaker' => 6.36 );
        $self->configure_requires( 'ExtUtils::MakeMaker' => 6.36 );
    }

dose this not mean that for perl 5.006 and above eumm 6.59

is the Q not do we still support 5.005

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants