1 This patch fixes a regex parsing compatibility issue with Perl 5.26.0.
2 It manifests during the configure phase of at-spi2-core like this:
5 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.
8 Copied from Gentoo and MSYS2:
10 https://gitweb.gentoo.org/repo/gentoo.git/tree/dev-util/intltool/files/intltool-0.51.0-perl-5.26.patch?id=1105187fc65d8bf643e682fcef39620dcfd9326a
11 https://github.com/Alexpux/MSYS2-packages/blob/0d3f442553ae4fc8798e32cbf44c4252fa8f3c07/intltool/perl-5.22-compatibility.patch
13 #diff -ruN intltool-0.51.0.orig/intltool-update.in intltool-0.51.0/intltool-update.in
14 #--- intltool-0.51.0.orig/intltool-update.in 2017-06-28 00:47:20.889269294 +0200
15 #+++ intltool-0.51.0/intltool-update.in 2017-06-28 00:48:14.592271529 +0200
16 #@@ -1068,7 +1068,7 @@
19 # # Ignore recursive definitions of variables
20 #- $sub = $varhash{$2} if defined $varhash{$2} and $varhash{$2} !~ /\${?$2}?/;
21 #+ $sub = $varhash{$2} if defined $varhash{$2} and $varhash{$2} !~ /\$\{?$2}?/;
23 # return SubstituteVariable ("$untouched$sub$rest");
25 --- intltool-0.51.0.orig/intltool-update.in 2015-03-09 02:39:54.000000000 +0100
26 +++ intltool-0.51.0.orig/intltool-update.in 2015-06-19 01:52:07.171228154 +0200
31 - if ($str =~ /^(.*)\${?([A-Z_]+)}?(.*)$/)
32 + if ($str =~ /^(.*)\$\{?([A-Z_]+)}?(.*)$/)
39 # Ignore recursive definitions of variables
40 - $sub = $varhash{$2} if defined $varhash{$2} and $varhash{$2} !~ /\${?$2}?/;
41 + $sub = $varhash{$2} if defined $varhash{$2} and $varhash{$2} !~ /\$\{?$2}?/;
43 return SubstituteVariable ("$untouched$sub$rest");
45 @@ -1190,10 +1190,10 @@
47 $version =~ s/\(+$//g;
49 - $varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\${?AC_PACKAGE_NAME}?/);
50 - $varhash{"PACKAGE"} = $name if (not $name =~ /\${?PACKAGE}?/);
51 - $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\${?AC_PACKAGE_VERSION}?/);
52 - $varhash{"VERSION"} = $version if (not $name =~ /\${?VERSION}?/);
53 + $varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\$\{?AC_PACKAGE_NAME}?/);
54 + $varhash{"PACKAGE"} = $name if (not $name =~ /\$\{?PACKAGE}?/);
55 + $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\$\{?AC_PACKAGE_VERSION}?/);
56 + $varhash{"VERSION"} = $version if (not $name =~ /\$\{?VERSION}?/);
59 if ($conf_source =~ /^AC_INIT\(([^,\)]+),([^,\)]+)[,]?([^,\)]+)?/m)
60 @@ -1219,11 +1219,11 @@
61 $version =~ s/\(+$//g;
62 $bugurl =~ s/\(+$//g if (defined $bugurl);
64 - $varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\${?AC_PACKAGE_NAME}?/);
65 - $varhash{"PACKAGE"} = $name if (not $name =~ /\${?PACKAGE}?/);
66 - $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\${?AC_PACKAGE_VERSION}?/);
67 - $varhash{"VERSION"} = $version if (not $name =~ /\${?VERSION}?/);
68 - $varhash{"PACKAGE_BUGREPORT"} = $bugurl if (defined $bugurl and not $bugurl =~ /\${?\w+}?/);
69 + $varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\$\{?AC_PACKAGE_NAME}?/);
70 + $varhash{"PACKAGE"} = $name if (not $name =~ /\$\{?PACKAGE}?/);
71 + $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\$\{?AC_PACKAGE_VERSION}?/);
72 + $varhash{"VERSION"} = $version if (not $name =~ /\$\{?VERSION}?/);
73 + $varhash{"PACKAGE_BUGREPORT"} = $bugurl if (defined $bugurl and not $bugurl =~ /\$\{?\w+}?/);
76 # \s makes this not work, why?