How is one supposed to compile Microsoft's php5.6? (aka https://github.com/microsoft/php-src/tree/PHP-5.6-security-backports ) - When I try "the normal way"-ish, make fails, the script I use (custom script):
#!/bin/bash
set -e
function cmd {
source_line="${BASH_LINENO[0]}"
echo "$@"
t="$(date +%s.%N)"
eval "$@"
ret=$?
t="$(bc <<<"$(date +%s.%N) - $t")"
t="$(printf "%.2f" "$t")"
echo -e "Command from $source_line took \033[0;32m$t\033[0m seconds"
if [ $ret -ne 0 ]; then
errstr="Command failed with exit code $ret: $@"
echo "$errstr"
exit 1
fi
}
clone_php=0
if [ ! -d "php5.6-src" ]; then
clone_php=1
fi
if [ $clone_php -eq 1 ]; then
echo "Cloning PHP"
cmd "rm -rf php5.6-src"
cmd "git clone 'https://github.com/microsoft/php-src.git' --depth 1 --branch 'PHP-5.6-security-backports' php5.6-src"
echo "Cloning PHP done"
fi
cd "php5.6-src"
bison_bin_dir="$(pwd)/bison-2.7/build/bin"
install_bison=0
if [ ! -d "$bison_bin_dir" ]; then
install_bison=1
fi
if [ $install_bison -eq 1 ]; then
echo "Installing Bison 2.7"
cmd "rm -rfv bison-2.7"
cmd "wget 'http://ftp.gnu.org/gnu/bison/bison-2.7.tar.xz'"
cmd "tar xfv bison-2.7.tar.xz"
cd "bison-2.7"
cmd "wget 'https://raw.githubusercontent.com/rdslw/openwrt/e5d47f32131849a69a9267de51a30d6be1f0d0ac/tools/bison/patches/110-glibc-change-work-around.patch' -O- | git apply -"
cmd "mkdir -pv $(printf '%q' "$bison_bin_dir")"
cmd "./configure --prefix=$(printf '%q' "$bison_bin_dir")"
cmd "make -j8"
cmd "make install"
cd ..
echo "Installing Bison done"
fi
export PATH="$bison_bin_dir:$PATH"
libcurl_build_dir="$(pwd)/libcurl/build"
install_libcurl=0
if [ ! -d "$libcurl_build_dir" ]; then
install_libcurl=1
fi
if [ $install_libcurl -eq 1 ]; then
echo "Installing libcurl"
cmd "rm -rfv libcurl"
cmd "git clone 'https://github.com/curl/curl.git' --depth 1 libcurl"
cd "libcurl"
cmd "./buildconf"
cmd "./configure --with-openssl --disable-shared --enable-static --disable-ldap --disable-ldaps --disable-rtsp --disable-dict --disable-telnet --disable-tftp --disable-pop3 --disable-imap --disable-smb --disable-smtp --disable-gopher --disable-manual --disable-ipv6 --disable-sspi --disable-crypto-auth --disable-ntlm-wb --disable-tls-srp --without-zlib --without-libidn --without-librtmp --without-winidn --without-libssh2 --without-libpsl --without-nghttp2 --without-brotli --without-zstd --without-librtmp --without-libcurl-ldap --without-libcurl-dict --without-libcurl-telnet --without-libcurl-tftp --without-libcurl-manual --without-libcurl-imap --without-libcurl-pop3 --without-libcurl-smtp --without-libcurl-gopher --without-librtmp --without-librtmp --without-winidn --without-libssh2 --without-libidn --without-librtmp"
cmd "make -j8"
cmd "mkdir -pv $(printf '%q' "$libcurl_build_dir")"
cmd "make install prefix=$(printf '%q' "$libcurl_build_dir")"
cd ..
echo "Installing libcurl done"
fi
cmd "aclocal"
cmd "autoconf"
cmd "./buildconf --force"
cmd "./configure CFLAGS='-s -Os -g0' --disable-all --enable-cgi --enable-cli --disable-opcache-jit --disable-opcache --without-pcre-jit --with-curl=$(printf '%q' "$libcurl_build_dir") --with-libxml --with-openssl"
cmd "make -j8"
make -j8 fails with
./php5.6-src/libtool: line 947: X--mode=compile: command not found
./php5.6-src/libtool: line 947: X--mode=compile: command not found
./php5.6-src/libtool: line 947: X--mode=compile: command not found
./php5.6-src/libtool: line 1114: *** Warning: inferring the mode of operation is deprecated.: command not found
./php5.6-src/libtool: line 947: X--mode=compile: command not found
./php5.6-src/libtool: line 1114: *** Warning: inferring the mode of operation is deprecated.: command not found
./php5.6-src/libtool: line 1115: *** Future versions of Libtool will require --mode=MODE be specified.: command not found
./php5.6-src/libtool: line 1258: Xcc: command not found
./php5.6-src/libtool: line 1258: X-Iext/date/lib: No such file or directory
./php5.6-src/libtool: line 1115: *** Future versions of Libtool will require --mode=MODE be specified.: command not found
./php5.6-src/libtool: line 1258: Xcc: command not found
./php5.6-src/libtool: line 1114: *** Warning: inferring the mode of operation is deprecated.: command not found
./php5.6-src/libtool: line 1258: X-D: command not found
./php5.6-src/libtool: line 1115: *** Future versions of Libtool will require --mode=MODE be specified.: command not found
./php5.6-src/libtool: line 1258: Xcc: command not found
./php5.6-src/libtool: line 1258: XHAVE_TIMELIB_CONFIG_H=1: command not found
./php5.6-src/libtool: line 1258: X-Iext/date/lib: No such file or directory
./php5.6-src/libtool: line 947: X--mode=compile: command not found
./php5.6-src/libtool: line 1114: *** Warning: inferring the mode of operation is deprecated.: command not found
./php5.6-src/libtool: line 1115: *** Future versions of Libtool will require --mode=MODE be specified.: command not found
./php5.6-src/libtool: line 947: X--mode=compile: command not found
./php5.6-src/libtool: line 1258: Xcc: command not found
./php5.6-src/libtool: line 1258: X-Iext/date/lib: No such file or directory
./php5.6-src/libtool: line 947: X--mode=compile: command not found
./php5.6-src/libtool: line 1114: *** Warning: inferring the mode of operation is deprecated.: command not found
./php5.6-src/libtool: line 1258: X-D: command not found
./php5.6-src/libtool: line 1258: X-Iext/date/: No such file or directory
./php5.6-src/libtool: line 1115: *** Future versions of Libtool will require --mode=MODE be specified.: command not found
./php5.6-src/libtool: line 1258: XHAVE_TIMELIB_CONFIG_H=1: command not found
./php5.6-src/libtool: line 1258: X-D: command not found
./php5.6-src/libtool: line 1258: X-I./php5.6-src/ext/date/: No such file or directory
./php5.6-src/libtool: line 1258: Xcc: command not found
./php5.6-src/libtool: line 1258: X-Iext/date/: No such file or directory
./php5.6-src/libtool: line 1114: *** Warning: inferring the mode of operation is deprecated.: command not found
./php5.6-src/libtool: line 1258: XHAVE_TIMELIB_CONFIG_H=1: command not found
./php5.6-src/libtool: line 1115: *** Future versions of Libtool will require --mode=MODE be specified.: command not found
./php5.6-src/libtool: line 1258: X-I./php5.6-src/ext/date/: No such file or directory
./php5.6-src/libtool: line 1258: X-Iext/date/lib: No such file or directory
./php5.6-src/libtool: line 1258: X-Iext/date/lib: No such file or directory
./php5.6-src/libtool: line 1258: Xcc: command not found
./php5.6-src/libtool: line 1258: X-DPHP_ATOM_INC: command not found
./php5.6-src/libtool: line 1258: X-Iext/date/: No such file or directory
./php5.6-src/libtool: line 1258: X-D: command not found
./php5.6-src/libtool: line 1258: X-I./php5.6-src/ext/date/: No such file or directory
./php5.6-src/libtool: line 1258: XHAVE_TIMELIB_CONFIG_H=1: command not found
./php5.6-src/libtool: line 1258: X-I./php5.6-src/include: No such file or directory
./php5.6-src/libtool: line 1258: X-I./php5.6-src/main: No such file or directory
./php5.6-src/libtool: line 1114: *** Warning: inferring the mode of operation is deprecated.: command not found
./php5.6-src/libtool: line 1258: X-Iext/date/: No such file or directory
./php5.6-src/libtool: line 1258: X-DPHP_ATOM_INC: command not found
./php5.6-src/libtool: line 1115: *** Future versions of Libtool will require --mode=MODE be specified.: command not found
./php5.6-src/libtool: line 1258: X-I./php5.6-src: No such file or directory
./php5.6-src/libtool: line 1258: X-DPHP_ATOM_INC: command not found
./php5.6-src/libtool: line 947: X--mode=compile: command not found
./php5.6-src/libtool: line 1258: Xcc: command not found
./php5.6-src/libtool: line 1258: X-Iext/date/lib: No such file or directory
./php5.6-src/libtool: line 1258: X-Iext/date/lib: No such file or directory
./php5.6-src/libtool: line 1258: X-I./php5.6-src/include: No such file or directory
./php5.6-src/libtool: line 1258: X-I./php5.6-src/ext/date/lib: No such file or directory
./php5.6-src/libtool: line 1258: X-D: command not found
./php5.6-src/libtool: line 1258: X-I./php5.6-src/ext/ereg/regex: No such file or directory
./php5.6-src/libtool: line 1258: XHAVE_TIMELIB_CONFIG_H=1: command not found
./php5.6-src/libtool: line 1258: X-I./php5.6-src/libcurl/build/include: No such file or directory
./php5.6-src/libtool: line 1258: X-Iext/date/: No such file or directory
./php5.6-src/libtool: line 1114: *** Warning: inferring the mode of operation is deprecated.: command not found
./php5.6-src/libtool: line 1258: X-I./php5.6-src/ext/date/: No such file or directory
./php5.6-src/libtool: line 1115: *** Future versions of Libtool will require --mode=MODE be specified.: command not found
./php5.6-src/libtool: line 1258: X-I./php5.6-src/TSRM: No such file or directory
./php5.6-src/libtool: line 1258: Xcc: command not found
./php5.6-src/libtool: line 1258: X-DPHP_ATOM_INC: command not found
./php5.6-src/libtool: line 1258: X-D: command not found
./php5.6-src/libtool: line 1258: X-D: command not found
./php5.6-src/libtool: line 1258: X-I./php5.6-src/include: No such file or directory
./php5.6-src/libtool: line 1258: X-I./php5.6-src/ext/date/: No such file or directory
./php5.6-src/libtool: line 1258: X-I./php5.6-src/Zend: No such file or directory
./php5.6-src/libtool: line 1258: XHAVE_TIMELIB_CONFIG_H=1: command not found
./php5.6-src/libtool: line 1258: X-Iext/date/lib: No such file or directory
./php5.6-src/libtool: line 1258: X-I./php5.6-src/main: No such file or directory
./php5.6-src/libtool: line 1258: X-s: command not found
./php5.6-src/libtool: line 1258: X-DPHP_ATOM_INC: command not found
./php5.6-src/libtool: line 1258: X-Iext/date/: No such file or directory
./php5.6-src/libtool: line 1258: X-I./php5.6-src/include: No such file or directory
./php5.6-src/libtool: line 1258: XHAVE_TIMELIB_CONFIG_H=1: command not found
./php5.6-src/libtool: line 1258: X-I./php5.6-src/main: No such file or directory
./php5.6-src/libtool: line 1258: X-I./php5.6-src: No such file or directory
./php5.6-src/libtool: line 1258: X-D: command not found
./php5.6-src/libtool: line 1258: X-I./php5.6-src/main: No such file or directory
./php5.6-src/libtool: line 1258: X-Iext/date/: No such file or directory
./php5.6-src/libtool: line 1258: X-I./php5.6-src/include: No such file or directory
./php5.6-src/libtool: line 1258: X-I./php5.6-src: No such file or directory
./php5.6-src/libtool: line 1258: XHAVE_TIMELIB_CONFIG_H=1: command not found
./php5.6-src/libtool: line 1258: X-I./php5.6-src/main: No such file or directory
./php5.6-src/libtool: line 1258: X-I./php5.6-src/ext/date/: No such file or directory
./php5.6-src/libtool: line 1258: X-I./php5.6-src/ext/date/lib: No such file or directory
./php5.6-src/libtool: line 1258: X-DPHP_ATOM_INC: command not found
./php5.6-src/libtool: line 1258: X-I./php5.6-src/ext/date/lib: No such file or directory
./php5.6-src/libtool: line 1258: X-Iext/date/: No such file or directory
./php5.6-src/libtool: line 1258: X-I./php5.6-src/ext/date/: No such file or directory
./php5.6-src/libtool: line 1258: X-I./php5.6-src: No such file or directory
./php5.6-src/libtool: line 1258: X-Os: command not found
./php5.6-src/libtool: line 1258: X-I./php5.6-src/ext/ereg/regex: No such file or directory
./php5.6-src/libtool: line 1258: X-I./php5.6-src/include: No such file or directory
./php5.6-src/libtool: line 1258: X-I./php5.6-src/ext/date/: No such file or directory
./php5.6-src/libtool: line 1258: X-I./php5.6-src/ext/ereg/regex: No such file or directory
./php5.6-src/libtool: line 1258: X-I./php5.6-src: No such file or directory
./php5.6-src/libtool: line 1258: X-g0: command not found
./php5.6-src/libtool: line 1258: X-I./php5.6-src/ext/date/lib: No such file or directory
./php5.6-src/libtool: line 1258: X-I./php5.6-src/libcurl/build/include: No such file or directory
./php5.6-src/libtool: line 1258: X-I./php5.6-src/main: No such file or directory
./php5.6-src/libtool: line 1258: X-DPHP_ATOM_INC: command not found
./php5.6-src/libtool: line 1258: X-DPHP_ATOM_INC: command not found
./php5.6-src/libtool: line 1258: X-I./php5.6-src/libcurl/build/include: No such file or directory
./php5.6-src/libtool: line 1258: X-I./php5.6-src/include: No such file or directory
./php5.6-src/libtool: line 1258: X-I./php5.6-src/ext/ereg/regex: No such file or directory
./php5.6-src/libtool: line 1258: X-I./php5.6-src/TSRM: No such file or directory
./php5.6-src/libtool: line 1258: X-I./php5.6-src: No such file or directory
./php5.6-src/libtool: line 1258: X-fvisibility=hidden: command not found
./php5.6-src/libtool: line 1258: X-I./php5.6-src/ext/date/lib: No such file or directory
./php5.6-src/libtool: line 1258: X-I./php5.6-src/libcurl/build/include: No such file or directory
./php5.6-src/libtool: line 1258: X-I./php5.6-src/TSRM: No such file or directory
./php5.6-src/libtool: line 1258: X-I./php5.6-src/ext/ereg/regex: No such file or directory
./php5.6-src/libtool: line 1258: X-c: command not found
./php5.6-src/libtool: line 1258: X-I./php5.6-src/include: No such file or directory
./php5.6-src/libtool: line 1258: X-I./php5.6-src/Zend: No such file or directory
./php5.6-src/libtool: line 1258: X-I./php5.6-src/ext/date/lib: No such file or directory
./php5.6-src/libtool: line 1258: X-I./php5.6-src/main: No such file or directory
./php5.6-src/libtool: line 1258: X-I./php5.6-src/libcurl/build/include: No such file or directory
./php5.6-src/libtool: line 1258: X-I./php5.6-src/Zend: No such file or directory
./php5.6-src/libtool: line 1258: X-I./php5.6-src/TSRM: No such file or directory
./php5.6-src/libtool: line 1311: Xext/date/php_date.lo: No such file or directory
./php5.6-src/libtool: line 1258: X-s: command not found
./php5.6-src/libtool: line 1258: X-I./php5.6-src/ext/ereg/regex: No such file or directory
./php5.6-src/libtool: line 1258: X-I./php5.6-src/main: No such file or directory
./php5.6-src/libtool: line 1258: X-I./php5.6-src: No such file or directory
./php5.6-src/libtool: line 1316: libtool: compile: cannot determine name of library object from `': command not found
./php5.6-src/libtool: line 1258: X-s: command not found
make: *** [Makefile:360: ext/date/php_date.lo] Error 1
make: *** Waiting for unfinished jobs....
./php5.6-src/libtool: line 1258: X-I./php5.6-src/TSRM: No such file or directory
./php5.6-src/libtool: line 1258: X-Os: command not found
./php5.6-src/libtool: line 1258: X-I./php5.6-src: No such file or directory
./php5.6-src/libtool: line 1258: X-I./php5.6-src/Zend: No such file or directory
./php5.6-src/libtool: line 1258: X-I./php5.6-src/libcurl/build/include: No such file or directory
./php5.6-src/libtool: line 1258: X-I./php5.6-src/ext/date/lib: No such file or directory
./php5.6-src/libtool: line 1258: X-Os: command not found
./php5.6-src/libtool: line 1258: X-I./php5.6-src/ext/ereg/regex: No such file or directory
./php5.6-src/libtool: line 1258: X-I./php5.6-src/Zend: No such file or directory
./php5.6-src/libtool: line 1258: X-g0: command not found
./php5.6-src/libtool: line 1258: X-g0: command not found
./php5.6-src/libtool: line 1258: X-I./php5.6-src/TSRM: No such file or directory
./php5.6-src/libtool: line 1258: X-s: command not found
./php5.6-src/libtool: line 1258: X-I./php5.6-src/ext/date/lib: No such file or directory
./php5.6-src/libtool: line 1258: X-s: command not found
./php5.6-src/libtool: line 1258: X-fvisibility=hidden: command not found
./php5.6-src/libtool: line 1258: X-I./php5.6-src/libcurl/build/include: No such file or directory
./php5.6-src/libtool: line 1258: X-I./php5.6-src/Zend: No such file or directory
./php5.6-src/libtool: line 1258: X-fvisibility=hidden: command not found
./php5.6-src/libtool: line 1258: X-Os: command not found
./php5.6-src/libtool: line 1258: X-I./php5.6-src/ext/ereg/regex: No such file or directory
./php5.6-src/libtool: line 1258: X-c: command not found
./php5.6-src/libtool: line 1258: X-I./php5.6-src/TSRM: No such file or directory
./php5.6-src/libtool: line 1311: Xext/date/lib/timelib.lo: No such file or directory
./php5.6-src/libtool: line 1258: X-g0: command not found
./php5.6-src/libtool: line 1258: X-c: command not found
./php5.6-src/libtool: line 1258: X-I./php5.6-src/Zend: No such file or directory
./php5.6-src/libtool: line 1258: X-fvisibility=hidden: command not found
./php5.6-src/libtool: line 1311: Xext/date/lib/dow.lo: No such file or directory
./php5.6-src/libtool: line 1316: libtool: compile: cannot determine name of library object from `': command not found
./php5.6-src/libtool: line 1258: X-Os: command not found
./php5.6-src/libtool: line 1258: X-s: command not found
make: *** [Makefile:370: ext/date/lib/timelib.lo] Error 1
./php5.6-src/libtool: line 1258: X-c: command not found
./php5.6-src/libtool: line 1258: X-I./php5.6-src/libcurl/build/include: No such file or directory
./php5.6-src/libtool: line 1316: libtool: compile: cannot determine name of library object from `': command not found
./php5.6-src/libtool: line 1258: X-s: command not found
./php5.6-src/libtool: line 1258: X-Os: command not found
make: *** [Makefile:364: ext/date/lib/dow.lo] Error 1
./php5.6-src/libtool: line 1258: X-g0: command not found
./php5.6-src/libtool: line 1258: X-I./php5.6-src/TSRM: No such file or directory
./php5.6-src/libtool: line 1311: Xext/date/lib/tm2unixtime.lo: No such file or directory
./php5.6-src/libtool: line 1258: X-g0: command not found
./php5.6-src/libtool: line 1258: X-fvisibility=hidden: command not found
./php5.6-src/libtool: line 1258: X-Os: command not found
./php5.6-src/libtool: line 1316: libtool: compile: cannot determine name of library object from `': command not found
make: *** [Makefile:372: ext/date/lib/tm2unixtime.lo] Error 1
./php5.6-src/libtool: line 1258: X-I./php5.6-src/Zend: No such file or directory
./php5.6-src/libtool: line 1258: X-g0: command not found
./php5.6-src/libtool: line 1258: X-s: command not found
./php5.6-src/libtool: line 1258: X-fvisibility=hidden: command not found
./php5.6-src/libtool: line 1258: X-c: command not found
./php5.6-src/libtool: line 1258: X-fvisibility=hidden: command not found
./php5.6-src/libtool: line 1258: X-Os: command not found
./php5.6-src/libtool: line 1258: X-c: command not found
./php5.6-src/libtool: line 1311: Xext/date/lib/parse_date.lo: No such file or directory
./php5.6-src/libtool: line 1316: libtool: compile: cannot determine name of library object from `': command not found
./php5.6-src/libtool: line 1311: Xext/date/lib/parse_tz.lo: No such file or directory
make: *** [Makefile:366: ext/date/lib/parse_date.lo] Error 1
./php5.6-src/libtool: line 1258: X-c: command not found
./php5.6-src/libtool: line 1258: X-g0: command not found
./php5.6-src/libtool: line 1316: libtool: compile: cannot determine name of library object from `': command not found
./php5.6-src/libtool: line 1311: Xext/date/lib/unixtime2tm.lo: No such file or directory
make: *** [Makefile:368: ext/date/lib/parse_tz.lo] Error 1
./php5.6-src/libtool: line 1316: libtool: compile: cannot determine name of library object from `': command not found
make: *** [Makefile:374: ext/date/lib/unixtime2tm.lo] Error 1
./php5.6-src/libtool: line 1258: X-fvisibility=hidden: command not found
./php5.6-src/libtool: line 1258: X-c: command not found
./php5.6-src/libtool: line 1311: Xext/date/lib/astro.lo: No such file or directory
./php5.6-src/libtool: line 1316: libtool: compile: cannot determine name of library object from `': command not found
make: *** [Makefile:362: ext/date/lib/astro.lo] Error 1
Not sure why I can't build it on Ubuntu 22.04, but was able to get it building on Ubuntu 18.04 via Docker running
Dockerfile: