[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