summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lang/Makefile3
-rw-r--r--lang/php/phpversion.mk27
-rw-r--r--lang/php72/DESCR22
-rw-r--r--lang/php72/MESSAGE11
-rw-r--r--lang/php72/Makefile72
-rw-r--r--lang/php72/Makefile.common20
-rw-r--r--lang/php72/Makefile.php96
-rw-r--r--lang/php72/PLIST284
-rw-r--r--lang/php72/buildlink3.mk15
-rw-r--r--lang/php72/distinfo29
-rw-r--r--lang/php72/patches/patch-acinclude.m413
-rw-r--r--lang/php72/patches/patch-configure91
-rw-r--r--lang/php72/patches/patch-ext_imap_config.m428
-rw-r--r--lang/php72/patches/patch-ext_intl_config.m415
-rw-r--r--lang/php72/patches/patch-ext_pcre_pcrelib_config.h27
-rw-r--r--lang/php72/patches/patch-ext_pdo__mysql_config.m413
-rw-r--r--lang/php72/patches/patch-ext_pdo_config.m425
-rw-r--r--lang/php72/patches/patch-ext_phar_Makefile.frag13
-rw-r--r--lang/php72/patches/patch-ext_phar_phar_phar.php10
-rw-r--r--lang/php72/patches/patch-ext_recode_recode.c22
-rw-r--r--lang/php72/patches/patch-ext_sqlite3_libsqlite_sqlite3.c13
-rw-r--r--lang/php72/patches/patch-ext_xsl_php__xsl.h15
-rw-r--r--lang/php72/patches/patch-makedist13
-rw-r--r--lang/php72/patches/patch-php.ini-development33
-rw-r--r--lang/php72/patches/patch-php.ini-production33
-rw-r--r--lang/php72/patches/patch-run-tests.php10
-rw-r--r--lang/php72/patches/patch-sapi_cgi_Makefile.frag16
-rw-r--r--lang/php72/patches/patch-sapi_cli_Makefile.frag19
-rw-r--r--lang/php72/patches/patch-sapi_fpm_fpm_events_port.c45
-rw-r--r--lang/php72/patches/patch-sapi_fpm_php-fpm.conf.in13
30 files changed, 1037 insertions, 9 deletions
diff --git a/lang/Makefile b/lang/Makefile
index a9d64f74fb8..a550506359a 100644
--- a/lang/Makefile
+++ b/lang/Makefile
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.469 2017/11/01 12:07:31 fhajny Exp $
+# $NetBSD: Makefile,v 1.470 2017/11/15 08:56:12 jdolecek Exp $
#
COMMENT= Programming languages
@@ -171,6 +171,7 @@ SUBDIR+= pforth
SUBDIR+= php56
SUBDIR+= php70
SUBDIR+= php71
+SUBDIR+= php72
SUBDIR+= picoc
SUBDIR+= pict
SUBDIR+= polyml
diff --git a/lang/php/phpversion.mk b/lang/php/phpversion.mk
index 7cf20a78410..f3a1a5449bf 100644
--- a/lang/php/phpversion.mk
+++ b/lang/php/phpversion.mk
@@ -1,4 +1,4 @@
-# $NetBSD: phpversion.mk,v 1.193 2017/10/27 08:47:49 taca Exp $
+# $NetBSD: phpversion.mk,v 1.194 2017/11/15 08:56:12 jdolecek Exp $
#
# This file selects a PHP version, based on the user's preferences and
# the installed packages. It does not add a dependency on the PHP
@@ -10,7 +10,7 @@
# The PHP version to choose when more than one is acceptable to
# the package.
#
-# Possible: 56 70 71
+# Possible: 56 70 71 72
# Default: 56
#
# === Infrastructure variables ===
@@ -27,13 +27,13 @@
# PHP_VERSIONS_ACCEPTED
# The PHP versions that are accepted by the package.
#
-# Possible: 56 70 71
+# Possible: 56 70 71 72
# Default: 56
#
# PHP_VERSIONS_INCOMPATIBLE
# The PHP versions that are not supported by the package.
#
-# Possible: 56 70 71
+# Possible: 56 70 71 72
# Default: (empty)
#
# PHP_CHECK_INSTALLED
@@ -48,7 +48,7 @@
# PKG_PHP_VERSION
# The selected PHP version.
#
-# Possible: 56 70 71
+# Possible: 56 70 71 72
# Default: ${PHP_VERSION_DEFAULT}
#
# PHP_BASE_VERS
@@ -72,7 +72,7 @@
# PHP_PKG_PREFIX
# The prefix that is prepended to the package name.
#
-# Example: php56 php70 php71
+# Example: php56 php70 php71 php72
#
# PHP_EXTENSION_DIR
# Relative path to ${PREFIX} for PHP's extensions. It is derived from
@@ -90,11 +90,13 @@ PHPVERSION_MK= defined
PHP56_VERSION= 5.6.32
PHP70_VERSION= 7.0.25
PHP71_VERSION= 7.1.11
+PHP72_VERSION= 7.2.0RC6
# Define initial release of major version.
PHP56_RELDATE= 20140828
PHP70_RELDATE= 20151203
PHP71_RELDATE= 20160303
+PHP72_RELDATE= 20170718
_VARGROUPS+= php
_USER_VARS.php= PHP_VERSION_DEFAULT
@@ -105,7 +107,7 @@ _SYS_VARS.php= PKG_PHP_VERSION PKG_PHP PHPPKGSRCDIR PHP_PKG_PREFIX \
.include "../../mk/bsd.prefs.mk"
PHP_VERSION_DEFAULT?= 56
-PHP_VERSIONS_ACCEPTED?= 56 70 71
+PHP_VERSIONS_ACCEPTED?= 56 70 71 72
.for pv in ${PHP_VERSIONS_ACCEPTED}
. if empty(PHP_VERSIONS_INCOMPATIBLE:M${pv})
_PHP_VERSIONS_ACCEPTED+= ${pv}
@@ -118,7 +120,10 @@ _PHP_VERSION_${pv}_OK= yes
.endfor
# check what is installed
-.if exists(${LOCALBASE}/lib/php/${PHP71_RELDATE})
+.if exists(${LOCALBASE}/lib/php/${PHP72_RELDATE})
+_PHP_VERSION_72_INSTALLED= yes
+_PHP_INSTALLED= yes
+.elif exists(${LOCALBASE}/lib/php/${PHP71_RELDATE})
_PHP_VERSION_71_INSTALLED= yes
_PHP_INSTALLED= yes
.elif exists(${LOCALBASE}/lib/php/${PHP70_RELDATE})
@@ -213,6 +218,12 @@ PHP_VERSION= ${PHP71_VERSION}
PHP_INITIAL_TEENY= 0
PHP_PKG_PREFIX= php71
PHP_EXTENSION_DIR= lib/php/${PHP71_RELDATE}
+.elif ${_PHP_VERSION} == "72"
+PHPPKGSRCDIR= ../../lang/php72
+PHP_VERSION= ${PHP72_VERSION}
+PHP_INITIAL_TEENY= 0
+PHP_PKG_PREFIX= php72
+PHP_EXTENSION_DIR= lib/php/${PHP72_RELDATE}
.else
# force an error
PKG_FAIL_REASON+= "${PKG_PHP} is not a valid package"
diff --git a/lang/php72/DESCR b/lang/php72/DESCR
new file mode 100644
index 00000000000..2a6e822dc4e
--- /dev/null
+++ b/lang/php72/DESCR
@@ -0,0 +1,22 @@
+PHP is a widely-used open source general-purpose scripting language
+that is especially suited for web development and can be embedded
+into HTML. It is modular, and object-oriented. Much of its syntax
+is borrowed from C, Java and Perl with a couple of unique PHP-specific
+features thrown in. The language is designed to allow web developers
+to write dynamically generated pages quickly.
+
+This package provides PHP version 7.2.x.
+
+PHP 7.2.x builds upon 7.1.x, adding new features:
+
+* Argument type declarations
+* Object return type declarations
+* Parameter Type Widening
+* Trailing commas in list syntax
+* Argon2 in password hash
+* Libsodium as part of PHP Core
+* Deprecated: __autoload, $php_errormsg, create_function(),
+ mbstring.func_overload, parse_str() without second argument,
+ gmp_random(), each(), assert(), $errcontext
+* uniqid() patch to avoid usleep() integrated, 10000x improvement on NetBSD,
+ about 10x on Linux
diff --git a/lang/php72/MESSAGE b/lang/php72/MESSAGE
new file mode 100644
index 00000000000..f4914137315
--- /dev/null
+++ b/lang/php72/MESSAGE
@@ -0,0 +1,11 @@
+===========================================================================
+$NetBSD: MESSAGE,v 1.1 2017/11/15 08:56:12 jdolecek Exp $
+
+To process PHP scripts, you will need a PHP-enabled HTTP server. You may
+either configure the HTTP server to use the PHP CGI binary located in
+
+ ${CGIDIR}/php
+
+or you may install a PHP module for your HTTP server, e.g. www/ap-php.
+
+===========================================================================
diff --git a/lang/php72/Makefile b/lang/php72/Makefile
new file mode 100644
index 00000000000..378f22805cb
--- /dev/null
+++ b/lang/php72/Makefile
@@ -0,0 +1,72 @@
+# $NetBSD: Makefile,v 1.1 2017/11/15 08:56:12 jdolecek Exp $
+
+#
+# We can't omit PKGNAME here to handle PKG_OPTIONS.
+#
+PKGNAME= php-${PHP_VERSION:S/RC/rc/}
+CATEGORIES= lang
+MASTER_SITES= https://downloads.php.net/~pollita/
+
+HOMEPAGE= http://www.php.net/
+COMMENT= PHP Hypertext Preprocessor version 7.2
+LICENSE= php
+
+TEST_TARGET= test
+
+USE_TOOLS+= gmake lex pkg-config
+LIBTOOL_OVERRIDE= # empty
+PHP_CHECK_INSTALLED= No
+
+PHP_VERSIONS_ACCEPTED= 72
+
+.include "Makefile.php"
+
+CGIDIR= ${PREFIX}/libexec/cgi-bin
+EGDIR= ${PREFIX}/share/examples/php
+MESSAGE_SUBST+= CGIDIR=${CGIDIR}
+
+CONFIGURE_ENV+= lt_cv_path_SED=${SED:Q}
+MAKE_ENV+= INSTALL_ROOT=${DESTDIR}
+
+CONF_FILES= ${EGDIR}/php.ini-production ${PKG_SYSCONFDIR}/php.ini
+PLIST_SUBST+= PHPEXTDIR="${PHP_EXTENSION_DIR}"
+
+SUBST_CLASSES+= path
+SUBST_MESSAGE.path= Fixing common paths.
+SUBST_STAGE.path= pre-configure
+SUBST_FILES.path= ext/phar/phar/phar.php
+SUBST_FILES.path+= php.ini-development php.ini-production run-tests.php
+SUBST_FILES.path+= sapi/cgi/Makefile.frag
+SUBST_SED.path= -e 's,@CGIDIR@,${CGIDIR},g'
+SUBST_SED.path+= -e 's,@PREFIX@,${PREFIX},g'
+
+INSTALLATION_DIRS+= ${CGIDIR} ${PHP_EXTENSION_DIR} ${EGDIR} share/php
+
+# segfault generating phar.phar for i386 & SPARC
+# revisit this if builtin PCRE is updated beyond PCRE1 8.38
+# https://bugs.php.net/bug.php?id=73880
+.if ${MACHINE_ARCH} != "x86_64"
+CONFIGURE_ARGS+= --without-pcre-jit
+.endif
+
+# Make sure modules can link correctly
+.if ${OPSYS} == "Darwin"
+INSTALL_UNSTRIPPED= yes
+.endif
+
+# Darwin < 9 (Mac OS X < 10.5 "Leopard") doesn't have gethostuuid(2)
+# and lacks the zone memory allocator
+.if !empty(MACHINE_PLATFORM:MDarwin-[0-8].*-*)
+CFLAGS+= -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_WITHOUT_ZONEMALLOC
+.endif
+
+post-install:
+ ${INSTALL_PROGRAM} ${WRKSRC}/sapi/cli/php ${DESTDIR}${PREFIX}/bin/php
+ ${INSTALL_DATA} ${WRKSRC}/sapi/cli/php.1 \
+ ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1/php.1
+ ${INSTALL_PROGRAM} ${WRKSRC}/sapi/cgi/php-cgi ${DESTDIR}${CGIDIR}/php
+ cd ${WRKSRC}; ${INSTALL_DATA} php.ini-development php.ini-production \
+ ${DESTDIR}${EGDIR}
+ ${INSTALL_DATA} ${WRKSRC}/php.gif ${DESTDIR}${PREFIX}/share/php
+
+.include "../../mk/bsd.pkg.mk"
diff --git a/lang/php72/Makefile.common b/lang/php72/Makefile.common
new file mode 100644
index 00000000000..cc51dad97f9
--- /dev/null
+++ b/lang/php72/Makefile.common
@@ -0,0 +1,20 @@
+# $NetBSD: Makefile.common,v 1.1 2017/11/15 08:56:12 jdolecek Exp $
+# used by lang/php72/Makefile.php
+# used by lang/php/ext.mk
+# used by meta-pkgs/php72-extensions/Makefile
+
+PHP_VERSION_REQD= 72
+
+.include "../../lang/php/common.mk"
+
+CATEGORIES+= www
+MAINTAINER?= pkgsrc-users@NetBSD.org
+
+# needed due to (broken?) configure checks in php-xmlrpc and php5-dom
+CONFIGURE_ENV+= PHP_LIBXML_SHARED="1"
+
+.include "../../mk/compiler.mk"
+.if !empty(PKGSRC_COMPILER:Mclang)
+# configure test gets confused by wrappers dropping -R /usr/lib
+CONFIGURE_ARGS+= php_cv_cc_dashr=no
+.endif
diff --git a/lang/php72/Makefile.php b/lang/php72/Makefile.php
new file mode 100644
index 00000000000..ba4482c00a2
--- /dev/null
+++ b/lang/php72/Makefile.php
@@ -0,0 +1,96 @@
+# $NetBSD: Makefile.php,v 1.1 2017/11/15 08:56:12 jdolecek Exp $
+# used by lang/php72/Makefile
+# used by www/ap-php/Makefile
+# used by www/php-fpm/Makefile
+
+# PHP bug #74526 - segfaults on build with GCC 4.8.5 i386
+.if ${MACHINE_ARCH} == "i386"
+GCC_REQD+= 4.9
+.endif
+
+.include "../../lang/php72/Makefile.common"
+
+DISTINFO_FILE= ${.CURDIR}/../../lang/php72/distinfo
+PATCHDIR= ${.CURDIR}/../../lang/php72/patches
+
+USE_LIBTOOL= YES
+USE_LANGUAGES= c c++
+GNU_CONFIGURE= YES
+BUILD_DEFS+= VARBASE
+PLIST_VARS+= dtrace
+
+CONFIGURE_ENV+= EXTENSION_DIR="${PREFIX}/${PHP_EXTENSION_DIR}"
+
+.include "../../mk/bsd.prefs.mk"
+
+CONFIGURE_ARGS+= --with-config-file-path=${PKG_SYSCONFDIR}
+CONFIGURE_ARGS+= --with-config-file-scan-dir=${PKG_SYSCONFDIR}/php.d
+CONFIGURE_ARGS+= --sysconfdir=${PKG_SYSCONFDIR}
+CONFIGURE_ARGS+= --localstatedir=${VARBASE}
+
+CONFIGURE_ARGS+= --without-mysqli
+CONFIGURE_ARGS+= --without-iconv
+CONFIGURE_ARGS+= --without-pear
+#CONFIGURE_ARGS+= --without-intl
+
+CONFIGURE_ARGS+= --disable-posix
+CONFIGURE_ARGS+= --disable-opcache
+CONFIGURE_ARGS+= --disable-pdo
+CONFIGURE_ARGS+= --disable-json
+
+CONFIGURE_ARGS+= --enable-cgi
+CONFIGURE_ARGS+= --enable-mysqlnd
+CONFIGURE_ARGS+= --enable-xml
+CONFIGURE_ARGS+= --with-libxml-dir=${PREFIX}
+.include "../../textproc/libxml2/buildlink3.mk"
+
+PKG_OPTIONS_VAR= PKG_OPTIONS.${PHP_PKG_PREFIX}
+PKG_SUPPORTED_OPTIONS+= inet6 ssl maintainer-zts readline
+PKG_SUGGESTED_OPTIONS+= inet6 ssl readline
+
+.if ${OPSYS} == "SunOS" || ${OPSYS} == "Darwin" || ${OPSYS} == "FreeBSD"
+PKG_SUPPORTED_OPTIONS+= dtrace
+.endif
+
+.include "../../mk/bsd.options.mk"
+
+.if !empty(PKG_OPTIONS:Minet6)
+CONFIGURE_ARGS+= --enable-ipv6
+.else
+CONFIGURE_ARGS+= --disable-ipv6
+.endif
+
+.if !empty(PKG_OPTIONS:Mssl)
+. include "../../security/openssl/buildlink3.mk"
+. if ${OPSYS} == "SunOS"
+CONFIGURE_ARGS+= --with-openssl=yes
+LIBS.SunOS+= -lcrypto
+. else
+CONFIGURE_ARGS+= --with-openssl=${BUILDLINK_PREFIX.openssl}
+. endif
+.else
+CONFIGURE_ARGS+= --without-openssl
+.endif
+
+.if !empty(PKG_OPTIONS:Mmaintainer-zts)
+CONFIGURE_ARGS+= --enable-maintainer-zts
+.endif
+
+.if !empty(PKG_OPTIONS:Mreadline)
+USE_GNU_READLINE= yes
+.include "../../devel/readline/buildlink3.mk"
+CONFIGURE_ARGS+= --with-readline=${BUILDLINK_PREFIX.readline}
+.else
+CONFIGURE_ARGS+= --without-readline
+.endif
+
+.if !empty(PKG_OPTIONS:Mdtrace)
+PLIST.dtrace= yes
+CONFIGURE_ARGS+= --enable-dtrace
+
+# See https://bugs.php.net/bug.php?id=61268
+INSTALL_MAKE_FLAGS+= -r
+.endif
+
+DL_AUTO_VARS= yes
+.include "../../mk/dlopen.buildlink3.mk"
diff --git a/lang/php72/PLIST b/lang/php72/PLIST
new file mode 100644
index 00000000000..0cd4b2b3af8
--- /dev/null
+++ b/lang/php72/PLIST
@@ -0,0 +1,284 @@
+@comment $NetBSD: PLIST,v 1.1 2017/11/15 08:56:12 jdolecek Exp $
+bin/phar
+bin/phar.phar
+bin/php
+bin/php-config
+bin/phpdbg
+bin/phpize
+include/php/TSRM/TSRM.h
+include/php/TSRM/readdir.h
+include/php/TSRM/tsrm_config.h
+include/php/TSRM/tsrm_config.w32.h
+include/php/TSRM/tsrm_config_common.h
+include/php/TSRM/tsrm_strtok_r.h
+include/php/TSRM/tsrm_win32.h
+include/php/Zend/zend.h
+include/php/Zend/zend_API.h
+include/php/Zend/zend_alloc.h
+include/php/Zend/zend_alloc_sizes.h
+include/php/Zend/zend_arena.h
+include/php/Zend/zend_ast.h
+include/php/Zend/zend_bitset.h
+include/php/Zend/zend_build.h
+include/php/Zend/zend_builtin_functions.h
+include/php/Zend/zend_closures.h
+include/php/Zend/zend_compile.h
+include/php/Zend/zend_config.h
+include/php/Zend/zend_config.nw.h
+include/php/Zend/zend_config.w32.h
+include/php/Zend/zend_constants.h
+include/php/Zend/zend_dtrace.h
+${PLIST.dtrace}include/php/Zend/zend_dtrace_gen.h
+include/php/Zend/zend_errors.h
+include/php/Zend/zend_exceptions.h
+include/php/Zend/zend_execute.h
+include/php/Zend/zend_extensions.h
+include/php/Zend/zend_float.h
+include/php/Zend/zend_gc.h
+include/php/Zend/zend_generators.h
+include/php/Zend/zend_globals.h
+include/php/Zend/zend_globals_macros.h
+include/php/Zend/zend_hash.h
+include/php/Zend/zend_highlight.h
+include/php/Zend/zend_inheritance.h
+include/php/Zend/zend_ini.h
+include/php/Zend/zend_ini_parser.h
+include/php/Zend/zend_ini_scanner.h
+include/php/Zend/zend_ini_scanner_defs.h
+include/php/Zend/zend_interfaces.h
+include/php/Zend/zend_istdiostream.h
+include/php/Zend/zend_iterators.h
+include/php/Zend/zend_language_parser.h
+include/php/Zend/zend_language_scanner.h
+include/php/Zend/zend_language_scanner_defs.h
+include/php/Zend/zend_list.h
+include/php/Zend/zend_llist.h
+include/php/Zend/zend_long.h
+include/php/Zend/zend_modules.h
+include/php/Zend/zend_multibyte.h
+include/php/Zend/zend_multiply.h
+include/php/Zend/zend_object_handlers.h
+include/php/Zend/zend_objects.h
+include/php/Zend/zend_objects_API.h
+include/php/Zend/zend_operators.h
+include/php/Zend/zend_portability.h
+include/php/Zend/zend_ptr_stack.h
+include/php/Zend/zend_range_check.h
+include/php/Zend/zend_signal.h
+include/php/Zend/zend_smart_str.h
+include/php/Zend/zend_smart_str_public.h
+include/php/Zend/zend_smart_string.h
+include/php/Zend/zend_smart_string_public.h
+include/php/Zend/zend_sort.h
+include/php/Zend/zend_stack.h
+include/php/Zend/zend_stream.h
+include/php/Zend/zend_string.h
+include/php/Zend/zend_strtod.h
+include/php/Zend/zend_strtod_int.h
+include/php/Zend/zend_ts_hash.h
+include/php/Zend/zend_type_info.h
+include/php/Zend/zend_types.h
+include/php/Zend/zend_variables.h
+include/php/Zend/zend_virtual_cwd.h
+include/php/Zend/zend_vm.h
+include/php/Zend/zend_vm_def.h
+include/php/Zend/zend_vm_execute.h
+include/php/Zend/zend_vm_opcodes.h
+include/php/ext/date/lib/timelib.h
+include/php/ext/date/lib/timelib_config.h
+include/php/ext/date/php_date.h
+include/php/ext/dom/xml_common.h
+include/php/ext/filter/php_filter.h
+include/php/ext/hash/php_hash.h
+include/php/ext/hash/php_hash_adler32.h
+include/php/ext/hash/php_hash_crc32.h
+include/php/ext/hash/php_hash_fnv.h
+include/php/ext/hash/php_hash_gost.h
+include/php/ext/hash/php_hash_haval.h
+include/php/ext/hash/php_hash_joaat.h
+include/php/ext/hash/php_hash_md.h
+include/php/ext/hash/php_hash_ripemd.h
+include/php/ext/hash/php_hash_sha.h
+include/php/ext/hash/php_hash_sha3.h
+include/php/ext/hash/php_hash_snefru.h
+include/php/ext/hash/php_hash_tiger.h
+include/php/ext/hash/php_hash_whirlpool.h
+include/php/ext/libxml/php_libxml.h
+include/php/ext/mysqlnd/config-win.h
+include/php/ext/mysqlnd/mysql_float_to_double.h
+include/php/ext/mysqlnd/mysqlnd.h
+include/php/ext/mysqlnd/mysqlnd_alloc.h
+include/php/ext/mysqlnd/mysqlnd_auth.h
+include/php/ext/mysqlnd/mysqlnd_block_alloc.h
+include/php/ext/mysqlnd/mysqlnd_charset.h
+include/php/ext/mysqlnd/mysqlnd_commands.h
+include/php/ext/mysqlnd/mysqlnd_connection.h
+include/php/ext/mysqlnd/mysqlnd_debug.h
+include/php/ext/mysqlnd/mysqlnd_enum_n_def.h
+include/php/ext/mysqlnd/mysqlnd_ext_plugin.h
+include/php/ext/mysqlnd/mysqlnd_libmysql_compat.h
+include/php/ext/mysqlnd/mysqlnd_plugin.h
+include/php/ext/mysqlnd/mysqlnd_portability.h
+include/php/ext/mysqlnd/mysqlnd_priv.h
+include/php/ext/mysqlnd/mysqlnd_protocol_frame_codec.h
+include/php/ext/mysqlnd/mysqlnd_ps.h
+include/php/ext/mysqlnd/mysqlnd_read_buffer.h
+include/php/ext/mysqlnd/mysqlnd_result.h
+include/php/ext/mysqlnd/mysqlnd_result_meta.h
+include/php/ext/mysqlnd/mysqlnd_reverse_api.h
+include/php/ext/mysqlnd/mysqlnd_statistics.h
+include/php/ext/mysqlnd/mysqlnd_structs.h
+include/php/ext/mysqlnd/mysqlnd_vio.h
+include/php/ext/mysqlnd/mysqlnd_wireprotocol.h
+include/php/ext/mysqlnd/php_mysqlnd.h
+include/php/ext/pcre/pcrelib/config.h
+include/php/ext/pcre/pcrelib/pcre.h
+include/php/ext/pcre/pcrelib/pcre_internal.h
+include/php/ext/pcre/pcrelib/pcreposix.h
+include/php/ext/pcre/pcrelib/ucp.h
+include/php/ext/pcre/php_pcre.h
+include/php/ext/phar/php_phar.h
+include/php/ext/session/mod_files.h
+include/php/ext/session/mod_user.h
+include/php/ext/session/php_session.h
+include/php/ext/simplexml/php_simplexml.h
+include/php/ext/simplexml/php_simplexml_exports.h
+include/php/ext/spl/php_spl.h
+include/php/ext/spl/spl_array.h
+include/php/ext/spl/spl_directory.h
+include/php/ext/spl/spl_dllist.h
+include/php/ext/spl/spl_engine.h
+include/php/ext/spl/spl_exceptions.h
+include/php/ext/spl/spl_fixedarray.h
+include/php/ext/spl/spl_functions.h
+include/php/ext/spl/spl_heap.h
+include/php/ext/spl/spl_iterators.h
+include/php/ext/spl/spl_observer.h
+include/php/ext/standard/base64.h
+include/php/ext/standard/basic_functions.h
+include/php/ext/standard/crc32.h
+include/php/ext/standard/credits.h
+include/php/ext/standard/credits_ext.h
+include/php/ext/standard/credits_sapi.h
+include/php/ext/standard/crypt_blowfish.h
+include/php/ext/standard/crypt_freesec.h
+include/php/ext/standard/css.h
+include/php/ext/standard/cyr_convert.h
+include/php/ext/standard/datetime.h
+include/php/ext/standard/dl.h
+include/php/ext/standard/exec.h
+include/php/ext/standard/file.h
+include/php/ext/standard/flock_compat.h
+include/php/ext/standard/fsock.h
+include/php/ext/standard/head.h
+include/php/ext/standard/html.h
+include/php/ext/standard/html_tables.h
+include/php/ext/standard/info.h
+include/php/ext/standard/md5.h
+include/php/ext/standard/microtime.h
+include/php/ext/standard/pack.h
+include/php/ext/standard/pageinfo.h
+include/php/ext/standard/php_array.h
+include/php/ext/standard/php_assert.h
+include/php/ext/standard/php_browscap.h
+include/php/ext/standard/php_crypt.h
+include/php/ext/standard/php_crypt_r.h
+include/php/ext/standard/php_dir.h
+include/php/ext/standard/php_dns.h
+include/php/ext/standard/php_ext_syslog.h
+include/php/ext/standard/php_filestat.h
+include/php/ext/standard/php_fopen_wrappers.h
+include/php/ext/standard/php_ftok.h
+include/php/ext/standard/php_http.h
+include/php/ext/standard/php_image.h
+include/php/ext/standard/php_incomplete_class.h
+include/php/ext/standard/php_iptc.h
+include/php/ext/standard/php_lcg.h
+include/php/ext/standard/php_link.h
+include/php/ext/standard/php_mail.h
+include/php/ext/standard/php_math.h
+include/php/ext/standard/php_metaphone.h
+include/php/ext/standard/php_mt_rand.h
+include/php/ext/standard/php_password.h
+include/php/ext/standard/php_rand.h
+include/php/ext/standard/php_random.h
+include/php/ext/standard/php_smart_string.h
+include/php/ext/standard/php_smart_string_public.h
+include/php/ext/standard/php_standard.h
+include/php/ext/standard/php_string.h
+include/php/ext/standard/php_type.h
+include/php/ext/standard/php_uuencode.h
+include/php/ext/standard/php_var.h
+include/php/ext/standard/php_versioning.h
+include/php/ext/standard/proc_open.h
+include/php/ext/standard/quot_print.h
+include/php/ext/standard/scanf.h
+include/php/ext/standard/sha1.h
+include/php/ext/standard/streamsfuncs.h
+include/php/ext/standard/uniqid.h
+include/php/ext/standard/url.h
+include/php/ext/standard/url_scanner_ex.h
+include/php/ext/standard/winver.h
+include/php/ext/xml/expat_compat.h
+include/php/ext/xml/php_xml.h
+include/php/main/SAPI.h
+include/php/main/build-defs.h
+include/php/main/fastcgi.h
+include/php/main/fopen_wrappers.h
+include/php/main/http_status_codes.h
+include/php/main/php.h
+include/php/main/php_compat.h
+include/php/main/php_config.h
+include/php/main/php_content_types.h
+include/php/main/php_getopt.h
+include/php/main/php_globals.h
+include/php/main/php_ini.h
+include/php/main/php_main.h
+include/php/main/php_memory_streams.h
+include/php/main/php_network.h
+include/php/main/php_open_temporary_file.h
+include/php/main/php_output.h
+include/php/main/php_reentrancy.h
+include/php/main/php_scandir.h
+include/php/main/php_stdint.h
+include/php/main/php_streams.h
+include/php/main/php_syslog.h
+include/php/main/php_ticks.h
+include/php/main/php_variables.h
+include/php/main/php_version.h
+include/php/main/rfc1867.h
+include/php/main/snprintf.h
+include/php/main/spprintf.h
+include/php/main/streams/php_stream_context.h
+include/php/main/streams/php_stream_filter_api.h
+include/php/main/streams/php_stream_glob_wrapper.h
+include/php/main/streams/php_stream_mmap.h
+include/php/main/streams/php_stream_plain_wrapper.h
+include/php/main/streams/php_stream_transport.h
+include/php/main/streams/php_stream_userspace.h
+include/php/main/streams/php_streams_int.h
+include/php/sapi/cli/cli.h
+lib/php/build/Makefile.global
+lib/php/build/acinclude.m4
+lib/php/build/ax_check_compile_flag.m4
+lib/php/build/config.guess
+lib/php/build/config.sub
+lib/php/build/libtool.m4
+lib/php/build/ltmain.sh
+lib/php/build/mkdep.awk
+lib/php/build/phpize.m4
+lib/php/build/run-tests.php
+lib/php/build/scan_makefile_in.awk
+lib/php/build/shtool
+libexec/cgi-bin/php
+man/man1/phar.1
+man/man1/phar.phar.1
+man/man1/php-cgi.1
+man/man1/php-config.1
+man/man1/php.1
+man/man1/phpdbg.1
+man/man1/phpize.1
+share/examples/php/php.ini-development
+share/examples/php/php.ini-production
+share/php/php.gif
+@pkgdir ${PHPEXTDIR}
diff --git a/lang/php72/buildlink3.mk b/lang/php72/buildlink3.mk
new file mode 100644
index 00000000000..c20bc48a552
--- /dev/null
+++ b/lang/php72/buildlink3.mk
@@ -0,0 +1,15 @@
+# $NetBSD: buildlink3.mk,v 1.1 2017/11/15 08:56:12 jdolecek Exp $
+
+BUILDLINK_TREE+= php
+
+.if !defined(PHP_BUILDLINK3_MK)
+PHP_BUILDLINK3_MK:=
+
+BUILDLINK_API_DEPENDS.php+= php>=7.2.0rc1<7.3
+BUILDLINK_ABI_DEPENDS.php+= php>=7.2.0rc1<7.3
+BUILDLINK_PKGSRCDIR.php?= ../../lang/php72
+
+.include "../../textproc/libxml2/buildlink3.mk"
+.endif # PHP_BUILDLINK3_MK
+
+BUILDLINK_TREE+= -php
diff --git a/lang/php72/distinfo b/lang/php72/distinfo
new file mode 100644
index 00000000000..a773e22b16e
--- /dev/null
+++ b/lang/php72/distinfo
@@ -0,0 +1,29 @@
+$NetBSD: distinfo,v 1.1 2017/11/15 08:56:12 jdolecek Exp $
+
+SHA1 (php-7.2.0RC6.tar.bz2) = dfc81aa8965ec73f3d24725d207ad9f6b362a238
+RMD160 (php-7.2.0RC6.tar.bz2) = 8b4dac9c5247b3d63b8d7a785bb5015555f37fee
+SHA512 (php-7.2.0RC6.tar.bz2) = 35cf7e4aaf461c360885aaa4bb7997ae60eb7d8a8134c8ab4c42412576a9c36b56f1acc24358be3e7722142a10f330719907f254d6bf174fb22a6d61d3fe3fde
+Size (php-7.2.0RC6.tar.bz2) = 14953026 bytes
+SHA1 (patch-acinclude.m4) = b682280fd89950c082c2226bdb7364b0dc475bad
+SHA1 (patch-configure) = a129e19ef87338f6e53ccc967c40ddcde7c7357c
+SHA1 (patch-ext_gd_config.m4) = 93b62daad93b9ee6dc28e06016f739bc26b0dc9f
+SHA1 (patch-ext_imap_config.m4) = f4e10ab81697b72019313f63bc630627a08efd92
+SHA1 (patch-ext_intl_config.m4) = 1ea3d3e6f05d5fed0bd4ca4518440199aec0954d
+SHA1 (patch-ext_pcre_pcrelib_config.h) = c5fba95856628f68639fe63feeef04a5f83d3916
+SHA1 (patch-ext_pdo__mysql_config.m4) = b1ef91be5a729040197e9af50da0f5fd1f6c90a8
+SHA1 (patch-ext_pdo_config.m4) = 522281775cc0e70a135b1f813158988ef1f3e244
+SHA1 (patch-ext_phar_Makefile.frag) = 558869b60f8ed6674a3ba1d595a65f010df4c426
+SHA1 (patch-ext_phar_phar_phar.php) = f630e3946b21b76d4fe857a43e00e25c9445f2c8
+SHA1 (patch-ext_recode_recode.c) = a97a1815d6a41410f68c289debbb9396128a2159
+SHA1 (patch-ext_sqlite3_libsqlite_sqlite3.c) = 8a529a1b3f7c97731f2e719d006f67c3a7259bb5
+SHA1 (patch-ext_standard_basic__functions.c) = f97a2748c7b15fbd9a2d3c21e56079088cc05d56
+SHA1 (patch-ext_standard_uniqid.c) = 154ed6e6d4796a52c6664b52994d6cad4ed22f30
+SHA1 (patch-ext_xsl_php__xsl.h) = a9877bff7bacc77926a4541a0ac171c00ad1a627
+SHA1 (patch-makedist) = 2ac0e0391c031c4fcf4993e2269cde4c6bfddfd5
+SHA1 (patch-php.ini-development) = dd65962000ec06439fae3c9bf252fa46be4e33fd
+SHA1 (patch-php.ini-production) = ae61dffedf574b688fe576b0b2af748b7a28cd89
+SHA1 (patch-run-tests.php) = 86c4d3f03eb8e31b5a35820f426533c9478571fb
+SHA1 (patch-sapi_cgi_Makefile.frag) = 18769900f588ff81cc34474542afa1d65c070e65
+SHA1 (patch-sapi_cli_Makefile.frag) = 1cd29d09042863acbf5330e406410fdcf75d06b3
+SHA1 (patch-sapi_fpm_fpm_events_port.c) = 0f10fdb32fb7cab58e2abda49fb1fc658c410150
+SHA1 (patch-sapi_fpm_php-fpm.conf.in) = b3c4fd499cbfd2dffd9176abb54e298ea542a5d7
diff --git a/lang/php72/patches/patch-acinclude.m4 b/lang/php72/patches/patch-acinclude.m4
new file mode 100644
index 00000000000..97f336dacd2
--- /dev/null
+++ b/lang/php72/patches/patch-acinclude.m4
@@ -0,0 +1,13 @@
+$NetBSD: patch-acinclude.m4,v 1.1 2017/11/15 08:56:12 jdolecek Exp $
+
+--- acinclude.m4.orig 2015-06-23 17:33:33.000000000 +0000
++++ acinclude.m4
+@@ -2354,7 +2354,7 @@ AC_DEFUN([PHP_SETUP_OPENSSL],[
+ if test "$found_openssl" = "no"; then
+
+ if test "$PHP_OPENSSL_DIR" = "yes"; then
+- PHP_OPENSSL_DIR="/usr/local/ssl /usr/local /usr /usr/local/openssl"
++ PHP_OPENSSL_DIR="/usr/local/ssl /usr/local /usr /usr/local/openssl /"
+ fi
+
+ for i in $PHP_OPENSSL_DIR; do
diff --git a/lang/php72/patches/patch-configure b/lang/php72/patches/patch-configure
new file mode 100644
index 00000000000..655fa7d1dad
--- /dev/null
+++ b/lang/php72/patches/patch-configure
@@ -0,0 +1,91 @@
+$NetBSD: patch-configure,v 1.1 2017/11/15 08:56:12 jdolecek Exp $
+
+--- configure.orig 2016-04-28 18:12:26.000000000 +0000
++++ configure
+@@ -6930,27 +6930,6 @@ EOF
+ ;;
+ esac
+
+- if test "$APACHE_VERSION" -lt 2004001; then
+- APXS_MPM=`$APXS -q MPM_NAME`
+- if test "$APXS_MPM" != "prefork" && test "$APXS_MPM" != "peruser" && test "$APXS_MPM" != "itk"; then
+-
+- enable_maintainer_zts=yes
+- if test "$pthreads_working" != "yes"; then
+- as_fn_error $? "ZTS currently requires working POSIX threads. We were unable to verify that your system supports Pthreads." "$LINENO" 5
+- fi
+-
+- fi
+- else
+- APACHE_THREADED_MPM=`$APXS_HTTPD -V | grep 'threaded:.*yes'`
+- if test -n "$APACHE_THREADED_MPM"; then
+-
+- enable_maintainer_zts=yes
+- if test "$pthreads_working" != "yes"; then
+- as_fn_error $? "ZTS currently requires working POSIX threads. We were unable to verify that your system supports Pthreads." "$LINENO" 5
+- fi
+-
+- fi
+- fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+ $as_echo "yes" >&6; }
+
+@@ -18408,7 +18387,7 @@ fi
+ if test "$found_openssl" = "no"; then
+
+ if test "$PHP_OPENSSL_DIR" = "yes"; then
+- PHP_OPENSSL_DIR="/usr/local/ssl /usr/local /usr /usr/local/openssl"
++ PHP_OPENSSL_DIR="/usr/local/ssl /usr/local /usr /usr/local/openssl /"
+ fi
+
+ for i in $PHP_OPENSSL_DIR; do
+@@ -20572,7 +20551,7 @@ $as_echo "yes" >&6; }
+ PHP_SQLITE3_CFLAGS="-I@ext_srcdir@/libsqlite $other_flags $threadsafe_flags $debug_flags"
+
+
+- for header_file in ext/sqlite3/libsqlite/sqlite3.h; do
++ for header_file; do
+
+
+ unique=`echo $header_file|$SED 's/[^a-zA-Z0-9]/_/g'`
+@@ -31742,7 +31721,7 @@ fi
+ if test "$found_openssl" = "no"; then
+
+ if test "$PHP_OPENSSL_DIR" = "yes"; then
+- PHP_OPENSSL_DIR="/usr/local/ssl /usr/local /usr /usr/local/openssl"
++ PHP_OPENSSL_DIR="/usr/local/ssl /usr/local /usr /usr/local/openssl /"
+ fi
+
+ for i in $PHP_OPENSSL_DIR; do
+@@ -42631,7 +42610,7 @@ fi
+ if test "$found_openssl" = "no"; then
+
+ if test "$PHP_OPENSSL_DIR" = "yes"; then
+- PHP_OPENSSL_DIR="/usr/local/ssl /usr/local /usr /usr/local/openssl"
++ PHP_OPENSSL_DIR="/usr/local/ssl /usr/local /usr /usr/local/openssl /"
+ fi
+
+ for i in $PHP_OPENSSL_DIR; do
+@@ -92806,7 +92785,7 @@ fi
+ if test "$found_openssl" = "no"; then
+
+ if test "$PHP_OPENSSL_DIR" = "yes"; then
+- PHP_OPENSSL_DIR="/usr/local/ssl /usr/local /usr /usr/local/openssl"
++ PHP_OPENSSL_DIR="/usr/local/ssl /usr/local /usr /usr/local/openssl /"
+ fi
+
+ for i in $PHP_OPENSSL_DIR; do
+@@ -96439,12 +96418,7 @@ old_CC=$CC
+ if test "$PHP_THREAD_SAFETY" = "yes" && test -n "$ac_cv_pthreads_cflags"; then
+ CXXFLAGS="$CXXFLAGS $ac_cv_pthreads_cflags"
+ INLINE_CFLAGS="$INLINE_CFLAGS $ac_cv_pthreads_cflags"
+- cat >meta_ccld<<EOF
+-#! /bin/sh
+-exec $CC $ac_cv_pthreads_cflags \$@
+-EOF
+- CC="$abs_builddir/meta_ccld"
+- chmod +x meta_ccld
++ CPPFLAGS="$CPPFLAGS $ac_cv_pthreads_cflags"
+ fi
+
+ if test "$PHP_THREAD_SAFETY" = "yes" && test "$PHP_MYSQL" = "yes"; then
diff --git a/lang/php72/patches/patch-ext_imap_config.m4 b/lang/php72/patches/patch-ext_imap_config.m4
new file mode 100644
index 00000000000..795cd2faf4d
--- /dev/null
+++ b/lang/php72/patches/patch-ext_imap_config.m4
@@ -0,0 +1,28 @@
+$NetBSD: patch-ext_imap_config.m4,v 1.1 2017/11/15 08:56:12 jdolecek Exp $
+
+--- ext/imap/config.m4.orig 2015-06-23 17:33:33.000000000 +0000
++++ ext/imap/config.m4
+@@ -48,6 +48,14 @@ AC_DEFUN([PHP_IMAP_TEST_BUILD], [
+ ])
+ ])
+
++dsl Must be before --with-kerberos, affects the check
++PHP_ARG_WITH(imap-linkage,use IMAP c-client linkage,
++[ --with-imap-linkage Use IMAP c-client linkage to determine supported items.])
++
++if test "$PHP_IMAP_LINKAGE" != "no"; then
++ AC_DEFINE(HAVE_IMAP_LINKAGE, 1, [ ])
++fi
++
+ AC_DEFUN([PHP_IMAP_KRB_CHK], [
+ if test "$PHP_KERBEROS" != "no"; then
+ PHP_SETUP_KERBEROS(IMAP_SHARED_LIBADD,
+@@ -59,7 +67,7 @@ AC_DEFUN([PHP_IMAP_KRB_CHK], [
+ Check the path given to --with-kerberos (if no path is given, searches in /usr/kerberos, /usr/local and /usr )
+ ])
+ ])
+- else
++ elif test "$PHP_IMAP_LINKAGE" != "yes"; then
+ AC_EGREP_HEADER(auth_gss, $IMAP_INC_DIR/linkage.h, [
+ AC_MSG_ERROR([This c-client library is built with Kerberos support.
+
diff --git a/lang/php72/patches/patch-ext_intl_config.m4 b/lang/php72/patches/patch-ext_intl_config.m4
new file mode 100644
index 00000000000..d83a0c12731
--- /dev/null
+++ b/lang/php72/patches/patch-ext_intl_config.m4
@@ -0,0 +1,15 @@
+$NetBSD: patch-ext_intl_config.m4,v 1.1 2017/11/15 08:56:12 jdolecek Exp $
+
+Work around for build problem.
+
+--- ext/intl/config.m4.orig 2017-02-14 18:35:43.000000000 +0000
++++ ext/intl/config.m4
+@@ -86,7 +86,7 @@ if test "$PHP_INTL" != "no"; then
+ breakiterator/codepointiterator_methods.cpp \
+ uchar/uchar.c \
+ idn/idn.c \
+- $icu_spoof_src, $ext_shared,,$ICU_INCS -Wno-write-strings -D__STDC_LIMIT_MACROS -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1,cxx)
++ $icu_spoof_src, $ext_shared,,$ICU_INCS -Wno-write-strings -D__STDC_LIMIT_MACROS -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1)
+ PHP_ADD_BUILD_DIR($ext_builddir/collator)
+ PHP_ADD_BUILD_DIR($ext_builddir/converter)
+ PHP_ADD_BUILD_DIR($ext_builddir/common)
diff --git a/lang/php72/patches/patch-ext_pcre_pcrelib_config.h b/lang/php72/patches/patch-ext_pcre_pcrelib_config.h
new file mode 100644
index 00000000000..4995e471fc4
--- /dev/null
+++ b/lang/php72/patches/patch-ext_pcre_pcrelib_config.h
@@ -0,0 +1,27 @@
+$NetBSD: patch-ext_pcre_pcrelib_config.h,v 1.1 2017/11/15 08:56:12 jdolecek Exp $
+
+--- ext/pcre/pcrelib/config.h.orig 2016-09-29 02:15:39.000000000 +0000
++++ ext/pcre/pcrelib/config.h
+@@ -400,8 +400,21 @@ them both to 0; an emulation function wi
+
+ /* Define to any value to enable support for Just-In-Time compiling. */
+ #if HAVE_PCRE_JIT_SUPPORT
+-#define SUPPORT_JIT
++#if defined(__i386__) || defined(__i386) \
++|| defined(__x86_64__) \
++|| defined(__arm__) || defined(__ARM__) \
++|| defined (__aarch64__) \
++|| defined(__ppc64__) || defined(__powerpc64__) || defined(_ARCH_PPC64) \
++|| (defined(_POWER) && defined(__64BIT__)) \
++|| defined(__ppc__) || defined(__powerpc__) || defined(_ARCH_PPC) \
++|| defined(_ARCH_PWR) || defined(_ARCH_PWR2) || defined(_POWER) \
++|| (defined(__mips__) && !defined(_LP64)) \
++|| defined(__mips64) \
++|| defined(__sparc__) || defined(__sparc) \
++|| defined(__tilegx__)
++ #define SUPPORT_JIT
+ #endif
++#endif /* HAVE_PCRE_JIT_SUPPORT */
+
+ /* Define to any value to allow pcregrep to be linked with libbz2, so that it
+ is able to handle .bz2 files. */
diff --git a/lang/php72/patches/patch-ext_pdo__mysql_config.m4 b/lang/php72/patches/patch-ext_pdo__mysql_config.m4
new file mode 100644
index 00000000000..e5a256091bb
--- /dev/null
+++ b/lang/php72/patches/patch-ext_pdo__mysql_config.m4
@@ -0,0 +1,13 @@
+$NetBSD: patch-ext_pdo__mysql_config.m4,v 1.1 2017/11/15 08:56:12 jdolecek Exp $
+
+--- ext/pdo_mysql/config.m4.orig 2015-06-23 17:33:33.000000000 +0000
++++ ext/pdo_mysql/config.m4
+@@ -156,7 +156,7 @@ if test "$PHP_PDO_MYSQL" != "no"; then
+ fi
+
+ dnl fix after renaming to pdo_mysql
+- PHP_NEW_EXTENSION(pdo_mysql, pdo_mysql.c mysql_driver.c mysql_statement.c, $ext_shared,,-I$pdo_cv_inc_path -I -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1)
++ PHP_NEW_EXTENSION(pdo_mysql, pdo_mysql.c mysql_driver.c mysql_statement.c, $ext_shared,,-DZEND_ENABLE_STATIC_TSRMLS_CACHE=1)
+ ifdef([PHP_ADD_EXTENSION_DEP],
+ [
+ PHP_ADD_EXTENSION_DEP(pdo_mysql, pdo)
diff --git a/lang/php72/patches/patch-ext_pdo_config.m4 b/lang/php72/patches/patch-ext_pdo_config.m4
new file mode 100644
index 00000000000..c4cd23e007b
--- /dev/null
+++ b/lang/php72/patches/patch-ext_pdo_config.m4
@@ -0,0 +1,25 @@
+$NetBSD: patch-ext_pdo_config.m4,v 1.1 2017/11/15 08:56:12 jdolecek Exp $
+
+--- ext/pdo/config.m4.orig 2015-06-23 17:33:33.000000000 +0000
++++ ext/pdo/config.m4
+@@ -37,20 +37,6 @@ if test "$PHP_PDO" != "no"; then
+
+ PHP_PDO_PEAR_CHECK
+
+- if test "$ext_shared" = "yes" ; then
+- case $host_alias in
+- *darwin*)
+- AC_MSG_ERROR([
+-Due to the way that loadable modules work on OSX/Darwin, you need to
+-compile the PDO package statically into the PHP core.
+-
+-Please follow the instructions at: http://netevil.org/node.php?nid=202
+-for more detail on this issue.
+- ])
+- ext_shared=no
+- ;;
+- esac
+- fi
+ PHP_NEW_EXTENSION(pdo, pdo.c pdo_dbh.c pdo_stmt.c pdo_sql_parser.c pdo_sqlstate.c, $ext_shared)
+ ifdef([PHP_ADD_EXTENSION_DEP],
+ [
diff --git a/lang/php72/patches/patch-ext_phar_Makefile.frag b/lang/php72/patches/patch-ext_phar_Makefile.frag
new file mode 100644
index 00000000000..b48b24f528a
--- /dev/null
+++ b/lang/php72/patches/patch-ext_phar_Makefile.frag
@@ -0,0 +1,13 @@
+$NetBSD: patch-ext_phar_Makefile.frag,v 1.1 2017/11/15 08:56:12 jdolecek Exp $
+
+--- ext/phar/Makefile.frag.orig 2015-06-23 17:33:33.000000000 +0000
++++ ext/phar/Makefile.frag
+@@ -18,7 +18,7 @@ PHP_PHARCMD_EXECUTABLE = ` \
+ else \
+ $(top_srcdir)/build/shtool echo -n -- "$(PHP_EXECUTABLE)"; \
+ fi;`
+-PHP_PHARCMD_BANG = `$(top_srcdir)/build/shtool echo -n -- "$(INSTALL_ROOT)$(bindir)/$(program_prefix)php$(program_suffix)$(EXEEXT)";`
++PHP_PHARCMD_BANG = `$(top_srcdir)/build/shtool echo -n -- "$(bindir)/$(program_prefix)php$(program_suffix)$(EXEEXT)";`
+
+ $(builddir)/phar/phar.inc: $(srcdir)/phar/phar.inc
+ -@test -d $(builddir)/phar || mkdir $(builddir)/phar
diff --git a/lang/php72/patches/patch-ext_phar_phar_phar.php b/lang/php72/patches/patch-ext_phar_phar_phar.php
new file mode 100644
index 00000000000..1d7f8286b5c
--- /dev/null
+++ b/lang/php72/patches/patch-ext_phar_phar_phar.php
@@ -0,0 +1,10 @@
+$NetBSD: patch-ext_phar_phar_phar.php,v 1.1 2017/11/15 08:56:12 jdolecek Exp $
+
+--- ext/phar/phar/phar.php.orig 2015-06-23 17:33:33.000000000 +0000
++++ ext/phar/phar/phar.php
+@@ -1,4 +1,4 @@
+-#!/usr/local/bin/php
++#!@PREFIX@/bin/php
+ <?php
+
+ /** @file phar.php
diff --git a/lang/php72/patches/patch-ext_recode_recode.c b/lang/php72/patches/patch-ext_recode_recode.c
new file mode 100644
index 00000000000..341aff3d981
--- /dev/null
+++ b/lang/php72/patches/patch-ext_recode_recode.c
@@ -0,0 +1,22 @@
+$NetBSD: patch-ext_recode_recode.c,v 1.1 2017/11/15 08:56:12 jdolecek Exp $
+
+program_name is expected variable, is required by recode 3.5 and recode 3.6 to actually work.
+
+The config.m4 test for it is broken at least for some platforms - it only tests if program without it compiles, but on Solaris and MacOS/Darwin at least it only fails when run.
+
+--- ext/recode/recode.c.orig 2016-07-24 13:07:47.000000000 +0000
++++ ext/recode/recode.c
+@@ -29,11 +29,8 @@
+
+ #if HAVE_LIBRECODE
+
+-/* For recode 3.5 */
+-#if HAVE_BROKEN_RECODE
+-extern char *program_name;
+-char *program_name = "php";
+-#endif
++extern const char *program_name;
++const char *program_name = "php";
+
+ #ifdef HAVE_STDBOOL_H
+ # include <stdbool.h>
diff --git a/lang/php72/patches/patch-ext_sqlite3_libsqlite_sqlite3.c b/lang/php72/patches/patch-ext_sqlite3_libsqlite_sqlite3.c
new file mode 100644
index 00000000000..27fffae0e3a
--- /dev/null
+++ b/lang/php72/patches/patch-ext_sqlite3_libsqlite_sqlite3.c
@@ -0,0 +1,13 @@
+$NetBSD: patch-ext_sqlite3_libsqlite_sqlite3.c,v 1.1 2017/11/15 08:56:12 jdolecek Exp $
+
+--- ext/sqlite3/libsqlite/sqlite3.c.orig 2015-06-23 17:33:33.000000000 +0000
++++ ext/sqlite3/libsqlite/sqlite3.c
+@@ -8408,7 +8408,7 @@ struct sqlite3_rtree_query_info {
+ ** But _XOPEN_SOURCE define causes problems for Mac OS X, so omit
+ ** it.
+ */
+-#if !defined(_XOPEN_SOURCE) && !defined(__DARWIN__) && !defined(__APPLE__)
++#if !defined(_XOPEN_SOURCE) && !defined(__DARWIN__) && !defined(__APPLE__) && !defined(__sun)
+ # define _XOPEN_SOURCE 600
+ #endif
+
diff --git a/lang/php72/patches/patch-ext_xsl_php__xsl.h b/lang/php72/patches/patch-ext_xsl_php__xsl.h
new file mode 100644
index 00000000000..12f99c36b37
--- /dev/null
+++ b/lang/php72/patches/patch-ext_xsl_php__xsl.h
@@ -0,0 +1,15 @@
+$NetBSD: patch-ext_xsl_php__xsl.h,v 1.1 2017/11/15 08:56:12 jdolecek Exp $
+
+The dom header is now supplied by the main php bl3.
+
+--- ext/xsl/php_xsl.h.orig 2017-03-14 13:17:46.000000000 +0000
++++ ext/xsl/php_xsl.h
+@@ -41,7 +41,7 @@ extern zend_module_entry xsl_module_entr
+ #include <libexslt/exsltconfig.h>
+ #endif
+
+-#include "../dom/xml_common.h"
++#include "dom/xml_common.h"
+ #include "xsl_fe.h"
+
+ #include <libxslt/extensions.h>
diff --git a/lang/php72/patches/patch-makedist b/lang/php72/patches/patch-makedist
new file mode 100644
index 00000000000..e7baef396f7
--- /dev/null
+++ b/lang/php72/patches/patch-makedist
@@ -0,0 +1,13 @@
+$NetBSD: patch-makedist,v 1.1 2017/11/15 08:56:12 jdolecek Exp $
+
+--- makedist.orig 2015-06-23 17:33:33.000000000 +0000
++++ makedist
+@@ -35,7 +35,7 @@ if test "${1}" = "1" -a "${2}" -lt "28";
+ fi
+ IFS="$old_IFS"
+
+-if test "x$PHPROOT" == "x"; then
++if test "x$PHPROOT" = "x"; then
+ PHPROOT=git@git.php.net:php-src.git;
+ fi
+
diff --git a/lang/php72/patches/patch-php.ini-development b/lang/php72/patches/patch-php.ini-development
new file mode 100644
index 00000000000..637dc4604b0
--- /dev/null
+++ b/lang/php72/patches/patch-php.ini-development
@@ -0,0 +1,33 @@
+$NetBSD: patch-php.ini-development,v 1.1 2017/11/15 08:56:12 jdolecek Exp $
+
+--- php.ini-development.orig 2015-06-23 17:33:33.000000000 +0000
++++ php.ini-development
+@@ -697,7 +697,7 @@ default_charset = "UTF-8"
+ ;;;;;;;;;;;;;;;;;;;;;;;;;
+
+ ; UNIX: "/path1:/path2"
+-;include_path = ".:/php/includes"
++include_path = ".:@PREFIX@/lib/php"
+ ;
+ ; Windows: "\path1;\path2"
+ ;include_path = ".;c:\php\includes"
+@@ -718,8 +718,8 @@ doc_root =
+ ; http://php.net/user-dir
+ user_dir =
+
+-; Directory in which the loadable extensions (modules) reside.
+-; http://php.net/extension-dir
++; Directory in which the loadable extensions (modules) reside. If not
++; defined, then use the extension directory specified at compile-time.
+ ; extension_dir = "./"
+ ; On windows:
+ ; extension_dir = "ext"
+@@ -792,7 +792,7 @@ file_uploads = On
+ ; Temporary directory for HTTP uploaded files (will use system default if not
+ ; specified).
+ ; http://php.net/upload-tmp-dir
+-;upload_tmp_dir =
++upload_tmp_dir = /tmp
+
+ ; Maximum allowed size for uploaded files.
+ ; http://php.net/upload-max-filesize
diff --git a/lang/php72/patches/patch-php.ini-production b/lang/php72/patches/patch-php.ini-production
new file mode 100644
index 00000000000..bf2119a093c
--- /dev/null
+++ b/lang/php72/patches/patch-php.ini-production
@@ -0,0 +1,33 @@
+$NetBSD: patch-php.ini-production,v 1.1 2017/11/15 08:56:12 jdolecek Exp $
+
+--- php.ini-production.orig 2015-06-23 17:33:33.000000000 +0000
++++ php.ini-production
+@@ -697,7 +697,7 @@ default_charset = "UTF-8"
+ ;;;;;;;;;;;;;;;;;;;;;;;;;
+
+ ; UNIX: "/path1:/path2"
+-;include_path = ".:/php/includes"
++include_path = ".:@PREFIX@/lib/php"
+ ;
+ ; Windows: "\path1;\path2"
+ ;include_path = ".;c:\php\includes"
+@@ -718,8 +718,8 @@ doc_root =
+ ; http://php.net/user-dir
+ user_dir =
+
+-; Directory in which the loadable extensions (modules) reside.
+-; http://php.net/extension-dir
++; Directory in which the loadable extensions (modules) reside. If not
++; defined, then use the extension directory specified at compile-time.
+ ; extension_dir = "./"
+ ; On windows:
+ ; extension_dir = "ext"
+@@ -792,7 +792,7 @@ file_uploads = On
+ ; Temporary directory for HTTP uploaded files (will use system default if not
+ ; specified).
+ ; http://php.net/upload-tmp-dir
+-;upload_tmp_dir =
++upload_tmp_dir = /tmp
+
+ ; Maximum allowed size for uploaded files.
+ ; http://php.net/upload-max-filesize
diff --git a/lang/php72/patches/patch-run-tests.php b/lang/php72/patches/patch-run-tests.php
new file mode 100644
index 00000000000..1a1bfaa73e1
--- /dev/null
+++ b/lang/php72/patches/patch-run-tests.php
@@ -0,0 +1,10 @@
+$NetBSD: patch-run-tests.php,v 1.1 2017/11/15 08:56:12 jdolecek Exp $
+
+--- run-tests.php.orig 2015-06-23 17:33:33.000000000 +0000
++++ run-tests.php
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env php
++#!@PREFIX@/bin/php
+ <?php
+ /*
+ +----------------------------------------------------------------------+
diff --git a/lang/php72/patches/patch-sapi_cgi_Makefile.frag b/lang/php72/patches/patch-sapi_cgi_Makefile.frag
new file mode 100644
index 00000000000..3f23e571bca
--- /dev/null
+++ b/lang/php72/patches/patch-sapi_cgi_Makefile.frag
@@ -0,0 +1,16 @@
+$NetBSD: patch-sapi_cgi_Makefile.frag,v 1.1 2017/11/15 08:56:12 jdolecek Exp $
+
+--- sapi/cgi/Makefile.frag.orig 2015-06-23 17:33:33.000000000 +0000
++++ sapi/cgi/Makefile.frag
+@@ -4,9 +4,9 @@ $(SAPI_CGI_PATH): $(PHP_GLOBAL_OBJS) $(P
+ $(BUILD_CGI)
+
+ install-cgi: $(SAPI_CGI_PATH)
+- @echo "Installing PHP CGI binary: $(INSTALL_ROOT)$(bindir)/"
++ @echo "Installing PHP CGI binary: $(INSTALL_ROOT)@CGIDIR@/"
+ @$(mkinstalldirs) $(INSTALL_ROOT)$(bindir)
+- @$(INSTALL) -m 0755 $(SAPI_CGI_PATH) $(INSTALL_ROOT)$(bindir)/$(program_prefix)php-cgi$(program_suffix)$(EXEEXT)
++ @$(INSTALL) -m 0755 $(SAPI_CGI_PATH) $(INSTALL_ROOT)@CGIDIR@/$(program_prefix)php$(program_suffix)$(EXEEXT)
+ @echo "Installing PHP CGI man page: $(INSTALL_ROOT)$(mandir)/man1/"
+ @$(mkinstalldirs) $(INSTALL_ROOT)$(mandir)/man1
+ @$(INSTALL_DATA) sapi/cgi/php-cgi.1 $(INSTALL_ROOT)$(mandir)/man1/$(program_prefix)php-cgi$(program_suffix).1
diff --git a/lang/php72/patches/patch-sapi_cli_Makefile.frag b/lang/php72/patches/patch-sapi_cli_Makefile.frag
new file mode 100644
index 00000000000..b2f92cc92a6
--- /dev/null
+++ b/lang/php72/patches/patch-sapi_cli_Makefile.frag
@@ -0,0 +1,19 @@
+$NetBSD: patch-sapi_cli_Makefile.frag,v 1.1 2017/11/15 08:56:12 jdolecek Exp $
+
+Needed on NetBSD with PaX MPROTEXT, otherwise core dump with:
+#1 0x00000000004d0d87 in _pcre_jit_exec ()
+#2 0x00000000004a53f1 in php_pcre_exec ()
+https://bugs.php.net/bug.php?id=72281
+
+--- sapi/cli/Makefile.frag.orig 2016-04-28 18:12:27.000000000 +0000
++++ sapi/cli/Makefile.frag
+@@ -2,6 +2,9 @@ cli: $(SAPI_CLI_PATH)
+
+ $(SAPI_CLI_PATH): $(PHP_GLOBAL_OBJS) $(PHP_BINARY_OBJS) $(PHP_CLI_OBJS)
+ $(BUILD_CLI)
++ @if test -x /usr/sbin/paxctl; then \
++ /usr/sbin/paxctl +m $(SAPI_CLI_PATH); \
++ fi
+
+ install-cli: $(SAPI_CLI_PATH)
+ @echo "Installing PHP CLI binary: $(INSTALL_ROOT)$(bindir)/"
diff --git a/lang/php72/patches/patch-sapi_fpm_fpm_events_port.c b/lang/php72/patches/patch-sapi_fpm_fpm_events_port.c
new file mode 100644
index 00000000000..cd7667e79c1
--- /dev/null
+++ b/lang/php72/patches/patch-sapi_fpm_fpm_events_port.c
@@ -0,0 +1,45 @@
+$NetBSD: patch-sapi_fpm_fpm_events_port.c,v 1.1 2017/11/15 08:56:12 jdolecek Exp $
+
+--- sapi/fpm/fpm/events/port.c.orig 2015-06-23 17:33:33.000000000 +0000
++++ sapi/fpm/fpm/events/port.c
+@@ -124,6 +124,7 @@ static int fpm_event_port_wait(struct fp
+ t.tv_nsec = (timeout % 1000) * 1000 * 1000;
+
+ /* wait for inconming event or timeout. We want at least one event or timeout */
++again:
+ nget = 1;
+ ret = port_getn(pfd, events, nevents, &nget, &t);
+ if (ret < 0) {
+@@ -133,17 +134,31 @@ static int fpm_event_port_wait(struct fp
+ zlog(ZLOG_WARNING, "poll() returns %d", errno);
+ return -1;
+ }
++
++ if (errno == EINTR)
++ goto again;
++
++ return 0;
+ }
+
+ for (i = 0; i < nget; i++) {
++ struct fpm_event_s *ev;
+
+ /* do we have a ptr to the event ? */
+ if (!events[i].portev_user) {
+ continue;
+ }
+
++ ev = (struct fpm_event_s *)events[i].portev_user;
++
++ if (port_associate(pfd, PORT_SOURCE_FD,
++ ev->fd, POLLIN, (void *)ev) < 0) {
++ zlog(ZLOG_ERROR, "port: unable to add the event");
++ return -1;
++ }
++
+ /* fire the event */
+- fpm_event_fire((struct fpm_event_s *)events[i].portev_user);
++ fpm_event_fire(ev);
+
+ /* sanity check */
+ if (fpm_globals.parent_pid != getpid()) {
diff --git a/lang/php72/patches/patch-sapi_fpm_php-fpm.conf.in b/lang/php72/patches/patch-sapi_fpm_php-fpm.conf.in
new file mode 100644
index 00000000000..73303c305a9
--- /dev/null
+++ b/lang/php72/patches/patch-sapi_fpm_php-fpm.conf.in
@@ -0,0 +1,13 @@
+$NetBSD: patch-sapi_fpm_php-fpm.conf.in,v 1.1 2017/11/15 08:56:12 jdolecek Exp $
+
+--- sapi/fpm/php-fpm.conf.in.orig 2015-06-23 17:33:33.000000000 +0000
++++ sapi/fpm/php-fpm.conf.in
+@@ -14,7 +14,7 @@
+ ; Pid file
+ ; Note: the default prefix is @EXPANDED_LOCALSTATEDIR@
+ ; Default Value: none
+-;pid = run/php-fpm.pid
++pid = run/php-fpm.pid
+
+ ; Error log file
+ ; If it's set to "syslog", log is sent to syslogd instead of being written