Generated with
git diff d4ab9038a19188132d12321d0f26a9e2f2cce581..HEAD $(git diff --name-only d4ab9038a19188132d12321d0f26a9e2f2cce581..HEAD | fgrep -v .gitignore) > Crypt-OpenSSL-X509-1.807-various.patch
where HEAD is eb169806c23e0dd18e6178d72b73a698082cc115
diff --git a/META.yml b/META.yml
index 1de58fe..db3e048 100644
--- a/META.yml
+++ b/META.yml
@@ -8,7 +8,7 @@ configure_requires:
ExtUtils::MakeMaker: 6.36
distribution_type: module
dynamic_config: 1
-generated_by: 'Module::Install version 1.06'
+generated_by: 'Module::Install version 1.16'
license: perl
meta-spec:
url:
http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -19,10 +19,10 @@ no_index:
- inc
- t
requires:
- perl: 5.005
+ perl: '5.005'
resources:
bugtracker:
https://github.com/dsully/perl-crypt-openssl-x509/issues
homepage:
https://github.com/dsully/perl-crypt-openssl-x509
license:
http://dev.perl.org/licenses/
repository:
https://github.com/dsully/perl-crypt-openssl-x509
-version: 1.804
+version: '1.807'
diff --git a/Makefile.PL b/Makefile.PL
index d16a17d..9708e74 100644
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -13,17 +13,16 @@ bugtracker '
https://github.com/dsully/perl-crypt-openssl-x509/issues';
requires_external_cc();
- inc '-I/usr/include/openssl -I/usr/local/include/ssl -I/usr/local/ssl/include';
-
- libs '-L/usr/lib -L/usr/local/lib -L/usr/local/ssl/lib -lcrypto';
-
- if ($Config::Config{myuname} =~ /darwin/i) {
- cc_optimize_flags('-O2 -g -Wall -Werror -Wno-deprecated-declarations');
- } elsif ($Config::Config{myuname} =~ /sunos|solaris/i) {
- # Any SunStudio flags?
- } else {
- cc_optimize_flags('-O2 -g -Wall -Werror');
- }
+inc '-I/usr/local/opt/openssl/include -I/usr/include/openssl -I/usr/local/include/ssl -I/usr/local/ssl/include';
+libs '-L/usr/local/opt/openssl/lib -L/usr/lib -L/usr/local/lib -L/usr/local/ssl/lib -lcrypto -lssl';
+
+if ($Config::Config{myuname} =~ /darwin/i) {
+ cc_optimize_flags('-O2 -g -Wall -Werror -Wno-deprecated-declarations');
+} elsif ($Config::Config{myuname} =~ /sunos|solaris/i) {
+ # Any SunStudio flags?
+} else {
+ cc_optimize_flags('-O2 -g -Wall -Werror');
+}
auto_install();
WriteAll();
diff --git a/X509.pm b/X509.pm
index 538679d..c8c17ad 100644
--- a/X509.pm
+++ b/X509.pm
@@ -8,7 +8,7 @@ use base qw(Exporter);
$VERSION = '1.807';
@EXPORT_OK = qw(
- FORMAT_UNDEF FORMAT_ASN1 FORMAT_TEXT FORMAT_PEM FORMAT_NETSCAPE
+ FORMAT_UNDEF FORMAT_ASN1 FORMAT_TEXT FORMAT_PEM
FORMAT_PKCS12 FORMAT_SMIME FORMAT_ENGINE FORMAT_IISSGC OPENSSL_VERSION_NUMBER
);
@@ -161,7 +161,7 @@ None by default.
On request:
- FORMAT_UNDEF FORMAT_ASN1 FORMAT_TEXT FORMAT_PEM FORMAT_NETSCAPE
+ FORMAT_UNDEF FORMAT_ASN1 FORMAT_TEXT FORMAT_PEM
FORMAT_PKCS12 FORMAT_SMIME FORMAT_ENGINE FORMAT_IISSGC
@@ -249,7 +249,7 @@ Return Boolean value if subject and issuer name are the same.
=item as_string ( [ FORMAT ] )
-Return the certificate as a string in the specified format. C<FORMAT> can be one of C<FORMAT_PEM> (the default), C<FORMAT_ASN1>, or C<FORMAT_NETSCAPE>.
+Return the certificate as a string in the specified format. C<FORMAT> can be one of C<FORMAT_PEM> (the default) or C<FORMAT_ASN1>.
=item modulus ( )
diff --git a/X509.xs b/X509.xs
index 8380ff9..a08ed81 100644
--- a/X509.xs
+++ b/X509.xs
@@ -21,14 +21,11 @@
#define FORMAT_ASN1 1
#define FORMAT_TEXT 2
#define FORMAT_PEM 3
-#define FORMAT_NETSCAPE 4
#define FORMAT_PKCS12 5
#define FORMAT_SMIME 6
#define FORMAT_ENGINE 7
#define FORMAT_IISSGC 8
-#define NETSCAPE_CERT_HDR "certificate"
-
/* fake our package name */
typedef X509* Crypt__OpenSSL__X509;
typedef X509_EXTENSION* Crypt__OpenSSL__X509__Extension;
@@ -38,6 +35,9 @@ typedef X509_NAME_ENTRY* Crypt__OpenSSL__X509__Name_Entry;
typedef X509_CRL* Crypt__OpenSSL__X509__CRL;
/* 1.0 backwards compat */
+#if OPENSSL_VERSION_NUMBER < 0x10100000
+#define const_ossl11
+
#ifndef sk_OPENSSL_STRING_num
#define sk_OPENSSL_STRING_num sk_num
#endif
@@ -46,6 +46,76 @@ typedef X509_CRL* Crypt__OpenSSL__X509__CRL;
#define sk_OPENSSL_STRING_value sk_value
#endif
+static ASN1_INTEGER *X509_get0_serialNumber(const X509 *a)
+{
+ return a->cert_info->serialNumber;
+}
+
+static void RSA_get0_key(const RSA *r,
+ const BIGNUM **n, const BIGNUM **e, const BIGNUM **d)
+{
+ if (n != NULL)
+ *n = r->n;
+ if (e != NULL)
+ *e = r->e;
+ if (d != NULL)
+ *d = r->d;
+}
+
+static RSA *EVP_PKEY_get0_RSA(EVP_PKEY *pkey)
+{
+ if (pkey->type != EVP_PKEY_RSA)
+ return NULL;
+ return pkey->pkey.rsa;
+}
+
+static void X509_CRL_get0_signature(const X509_CRL *crl, const ASN1_BIT_STRING **psig,
+ X509_ALGOR **palg)
+{
+ if (psig != NULL)
+ *psig = crl->signature;
+ if (palg != NULL)
+ *palg = crl->sig_alg;
+}
+
+static void DSA_get0_pqg(const DSA *d,
+ const BIGNUM **p, const BIGNUM **q, const BIGNUM **g)
+{
+ if (p != NULL)
+ *p = d->p;
+ if (q != NULL)
+ *q = d->q;
+ if (g != NULL)
+ *g = d->g;
+}
+
+static void DSA_get0_key(const DSA *d,
+ const BIGNUM **pub_key, const BIGNUM **priv_key)
+{
+ if (pub_key != NULL)
+ *pub_key = d->pub_key;
+ if (priv_key != NULL)
+ *priv_key = d->priv_key;
+}
+
+static DSA *EVP_PKEY_get0_DSA(EVP_PKEY *pkey)
+{
+ if (pkey->type != EVP_PKEY_DSA)
+ return NULL;
+ return pkey->pkey.dsa;
+}
+
+static EC_KEY *EVP_PKEY_get0_EC_KEY(EVP_PKEY *pkey)
+{
+ if (pkey->type != EVP_PKEY_EC)
+ return NULL;
+ return pkey->pkey.ec;
+}
+
+#else
+#define const_ossl11 const
+#endif
+
/* Unicode 0xfffd */
static U8 utf8_substitute_char[3] = { 0xef, 0xbf, 0xbd };
@@ -211,35 +281,6 @@ static HV* hv_exts(X509* x509, int no_name) {
return RETVAL;
}
-void _decode_netscape(BIO *bio, X509 *x509) {
-#if OPENSSL_VERSION_NUMBER >= 0x10000000L
-
- NETSCAPE_X509 nx;
- ASN1_OCTET_STRING os;
-
- os.data = (unsigned char *)NETSCAPE_CERT_HDR;
- os.length = strlen(NETSCAPE_CERT_HDR);
- nx.header = &os;
- nx.cert = x509;
-
- ASN1_item_i2d_bio(ASN1_ITEM_rptr(NETSCAPE_X509), bio, &nx);
-
-#else
-
- ASN1_HEADER ah;
- ASN1_OCTET_STRING os;
-
- os.data = (unsigned char *)NETSCAPE_CERT_HDR;
- os.length = strlen(NETSCAPE_CERT_HDR);
- ah.header = &os;
- ah.data = (char *)x509;
- ah.meth = X509_asn1_meth();
-
- ASN1_i2d_bio((i2d_of_void *)i2d_ASN1_HEADER, bio, (unsigned char *)&ah);
-
-#endif
-}
-
MODULE = Crypt::OpenSSL::X509 PACKAGE = Crypt::OpenSSL::X509
PROTOTYPES: DISABLE
@@ -255,7 +296,6 @@ BOOT:
{"FORMAT_ASN1", FORMAT_ASN1},
{"FORMAT_TEXT", FORMAT_TEXT},
{"FORMAT_PEM", FORMAT_PEM},
- {"FORMAT_NETSCAPE", FORMAT_NETSCAPE},
{"FORMAT_PKCS12", FORMAT_PKCS12},
{"FORMAT_SMIME", FORMAT_SMIME},
{"FORMAT_ENGINE", FORMAT_ENGINE},
@@ -354,7 +394,9 @@ __X509_cleanup(void)
CRYPTO_cleanup_all_ex_data();
ERR_free_strings();
+#if OPENSSL_VERSION_NUMBER < 0x10100000
ERR_remove_state(0);
+#endif
EVP_cleanup();
SV*
@@ -398,7 +440,7 @@ accessor(x509)
} else if (ix == 3) {
- i2a_ASN1_INTEGER(bio, x509->cert_info->serialNumber);
+ i2a_ASN1_INTEGER(bio, X509_get0_serialNumber(x509));
} else if (ix == 4) {
@@ -425,14 +467,24 @@ accessor(x509)
} else if (ix == 8) {
- i2a_ASN1_INTEGER(bio, x509->cert_info->version);
+ BIO_printf(bio, "%02ld", X509_get_version(x509));
} else if (ix == 9) {
+ const_ossl11 X509_ALGOR *palg;
+ const_ossl11 ASN1_OBJECT *paobj;
- i2a_ASN1_OBJECT(bio, x509->sig_alg->algorithm);
+ X509_get0_signature(NULL, &palg, x509);
+ X509_ALGOR_get0(&paobj, NULL, NULL, palg);
+
+ i2a_ASN1_OBJECT(bio, paobj);
} else if ( ix == 10 ) {
+ X509_PUBKEY *pkey;
+ ASN1_OBJECT *ppkalg;
+
+ pkey = X509_get_X509_PUBKEY(x509);
+ X509_PUBKEY_get0_param(&ppkalg, NULL, NULL, NULL, pkey);
- i2a_ASN1_OBJECT(bio, x509->cert_info->key->algor->algorithm);
+ i2a_ASN1_OBJECT(bio, ppkalg);
}
RETVAL = sv_bio_final(bio);
@@ -465,12 +517,14 @@ sig_print(x509)
PREINIT:
BIO *bio;
unsigned char *s;
+ const_ossl11 ASN1_BIT_STRING *psig;
int n,i;
CODE:
- n = x509->signature->length;
- s = x509->signature->data;
+ X509_get0_signature(&psig, NULL, x509);
+ n = psig->length;
+ s = psig->data;
bio = sv_bio_create();
for (i=0; i<n; i++) {
@@ -503,9 +557,6 @@ as_string(x509, format = FORMAT_PEM)
i2d_X509_bio(bio, x509);
- } else if (format == FORMAT_NETSCAPE) {
-
- _decode_netscape(bio, x509);
}
RETVAL = sv_bio_final(bio);
@@ -519,6 +570,11 @@ bit_length(x509)
PREINIT:
EVP_PKEY *pkey;
+ DSA *dsa_pkey;
+ RSA *rsa_pkey;
+ EC_KEY *ec_pkey;
+ const BIGNUM *p;
+ const BIGNUM *n;
int length;
CODE:
@@ -528,12 +584,16 @@ bit_length(x509)
croak("Public key is unavailable\n");
}
- switch(pkey->type) {
+ switch(EVP_PKEY_base_id(pkey)) {
case EVP_PKEY_RSA:
- length = BN_num_bits(pkey->pkey.rsa->n);
+ rsa_pkey = EVP_PKEY_get0_RSA(pkey);
+ RSA_get0_key(rsa_pkey, &n, NULL, NULL);
+ length = BN_num_bits(n);
break;
case EVP_PKEY_DSA:
- length = BN_num_bits(pkey->pkey.dsa->p);
+ dsa_pkey = EVP_PKEY_get0_DSA(pkey);
+ DSA_get0_pqg(dsa_pkey, &p, NULL, NULL);
+ length = BN_num_bits(p);
break;
#ifndef OPENSSL_NO_EC
case EVP_PKEY_EC:
@@ -545,8 +605,8 @@ bit_length(x509)
EVP_PKEY_free(pkey);
croak("Could not malloc bignum");
}
- //
- if ( (group = EC_KEY_get0_group(pkey->pkey.ec)) == NULL) {
+ ec_pkey = EVP_PKEY_get0_EC_KEY(pkey);
+ if ( (group = EC_KEY_get0_group(ec_pkey)) == NULL) {
EVP_PKEY_free(pkey);
croak("No EC group");
}
@@ -590,10 +650,12 @@ curve(x509)
EVP_PKEY_free(pkey);
croak("Public key is unavailable\n");
}
- if ( pkey->type == EVP_PKEY_EC ) {
+ if ( EVP_PKEY_base_id(pkey) == EVP_PKEY_EC ) {
const EC_GROUP *group;
+ EC_KEY *ec_pkey;
int nid;
- if ( (group = EC_KEY_get0_group(pkey->pkey.ec)) == NULL) {
+ ec_pkey = EVP_PKEY_get0_EC_KEY(pkey);
+ if ( (group = EC_KEY_get0_group(ec_pkey)) == NULL) {
EVP_PKEY_free(pkey);
croak("No EC group");
}
@@ -621,6 +683,7 @@ modulus(x509)
PREINIT:
EVP_PKEY *pkey;
BIO *bio;
+ int pkey_id;
CODE:
@@ -634,25 +697,38 @@ modulus(x509)
croak("Modulus is unavailable\n");
}
- if (pkey->type == EVP_PKEY_RSA) {
+ pkey_id = EVP_PKEY_base_id(pkey);
+ if (pkey_id == EVP_PKEY_RSA) {
+ RSA *rsa_pkey;
+ const BIGNUM *n;
- BN_print(bio, pkey->pkey.rsa->n);
+ rsa_pkey = EVP_PKEY_get0_RSA(pkey);
+ RSA_get0_key(rsa_pkey, &n, NULL, NULL);
- } else if (pkey->type == EVP_PKEY_DSA) {
+ BN_print(bio, n);
- BN_print(bio, pkey->pkey.dsa->pub_key);
+ } else if (pkey_id == EVP_PKEY_DSA) {
+ DSA *dsa_pkey;
+ const BIGNUM *pub_key;
+
+ dsa_pkey = EVP_PKEY_get0_DSA(pkey);
+ DSA_get0_key(dsa_pkey, &pub_key, NULL);
+ BN_print(bio, pub_key);
#ifndef OPENSSL_NO_EC
- } else if ( pkey->type == EVP_PKEY_EC ) {
+ } else if ( pkey_id == EVP_PKEY_EC ) {
const EC_POINT *public_key;
const EC_GROUP *group;
+ EC_KEY *ec_pkey;
BIGNUM *pub_key=NULL;
- if ( (group = EC_KEY_get0_group(pkey->pkey.ec)) == NULL) {
+
+ ec_pkey = EVP_PKEY_get0_EC_KEY(pkey);
+ if ( (group = EC_KEY_get0_group(ec_pkey)) == NULL) {
BIO_free_all(bio);
EVP_PKEY_free(pkey);
croak("No EC group");
}
- public_key = EC_KEY_get0_public_key(pkey->pkey.ec);
- if ((pub_key = EC_POINT_point2bn(group, public_key, EC_KEY_get_conv_form(pkey->pkey.ec), NULL, NULL)) == NULL) {
+ public_key = EC_KEY_get0_public_key(ec_pkey);
+ if ((pub_key = EC_POINT_point2bn(group, public_key, EC_KEY_get_conv_form(ec_pkey), NULL, NULL)) == NULL) {
BIO_free_all(bio);
EVP_PKEY_free(pkey);
croak("EC library error");
@@ -697,8 +773,14 @@ exponent(x509)
croak("Exponent is unavailable\n");
}
- if (pkey->type == EVP_PKEY_RSA) {
- BN_print(bio, pkey->pkey.rsa->e);
+ if (EVP_PKEY_base_id(pkey) == EVP_PKEY_RSA) {
+ RSA *rsa_pkey;
+ const BIGNUM *e;
+
+ rsa_pkey = EVP_PKEY_get0_RSA(pkey);
+ RSA_get0_key(rsa_pkey, NULL, &e, NULL);
+
+ BN_print(bio, e);
} else {
BIO_free_all(bio);
EVP_PKEY_free(pkey);
@@ -780,6 +862,7 @@ pubkey(x509)
PREINIT:
EVP_PKEY *pkey;
BIO *bio;
+ int pkey_id;
CODE:
@@ -793,16 +876,25 @@ pubkey(x509)
croak("Public Key is unavailable\n");
}
- if (pkey->type == EVP_PKEY_RSA) {
+ pkey_id = EVP_PKEY_base_id(pkey);
+ if (pkey_id == EVP_PKEY_RSA) {
+ RSA *rsa_pkey;
+
+ rsa_pkey = EVP_PKEY_get0_RSA(pkey);
+ PEM_write_bio_RSAPublicKey(bio, rsa_pkey);
- PEM_write_bio_RSAPublicKey(bio, pkey->pkey.rsa);
+ } else if (pkey_id == EVP_PKEY_DSA) {
+ DSA *dsa_pkey;
- } else if (pkey->type == EVP_PKEY_DSA) {
+ dsa_pkey = EVP_PKEY_get0_DSA(pkey);
- PEM_write_bio_DSA_PUBKEY(bio, pkey->pkey.dsa);
+ PEM_write_bio_DSA_PUBKEY(bio, dsa_pkey);
#ifndef OPENSSL_NO_EC
- } else if ( pkey->type == EVP_PKEY_EC ) {
- PEM_write_bio_EC_PUBKEY(bio, pkey->pkey.ec);
+ } else if (pkey_id == EVP_PKEY_EC ) {
+ EC_KEY *ec_pkey;
+
+ ec_pkey = EVP_PKEY_get0_EC_KEY(pkey);
+ PEM_write_bio_EC_PUBKEY(bio, ec_pkey);
#endif
} else {
@@ -823,6 +915,7 @@ pubkey_type(x509)
Crypt::OpenSSL::X509 x509;
PREINIT:
EVP_PKEY *pkey;
+ int pkey_id;
CODE:
RETVAL=NULL;
pkey = X509_get_pubkey(x509);
@@ -830,13 +923,14 @@ pubkey_type(x509)
if(!pkey)
XSRETURN_UNDEF;
- if (pkey->type == EVP_PKEY_DSA) {
+ pkey_id = EVP_PKEY_base_id(pkey);
+ if (pkey_id == EVP_PKEY_DSA) {
RETVAL="dsa";
- } else if (pkey->type == EVP_PKEY_RSA) {
+ } else if (pkey_id == EVP_PKEY_RSA) {
RETVAL="rsa";
#ifndef OPENSSL_NO_EC
- } else if ( pkey->type == EVP_PKEY_EC ) {
+ } else if (pkey_id == EVP_PKEY_EC ) {
RETVAL="ec";
#endif
}
@@ -1479,7 +1573,13 @@ CRL_accessor(crl)
RETVAL = sv_bio_final(bio);
} else if (ix == 2) {
- i2a_ASN1_OBJECT(bio, crl->sig_alg->algorithm);
+ const_ossl11 X509_ALGOR *palg;
+ const_ossl11 ASN1_OBJECT *paobj;
+
+ X509_CRL_get0_signature(crl, NULL, &palg);
+ X509_ALGOR_get0(&paobj, NULL, NULL, palg);
+
+ i2a_ASN1_OBJECT(bio, paobj);
}
RETVAL = sv_bio_final(bio);
diff --git a/inc/Module/AutoInstall.pm b/inc/Module/AutoInstall.pm
index aa7aa92..22dfa82 100644
--- a/inc/Module/AutoInstall.pm
+++ b/inc/Module/AutoInstall.pm
@@ -8,7 +8,7 @@ use ExtUtils::MakeMaker ();
use vars qw{$VERSION};
BEGIN {
- $VERSION = '1.06';
+ $VERSION = '1.16';
}
# special map on pre-defined feature sets
@@ -115,7 +115,7 @@ sub import {
print "*** $class version " . $class->VERSION . "\n";
print "*** Checking for Perl dependencies...\n";
- my $cwd = Cwd::cwd();
+ my $cwd = Cwd::getcwd();
$Config = [];
@@ -166,7 +166,7 @@ sub import {
$modules = [ %{$modules} ] if UNIVERSAL::isa( $modules, 'HASH' );
unshift @$modules, -default => &{ shift(@$modules) }
- if ( ref( $modules->[0] ) eq 'CODE' ); # XXX: bugward combatability
+ if ( ref( $modules->[0] ) eq 'CODE' ); # XXX: bugward compatibility
while ( my ( $mod, $arg ) = splice( @$modules, 0, 2 ) ) {
if ( $mod =~ m/^-(\w+)$/ ) {
@@ -345,22 +345,26 @@ sub install {
my $i; # used below to strip leading '-' from config keys
my @config = ( map { s/^-// if ++$i; $_ } @{ +shift } );
- my ( @modules, @installed );
- while ( my ( $pkg, $ver ) = splice( @_, 0, 2 ) ) {
+ my ( @modules, @installed, @modules_to_upgrade );
+ while (my ($pkg, $ver) = splice(@_, 0, 2)) {
- # grep out those already installed
- if ( _version_cmp( _version_of($pkg), $ver ) >= 0 ) {
- push @installed, $pkg;
- }
- else {
- push @modules, $pkg, $ver;
- }
- }
+ # grep out those already installed
+ if (_version_cmp(_version_of($pkg), $ver) >= 0) {
+ push @installed, $pkg;
+ if ($UpgradeDeps) {
+ push @modules_to_upgrade, $pkg, $ver;
+ }
+ }
+ else {
+ push @modules, $pkg, $ver;
+ }
+ }
- if ($UpgradeDeps) {
- push @modules, @installed;
- @installed = ();
- }
+ if ($UpgradeDeps) {
+ push @modules, @modules_to_upgrade;
+ @installed = ();
+ @modules_to_upgrade = ();
+ }
return @installed unless @modules; # nothing to do
return @installed if _check_lock(); # defer to the CPAN shell
@@ -533,7 +537,7 @@ sub _install_cpan {
while ( my ( $opt, $arg ) = splice( @config, 0, 2 ) ) {
( $args{$opt} = $arg, next )
if $opt =~ /^(?:force|notest)$/; # pseudo-option
- $CPAN::Config->{$opt} = $arg;
+ $CPAN::Config->{$opt} = $opt eq 'urllist' ? [$arg] : $arg;
}
if ($args{notest} && (not CPAN::Shell->can('notest'))) {
@@ -611,7 +615,7 @@ sub _under_cpan {
require Cwd;
require File::Spec;
- my $cwd = File::Spec->canonpath( Cwd::cwd() );
+ my $cwd = File::Spec->canonpath( Cwd::getcwd() );
my $cpan = File::Spec->canonpath( $CPAN::Config->{cpan_home} );
return ( index( $cwd, $cpan ) > -1 );
@@ -927,4 +931,4 @@ END_MAKE
__END__
-#line 1193
+#line 1197
diff --git a/inc/Module/Install.pm b/inc/Module/Install.pm
index 4ecf46b..f44ab4d 100644
--- a/inc/Module/Install.pm
+++ b/inc/Module/Install.pm
@@ -17,7 +17,7 @@ package Module::Install;
# 3. The ./inc/ version of Module::Install loads
# }
-use 5.005;
+use 5.006;
use strict 'vars';
use Cwd ();
use File::Find ();
@@ -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.06';
+ $VERSION = '1.16';
# Storage for the pseudo-singleton
$MAIN = undef;
@@ -156,10 +156,10 @@ END_DIE
sub autoload {
my $self = shift;
my $who = $self->_caller;
- my $cwd = Cwd::cwd();
+ my $cwd = Cwd::getcwd();
my $sym = "${who}::AUTOLOAD";
$sym->{$cwd} = sub {
- my $pwd = Cwd::cwd();
+ my $pwd = Cwd::getcwd();
if ( my $code = $sym->{$pwd} ) {
# Delegate back to parent dirs
goto &$code unless $cwd eq $pwd;
@@ -239,7 +239,7 @@ sub new {
# ignore the prefix on extension modules built from top level.
my $base_path = Cwd::abs_path($FindBin::Bin);
- unless ( Cwd::abs_path(Cwd::cwd()) eq $base_path ) {
+ unless ( Cwd::abs_path(Cwd::getcwd()) eq $base_path ) {
delete $args{prefix};
}
return $args{_self} if $args{_self};
@@ -338,7 +338,7 @@ sub find_extensions {
if ( $subpath eq lc($subpath) || $subpath eq uc($subpath) ) {
my $content = Module::Install::_read($subpath . '.pm');
my $in_pod = 0;
- foreach ( split //, $content ) {
+ foreach ( split /\n/, $content ) {
$in_pod = 1 if /^=\w/;
$in_pod = 0 if /^=cut/;
next if ($in_pod || /^=cut/); # skip pod text
@@ -378,6 +378,7 @@ eval( $] >= 5.006 ? <<'END_NEW' : <<'END_OLD' ); die $@ if $@;
sub _read {
local *FH;
open( FH, '<', $_[0] ) or die "open($_[0]): $!";
+ binmode FH;
my $string = do { local $/; <FH> };
close FH or die "close($_[0]): $!";
return $string;
@@ -386,6 +387,7 @@ END_NEW
sub _read {
local *FH;
open( FH, "< $_[0]" ) or die "open($_[0]): $!";
+ binmode FH;
my $string = do { local $/; <FH> };
close FH or die "close($_[0]): $!";
return $string;
@@ -416,6 +418,7 @@ eval( $] >= 5.006 ? <<'END_NEW' : <<'END_OLD' ); die $@ if $@;
sub _write {
local *FH;
open( FH, '>', $_[0] ) or die "open($_[0]): $!";
+ binmode FH;
foreach ( 1 .. $#_ ) {
print FH $_[$_] or die "print($_[0]): $!";
}
@@ -425,6 +428,7 @@ END_NEW
sub _write {
local *FH;
open( FH, "> $_[0]" ) or die "open($_[0]): $!";
+ binmode FH;
foreach ( 1 .. $#_ ) {
print FH $_[$_] or die "print($_[0]): $!";
}
@@ -434,7 +438,7 @@ END_OLD
# _version is for processing module versions (eg, 1.03_05) not
# Perl versions (eg, 5.8.1).
-sub _version ($) {
+sub _version {
my $s = shift || 0;
my $d =()= $s =~ /(\.)/g;
if ( $d >= 2 ) {
@@ -450,12 +454,12 @@ sub _version ($) {
return $l + 0;
}
-sub _cmp ($$) {
+sub _cmp {
_version($_[1]) <=> _version($_[2]);
}
# Cloned from Params::Util::_CLASS
-sub _CLASS ($) {
+sub _CLASS {
(
defined $_[0]
and
diff --git a/inc/Module/Install/AutoInstall.pm b/inc/Module/Install/AutoInstall.pm
index 6efe4fe..e19d259 100644
--- a/inc/Module/Install/AutoInstall.pm
+++ b/inc/Module/Install/AutoInstall.pm
@@ -6,7 +6,7 @@ use Module::Install::Base ();
use vars qw{$VERSION @ISA $ISCORE};
BEGIN {
- $VERSION = '1.06';
+ $VERSION = '1.16';
@ISA = 'Module::Install::Base';
$ISCORE = 1;
}
diff --git a/inc/Module/Install/Base.pm b/inc/Module/Install/Base.pm
index 802844a..5762a74 100644
--- a/inc/Module/Install/Base.pm
+++ b/inc/Module/Install/Base.pm
@@ -4,7 +4,7 @@ package Module::Install::Base;
use strict 'vars';
use vars qw{$VERSION};
BEGIN {
- $VERSION = '1.06';
+ $VERSION = '1.16';
}
# Suspend handler for "redefined" warnings
diff --git a/inc/Module/Install/Can.pm b/inc/Module/Install/Can.pm
index 22167b8..d859276 100644
--- a/inc/Module/Install/Can.pm
+++ b/inc/Module/Install/Can.pm
@@ -8,7 +8,7 @@ use Module::Install::Base ();
use vars qw{$VERSION @ISA $ISCORE};
BEGIN {
- $VERSION = '1.06';
+ $VERSION = '1.16';
@ISA = 'Module::Install::Base';
$ISCORE = 1;
}
diff --git a/inc/Module/Install/Compiler.pm b/inc/Module/Install/Compiler.pm
index ada2475..62d14e9 100644
--- a/inc/Module/Install/Compiler.pm
+++ b/inc/Module/Install/Compiler.pm
@@ -7,7 +7,7 @@ use Module::Install::Base ();
use vars qw{$VERSION @ISA $ISCORE};
BEGIN {
- $VERSION = '1.06';
+ $VERSION = '1.16';
@ISA = 'Module::Install::Base';
$ISCORE = 1;
}
diff --git a/inc/Module/Install/External.pm b/inc/Module/Install/External.pm
index 53522d6..88ed718 100644
--- a/inc/Module/Install/External.pm
+++ b/inc/Module/Install/External.pm
@@ -8,7 +8,7 @@ use Module::Install::Base ();
use vars qw{$VERSION $ISCORE @ISA};
BEGIN {
- $VERSION = '1.06';
+ $VERSION = '1.16';
$ISCORE = 1;
@ISA = qw{Module::Install::Base};
}
diff --git a/inc/Module/Install/Fetch.pm b/inc/Module/Install/Fetch.pm
index bee0c4f..41d3517 100644
--- a/inc/Module/Install/Fetch.pm
+++ b/inc/Module/Install/Fetch.pm
@@ -6,7 +6,7 @@ use Module::Install::Base ();
use vars qw{$VERSION @ISA $ISCORE};
BEGIN {
- $VERSION = '1.06';
+ $VERSION = '1.16';
@ISA = 'Module::Install::Base';
$ISCORE = 1;
}
diff --git a/inc/Module/Install/Include.pm b/inc/Module/Install/Include.pm
index 8310e4c..2eb1d1f 100644
--- a/inc/Module/Install/Include.pm
+++ b/inc/Module/Install/Include.pm
@@ -6,7 +6,7 @@ use Module::Install::Base ();
use vars qw{$VERSION @ISA $ISCORE};
BEGIN {
- $VERSION = '1.06';
+ $VERSION = '1.16';
@ISA = 'Module::Install::Base';
$ISCORE = 1;
}
diff --git a/inc/Module/Install/Makefile.pm b/inc/Module/Install/Makefile.pm
index 7052f36..e9918d2 100644
--- a/inc/Module/Install/Makefile.pm
+++ b/inc/Module/Install/Makefile.pm
@@ -8,7 +8,7 @@ use Fcntl qw/:flock :seek/;
use vars qw{$VERSION @ISA $ISCORE};
BEGIN {
- $VERSION = '1.06';
+ $VERSION = '1.16';
@ISA = 'Module::Install::Base';
$ISCORE = 1;
}
@@ -133,7 +133,7 @@ sub makemaker_args {
return $args;
}
-# For mm args that take multiple space-seperated args,
+# For mm args that take multiple space-separated args,
# append an argument to the current list.
sub makemaker_append {
my $self = shift;
diff --git a/inc/Module/Install/Metadata.pm b/inc/Module/Install/Metadata.pm
index 58430f3..9792685 100644
--- a/inc/Module/Install/Metadata.pm
+++ b/inc/Module/Install/Metadata.pm
@@ -6,7 +6,7 @@ use Module::Install::Base ();
use vars qw{$VERSION @ISA $ISCORE};
BEGIN {
- $VERSION = '1.06';
+ $VERSION = '1.16';
@ISA = 'Module::Install::Base';
$ISCORE = 1;
}
@@ -347,7 +347,7 @@ sub name_from {
^ \s*
package \s*
([\w:]+)
- \s* ;
+ [\s|;]*
/ixms
) {
my ($name, $module_name) = ($1, $1);
@@ -705,7 +705,7 @@ sub _write_mymeta_data {
my @yaml = Parse::CPAN::Meta::LoadFile('META.yml');
my $meta = $yaml[0];
- # Overwrite the non-configure dependency hashs
+ # Overwrite the non-configure dependency hashes
delete $meta->{requires};
delete $meta->{build_requires};
delete $meta->{recommends};
diff --git a/inc/Module/Install/Win32.pm b/inc/Module/Install/Win32.pm
index eeaa3fe..218a66b 100644
--- a/inc/Module/Install/Win32.pm
+++ b/inc/Module/Install/Win32.pm
@@ -6,7 +6,7 @@ use Module::Install::Base ();
use vars qw{$VERSION @ISA $ISCORE};
BEGIN {
- $VERSION = '1.06';
+ $VERSION = '1.16';
@ISA = 'Module::Install::Base';
$ISCORE = 1;
}
diff --git a/inc/Module/Install/WriteAll.pm b/inc/Module/Install/WriteAll.pm
index 85d8018..530749b 100644
--- a/inc/Module/Install/WriteAll.pm
+++ b/inc/Module/Install/WriteAll.pm
@@ -6,7 +6,7 @@ use Module::Install::Base ();
use vars qw{$VERSION @ISA $ISCORE};
BEGIN {
- $VERSION = '1.06';
+ $VERSION = '1.16';
@ISA = qw{Module::Install::Base};
$ISCORE = 1;
}