guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

01/01: gnu: intltool: Fix a compatibility issue with Perl 5.26.0.


From: Leo Famulari
Subject: 01/01: gnu: intltool: Fix a compatibility issue with Perl 5.26.0.
Date: Thu, 29 Jun 2017 16:56:38 -0400 (EDT)

lfam pushed a commit to branch core-updates
in repository guix.

commit 92cb946bd9d78cb8f6aa8418d505f52da6894ab4
Author: Leo Famulari <address@hidden>
Date:   Wed Jun 14 11:42:38 2017 -0400

    gnu: intltool: Fix a compatibility issue with Perl 5.26.0.
    
    * gnu/packages/patches/intltool-perl-compatibility.patch: New file.
    * gnu/local.mk (dist_patch_DATA): Add it.
    * gnu/packages/glib.scm (intltool)[source]: Use it.
---
 gnu/local.mk                                       |  1 +
 gnu/packages/glib.scm                              |  1 +
 .../patches/intltool-perl-compatibility.patch      | 76 ++++++++++++++++++++++
 3 files changed, 78 insertions(+)

diff --git a/gnu/local.mk b/gnu/local.mk
index 5328a80..54c099b 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -682,6 +682,7 @@ dist_patch_DATA =                                           
\
   %D%/packages/patches/icu4c-reset-keyword-list-iterator.patch \
   %D%/packages/patches/id3lib-CVE-2007-4460.patch                      \
   %D%/packages/patches/ilmbase-fix-tests.patch                 \
+  %D%/packages/patches/intltool-perl-compatibility.patch       \
   %D%/packages/patches/isl-0.11.1-aarch64-support.patch        \
   %D%/packages/patches/jbig2dec-ignore-testtest.patch          \
   %D%/packages/patches/jbig2dec-CVE-2016-9601.patch            \
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index fcd1daf..926703e 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -347,6 +347,7 @@ bindings to call into the C library.")
              (uri (string-append "https://launchpad.net/intltool/trunk/";
                                  version "/+download/intltool-"
                                  version ".tar.gz"))
+             (patches (search-patches "intltool-perl-compatibility.patch"))
              (sha256
               (base32
                "1karx4sb7bnm2j67q0q74hspkfn6lqprpy5r99vkn5bb36a4viv7"))))
diff --git a/gnu/packages/patches/intltool-perl-compatibility.patch 
b/gnu/packages/patches/intltool-perl-compatibility.patch
new file mode 100644
index 0000000..b895ca7
--- /dev/null
+++ b/gnu/packages/patches/intltool-perl-compatibility.patch
@@ -0,0 +1,76 @@
+This patch fixes a regex parsing compatibility issue with Perl 5.26.0.
+It manifests during the configure phase of at-spi2-core like this:
+
+------
+Unescaped left brace in regex is illegal here in regex; marked by <-- HERE in 
m/^(.*)\${ <-- HERE ?([A-Z_]+)}?(.*)$/ at 
/gnu/store/...-intltool-0.51.0/bin/intltool-update line 1065.
+------
+
+Copied from Gentoo and MSYS2:
+
+https://gitweb.gentoo.org/repo/gentoo.git/tree/dev-util/intltool/files/intltool-0.51.0-perl-5.26.patch?id=1105187fc65d8bf643e682fcef39620dcfd9326a
+https://github.com/Alexpux/MSYS2-packages/blob/0d3f442553ae4fc8798e32cbf44c4252fa8f3c07/intltool/perl-5.22-compatibility.patch
+
+#diff -ruN intltool-0.51.0.orig/intltool-update.in 
intltool-0.51.0/intltool-update.in
+#--- intltool-0.51.0.orig/intltool-update.in   2017-06-28 00:47:20.889269294 
+0200
+#+++ intltool-0.51.0/intltool-update.in        2017-06-28 00:48:14.592271529 
+0200
+#@@ -1068,7 +1068,7 @@
+#      my $untouched = $1;
+#      my $sub = "";
+#         # Ignore recursive definitions of variables
+#-        $sub = $varhash{$2} if defined $varhash{$2} and $varhash{$2} !~ 
/\${?$2}?/;
+#+        $sub = $varhash{$2} if defined $varhash{$2} and $varhash{$2} !~ 
/\$\{?$2}?/;
+# 
+#      return SubstituteVariable ("$untouched$sub$rest");
+#     }
+--- intltool-0.51.0.orig/intltool-update.in    2015-03-09 02:39:54.000000000 
+0100
++++ intltool-0.51.0.orig/intltool-update.in    2015-06-19 01:52:07.171228154 
+0200
+@@ -1062,7 +1062,7 @@ 
+       }
+     }
+ 
+-    if ($str =~ /^(.*)\${?([A-Z_]+)}?(.*)$/)
++    if ($str =~ /^(.*)\$\{?([A-Z_]+)}?(.*)$/)
+     {
+       my $rest = $3;
+       my $untouched = $1;
+@@ -1068,7 +1068,7 @@
+       my $untouched = $1;
+       my $sub = "";
+         # Ignore recursive definitions of variables
+-        $sub = $varhash{$2} if defined $varhash{$2} and $varhash{$2} !~ 
/\${?$2}?/;
++        $sub = $varhash{$2} if defined $varhash{$2} and $varhash{$2} !~ 
/\$\{?$2}?/;
+ 
+       return SubstituteVariable ("$untouched$sub$rest");
+     }
+@@ -1190,10 +1190,10 @@ 
+       $name    =~ s/\(+$//g;
+       $version =~ s/\(+$//g;
+ 
+-      $varhash{"PACKAGE_NAME"} = $name if (not $name =~ 
/\${?AC_PACKAGE_NAME}?/);
+-      $varhash{"PACKAGE"} = $name if (not $name =~ /\${?PACKAGE}?/);
+-      $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ 
/\${?AC_PACKAGE_VERSION}?/);
+-      $varhash{"VERSION"} = $version if (not $name =~ /\${?VERSION}?/);
++      $varhash{"PACKAGE_NAME"} = $name if (not $name =~ 
/\$\{?AC_PACKAGE_NAME}?/);
++      $varhash{"PACKAGE"} = $name if (not $name =~ /\$\{?PACKAGE}?/);
++      $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ 
/\$\{?AC_PACKAGE_VERSION}?/);
++      $varhash{"VERSION"} = $version if (not $name =~ /\$\{?VERSION}?/);
+     }
+ 
+     if ($conf_source =~ /^AC_INIT\(([^,\)]+),([^,\)]+)[,]?([^,\)]+)?/m)
+@@ -1219,11 +1219,11 @@ 
+       $version =~ s/\(+$//g;
+         $bugurl  =~ s/\(+$//g if (defined $bugurl);
+ 
+-      $varhash{"PACKAGE_NAME"} = $name if (not $name =~ 
/\${?AC_PACKAGE_NAME}?/);
+-      $varhash{"PACKAGE"} = $name if (not $name =~ /\${?PACKAGE}?/);
+-      $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ 
/\${?AC_PACKAGE_VERSION}?/);
+-      $varhash{"VERSION"} = $version if (not $name =~ /\${?VERSION}?/);
+-        $varhash{"PACKAGE_BUGREPORT"} = $bugurl if (defined $bugurl and not 
$bugurl =~ /\${?\w+}?/);
++      $varhash{"PACKAGE_NAME"} = $name if (not $name =~ 
/\$\{?AC_PACKAGE_NAME}?/);
++      $varhash{"PACKAGE"} = $name if (not $name =~ /\$\{?PACKAGE}?/);
++      $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ 
/\$\{?AC_PACKAGE_VERSION}?/);
++      $varhash{"VERSION"} = $version if (not $name =~ /\$\{?VERSION}?/);
++        $varhash{"PACKAGE_BUGREPORT"} = $bugurl if (defined $bugurl and not 
$bugurl =~ /\$\{?\w+}?/);
+     }
+ 
+     # \s makes this not work, why?



reply via email to

[Prev in Thread] Current Thread [Next in Thread]