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