Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Open sidebar
best-practical
rt-extension-sla
Commits
c69101bc
Commit
c69101bc
authored
Feb 29, 2012
by
Ruslan Zakirov
Browse files
upgrade M::I
parent
7188f5a9
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
184 additions
and
53 deletions
+184
-53
META.yml
META.yml
+4
-3
inc/Module/AutoInstall.pm
inc/Module/AutoInstall.pm
+130
-20
inc/Module/Install.pm
inc/Module/Install.pm
+3
-3
inc/Module/Install/AutoInstall.pm
inc/Module/Install/AutoInstall.pm
+12
-1
inc/Module/Install/Base.pm
inc/Module/Install/Base.pm
+1
-1
inc/Module/Install/Can.pm
inc/Module/Install/Can.pm
+1
-1
inc/Module/Install/Fetch.pm
inc/Module/Install/Fetch.pm
+1
-1
inc/Module/Install/Include.pm
inc/Module/Install/Include.pm
+1
-1
inc/Module/Install/Makefile.pm
inc/Module/Install/Makefile.pm
+15
-12
inc/Module/Install/Metadata.pm
inc/Module/Install/Metadata.pm
+14
-8
inc/Module/Install/Win32.pm
inc/Module/Install/Win32.pm
+1
-1
inc/Module/Install/WriteAll.pm
inc/Module/Install/WriteAll.pm
+1
-1
No files found.
META.yml
View file @
c69101bc
...
...
@@ -3,12 +3,13 @@ abstract: 'Service Level Agreements for RT'
author
:
-
'
Ruslan
Zakirov
<ruz@bestpractical.com>'
build_requires
:
ExtUtils::MakeMaker:
6.
42
ExtUtils::MakeMaker:
6.
59
Test::More:
0
configure_requires
:
ExtUtils::MakeMaker:
6.
42
ExtUtils::MakeMaker:
6.
59
distribution_type
:
module
generated_by
:
'
Module::Install
version
1.01'
dynamic_config
:
1
generated_by
:
'
Module::Install
version
1.05'
license
:
gpl2
meta-spec
:
url
:
http://module-build.sourceforge.net/META-spec-v1.4.html
...
...
inc/Module/AutoInstall.pm
View file @
c69101bc
...
...
@@ -3,11 +3,12 @@ package Module::AutoInstall;
use
strict
;
use
Cwd
();
use
File::
Spec
();
use
ExtUtils::
MakeMaker
();
use
vars
qw{$VERSION}
;
BEGIN
{
$VERSION
=
'
1.0
3
';
$VERSION
=
'
1.0
5
';
}
# special map on pre-defined feature sets
...
...
@@ -17,11 +18,14 @@ my %FeatureMap = (
);
# various lexical flags
my
(
@Missing
,
@Existing
,
%DisabledTests
,
$UnderCPAN
,
$HasCPANPLUS
);
my
(
@Missing
,
@Existing
,
%DisabledTests
,
$UnderCPAN
,
$InstallDepsTarget
,
$HasCPANPLUS
);
my
(
$Config
,
$CheckOnly
,
$SkipInstall
,
$AcceptDefault
,
$TestOnly
,
$AllDeps
$Config
,
$CheckOnly
,
$SkipInstall
,
$AcceptDefault
,
$TestOnly
,
$AllDeps
,
$UpgradeDeps
);
my
(
$PostambleActions
,
$PostambleUsed
);
my
(
$PostambleActions
,
$PostambleActionsNoTest
,
$PostambleActionsUpgradeDeps
,
$PostambleActionsUpgradeDepsNoTest
,
$PostambleActionsListDeps
,
$PostambleActionsListAllDeps
,
$PostambleUsed
,
$NoTest
);
# See if it's a testing or non-interactive session
_accept_default
(
$ENV
{
AUTOMATED_TESTING
}
or
!
-
t
STDIN
);
...
...
@@ -31,6 +35,10 @@ sub _accept_default {
$AcceptDefault
=
shift
;
}
sub
_installdeps_target
{
$InstallDepsTarget
=
shift
;
}
sub
missing_modules
{
return
@Missing
;
}
...
...
@@ -63,6 +71,11 @@ sub _init {
__PACKAGE__
->
install
(
$Config
,
@Missing
=
split
(
/,/
,
$
1
)
);
exit
0
;
}
elsif
(
$arg
=~
/^--upgradedeps=(.*)$/
)
{
$UpgradeDeps
=
1
;
__PACKAGE__
->
install
(
$Config
,
@Missing
=
split
(
/,/
,
$
1
)
);
exit
0
;
}
elsif
(
$arg
=~
/^--default(?:deps)?$/
)
{
$AcceptDefault
=
1
;
}
...
...
@@ -125,7 +138,7 @@ sub import {
# check entirely since we don't want to have to load (and configure)
# an old CPAN just for a cosmetic message
$UnderCPAN
=
_check_lock
(
1
)
unless
$SkipInstall
;
$UnderCPAN
=
_check_lock
(
1
)
unless
$SkipInstall
||
$InstallDepsTarget
;
while
(
my
(
$feature
,
$modules
)
=
splice
(
@args
,
0
,
2
)
)
{
my
(
@required
,
@tests
,
@skiptests
);
...
...
@@ -175,7 +188,7 @@ sub import {
}
# XXX: check for conflicts and uninstalls(!) them.
my
$cur
=
_
load
(
$mod
);
my
$cur
=
_
version_of
(
$mod
);
if
(
_version_cmp
(
$cur
,
$arg
)
>=
0
)
{
print
"
loaded. (
$cur
"
.
(
$arg
?
"
>=
$arg
"
:
''
)
.
"
)
\n
";
...
...
@@ -207,6 +220,7 @@ sub import {
$CheckOnly
or
(
$mandatory
and
$UnderCPAN
)
or
$AllDeps
or
$InstallDepsTarget
or
_prompt
(
qq{==> Auto-install the }
.
(
@required
/
2
)
...
...
@@ -237,10 +251,17 @@ sub import {
}
}
if
(
@Missing
and
not
(
$CheckOnly
or
$UnderCPAN
)
)
{
if
(
@Missing
and
not
(
$CheckOnly
or
$UnderCPAN
)
)
{
require
Config
;
print
"
*** Dependencies will be installed the next time you type '
$Config
::Config{make}'.
\n
";
my
$make
=
$
Config::
Config
{
make
};
if
(
$InstallDepsTarget
)
{
print
"
*** To install dependencies type '
$make
installdeps' or '
$make
installdeps_notest'.
\n
";
}
else
{
print
"
*** Dependencies will be installed the next time you type '
$make
'.
\n
";
}
# make an educated guess of whether we'll need root permission.
print
"
(You may need to do that as the 'root' user.)
\n
"
...
...
@@ -271,6 +292,10 @@ END_MESSAGE
sub
_check_lock
{
return
unless
@Missing
or
@_
;
if
(
$ENV
{
PERL5_CPANM_IS_RUNNING
})
{
return
_running_under
('
cpanminus
');
}
my
$cpan_env
=
$ENV
{
PERL5_CPAN_IS_RUNNING
};
if
(
$ENV
{
PERL5_CPANPLUS_IS_RUNNING
})
{
...
...
@@ -324,7 +349,7 @@ sub install {
while
(
my
(
$pkg
,
$ver
)
=
splice
(
@
_
,
0
,
2
)
)
{
# grep out those already installed
if
(
_version_cmp
(
_
load
(
$pkg
),
$ver
)
>=
0
)
{
if
(
_version_cmp
(
_
version_of
(
$pkg
),
$ver
)
>=
0
)
{
push
@installed
,
$pkg
;
}
else
{
...
...
@@ -332,6 +357,11 @@ sub install {
}
}
if
(
$UpgradeDeps
)
{
push
@modules
,
@installed
;
@installed
=
();
}
return
@installed
unless
@modules
;
# nothing to do
return
@installed
if
_check_lock
();
# defer to the CPAN shell
...
...
@@ -363,7 +393,7 @@ sub install {
# see if we have successfully installed them
while
(
my
(
$pkg
,
$ver
)
=
splice
(
@modules
,
0
,
2
)
)
{
if
(
_version_cmp
(
_
load
(
$pkg
),
$ver
)
>=
0
)
{
if
(
_version_cmp
(
_
version_of
(
$pkg
),
$ver
)
>=
0
)
{
push
@installed
,
$pkg
;
}
elsif
(
$args
{
do_once
}
and
open
(
FAILED
,
'
>> .#autoinstall.failed
'
)
)
{
...
...
@@ -463,6 +493,11 @@ sub _cpanplus_config {
}
else
{
die
"
*** Cannot convert option
$key
= '
$value
' to CPANPLUS version.
\n
";
}
push
@config
,
'
prereqs
',
$value
;
}
elsif
(
$key
eq
'
force
'
)
{
push
@config
,
$key
,
$value
;
}
elsif
(
$key
eq
'
notest
'
)
{
push
@config
,
'
skiptest
',
$value
;
}
else
{
die
"
*** Cannot convert option
$key
to CPANPLUS version.
\n
";
}
...
...
@@ -497,10 +532,14 @@ sub _install_cpan {
# set additional options
while
(
my
(
$opt
,
$arg
)
=
splice
(
@config
,
0
,
2
)
)
{
(
$args
{
$opt
}
=
$arg
,
next
)
if
$opt
=~
/^force$/
;
# pseudo-option
if
$opt
=~
/^
(?:
force
|notest)
$/
;
# pseudo-option
$
CPAN::
Config
->
{
$opt
}
=
$arg
;
}
if
(
$args
{
notest
}
&&
(
not
CPAN::
Shell
->
can
('
notest
')))
{
die
"
Your version of CPAN is too old to support the 'notest' pragma
";
}
local
$
CPAN::
Config
->
{
prerequisites_policy
}
=
'
follow
';
while
(
my
(
$pkg
,
$ver
)
=
splice
(
@modules
,
0
,
2
)
)
{
...
...
@@ -519,8 +558,16 @@ sub _install_cpan {
delete
$INC
{
$inc
};
}
my
$rv
=
$args
{
force
}
?
CPAN::
Shell
->
force
(
install
=>
$pkg
)
:
CPAN::
Shell
->
install
(
$pkg
);
my
$rv
=
do
{
if
(
$args
{
force
})
{
CPAN::
Shell
->
force
(
install
=>
$pkg
)
}
elsif
(
$args
{
notest
})
{
CPAN::
Shell
->
notest
(
install
=>
$pkg
)
}
else
{
CPAN::
Shell
->
install
(
$pkg
)
}
};
$rv
||=
eval
{
$
CPAN::
META
->
instance
(
'
CPAN::Distribution
',
$obj
->
cpan_file
,
)
->
{
install
}
...
...
@@ -575,7 +622,7 @@ sub _update_to {
my
$ver
=
shift
;
return
if
_version_cmp
(
_
load
(
$class
),
$ver
)
>=
0
;
# no need to upgrade
if
_version_cmp
(
_
version_of
(
$class
),
$ver
)
>=
0
;
# no need to upgrade
if
(
_prompt
(
"
==> A newer version of
$class
(
$ver
) is required. Install?
",
...
...
@@ -660,16 +707,30 @@ sub _can_write {
# load a module and return the version it reports
sub
_load
{
my
$mod
=
pop
;
# class/instance
doesn't matter
my
$mod
=
pop
;
# method/function
doesn't matter
my
$file
=
$mod
;
$file
=~
s|::|/|g
;
$file
.=
'
.pm
';
local
$@
;
return
eval
{
require
$file
;
$mod
->
VERSION
}
||
(
$@
?
undef
:
0
);
}
# report version without loading a module
sub
_version_of
{
my
$mod
=
pop
;
# method/function doesn't matter
my
$file
=
$mod
;
$file
=~
s|::|/|g
;
$file
.=
'
.pm
';
foreach
my
$dir
(
@INC
)
{
next
if
ref
$dir
;
my
$path
=
File::
Spec
->
catfile
(
$dir
,
$file
);
next
unless
-
e
$path
;
require
ExtUtils::
MM_Unix
;
return
ExtUtils::
MM_Unix
->
parse_version
(
$path
);
}
return
undef
;
}
# Load CPAN.pm and it's configuration
sub
_load_cpan
{
return
if
$
CPAN::
VERSION
and
$
CPAN::
Config
and
not
@_
;
...
...
@@ -763,6 +824,35 @@ sub _make_args {
:
"
\$
(NOECHO)
\$
(NOOP)
"
);
my
$deps_list
=
join
(
'
,
',
@Missing
,
@Existing
);
$PostambleActionsUpgradeDeps
=
"
\$
(PERL) $0 --config=
$config
--upgradedeps=
$deps_list
";
my
$config_notest
=
join
(
'
,
',
(
UNIVERSAL::
isa
(
$Config
,
'
HASH
'
)
?
%
{
$Config
}
:
@
{
$Config
}),
'
notest
',
1
)
if
$Config
;
$PostambleActionsNoTest
=
(
(
$missing
and
not
$UnderCPAN
)
?
"
\$
(PERL) $0 --config=
$config_notest
--installdeps=
$missing
"
:
"
\$
(NOECHO)
\$
(NOOP)
"
);
$PostambleActionsUpgradeDepsNoTest
=
"
\$
(PERL) $0 --config=
$config_notest
--upgradedeps=
$deps_list
";
$PostambleActionsListDeps
=
'
@$(PERL) -le "print for @ARGV"
'
.
join
('
',
map
$Missing
[
$_
],
grep
$_
%
2
==
0
,
0
..
$#Missing
);
my
@all
=
(
@Missing
,
@Existing
);
$PostambleActionsListAllDeps
=
'
@$(PERL) -le "print for @ARGV"
'
.
join
('
',
map
$all
[
$_
],
grep
$_
%
2
==
0
,
0
..
$#all
);
return
%args
;
}
...
...
@@ -797,11 +887,15 @@ sub Write {
sub
postamble
{
$PostambleUsed
=
1
;
my
$fragment
;
return
<<"END_MAKE"
;
$fragment
.=
<<
"
AUTO_INSTALL
"
if
!
$InstallDepsTarget
;
config
::
installdeps
\
t
\
$
(
NOECHO
)
\
$
(
NOOP
)
AUTO_INSTALL
$fragment
.=
<<"END_MAKE";
checkdeps ::
\t\$(PERL) $0 --checkdeps
...
...
@@ -809,12 +903,28 @@ checkdeps ::
installdeps ::
\t$PostambleActions
installdeps_notest ::
\t$PostambleActionsNoTest
upgradedeps ::
\t$PostambleActionsUpgradeDeps
upgradedeps_notest ::
\t$PostambleActionsUpgradeDepsNoTest
listdeps ::
\t$PostambleActionsListDeps
listalldeps ::
\t$PostambleActionsListAllDeps
END_MAKE
return
$fragment
;
}
1
;
__END__
#line 1
071
#line 1
193
inc/Module/Install.pm
View file @
c69101bc
...
...
@@ -31,7 +31,7 @@ BEGIN {
# This is not enforced yet, but will be some time in the next few
# releases once we can make sure it won't clash with custom
# Module::Install extensions.
$VERSION
=
'
1.0
1
';
$VERSION
=
'
1.0
5
';
# Storage for the pseudo-singleton
$MAIN
=
undef
;
...
...
@@ -451,7 +451,7 @@ sub _version ($) {
}
sub
_cmp
($$)
{
_version
(
$_
[
0
])
<=>
_version
(
$_
[
1
]);
_version
(
$_
[
1
])
<=>
_version
(
$_
[
2
]);
}
# Cloned from Params::Util::_CLASS
...
...
@@ -467,4 +467,4 @@ sub _CLASS ($) {
1
;
# Copyright 2008 - 201
1
Adam Kennedy.
# Copyright 2008 - 201
2
Adam Kennedy.
inc/Module/Install/AutoInstall.pm
View file @
c69101bc
...
...
@@ -6,7 +6,7 @@ use Module::Install::Base ();
use
vars
qw{$VERSION @ISA $ISCORE}
;
BEGIN
{
$VERSION
=
'
1.0
1
';
$VERSION
=
'
1.0
5
';
@ISA
=
'
Module::Install::Base
';
$ISCORE
=
1
;
}
...
...
@@ -73,6 +73,17 @@ sub auto_install {
);
}
sub
installdeps_target
{
my
(
$self
,
@args
)
=
@_
;
$self
->
include
('
Module::AutoInstall
');
require
Module::
AutoInstall
;
Module::AutoInstall::
_installdeps_target
(
1
);
$self
->
auto_install
(
@args
);
}
sub
auto_install_now
{
my
$self
=
shift
;
$self
->
auto_install
(
@
_
);
...
...
inc/Module/Install/Base.pm
View file @
c69101bc
...
...
@@ -4,7 +4,7 @@ package Module::Install::Base;
use
strict
'
vars
';
use
vars
qw{$VERSION}
;
BEGIN
{
$VERSION
=
'
1.0
1
';
$VERSION
=
'
1.0
5
';
}
# Suspend handler for "redefined" warnings
...
...
inc/Module/Install/Can.pm
View file @
c69101bc
...
...
@@ -9,7 +9,7 @@ use Module::Install::Base ();
use
vars
qw{$VERSION @ISA $ISCORE}
;
BEGIN
{
$VERSION
=
'
1.0
1
';
$VERSION
=
'
1.0
5
';
@ISA
=
'
Module::Install::Base
';
$ISCORE
=
1
;
}
...
...
inc/Module/Install/Fetch.pm
View file @
c69101bc
...
...
@@ -6,7 +6,7 @@ use Module::Install::Base ();
use
vars
qw{$VERSION @ISA $ISCORE}
;
BEGIN
{
$VERSION
=
'
1.0
1
';
$VERSION
=
'
1.0
5
';
@ISA
=
'
Module::Install::Base
';
$ISCORE
=
1
;
}
...
...
inc/Module/Install/Include.pm
View file @
c69101bc
...
...
@@ -6,7 +6,7 @@ use Module::Install::Base ();
use
vars
qw{$VERSION @ISA $ISCORE}
;
BEGIN
{
$VERSION
=
'
1.0
1
';
$VERSION
=
'
1.0
5
';
@ISA
=
'
Module::Install::Base
';
$ISCORE
=
1
;
}
...
...
inc/Module/Install/Makefile.pm
View file @
c69101bc
...
...
@@ -8,7 +8,7 @@ use Fcntl qw/:flock :seek/;
use
vars
qw{$VERSION
@ISA
$ISCORE};
BEGIN
{
$VERSION
=
'1.0
1
'
;
$VERSION
=
'1.0
5
'
;
@ISA = 'Module
::
Install::Base';
$ISCORE
=
1
;
}
...
...
@@ -215,18 +215,22 @@ sub write {
require ExtUtils
::
MakeMaker;
if
(
$perl_version
and
$self->_cmp($perl_version,
'5.006'
)
>=
0
)
{
# MakeMaker can complain about module versions that include
# an underscore, even though its own version may contain one!
# Hence the funny regexp to get rid of it. See RT #35800
# for details.
my $v = $ExtUtils
::
MakeMaker::VERSION =~ /^(
\d
+
\.\d
+)/;
$self
->build_requires
(
'ExtUtils::MakeMaker'
=>
$v
)
;
$self
->configure_requires
(
'ExtUtils::MakeMaker'
=>
$v
)
;
# 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.
42
)
;
$self
->configure_requires
(
'ExtUtils::MakeMaker'
=>
6.
42
)
;
$self
->build_requires
(
'ExtUtils::MakeMaker'
=>
6.
36
)
;
$self
->configure_requires
(
'ExtUtils::MakeMaker'
=>
6.
36
)
;
}
# Generate the MakeMaker params
...
...
@@ -241,7 +245,6 @@ in a module, and provide its file path via 'version_from' (or
'all_from'
if
you
prefer)
in
Makefile.PL.
EOT
$DB
::
single = 1;
if
(
$self->tests
)
{
my
@
tests
=
split
' '
,
$self
->tests
;
my
%seen;
...
...
@@ -412,4 +415,4 @@ sub postamble {
__END__
#line 54
1
#line 54
4
inc/Module/Install/Metadata.pm
View file @
c69101bc
...
...
@@ -6,7 +6,7 @@ use Module::Install::Base ();
use
vars
qw{$VERSION @ISA $ISCORE}
;
BEGIN
{
$VERSION
=
'
1.0
1
';
$VERSION
=
'
1.0
5
';
@ISA
=
'
Module::Install::Base
';
$ISCORE
=
1
;
}
...
...
@@ -151,15 +151,21 @@ sub install_as_site { $_[0]->installdirs('site') }
sub
install_as_vendor
{
$_
[
0
]
->
installdirs
('
vendor
')
}
sub
dynamic_config
{
my
$self
=
shift
;
unless
(
@
_
)
{
warn
"
You MUST provide an explicit true/false value to dynamic_config
\n
";
return
$self
;
my
$self
=
shift
;
my
$value
=
@
_
?
shift
:
1
;
if
(
$self
->
{
values
}
->
{
dynamic_config
}
)
{
# Once dynamic we never change to static, for safety
return
0
;
}
$self
->
{
values
}
->
{
dynamic_config
}
=
$
_
[
0
]
?
1
:
0
;
$self
->
{
values
}
->
{
dynamic_config
}
=
$
value
?
1
:
0
;
return
1
;
}
# Convenience command
sub
static_config
{
shift
->
dynamic_config
(
0
);
}
sub
perl_version
{
my
$self
=
shift
;
return
$self
->
{
values
}
->
{
perl_version
}
unless
@_
;
...
...
@@ -170,7 +176,7 @@ sub perl_version {
# Normalize the version
$version
=
$self
->
_perl_version
(
$version
);
# We don't support the reall old versions
# We don't support the reall
y
old versions
unless
(
$version
>=
5.005
)
{
die
"
Module::Install only supports 5.005 or newer (use ExtUtils::MakeMaker)
\n
";
}
...
...
@@ -582,7 +588,7 @@ sub bugtracker_from {
sub
requires_from
{
my
$self
=
shift
;
my
$content
=
Module::Install::
_readperl
(
$_
[
0
]);
my
@requires
=
$content
=~
m/^use\s+([^\W\d]\w*(?:::\w+)*)\s+([\d\.]+)/mg
;
my
@requires
=
$content
=~
m/^use\s+([^\W\d]\w*(?:::\w+)*)\s+(
v?
[\d\.]+)/mg
;
while
(
@requires
)
{
my
$module
=
shift
@requires
;
my
$version
=
shift
@requires
;
...
...
inc/Module/Install/Win32.pm
View file @
c69101bc
...
...
@@ -6,7 +6,7 @@ use Module::Install::Base ();
use
vars
qw{$VERSION @ISA $ISCORE}
;
BEGIN
{
$VERSION
=
'
1.0
1
';
$VERSION
=
'
1.0
5
';
@ISA
=
'
Module::Install::Base
';
$ISCORE
=
1
;
}
...
...
inc/Module/Install/WriteAll.pm
View file @
c69101bc
...
...
@@ -6,7 +6,7 @@ use Module::Install::Base ();
use
vars
qw{$VERSION @ISA $ISCORE}
;
BEGIN
{
$VERSION
=
'
1.0
1
';
$VERSION
=
'
1.0
5
';
@ISA
=
qw{Module::Install::Base}
;
$ISCORE
=
1
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment