[arch-commits] Commit in perl/trunk (PKGBUILD perl-vutil-revert.patch)

Florian Pritz bluewind at nymeria.archlinux.org
Thu Jun 19 19:22:10 UTC 2014


    Date: Thursday, June 19, 2014 @ 21:22:10
  Author: bluewind
Revision: 215309

upgpkg: perl 5.20.0-5

fix 'Invalid version format' errors, FS#40718

Added:
  perl/trunk/perl-vutil-revert.patch
Modified:
  perl/trunk/PKGBUILD

-------------------------+
 PKGBUILD                |    8 +++++--
 perl-vutil-revert.patch |   50 ++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 56 insertions(+), 2 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2014-06-19 18:40:07 UTC (rev 215308)
+++ PKGBUILD	2014-06-19 19:22:10 UTC (rev 215309)
@@ -7,7 +7,7 @@
 
 pkgname=perl
 pkgver=5.20.0
-pkgrel=4
+pkgrel=5
 pkgdesc="A highly capable, feature-rich programming language"
 arch=(i686 x86_64)
 license=('GPL' 'PerlArtistic')
@@ -138,15 +138,19 @@
 # Add your own provides here
 provides=(${provides[@]})
 source=(http://www.cpan.org/src/5.0/perl-${pkgver}.tar.bz2
+        perl-vutil-revert.patch
         perlbin.sh
 		perlbin.csh)
 options=('makeflags' '!purge')
 md5sums=('20cbecd4e9e880ee7a50a136c8b1484e'
+         '2a1e2849722b2b5be33bd5c50a69e77a'
          '5ed2542fdb9a60682f215bd33701e61a'
-		 '1f0cbbee783e8a6d32f01be5118e0d5e')
+         '1f0cbbee783e8a6d32f01be5118e0d5e')
 
 prepare() {
   cd ${srcdir}/${pkgname}-${pkgver}
+  patch -p1 -i "$srcdir/perl-vutil-revert.patch"
+  sed -i 's#version vutil.c .*#version vutil.c f1c7e4778fcf78c04141f562b80183b91cbbf6c9#' t/porting/customized.dat
 }
 
 build() {

Added: perl-vutil-revert.patch
===================================================================
--- perl-vutil-revert.patch	                        (rev 0)
+++ perl-vutil-revert.patch	2014-06-19 19:22:10 UTC (rev 215309)
@@ -0,0 +1,50 @@
+--- perl-5.20.0/vutil.c	2014-05-26 09:34:21.000000000 -0400
++++ perl-5.20.0-patched/vutil.c	2014-06-19 09:25:19.024409700 -0400
+@@ -585,11 +585,29 @@
+     {
+ 	STRLEN len;
+ 
++#ifdef USE_LOCALE_NUMERIC
++	char *loc = setlocale(LC_NUMERIC, NULL);
++	if (loc) {
++		/* setlocale returns NULL on error */
++		if (loc[0] == 'C' && loc[1] == '\0') {
++			/* LC_NUMERIC is already C, nothing to do */
++			loc = NULL;
++		}
++		else {
++			loc = savepv(loc);
++			if (!setlocale(LC_NUMERIC, "C")) {
++			    /* error! do not restore locale later */
++			    Safefree(loc);
++			    loc = NULL;
++			}
++		}
++	}
++#endif
++
+ 	/* may get too much accuracy */ 
+ 	char tbuf[64];
+ 	SV *sv = SvNVX(ver) > 10e50 ? newSV(64) : 0;
+ 	char *buf;
+-        STORE_NUMERIC_LOCAL_SET_STANDARD();
+ 	if (sv) {
+ 	    Perl_sv_catpvf(aTHX_ sv, "%.9"NVff, SvNVX(ver));
+ 	    len = SvCUR(sv);
+@@ -599,7 +617,15 @@
+ 	    len = my_snprintf(tbuf, sizeof(tbuf), "%.9"NVff, SvNVX(ver));
+ 	    buf = tbuf;
+ 	}
+-        RESTORE_NUMERIC_LOCAL();
++
++#ifdef USE_LOCALE_NUMERIC
++	if (loc) {
++	    /* restore locale */
++	    setlocale(LC_NUMERIC, loc);
++	    Safefree(loc);
++	}
++#endif
++
+ 	while (buf[len-1] == '0' && len > 0) len--;
+ 	if ( buf[len-1] == '.' ) len--; /* eat the trailing decimal */
+ 	version = savepvn(buf, len);




More information about the arch-commits mailing list