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

[PATCH] Upgrade Core with version-0.9918 #15963

Closed
p5pRT opened this issue Apr 25, 2017 · 5 comments
Closed

[PATCH] Upgrade Core with version-0.9918 #15963

p5pRT opened this issue Apr 25, 2017 · 5 comments

Comments

@p5pRT
Copy link

p5pRT commented Apr 25, 2017

Migrated from rt.perl.org#131208 (status was 'resolved')

Searchable as RT131208$

@p5pRT
Copy link
Author

p5pRT commented Apr 25, 2017

From @JohnPeacock

Attached is a patch to bring Core into line with the latest CPAN
release of version.pm. In particular, this release includes a fix
for the removal of '.' from @​INC in the tests.

NOTE​: I am not subscribed to perl5-porters

Perl Info

Flags:
     category=core
     severity=high
     Type=Patch
     PatchStatus=HasPatch

Site configuration information for perl 5.22.1:

Configured by Debian Project at Sun Mar 13 11:54:18 UTC 2016.

Summary of my perl5 (revision 5 version 22 subversion 1) configuration:
    
   Platform:
     osname=linux, osvers=3.16.0, archname=x86_64-linux-gnu-thread-multi
     uname='linux localhost 3.16.0 #1 smp debian 3.16.0 x86_64 gnulinux '
     config_args='-Dusethreads -Duselargefiles -Dcc=x86_64-linux-gnu-gcc -Dcpp=x86_64-linux-gnu-cpp -Dld=x86_64-linux-gnu-gcc -Dccflags=-DDEBIAN -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Dldflags= -Wl,-Bsymbolic-functions -Wl,-z,relro -Dlddlflags=-shared -Wl,-Bsymbolic-functions -Wl,-z,relro -Dcccdlflags=-fPIC -Darchname=x86_64-linux-gnu -Dprefix=/usr -Dprivlib=/usr/share/perl/5.22 -Darchlib=/usr/lib/x86_64-linux-gnu/perl/5.22 -Dvendorprefix=/usr -Dvendorlib=/usr/share/perl5 -Dvendorarch=/usr/lib/x86_64-linux-gnu/perl5/5.22 -Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl/5.22.1 -Dsitearch=/usr/local/lib/x86_64-linux-gnu/perl/5.22.1 -Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3 -Dsiteman1dir=/usr/local/man/man1 -Dsiteman3dir=/usr/local/man/man3 -Duse64bitint -Dman1ext=1 -Dman3ext=3perl -Dpager=/usr/bin/sensible-pager -Uafs -Ud_csh -Ud_ualarm -Uusesfio -Uusenm -Ui_libutil -Uversiononly -DDEBUGGING=-g -Doptimize=-O2 -dEs -Duseshrplib -Dlibperl=libperl.so.5.22.1'
     hint=recommended, useposix=true, d_sigaction=define
     useithreads=define, usemultiplicity=define
     use64bitint=define, use64bitall=define, uselongdouble=undef
     usemymalloc=n, bincompat5005=undef
   Compiler:
     cc='x86_64-linux-gnu-gcc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
     optimize='-O2 -g',
     cppflags='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include'
     ccversion='', gccversion='5.3.1 20160311', gccosandvers=''
     intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678, doublekind=3
     d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16, longdblkind=3
     ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
     alignbytes=8, prototype=define
   Linker and Libraries:
     ld='x86_64-linux-gnu-gcc', ldflags =' -fstack-protector-strong -L/usr/local/lib'
     libpth=/usr/local/lib /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed 
/usr/include/x86_64-linux-gnu /usr/lib /lib/x86_64-linux-gnu /lib/../lib 
/usr/lib/x86_64-linux-gnu /usr/lib/../lib /lib
     libs=-lgdbm -lgdbm_compat -ldb -ldl -lm -lpthread -lc -lcrypt
     perllibs=-ldl -lm -lpthread -lc -lcrypt
     libc=libc-2.21.so, so=so, useshrplib=true, libperl=libperl.so.5.22
     gnulibc_version='2.21'
   Dynamic Linking:
     dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
     cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib -fstack-protector-strong'

Locally applied patches:
     DEBPKG:debian/cpan_definstalldirs - Provide a sensible INSTALLDIRS default for modules installed from CPAN.
     DEBPKG:debian/db_file_ver -http://bugs.debian.org/340047  Remove overly restrictive DB_File version check.
     DEBPKG:debian/doc_info - Replace generic man(1) instructions with Debian-specific information.
     DEBPKG:debian/enc2xs_inc -http://bugs.debian.org/290336  Tweak enc2xs to follow symlinks and ignore missing @INC directories.
     DEBPKG:debian/errno_ver -http://bugs.debian.org/343351  Remove Errno version check due to upgrade problems with long-running processes.
     DEBPKG:debian/libperl_embed_doc -http://bugs.debian.org/186778  Note that libperl-dev package is required for embedded linking
     DEBPKG:fixes/respect_umask - Respect umask during installation
     DEBPKG:debian/writable_site_dirs - Set umask approproately for site install directories
     DEBPKG:debian/extutils_set_libperl_path - EU:MM: set location of libperl.a under /usr/lib
     DEBPKG:debian/no_packlist_perllocal - Don't install .packlist or perllocal.pod for perl or vendor
     DEBPKG:debian/fakeroot - Postpone LD_LIBRARY_PATH evaluation to the binary targets.
     DEBPKG:debian/instmodsh_doc - Debian policy doesn't install .packlist files for core or vendor.
     DEBPKG:debian/ld_run_path - Remove standard libs from LD_RUN_PATH as per Debian policy.
     DEBPKG:debian/libnet_config_path - Set location of libnet.cfg to /etc/perl/Net as /usr may not be writable.
     DEBPKG:debian/mod_paths - Tweak @INC ordering for Debian
     DEBPKG:debian/prune_libs -http://bugs.debian.org/128355  Prune the list of libraries wanted to what we actually need.
     DEBPKG:fixes/net_smtp_docs - [rt.cpan.org #36038]http://bugs.debian.org/100195  Document theNet::SMTP  'Port' option
     DEBPKG:debian/perlivp -http://bugs.debian.org/510895  Make perlivp skip include directories in /usr/local
     DEBPKG:debian/deprecate-with-apt -http://bugs.debian.org/747628  Point users to Debian packages of deprecated core modules
     DEBPKG:debian/squelch-locale-warnings -http://bugs.debian.org/508764  Squelch locale warnings in Debian package maintainer scripts
     DEBPKG:debian/skip-upstream-git-tests - Skip tests specific to the upstream Git repository
     DEBPKG:debian/patchlevel -http://bugs.debian.org/567489  List packaged patches for 5.22.1-9 in patchlevel.h
     DEBPKG:debian/skip-kfreebsd-crash -http://bugs.debian.org/628493  [perl #96272] Skip a crashing test case in t/op/threads.t on GNU/kFreeBSD
     DEBPKG:fixes/document_makemaker_ccflags -http://bugs.debian.org/628522  [rt.cpan.org #68613] Document that CCFLAGS should include $Config{ccflags}
     DEBPKG:debian/find_html2text -http://bugs.debian.org/640479  Configure CPAN::Distribution with correct name of html2text
     DEBPKG:debian/perl5db-x-terminal-emulator.patch -http://bugs.debian.org/668490  Invoke x-terminal-emulator rather than xterm in perl5db.pl
     DEBPKG:debian/cpan-missing-site-dirs -http://bugs.debian.org/688842  Fix CPAN::FirstTime defaults with nonexisting site dirs if a parent is writable
     DEBPKG:fixes/memoize_storable_nstore - [rt.cpan.org #77790]http://bugs.debian.org/587650  Memoize::Storable: respect 'nstore' option not respected
     DEBPKG:debian/regen-skip - Skip a regeneration check in unrelated git repositories
     DEBPKG:debian/makemaker-pasthru -http://bugs.debian.org/758471  Pass LD settings through to subdirectories
     DEBPKG:fixes/pod_man_reproducible_date -http://bugs.debian.org/759405  Support POD_MAN_DATE in Pod::Man for the left-hand footer
     DEBPKG:debian/locale-robustness -http://bugs.debian.org/782068  [perl #124310] Make t/run/locale.t survive missing locales masked by LC_ALL
     DEBPKG:fixes/podman-utc -http://bugs.debian.org/780259  Make the embedded date from Pod::Man reproducible
     DEBPKG:fixes/podman-utc-docs -http://bugs.debian.org/780259  Documentation and test suite updates for UTC fix
     DEBPKG:fixes/podman-empty-date -http://bugs.debian.org/780259  Support an empty POD_MAN_DATE environment variable
     DEBPKG:fixes/podman-pipe -http://bugs.debian.org/777405  Better errors for man pages from standard input
     DEBPKG:debian/pod2man-customized - Update porting/customized.dat for pod2man modifications
     DEBPKG:debian/makemaker-manext -http://bugs.debian.org/247370  Make EU::MakeMaker honour MANnEXT settings in generated manpage headers
     DEBPKG:debian/makemaker_customized - Update t/porting/customized.dat for files patched in Debian
     DEBPKG:debian/do-not-record-build-date - [6baa8db]http://bugs.debian.org/774422  [perl #125830] Allow overriding the compile time in "perl -V" output
     DEBPKG:fixes/podman-source-date-epoch -http://bugs.debian.org/801621  Make Pod::Man honor the SOURCE_DATE_EPOCH environment variable
     DEBPKG:fixes/podman-source-date-epoch-cleanups -http://bugs.debian.org/801621  Coding style and documentation for SOURCE_EPOCH_DATE
     DEBPKG:fixes/podman-source-date-epoch-testfix -http://bugs.debian.org/807086  Guard for building with SOURCE_DATE_EPOCH or POD_MAN_DATE set
     DEBPKG:debian/devel-ppport-reproducibility -http://bugs.debian.org/801523  Sort the list of XS code files when generating RealPPPort.xs
     DEBPKG:fixes/encode-unicode-bom -http://bugs.debian.org/798727  [rt.cpan.org #107043] Addresshttps://rt.cpan.org/Public/Bug/Display.html?id=107043
     DEBPKG:debian/encode-unicode-bom-doc -http://bugs.debian.org/798727  Document Debian backport of Encode::Unicode fix
     DEBPKG:debian/kfreebsd-softupdates -http://bugs.debian.org/796798  Work around Debian Bug#796798
     DEBPKG:fixes/autodie-scope -http://bugs.debian.org/798096  Fix a scoping issue with "no autodie" and the "system" sub
     DEBPKG:debian/debugperl-compat-fix - [perl #127212]http://bugs.debian.org/810326  Disable PERL_TRACK_MEMPOOL for debugging builds
     DEBPKG:fixes/CVE-2015-8607_file_spec_taint_fix -http://bugs.debian.org/810719  [perl #126862] ensure File::Spec::canonpath() preserves taint
     DEBPKG:fixes/mkstemp-umask -http://bugs.debian.org/810924  [perl #127322] [e57270b] Fix umask for mkstemp(3) calls
     DEBPKG:fixes/crosscompile-no-targethost - [perl #127234] Fix the Configure escape with usecrosscompile but no targethost
     DEBPKG:fixes/podlators-no-encode - [rt.cpan.org #111156] Degrade gracefully if utf8 is requested but Encode is not available
     DEBPKG:debian/cross-time-hires - [rt.cpan.org #111391] Add an environment variable to skip running configuration probes
     DEBPKG:fixes/encode-unicode-pod - Unicode.pm: Fix POD error
     DEBPKG:fixes/memoize-pod - [rt.cpan.org #89441] Fix POD errors in Memoize
     DEBPKG:fixes/ok-pod - Added encoding for pod.
     DEBPKG:fixes/CVE-2016-2381_duplicate_env - remove duplicate environment variables from environ


@INC for perl 5.22.1:
     /etc/perl
     /usr/local/lib/x86_64-linux-gnu/perl/5.22.1
     /usr/local/share/perl/5.22.1
     /usr/lib/x86_64-linux-gnu/perl5/5.22
     /usr/share/perl5
     /usr/lib/x86_64-linux-gnu/perl/5.22
     /usr/share/perl/5.22
     /usr/local/lib/site_perl
     /usr/lib/x86_64-linux-gnu/perl-base
     .


Environment for perl 5.22.1:
     HOME=/home/jpeacock
     LANG=en_US.UTF-8
     LANGUAGE=en_US
     LD_LIBRARY_PATH (unset)
     LOGDIR (unset)
     PATH=/home/jpeacock/bin:/home/jpeacock/devel/android-sdk-linux/platform-tools:/usr/local/bin:/home/jpeacock/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin
     PERL_BADLANG (unset)
     SHELL=/bin/bash


@p5pRT
Copy link
Author

p5pRT commented Apr 25, 2017

From @JohnPeacock

0001-Update-core-with-version-0.9918.patch
From af99ab37319adfc697884c8f804e4cef1409cefe Mon Sep 17 00:00:00 2001
From: John Peacock <jpeacock@cpan.org>
Date: Mon, 24 Apr 2017 20:06:01 -0400
Subject: [PATCH] Update core with version 0.9918

---
 MANIFEST                          |  1 +
 cpan/version/lib/version.pm       |  6 +++++-
 cpan/version/lib/version/regex.pm | 16 ++++++++++------
 cpan/version/t/01base.t           |  8 +++++---
 cpan/version/t/02derived.t        |  8 +++++---
 cpan/version/t/03require.t        |  8 +++++---
 cpan/version/t/04strict_lax.t     | 15 +++++++++++++++
 cpan/version/t/05sigdie.t         |  2 +-
 cpan/version/t/06noop.t           |  2 +-
 cpan/version/t/07locale.t         |  2 +-
 cpan/version/t/08_corelist.t      |  2 +-
 cpan/version/t/09_list_util.t     |  2 +-
 cpan/version/t/11_taint.t         | 24 ++++++++++++++++++++++++
 t/porting/customized.dat          |  2 +-
 vutil.c                           |  6 +++++-
 vutil.h                           |  2 +-
 vxs.inc                           | 11 ++++++-----
 17 files changed, 88 insertions(+), 29 deletions(-)
 create mode 100644 cpan/version/t/11_taint.t

diff --git a/MANIFEST b/MANIFEST
index 197c704..d12fcdc 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -3150,6 +3150,7 @@ cpan/version/t/07locale.t		Tests for version objects
 cpan/version/t/08_corelist.t		Tests for version objects
 cpan/version/t/09_list_util.t		Tests for version objects
 cpan/version/t/10_lyon.t		Tests for version objects
+cpan/version/t/11_taint.t		Tests for version objects
 cpan/version/t/coretests.pm		Tests for version objects
 cpan/Win32/longpath.inc			Win32 extension long path support
 cpan/Win32/Makefile.PL			Win32 extension makefile writer
diff --git a/cpan/version/lib/version.pm b/cpan/version/lib/version.pm
index 36d130f..c85e8a0 100644
--- a/cpan/version/lib/version.pm
+++ b/cpan/version/lib/version.pm
@@ -10,7 +10,7 @@ if ($] >= 5.015) {
 
 use vars qw(@ISA $VERSION $CLASS $STRICT $LAX *declare *qv);
 
-$VERSION = 0.9917;
+$VERSION = 0.9918;
 $CLASS = 'version';
 
 # avoid using Exporter
@@ -18,7 +18,11 @@ require version::regex;
 *version::is_lax = \&version::regex::is_lax;
 *version::is_strict = \&version::regex::is_strict;
 *LAX = \$version::regex::LAX;
+*LAX_DECIMAL_VERSION = \$version::regex::LAX_DECIMAL_VERSION;
+*LAX_DOTTED_DECIMAL_VERSION = \$version::regex::LAX_DOTTED_DECIMAL_VERSION;
 *STRICT = \$version::regex::STRICT;
+*STRICT_DECIMAL_VERSION = \$version::regex::STRICT_DECIMAL_VERSION;
+*STRICT_DOTTED_DECIMAL_VERSION = \$version::regex::STRICT_DOTTED_DECIMAL_VERSION;
 
 sub import {
     no strict 'refs';
diff --git a/cpan/version/lib/version/regex.pm b/cpan/version/lib/version/regex.pm
index d635c38..8d66e19 100644
--- a/cpan/version/lib/version/regex.pm
+++ b/cpan/version/lib/version/regex.pm
@@ -2,9 +2,13 @@ package version::regex;
 
 use strict;
 
-use vars qw($VERSION $CLASS $STRICT $LAX);
+use vars qw(
+    $VERSION $CLASS $STRICT $LAX
+    $STRICT_DECIMAL_VERSION $STRICT_DOTTED_DECIMAL_VERSION
+    $LAX_DECIMAL_VERSION $LAX_DOTTED_DECIMAL_VERSION
+);
 
-$VERSION = 0.9917;
+$VERSION = 0.9918;
 
 #--------------------------------------------------------------------------#
 # Version regexp components
@@ -57,13 +61,13 @@ my $LAX_ALPHA_PART = qr/_[0-9]+/;
 
 # Strict decimal version number.
 
-my $STRICT_DECIMAL_VERSION =
+$STRICT_DECIMAL_VERSION =
     qr/ $STRICT_INTEGER_PART $FRACTION_PART? /x;
 
 # Strict dotted-decimal version number.  Must have both leading "v" and
 # at least three parts, to avoid confusion with decimal syntax.
 
-my $STRICT_DOTTED_DECIMAL_VERSION =
+$STRICT_DOTTED_DECIMAL_VERSION =
     qr/ v $STRICT_INTEGER_PART $STRICT_DOTTED_DECIMAL_PART{2,} /x;
 
 # Complete strict version number syntax -- should generally be used
@@ -80,7 +84,7 @@ $STRICT =
 # allowing an alpha suffix or allowing a leading or trailing
 # decimal-point
 
-my $LAX_DECIMAL_VERSION =
+$LAX_DECIMAL_VERSION =
     qr/ $LAX_INTEGER_PART (?: $FRACTION_PART | \. )? $LAX_ALPHA_PART?
 	|
 	$FRACTION_PART $LAX_ALPHA_PART?
@@ -92,7 +96,7 @@ my $LAX_DECIMAL_VERSION =
 # enough, without the leading "v", Perl takes .1.2 to mean v0.1.2,
 # so when there is no "v", the leading part is optional
 
-my $LAX_DOTTED_DECIMAL_VERSION =
+$LAX_DOTTED_DECIMAL_VERSION =
     qr/
 	v $LAX_INTEGER_PART (?: $LAX_DOTTED_DECIMAL_PART+ $LAX_ALPHA_PART? )?
 	|
diff --git a/cpan/version/t/01base.t b/cpan/version/t/01base.t
index 8e5ab71..df0f6f0 100644
--- a/cpan/version/t/01base.t
+++ b/cpan/version/t/01base.t
@@ -8,11 +8,13 @@ use Test::More qw/no_plan/;
 use File::Spec;
 
 BEGIN {
-    my $coretests = File::Spec->catpath(
-        (File::Spec->splitpath($0))[0,1], 'coretests.pm'
+    my $coretests = File::Spec->rel2abs(
+        File::Spec->catpath(
+            (File::Spec->splitpath($0))[0,1], 'coretests.pm'
+        )
     );
     require $coretests;
-    use_ok('version', 0.9917);
+    use_ok('version', 0.9918);
 }
 
 BaseTests("version","new","qv");
diff --git a/cpan/version/t/02derived.t b/cpan/version/t/02derived.t
index fb77270..3191c9a 100644
--- a/cpan/version/t/02derived.t
+++ b/cpan/version/t/02derived.t
@@ -9,11 +9,13 @@ use File::Spec;
 use File::Temp qw/tempfile/;
 
 BEGIN {
-    my $coretests = File::Spec->catpath(
-        (File::Spec->splitpath($0))[0,1], 'coretests.pm'
+    my $coretests = File::Spec->rel2abs(
+        File::Spec->catpath(
+            (File::Spec->splitpath($0))[0,1], 'coretests.pm'
+        )
     );
     require $coretests;
-    use_ok("version", 0.9917);
+    use_ok("version", 0.9918);
     # If we made it this far, we are ok.
 }
 
diff --git a/cpan/version/t/03require.t b/cpan/version/t/03require.t
index 6a968a5..d474486 100644
--- a/cpan/version/t/03require.t
+++ b/cpan/version/t/03require.t
@@ -8,8 +8,10 @@ use Test::More qw/no_plan/;
 use File::Spec;
 
 BEGIN {
-    my $coretests = File::Spec->catpath(
-        (File::Spec->splitpath($0))[0,1], 'coretests.pm'
+    my $coretests = File::Spec->rel2abs(
+        File::Spec->catpath(
+            (File::Spec->splitpath($0))[0,1], 'coretests.pm'
+        )
     );
     require $coretests;
 }
@@ -17,7 +19,7 @@ BEGIN {
 # Don't want to use, because we need to make sure that the import doesn't
 # fire just yet (some code does this to avoid importing qv() and delare()).
 require_ok("version");
-is $version::VERSION, 0.9917, "Make sure we have the correct class";
+is $version::VERSION, 0.9918, "Make sure we have the correct class";
 ok(!"main"->can("qv"), "We don't have the imported qv()");
 ok(!"main"->can("declare"), "We don't have the imported declare()");
 
diff --git a/cpan/version/t/04strict_lax.t b/cpan/version/t/04strict_lax.t
index 298fcf7..861e4df 100644
--- a/cpan/version/t/04strict_lax.t
+++ b/cpan/version/t/04strict_lax.t
@@ -21,6 +21,21 @@ SKIP: {
         ($v) = ( "snapshot-v1.2.3ga-001-432" =~ /($version::STRICT)/ );
         is $v, 'v1.2.3', "Extract just the version: $v";
     }
+
+    is ref($version::LAX_DECIMAL_VERSION), 'Regexp', 'Can see $version::LAX_DECIMAL_VERSION '.$version::LAX_DECIMAL_VERSION ;
+    is ref($version::LAX_DOTTED_DECIMAL_VERSION), 'Regexp', 'Can see $version::LAX_DOTTED_DECIMAL_VERSION '.$version::LAX_DOTTED_DECIMAL_VERSION ;
+    is ref($version::STRICT_DECIMAL_VERSION), 'Regexp', 'Can see $version::STRICT_DECIMAL_VERSION '.$version::STRICT_DECIMAL_VERSION;
+    is ref($version::STRICT_DOTTED_DECIMAL_VERSION), 'Regexp', 'Can see $version::STRICT_DOTTED_DECIMAL_VERSION '.$version::STRICT_DOTTED_DECIMAL_VERSION;
+    { # https://rt.cpan.org/Ticket/Display.html?id=119669
+        ($v) = ( "snapshot-1.2.3ga-001-432" =~ /($version::LAX_DOTTED_DECIMAL_VERSION)/ );
+        is $v, '1.2.3', "Extract just the version: $v";
+        ($v) = ( "snapshot-1.2ga-001-432" =~ /($version::LAX_DECIMAL_VERSION)/ );
+        is $v, '1.2', "Extract just the version: $v";
+        ($v) = ( "snapshot-v1.2.3ga-001-432" =~ /($version::STRICT_DOTTED_DECIMAL_VERSION)/ );
+        is $v, 'v1.2.3', "Extract just the version: $v";
+        ($v) = ( "snapshot-1.2ga-001-432" =~ /($version::STRICT_DECIMAL_VERSION)/ );
+        is $v, '1.2', "Extract just the version: $v";
+      }
 }
 
 
diff --git a/cpan/version/t/05sigdie.t b/cpan/version/t/05sigdie.t
index 6776adc..3801a35 100644
--- a/cpan/version/t/05sigdie.t
+++ b/cpan/version/t/05sigdie.t
@@ -14,7 +14,7 @@ BEGIN {
 }
 
 BEGIN {
-    use version 0.9917;
+    use version 0.9918;
 }
 
 pass "Didn't get caught by the wrong DIE handler, which is a good thing";
diff --git a/cpan/version/t/06noop.t b/cpan/version/t/06noop.t
index f118786..6c6de7f 100644
--- a/cpan/version/t/06noop.t
+++ b/cpan/version/t/06noop.t
@@ -7,7 +7,7 @@
 use Test::More qw/no_plan/;
 
 BEGIN {
-    use_ok('version', 0.9917);
+    use_ok('version', 0.9918);
 }
 
 my $v1 = version->new('1.2');
diff --git a/cpan/version/t/07locale.t b/cpan/version/t/07locale.t
index 1dcc6db..a197bdc 100644
--- a/cpan/version/t/07locale.t
+++ b/cpan/version/t/07locale.t
@@ -11,7 +11,7 @@ use Test::More tests => 8;
 use Config;
 
 BEGIN {
-    use_ok('version', 0.9917);
+    use_ok('version', 0.9918);
 }
 
 SKIP: {
diff --git a/cpan/version/t/08_corelist.t b/cpan/version/t/08_corelist.t
index 4678c14..92a76bd 100644
--- a/cpan/version/t/08_corelist.t
+++ b/cpan/version/t/08_corelist.t
@@ -5,7 +5,7 @@
 #########################
 
 use Test::More tests => 3;
-use_ok("version", 0.9917);
+use_ok("version", 0.9918);
 
 # do strict lax tests in a sub to isolate a package to test importing
 SKIP: {
diff --git a/cpan/version/t/09_list_util.t b/cpan/version/t/09_list_util.t
index 6e94839..a263c2d 100644
--- a/cpan/version/t/09_list_util.t
+++ b/cpan/version/t/09_list_util.t
@@ -4,7 +4,7 @@
 #########################
 
 use strict;
-use_ok("version", 0.9917);
+use_ok("version", 0.9918);
 use Test::More;
 
 BEGIN {
diff --git a/cpan/version/t/11_taint.t b/cpan/version/t/11_taint.t
new file mode 100644
index 0000000..5307b01
--- /dev/null
+++ b/cpan/version/t/11_taint.t
@@ -0,0 +1,24 @@
+#!perl -T
+use Test::More;
+use version;
+
+BEGIN {
+    eval "use Test::Taint";
+    if ($@) {
+	plan skip_all => "No Test::Taint available";
+    } else {
+	plan tests => 6;
+    }
+}
+
+taint_checking_ok();
+my $v = 'v1.2.3';
+taint($v);
+tainted_ok($v, 'Set string as tainted');
+my $v2 = version->parse($v);
+isnt("$v2", '', 'Correctly parsed the tainted string');
+tainted_ok($v2, 'Resulting version object is tainted');
+
+my $vs = "$v2";
+tainted_ok($vs, 'Stringified object still tainted');
+is $v2, 'v1.2.3', 'Comparison to tainted object';
diff --git a/t/porting/customized.dat b/t/porting/customized.dat
index 5014b3e..4f247c5 100644
--- a/t/porting/customized.dat
+++ b/t/porting/customized.dat
@@ -80,4 +80,4 @@ Test::Harness cpan/Test-Harness/lib/TAP/Parser/YAMLish/Writer.pm bf1fbfff9720330
 Test::Harness cpan/Test-Harness/lib/Test/Harness.pm da2d76ba673372da129060c9d0adb8cf0d91f9f7
 Test::Simple cpan/Test-Simple/t/Test2/modules/IPC/Driver/Files.t 59648b5745fda06177d81c2c21f55b09f6e129bb
 autodie cpan/autodie/t/mkdir.t 9e70d2282a3cc7d76a78bf8144fccba20fb37dac
-version cpan/version/lib/version.pm a032a751524bdd07a93c945d2a1703abe7ad8ef0
+version cpan/version/lib/version.pm bee369df1bd84e09107a90d72ec12c38bcb97cce
diff --git a/vutil.c b/vutil.c
index bd51707..c033820 100644
--- a/vutil.c
+++ b/vutil.c
@@ -968,7 +968,11 @@ Perl_vstringify(pTHX_ SV *vs)
     if (svp) {
 	SV *pv;
 	pv = *svp;
-	if ( SvPOK(pv) )
+	if ( SvPOK(pv)
+#if PERL_VERSION_LT(5,17,2)
+	    || SvPOKp(pv)
+#endif
+	)
 	    return newSVsv(pv);
 	else
 	    return &PL_sv_undef;
diff --git a/vutil.h b/vutil.h
index a60ca9d..e291408 100644
--- a/vutil.h
+++ b/vutil.h
@@ -115,7 +115,7 @@ S_croak_xs_usage(pTHX_ const CV *const cv, const char *const params)
             Perl_croak_nocontext("Usage: %s(%s)", gvname, params);
     } else {
         /* Pants. I don't think that it should be possible to get here. */
-        Perl_croak_nocontext("Usage: CODE(0x%"UVxf")(%s)", PTR2UV(cv), params);
+        Perl_croak_nocontext("Usage: CODE(0x%" UVxf ")(%s)", PTR2UV(cv), params);
     }
 }
 
diff --git a/vxs.inc b/vxs.inc
index d246837..b4aa0c6 100644
--- a/vxs.inc
+++ b/vxs.inc
@@ -138,7 +138,7 @@ VXS(universal_version)
 			    name, SvPVx_nolen_const(req));
 #else
 		Perl_croak(aTHX_
-			   "%"HEKf" does not define $%"HEKf
+			   "%" HEKf " does not define $%"HEKf
 			   "::VERSION--version check failed",
 			   HEKfARG(name), HEKfARG(name));
 #endif
@@ -146,7 +146,8 @@ VXS(universal_version)
 	    else {
 #if PERL_VERSION >= 8
 		Perl_croak(aTHX_
-			     "%"SVf" defines neither package nor VERSION--version check failed",
+			     "%" SVf " defines neither package nor VERSION--"
+                             "version check failed",
 			     (void*)(ST(0)) );
 #else
 		Perl_croak(aTHX_ "%s does not define $%s::VERSION--version check failed",
@@ -162,7 +163,7 @@ VXS(universal_version)
 	}
 
 	if ( VCMP( req, sv ) > 0 ) {
-	    if ( hv_existss(MUTABLE_HV(SvRV(req)), "qv") ) {
+	    if ( hv_exists(MUTABLE_HV(SvRV(req)), "qv", 2 ) ) {
 		req = VNORMAL(req);
 		sv  = VNORMAL(sv);
 	    }
@@ -170,8 +171,8 @@ VXS(universal_version)
 		req = VSTRINGIFY(req);
 		sv  = VSTRINGIFY(sv);
 	    }
-	    Perl_croak(aTHX_ "%"HEKf" version %"SVf" required--"
-		"this is only version %"SVf"", HEKfARG(HvNAME_HEK(pkg)),
+	    Perl_croak(aTHX_ "%" HEKf " version %" SVf " required--"
+		"this is only version %" SVf, HEKfARG(HvNAME_HEK(pkg)),
 		SVfARG(sv_2mortal(req)),
 		SVfARG(sv_2mortal(sv)));
 	}
-- 
2.7.4

@p5pRT
Copy link
Author

p5pRT commented Jun 1, 2017

From @jkeenan

Thanks, applied to blead (post-code freeze) in commit dddb227.

Marking ticket Resolved.

--
James E Keenan (jkeenan@​cpan.org)

@p5pRT
Copy link
Author

p5pRT commented Jun 1, 2017

The RT System itself - Status changed from 'new' to 'open'

@p5pRT
Copy link
Author

p5pRT commented Jun 1, 2017

@jkeenan - Status changed from 'open' to 'resolved'

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

No branches or pull requests

1 participant