Instead of pinning Darwin to older versions, add small patches to
configure.in (7.1) / configure.ac (7.2) to fix the build of the intl
extension on recent PHP versions on Darwin.
fix-paths-php7.patch also required changes -- since we now run autoconf
at build time (through ./buildconf), it needs to patch the input .m4
files instead of ./configure directly.
PHP tries to discover the mysql default socket path during configure
phase by probing the file system:
cf3b852109/ext/mysqli/config.m4 (L4)
This obviously fails to discover /run/mysqld/mysqld.sock, which is being
used (hardcoded) across all MySQL flavours.
This leads to PHP having no mysql socket path set for the mysql[i]
extensions, and `/tmp/mysql.sock` set for pdo_mysql,
meaning one currently has to manually configure and set it in php.ini.
Luckily, PHP supports setting that path via
`--with-mysql-sock=/run/mysqld/mysqld.sock` during configure phase,
so let's do this as soon as one of the three modules is enabled.
This way we don't need to disable flags etc by platform and can still
backport new versions to stable for linux even if there's a bug or
something in the darwin build.
Both 5.6 and 7.0 is currently on life support, as in only recieving
security related patches.
This will only continue until:
- 2018-12-31 for PHP 5.6
- 2018-12-01 for PHP 7.0
Both these dates are in the middle of the 18.09 lifecycle. So it would
be nice to not have them in the 18.09 stable release. Dropping them
now would also result in less maintanance in updating them.
The death dates can be seen on both these links:
- https://secure.php.net/supported-versions.php
- https://en.wikipedia.org/wiki/PHP#Release_history
MySQL Native Driver was implemented by PHP back in 5.3.0 and has been
default in most distributions for a very long time.
The option was added in 41cd4f2459 and I
don't see any reason why it would default to false.
Overview of mysqlnd by PHP: https://secure.php.net/manual/en/mysqlnd.overview.php