On 08/24/2011 04:08 PM, Edwin van Vliet wrote:
> 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

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to