diff mbox

intltool: add patch to fix compatibility with Perl 5.26

Message ID 20170608070344.30718-1-joerg.krause@embedded.rocks
State Accepted
Headers show

Commit Message

Jörg Krause June 8, 2017, 7:03 a.m. UTC
When Perl 5.26 is installed on the host, building some packages like
avahi fail, because of intltool-update:

```
Unescaped left brace in regex is illegal here in regex; marked by <-- HERE in m/^(.*)\${ <-- HERE ?([A-Z_]+)}?(.*)$/ at $BUILDROOT/host/usr/bin/intltool-update line 1065.
```

Apparently, this has been a warning before Perl 5.26, but now it is an
error.

Fetch from:
https://github.com/Alexpux/MSYS2-packages/blob/master/intltool/perl-5.22-compatibility.patch

Reported upstream:
https://bugs.launchpad.net/intltool/+bug/1696658

Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks>
---
 .../intltool/0001-perl-5.26-compatibility.patch    | 53 ++++++++++++++++++++++
 1 file changed, 53 insertions(+)
 create mode 100644 package/intltool/0001-perl-5.26-compatibility.patch

Comments

Thomas Petazzoni June 11, 2017, 1:52 p.m. UTC | #1
Hello,

On Thu,  8 Jun 2017 09:03:44 +0200, Jörg Krause wrote:
> When Perl 5.26 is installed on the host, building some packages like
> avahi fail, because of intltool-update:
> 
> ```
> Unescaped left brace in regex is illegal here in regex; marked by <-- HERE in m/^(.*)\${ <-- HERE ?([A-Z_]+)}?(.*)$/ at $BUILDROOT/host/usr/bin/intltool-update line 1065.
> ```
> 
> Apparently, this has been a warning before Perl 5.26, but now it is an
> error.
> 
> Fetch from:
> https://github.com/Alexpux/MSYS2-packages/blob/master/intltool/perl-5.22-compatibility.patch
> 
> Reported upstream:
> https://bugs.launchpad.net/intltool/+bug/1696658
> 
> Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks>
> ---
>  .../intltool/0001-perl-5.26-compatibility.patch    | 53 ++++++++++++++++++++++
>  1 file changed, 53 insertions(+)
>  create mode 100644 package/intltool/0001-perl-5.26-compatibility.patch

Applied to master, thanks.

FWIW, the bug was already reported upstream at
https://bugs.launchpad.net/intltool/+bug/1490906.

Peter: this is a build fix, we perhaps want it in the LTS branches?

Best regards,

Thomas
Peter Korsgaard June 13, 2017, 9:13 p.m. UTC | #2
>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

 > Hello,
 > On Thu,  8 Jun 2017 09:03:44 +0200, Jörg Krause wrote:
 >> When Perl 5.26 is installed on the host, building some packages like
 >> avahi fail, because of intltool-update:

 > Applied to master, thanks.

 > FWIW, the bug was already reported upstream at
 > https://bugs.launchpad.net/intltool/+bug/1490906.

 > Peter: this is a build fix, we perhaps want it in the LTS branches?

Yes, I think so. Committed to 2017.02.x and 2017.05.x, thanks!
diff mbox

Patch

diff --git a/package/intltool/0001-perl-5.26-compatibility.patch b/package/intltool/0001-perl-5.26-compatibility.patch
new file mode 100644
index 0000000000..ab39d46821
--- /dev/null
+++ b/package/intltool/0001-perl-5.26-compatibility.patch
@@ -0,0 +1,53 @@ 
+Fix regex errors thrown by Perl 5.26:
+
+Unescaped left brace in regex is illegal here in regex; marked by <-- HERE in m/^(.*)\${ <-- HERE ?([A-Z_]+)}?(.*)$/ at $BUILDROOT/host/usr/bin/intltool-update line 1065.
+
+Fetched from:
+https://github.com/Alexpux/MSYS2-packages/blob/master/intltool/perl-5.22-compatibility.patch
+
+Reported upstream:
+https://bugs.launchpad.net/intltool/+bug/1696658
+
+--- 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;
+@@ -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?
\ No newline at end of file