On Fri, Sep 2, 2016 at 6:28 AM, Jordan Gigov <colad...@gmail.com> wrote:
> Most developers who hope to move a site to PHP 7 will still have to
> maintain PHP 5 sites for a long time, requiring the presence of both.
> However, building either one, even with the `--program-suffix`
> configuration option still overwrites some files, like phpize and all the
> headers in ${prefix}/includes/.
>
> It took me a week to solve this problem for myself and everyone else in our
> company, but I have proper working patches for it now.
> They have not been submitted as pull requests yet, because I first want to
> hear what you think of them.
>
> Here are the links:
>
> https://github.com/coladict/php-src/tree/php5-migration
> https://github.com/coladict/php-src/tree/php7-migration
>
> These change the install destinations like so:
> ${prefix}/bin/php => ${prefix}/bin/php[5 or 7]
> ${prefix}/bin/phpize => ${prefix}/bin/php[5 or 7]ize
> ${prefix}/bin/php-config => ${prefix}/bin/php[5 or 7]-config
> ${prefix}/bin/php-cgi => ${prefix}/bin/php[5 or 7]-cgi
> ${prefix}/bin/phpdbg => ${prefix}/bin/php[5 or 7]dbg
> ${prefix}/bin/phar => ${prefix}/bin/phar[5 or 7]
> ${prefix}/bin/phar.phar => ${prefix}/bin/phar[5 or 7].phar
>
> I have also added a "install-alternatives" make target that creates soft
> links to the legacy locations.
> In systems that have "update-alternatives" like Debian, Ubuntu or Fedora it
> uses it to generate the links, otherwise it falls-back to "ln -s".
>
> In addition these both contain fixes for gd, gmp and ldap extensions that
> fail to build under Ubuntu 16.04.
>
> Tested under Docker containers of ubuntu:xenial, fedora and dock0/arch
> (Archlinux).
> Additional configure options used when testing:
> --with-pic --enable-cli --enable-phpdbg --disable-fpm --with-apxs2=no
> --build=x86_64-linux-gnu --with-layout=GNU
>
> I don't know why automatic detection always yields x86_64-unknown-linux-gnu
> for build under Ubuntu, but that's not particular to PHP.
>
> Shared extensions that are also built and loaded without error during the
> testing:
> mbstring gd mysqlnd mysqli pdo_mysql curl gettext pgsql pdo_pgsql xmlrpc bz2
> xsl enchant interbase pdo_firebird mcrypt pspell gmp ldap readline recode
> tidy
>
>
> Making separately building mysqlnd work as shared should really come with
> it's own instructions. I had to use this complicated stuff
> ./configure --build=x86_64-linux-gnu --with-pic --enable-mysqlnd \
> CFLAGS="-I/usr/include/openssl -I$(dirname $(dirname $(pwd)))
> -DCOMPILE_DL_MYSQLND -DMYSQLND_SSL_SUPPORTED -DMYSQLND_COMPRESSION_WANTED
> -DMYSQLND_COMPRESSION_ENABLED -DMYSQLND_HAVE_SSL" \
> PHP_OPENSSL="/usr/local /usr" --with-libdir=lib/x86_64-linux-gnu
>
> Under Fedora that libdir option changes to --with-libdir=lib64

The issue is that you are writing to the same prefix. Just write them
to different prefixes and reference them separately. This is not a
unique-to-php situation. At work we maintain many different
simultaneous versions of Python, for example.

With that said it looks like the program suffixes are broken. If
--program-suffix=7 is set then I'd expect php7, phpize7 (or php7ize,
don't really care), etc.

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

Reply via email to