In commit 09e803c it is unfortunately unclear exactly why support for
"newer" autoconf is somehow dropped. Since autoconf 2.60 was released
Mon, 26 Jun 2006, this means PHP 5.3.8 needs to be built with software
more than 5 years old. By itself this is not necessarily a problem, but
for example CentOS 6.0 comes with version 2.63.
Ok, 2.13 is also available, but trying to use that (as suggested) breaks
quite a lot, a lot of macro's are not expanded correctly in configure.in.
Actually modifying buildcheck.sh (sed -i '/exit 1/d') resolved the issue
and it builds just fine using 2.63, without any apparent problems.
Now I'm not really sure whether we can release the software package I
just built, since there must be some kind of reason to create a test for
autoconf >= 2.59. I cannot seem to find that reason and this greatly
disturbs me. Only clue is the commit message by rasmus:
https://github.com/php/php-src/commit/09e803c389224e7f7ea8fc18ab8e14a0894dc003
Fix autoconf version check script to make sure people are
not using 2.60 or higher here. It might actually work up to
2.62 or 2.64. If someone could verify that these versions
still work I can massage this further.
I think this commit message fails to address which bug it's supposed to
fix. Furthermore, the ChangeLog at http://www.php.net/ChangeLog-5.php
doesn't say anything about resolving possible build issues.
Could somebody please elaborate?
In commit 09e803c it is unfortunately unclear exactly why support for
"newer" autoconf is somehow dropped. Since autoconf 2.60 was released
Mon, 26 Jun 2006, this means PHP 5.3.8 needs to be built with software
more than 5 years old. By itself this is not necessarily a problem, but
for example CentOS 6.0 comes with version 2.63.
Ok, 2.13 is also available, but trying to use that (as suggested) breaks
quite a lot, a lot of macro's are not expanded correctly in configure.in.Actually modifying buildcheck.sh (sed -i '/exit 1/d') resolved the issue
and it builds just fine using 2.63, without any apparent problems.Now I'm not really sure whether we can release the software package I
just built, since there must be some kind of reason to create a test for
autoconf >= 2.59. I cannot seem to find that reason and this greatly
disturbs me. Only clue is the commit message by rasmus:https://github.com/php/php-src/commit/09e803c389224e7f7ea8fc18ab8e14a0894dc003
Fix autoconf version check script to make sure people are
not using 2.60 or higher here. It might actually work up to
2.62 or 2.64. If someone could verify that these versions
still work I can massage this further.I think this commit message fails to address which bug it's supposed to
fix. Furthermore, the ChangeLog at http://www.php.net/ChangeLog-5.php
doesn't say anything about resolving possible build issues.Could somebody please elaborate?
The latest autoconf versions are not compatible with earlier ones. I
have explained this multiple times on the list here. The way diversions
are handled has changed and AC_PRESERVE_HELP_ORDER was introduced in
later versions to correctly support what people initially tried to use
diversions for. So, there is a breakpoint where the older configure.in
will not work with newer autoconfs. In PHP 5.4 I switched everything to
the new autoconf way so in 5.4 you neeed 2.59+ and in 5.3 you need 2.59-
Using every version of autoconf from 2.13 to 2.59 with PHP 5.3 works
nicely and everything builds perfectly. There are a couple of warnings
about deprecated features in later versions, but these have not been
removed yet as of autoconf-2.59 so it still builds fine. By at least
autoconf-2.65 these have all been removed and it really doesn't work
anymore. The versions from 2.60-2.64 started to remove stuff and yes,
like I said in the commit it may actually work up to 2.64. I only did
extensive testing up to 2.59 because every distro I tried had 2.59 as an
optional package. Most of the current distros are now on autoconf-2.67
and the current version is 2.68.
Since it is easy to install either 2.13 or 2.59 on every distro I know
of and since we support the PHP_AUTOCONF env variable which you simply
need to set to "autoconf2.13" or "autoconf2.59" I don't see the problem
here. I just tested both 2.13 and 2.59 with the PHP_5_3 tree and they
both build perfectly. I'd be interested in seeing what broke for you
with either of those versions.
5:45pm new:/var/home/rasmus/src/php/php-src/branches/PHP_5_3> ./buildconf
buildconf: checking installation...
buildconf: autoconf version 2.13 (ok)
5:45pm new:/var/home/rasmus/src/php/php-src/branches/PHP_5_3> ./configure
'--with-apxs2=/usr/bin/apxs2'
'--with-gd'
'--enable-calendar'
'--with-jpeg-dir=/usr'
'--with-freetype-dir=/usr'
'--enable-gd-native-ttf'
'--with-freetype-dir=/usr'
'--with-jpeg-dir=/usr'
'--with-png-dir=/usr'
'--enable-exif'
'--with-config-file-path=/etc'
'--with-mysql=/usr'
'--with-zlib'
'--with-zlib-dir=/usr'
'--with-gettext'
'--with-mcrypt=/usr/local'
'--with-ldap'
'--with-iconv'
'--enable-sockets'
'--with-openssl'
'--with-imap'
'--with-imap-ssl'
'--with-kerberos'
'--with-pspell'
'--with-pdo-mysql=/usr'
'--with-pdo-sqlite'
'--enable-soap'
'--enable-xmlreader'
'--with-xsl'
'--enable-ftp'
'--enable-cgi'
'--with-curl=/usr'
'--with-tidy'
'--with-xmlrpc'
'--enable-mbstring'
'--enable-sysvsem'
'--enable-sysvshm'
'--enable-shmop'
'--with-readline'
'--with-mysqli=/usr/bin/mysql_config'
'--prefix=/usr/local'
'--enable-zip'
creating cache ./config.cache
checking for Cygwin environment... no
checking for mingw32 environment... no
checking for egrep... grep -E
checking for a sed that does not truncate output... /bin/sed
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
checking for gcc... gcc
checking whether the C compiler (gcc ) works... yes
checking whether the C compiler (gcc ) is a cross-compiler... no
...
plus way more output, but take my word for it, it configured and built
nicely with 2.13.
-Rasmus