Perl 5.22 has deprecated some regex features, which causes warnings when
intltool-update runs:

Unescaped left brace in regex is deprecated, passed through in regex; marked by
<-- HERE in m/^(.*)\${ <-- HERE ?([A-Z_]+)}?(.*)$/ at
/data/poky-master/tmp/sysroots/x86_64-linux/usr/bin/intltool-update line 1065.

Take a patch from Debian to solve this.

Upstream-Status: Submitted (https://bugs.launchpad.net/intltool/+bug/1465010)
Signed-off-by: Ross Burton <ross.burton@intel.com>

--- intltool-0.51.0-ORIG/intltool-update.in	2015-05-27 00:20:43.038379963 +0200
+++ intltool-0.51.0/intltool-update.in	2015-05-27 00:23:53.309078052 +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?