Trying to build the firmware with a recent version of Perl will fail due to an improperly-formatted Regex string in Automake. This was fixed in Automake 1.15.1.
Steps to reproduce
Clone onto a recent version of Ubuntu (18.04.2 in this case)
Run usual setup process (./scripts/feeds update serval, ./scripts/feeds install -p serval, ./scripts/feeds install -a serval)
Run make world
Build fails when compiling Automake
Output log
tom@ubuntu-vm:~/Repos/serval-openwrt$ make world -j1 V=s
WARNING: your configuration is out of sync. Please run make menuconfig, oldconfig or defconfig!
make[1]: Entering directory '/home/tom/Repos/serval-openwrt'
make[2]: Entering directory '/home/tom/Repos/serval-openwrt'
+ mkdir -p /home/tom/Repos/serval-openwrt/staging_dir/target-mips_34kc_uClibc-0.9.33.2
+ cd /home/tom/Repos/serval-openwrt/staging_dir/target-mips_34kc_uClibc-0.9.33.2
+ mkdir -p bin lib include stamp
mkdir -p /home/tom/Repos/serval-openwrt/build_dir/target-mips_34kc_uClibc-0.9.33.2/stamp
touch /home/tom/Repos/serval-openwrt/staging_dir/target-mips_34kc_uClibc-0.9.33.2/.prepared
+ mkdir -p /home/tom/Repos/serval-openwrt/staging_dir/host
+ cd /home/tom/Repos/serval-openwrt/staging_dir/host
+ mkdir -p bin lib include stamp
mkdir -p /home/tom/Repos/serval-openwrt/build_dir/host/stamp /home/tom/Repos/serval-openwrt/staging_dir/host/include/sys
install -m0644 /home/tom/Repos/serval-openwrt/tools/include/*.h /home/tom/Repos/serval-openwrt/staging_dir/host/include/
install -m0644 /home/tom/Repos/serval-openwrt/tools/include/sys/*.h /home/tom/Repos/serval-openwrt/staging_dir/host/include/sys/
ln -sf lib /home/tom/Repos/serval-openwrt/staging_dir/host/lib64
touch /home/tom/Repos/serval-openwrt/staging_dir/host/.prepared
make[3]: Entering directory '/home/tom/Repos/serval-openwrt/tools/patch'
make[3]: Leaving directory '/home/tom/Repos/serval-openwrt/tools/patch'
make[3]: Entering directory '/home/tom/Repos/serval-openwrt/tools/patch'
make[3]: Leaving directory '/home/tom/Repos/serval-openwrt/tools/patch'
make[3]: Entering directory '/home/tom/Repos/serval-openwrt/tools/sed'
make[3]: Leaving directory '/home/tom/Repos/serval-openwrt/tools/sed'
make[3]: Entering directory '/home/tom/Repos/serval-openwrt/tools/sed'
make[3]: Leaving directory '/home/tom/Repos/serval-openwrt/tools/sed'
make[3]: Entering directory '/home/tom/Repos/serval-openwrt/tools/m4'
make[3]: Leaving directory '/home/tom/Repos/serval-openwrt/tools/m4'
make[3]: Entering directory '/home/tom/Repos/serval-openwrt/tools/m4'
make[3]: Leaving directory '/home/tom/Repos/serval-openwrt/tools/m4'
make[3]: Entering directory '/home/tom/Repos/serval-openwrt/tools/autoconf'
make[3]: Leaving directory '/home/tom/Repos/serval-openwrt/tools/autoconf'
make[3]: Entering directory '/home/tom/Repos/serval-openwrt/tools/autoconf'
make[3]: Leaving directory '/home/tom/Repos/serval-openwrt/tools/autoconf'
make[3]: Entering directory '/home/tom/Repos/serval-openwrt/tools/pkg-config'
make[3]: Leaving directory '/home/tom/Repos/serval-openwrt/tools/pkg-config'
make[3]: Entering directory '/home/tom/Repos/serval-openwrt/tools/pkg-config'
make[3]: Leaving directory '/home/tom/Repos/serval-openwrt/tools/pkg-config'
make[3]: Entering directory '/home/tom/Repos/serval-openwrt/tools/xz'
make[3]: Leaving directory '/home/tom/Repos/serval-openwrt/tools/xz'
make[3]: Entering directory '/home/tom/Repos/serval-openwrt/tools/xz'
make[3]: Leaving directory '/home/tom/Repos/serval-openwrt/tools/xz'
make[3]: Entering directory '/home/tom/Repos/serval-openwrt/tools/automake'
(cd /home/tom/Repos/serval-openwrt/build_dir/host/automake-1.15; AUTOM4TE=/home/tom/Repos/serval-openwrt/staging_dir/host/bin/autom4te AUTOCONF=/home/tom/Repos/serval-openwrt/staging_dir/host/bin/autoconf AUTOMAKE=/home/tom/Repos/serval-openwrt/staging_dir/host/bin/automake ACLOCAL=/home/tom/Repos/serval-openwrt/staging_dir/host/bin/aclocal AUTOHEADER=/home/tom/Repos/serval-openwrt/staging_dir/host/bin/autoheader LIBTOOLIZE=/home/tom/Repos/serval-openwrt/staging_dir/host/bin/libtoolize LIBTOOL=/home/tom/Repos/serval-openwrt/staging_dir/host/bin/libtool M4=/home/tom/Repos/serval-openwrt/staging_dir/host/bin/m4 AUTOPOINT=true STAGING_DIR="" ./bootstrap.sh)
Unescaped left brace in regex is illegal here in regex; marked by <-- HERE in m/\${ <-- HERE ([^ \t=:+{}]+)}/ at ./bin/automake.tmp line 3938.
Makefile:50: recipe for target '/home/tom/Repos/serval-openwrt/build_dir/host/automake-1.15/.configured' failed
make[3]: *** [/home/tom/Repos/serval-openwrt/build_dir/host/automake-1.15/.configured] Error 255
make[3]: Leaving directory '/home/tom/Repos/serval-openwrt/tools/automake'
tools/Makefile:122: recipe for target 'tools/automake/compile' failed
make[2]: *** [tools/automake/compile] Error 2
make[2]: Leaving directory '/home/tom/Repos/serval-openwrt'
tools/Makefile:121: recipe for target '/home/tom/Repos/serval-openwrt/staging_dir/target-mips_34kc_uClibc-0.9.33.2/stamp/.tools_install_yynyynynynyyyyyyyyyyyyyyyyyyynyyyyynnyyynyyynnnyy' failed
make[1]: *** [/home/tom/Repos/serval-openwrt/staging_dir/target-mips_34kc_uClibc-0.9.33.2/stamp/.tools_install_yynyynynynyyyyyyyyyyyyyyyyyyynyyyyynnyyynyyynnnyy] Error 2
make[1]: Leaving directory '/home/tom/Repos/serval-openwrt'
/home/tom/Repos/serval-openwrt/include/toplevel.mk:181: recipe for target 'world' failed
make: *** [world] Error 2
Description
Trying to build the firmware with a recent version of Perl will fail due to an improperly-formatted Regex string in Automake. This was fixed in Automake 1.15.1.
Steps to reproduce
./scripts/feeds update serval
,./scripts/feeds install -p serval
,./scripts/feeds install -a serval
)make world
Output log