summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortaca <taca@pkgsrc.org>2018-12-15 17:12:44 +0000
committertaca <taca@pkgsrc.org>2018-12-15 17:12:44 +0000
commite700dbe9624d24def8ee531f0caa3c809f4f4f63 (patch)
tree99e96bb8270160cb2ff2d8e30bbdc4c19c2e2c13
parent1dfc9a7fb014caad93031e8b474b2a52e64cc0a2 (diff)
downloadpkgsrc-e700dbe9624d24def8ee531f0caa3c809f4f4f63.tar.gz
lang/php73: add version 7.3.0 package
Add PHP 7.3.0 as php73. 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.3.x. PHP 7.3.0 comes with numerous improvements and new features such as * Flexible Heredoc and Nowdoc Syntax * PCRE2 Migration * Multiple MBString Improvements * LDAP Controls Support * Improved FPM Logging * Windows File Deletion Improvements * Several Deprecations For source downloads of PHP 7.3.0 please visit our downloads page Windows binaries can be found on the PHP for Windows site. The list of changes is recorded in the ChangeLog.
-rw-r--r--lang/php73/DESCR22
-rw-r--r--lang/php73/MESSAGE11
-rw-r--r--lang/php73/Makefile63
-rw-r--r--lang/php73/Makefile.common27
-rw-r--r--lang/php73/Makefile.php114
-rw-r--r--lang/php73/PLIST286
-rw-r--r--lang/php73/buildlink3.mk15
-rw-r--r--lang/php73/distinfo21
-rw-r--r--lang/php73/patches/patch-configure27
-rw-r--r--lang/php73/patches/patch-disable-filter-url30
-rw-r--r--lang/php73/patches/patch-ext_gd_config.m497
-rw-r--r--lang/php73/patches/patch-ext_phar_Makefile.frag13
-rw-r--r--lang/php73/patches/patch-ext_phar_phar_phar.php10
-rw-r--r--lang/php73/patches/patch-ext_recode_recode.c27
-rw-r--r--lang/php73/patches/patch-ext_tidy_config.m413
-rw-r--r--lang/php73/patches/patch-ext_xsl_php__xsl.h15
-rw-r--r--lang/php73/patches/patch-php.ini-development32
-rw-r--r--lang/php73/patches/patch-php.ini-production32
-rw-r--r--lang/php73/patches/patch-run-tests.php10
-rw-r--r--lang/php73/patches/patch-sapi_cgi_Makefile.frag16
-rw-r--r--lang/php73/patches/patch-sapi_cli_Makefile.frag19
-rw-r--r--lang/php73/patches/patch-sapi_fpm_fpm_events_port.c49
-rw-r--r--lang/php73/patches/patch-sapi_fpm_php-fpm.conf.in13
23 files changed, 962 insertions, 0 deletions
diff --git a/lang/php73/DESCR b/lang/php73/DESCR
new file mode 100644
index 00000000000..e64ebe9b056
--- /dev/null
+++ b/lang/php73/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.3.x.
+
+PHP 7.3.0 comes with numerous improvements and new features such as
+
+* Flexible Heredoc and Nowdoc Syntax
+* PCRE2 Migration
+* Multiple MBString Improvements
+* LDAP Controls Support
+* Improved FPM Logging
+* Windows File Deletion Improvements
+* Several Deprecations
+
+For source downloads of PHP 7.3.0 please visit our downloads page Windows
+binaries can be found on the PHP for Windows site. The list of changes is
+recorded in the ChangeLog.
diff --git a/lang/php73/MESSAGE b/lang/php73/MESSAGE
new file mode 100644
index 00000000000..65595565c0c
--- /dev/null
+++ b/lang/php73/MESSAGE
@@ -0,0 +1,11 @@
+===========================================================================
+$NetBSD: MESSAGE,v 1.1 2018/12/15 17:12:44 taca 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/php73/Makefile b/lang/php73/Makefile
new file mode 100644
index 00000000000..c62afad9252
--- /dev/null
+++ b/lang/php73/Makefile
@@ -0,0 +1,63 @@
+# $NetBSD: Makefile,v 1.1 2018/12/15 17:12:44 taca Exp $
+
+#
+# We can't omit PKGNAME here to handle PKG_OPTIONS.
+#
+PKGNAME= php-${PHP_VERSION:S/RC/rc/}
+
+HOMEPAGE= http://www.php.net/
+COMMENT= PHP Hypertext Preprocessor version 7.3
+LICENSE= php
+
+TEST_TARGET= test
+
+USE_TOOLS+= gmake lex pkg-config
+LIBTOOL_OVERRIDE= # empty
+PHP_CHECK_INSTALLED= No
+
+PHP_VERSIONS_ACCEPTED= 73
+
+.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
+
+# 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/php73/Makefile.common b/lang/php73/Makefile.common
new file mode 100644
index 00000000000..3ad08e25e00
--- /dev/null
+++ b/lang/php73/Makefile.common
@@ -0,0 +1,27 @@
+# $NetBSD: Makefile.common,v 1.1 2018/12/15 17:12:44 taca Exp $
+# used by lang/php73/Makefile.php
+# used by lang/php/ext.mk
+# used by meta-pkgs/php73-extensions/Makefile
+
+PHP_VERSION_REQD= 73
+
+.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
+
+# not every extension actually depend on PCRE, and those which do
+# don't use internal pcre structures, so default to build-time
+# dependency only
+BUILDLINK_DEPMETHOD.pcre2?= build
+CONFIGURE_ARGS+= --with-pcre-regex=${BUILDLINK_PREFIX.pcre2}
+.include "../../devel/pcre2/buildlink3.mk"
diff --git a/lang/php73/Makefile.php b/lang/php73/Makefile.php
new file mode 100644
index 00000000000..d15e08f5be9
--- /dev/null
+++ b/lang/php73/Makefile.php
@@ -0,0 +1,114 @@
+# $NetBSD: Makefile.php,v 1.1 2018/12/15 17:12:44 taca Exp $
+# used by lang/php73/Makefile
+# used by www/ap-php/Makefile
+# used by www/php-fpm/Makefile
+
+# segfaults when buidling with many compilers
+# https://bugs.php.net/bug.php?id=74527
+# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86236
+.if ${MACHINE_ARCH} == "i386"
+CONFIGURE_ARGS+= --disable-gcc-global-regs
+.endif
+
+# the binary actually needs full dep on PCRE
+BUILDLINK_DEPMETHOD.pcre2= full
+
+.include "../../lang/php73/Makefile.common"
+
+DISTINFO_FILE= ${.CURDIR}/../../lang/php73/distinfo
+PATCHDIR= ${.CURDIR}/../../lang/php73/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-sqlite3
+#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"
+
+CONFIGURE_ARGS+= --with-pcre-regex=${BUILDLINK_PREFIX.pcre2}
+
+PKG_OPTIONS_VAR= PKG_OPTIONS.${PHP_PKG_PREFIX}
+PKG_SUPPORTED_OPTIONS+= inet6 ssl maintainer-zts readline argon2
+PKG_SUPPORTED_OPTIONS+= disable-filter-url
+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
+
+.if !empty(PKG_OPTIONS:Margon2)
+CONFIGURE_ARGS+= --with-password-argon2=${BUILDLINK_PREFIX.argon2}
+.include "../../security/argon2/buildlink3.mk"
+.endif
+
+.if !empty(PKG_OPTIONS:Mdisable-filter-url)
+CFLAGS+= -DDISABLE_FILTER_URL
+.endif
+
+DL_AUTO_VARS= yes
+.include "../../mk/dlopen.buildlink3.mk"
diff --git a/lang/php73/PLIST b/lang/php73/PLIST
new file mode 100644
index 00000000000..5d2faf5ef92
--- /dev/null
+++ b/lang/php73/PLIST
@@ -0,0 +1,286 @@
+@comment $NetBSD: PLIST,v 1.1 2018/12/15 17:12:44 taca 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_cpuinfo.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_handlers.h
+include/php/Zend/zend_vm_opcodes.h
+include/php/Zend/zend_vm_trace_handlers.h
+include/php/Zend/zend_vm_trace_map.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/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/hrtime.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_net.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/ax_gcc_func_attribute.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/php73/buildlink3.mk b/lang/php73/buildlink3.mk
new file mode 100644
index 00000000000..6a029f89756
--- /dev/null
+++ b/lang/php73/buildlink3.mk
@@ -0,0 +1,15 @@
+# $NetBSD: buildlink3.mk,v 1.1 2018/12/15 17:12:44 taca Exp $
+
+BUILDLINK_TREE+= php
+
+.if !defined(PHP_BUILDLINK3_MK)
+PHP_BUILDLINK3_MK:=
+
+BUILDLINK_API_DEPENDS.php+= php>=7.3.0<7.3.99
+BUILDLINK_ABI_DEPENDS.php+= php>=7.3.0<7.3.99
+BUILDLINK_PKGSRCDIR.php?= ../../lang/php72
+
+.include "../../textproc/libxml2/buildlink3.mk"
+.endif # PHP_BUILDLINK3_MK
+
+BUILDLINK_TREE+= -php
diff --git a/lang/php73/distinfo b/lang/php73/distinfo
new file mode 100644
index 00000000000..ee6ef1a1d80
--- /dev/null
+++ b/lang/php73/distinfo
@@ -0,0 +1,21 @@
+$NetBSD: distinfo,v 1.1 2018/12/15 17:12:44 taca Exp $
+
+SHA1 (php-7.3.0.tar.bz2) = a5dfd570ae1014beb318400db9fab43758f4240b
+RMD160 (php-7.3.0.tar.bz2) = 069f463dfa8c38f5ef06d49a3225d145e89fefdf
+SHA512 (php-7.3.0.tar.bz2) = e2f9e30fb22ebccb72cf0e0c0ef97ce13c429abec17909b982ee91f7061ac2fd9e2325a091088aad5e9b090c444e31fd39096752ce34191d884bd7e9d726479f
+Size (php-7.3.0.tar.bz2) = 14786886 bytes
+SHA1 (patch-configure) = a47c9d3b6ace5fca7cde1cf2e149dc1dc3d8acd4
+SHA1 (patch-disable-filter-url) = d7e450380b584e01e2f01e9c91c864d01991cdbf
+SHA1 (patch-ext_gd_config.m4) = eaecfb31b18700dd642c067ed82748d4f6be2335
+SHA1 (patch-ext_phar_Makefile.frag) = 558869b60f8ed6674a3ba1d595a65f010df4c426
+SHA1 (patch-ext_phar_phar_phar.php) = f630e3946b21b76d4fe857a43e00e25c9445f2c8
+SHA1 (patch-ext_recode_recode.c) = 639bf762302c7a30c88d3f3fa862494e0f847bdb
+SHA1 (patch-ext_tidy_config.m4) = 4d6b4bf71c606fdb244937dc8a92b49e268060e6
+SHA1 (patch-ext_xsl_php__xsl.h) = a9877bff7bacc77926a4541a0ac171c00ad1a627
+SHA1 (patch-php.ini-development) = 0150deec620db99272d10bc01585a503b2fc4b86
+SHA1 (patch-php.ini-production) = 8c3451ff6253c9cd0dbf342761231c8fe54fdc52
+SHA1 (patch-run-tests.php) = 278cd99b3c5f3d2131eef564e18eb2ee9924db5a
+SHA1 (patch-sapi_cgi_Makefile.frag) = 18769900f588ff81cc34474542afa1d65c070e65
+SHA1 (patch-sapi_cli_Makefile.frag) = 1cd29d09042863acbf5330e406410fdcf75d06b3
+SHA1 (patch-sapi_fpm_fpm_events_port.c) = b82b7caffffde1343190fae430a68eb411b5cf8a
+SHA1 (patch-sapi_fpm_php-fpm.conf.in) = b3c4fd499cbfd2dffd9176abb54e298ea542a5d7
diff --git a/lang/php73/patches/patch-configure b/lang/php73/patches/patch-configure
new file mode 100644
index 00000000000..35b5e4066ed
--- /dev/null
+++ b/lang/php73/patches/patch-configure
@@ -0,0 +1,27 @@
+$NetBSD: patch-configure,v 1.1 2018/12/15 17:12:44 taca Exp $
+
+Don't automatically add libgcc on SunOS. Reported upstream as #75941.
+
+The meta_ccld removal reported upstream as #75940.
+
+--- configure.orig 2018-12-04 16:12:21.000000000 +0000
++++ configure
+@@ -5453,9 +5453,6 @@ fi
+ case $host_alias in
+ *solaris*)
+ CPPFLAGS="$CPPFLAGS -D_POSIX_PTHREAD_SEMANTICS"
+- if test "${enable_libgcc+set}" != "set" && test "$GCC" = "yes"; then
+- enable_libgcc=yes
+- fi
+ ;;
+ *dgux*)
+ CPPFLAGS="$CPPFLAGS -D_BSD_TIMEOFDAY_FLAVOR"
+@@ -83290,7 +83287,7 @@ $as_echo "#define HAVE_TIDYBUFFIO_H 1" >
+ fi
+
+ TIDY_LIBDIR=$TIDY_DIR/$PHP_LIBDIR
+- if test "$TIDY_LIB_NAME" == 'tidyp'; then
++ if test "$TIDY_LIB_NAME" = 'tidyp'; then
+
+ $as_echo "#define HAVE_TIDYP_H 1" >>confdefs.h
+
diff --git a/lang/php73/patches/patch-disable-filter-url b/lang/php73/patches/patch-disable-filter-url
new file mode 100644
index 00000000000..a5b8ff94ef1
--- /dev/null
+++ b/lang/php73/patches/patch-disable-filter-url
@@ -0,0 +1,30 @@
+$NetBSD: patch-disable-filter-url,v 1.1 2018/12/15 17:12:44 taca Exp $
+
+Add build-time disable option for dangerous php://filter URL
+
+php://filter URL is a feature documented here:
+http://php.net/manual/en/wrappers.php.php
+
+Unfortunately, it allows remote control of include() behavior
+beyond what many developpers expected, enabling easy dump of
+PHP source files. The administrator may want to disable the
+feature for security sake, and this patch makes that possible.
+
+--- ext/standard/php_fopen_wrapper.c.orig 2018-12-04 16:12:26.000000000 +0000
++++ ext/standard/php_fopen_wrapper.c
+@@ -338,6 +338,7 @@ php_stream * php_stream_url_wrap_php(php
+ "[%d]: %s", fildes_ori, errno, strerror(errno));
+ return NULL;
+ }
++#ifndef DISABLE_FILTER_URL
+ } else if (!strncasecmp(path, "filter/", 7)) {
+ /* Save time/memory when chain isn't specified */
+ if (strchr(mode, 'r') || strchr(mode, '+')) {
+@@ -375,6 +376,7 @@ php_stream * php_stream_url_wrap_php(php
+ efree(pathdup);
+
+ return stream;
++#endif /* !DISABLE_FILTER_URL */
+ } else {
+ /* invalid php://thingy */
+ php_error_docref(NULL, E_WARNING, "Invalid php:// URL specified");
diff --git a/lang/php73/patches/patch-ext_gd_config.m4 b/lang/php73/patches/patch-ext_gd_config.m4
new file mode 100644
index 00000000000..74129f218ca
--- /dev/null
+++ b/lang/php73/patches/patch-ext_gd_config.m4
@@ -0,0 +1,97 @@
+$NetBSD: patch-ext_gd_config.m4,v 1.1 2018/12/15 17:12:44 taca Exp $
+
+Allow pkg-config rather than freetype-config
+
+--- ext/gd/config.m4.orig 2018-10-09 15:09:51.000000000 +0000
++++ ext/gd/config.m4
+@@ -43,18 +43,7 @@ dnl Checks for the configure options
+ dnl
+
+ AC_DEFUN([PHP_GD_ZLIB],[
+- if test "$PHP_ZLIB_DIR" != "no" && test "$PHP_ZLIB_DIR" != "yes"; then
+- if test -f "$PHP_ZLIB_DIR/include/zlib/zlib.h"; then
+- PHP_ZLIB_DIR="$PHP_ZLIB_DIR"
+- PHP_ZLIB_INCDIR="$PHP_ZLIB_DIR/include/zlib"
+- elif test -f "$PHP_ZLIB_DIR/include/zlib.h"; then
+- PHP_ZLIB_DIR="$PHP_ZLIB_DIR"
+- PHP_ZLIB_INCDIR="$PHP_ZLIB_DIR/include"
+- else
+- AC_MSG_ERROR([Can't find zlib headers under "$PHP_ZLIB_DIR"])
+- fi
+- else
+- for i in /usr/local /usr; do
++ for i in "$PHP_ZLIB_DIR" /usr/local /usr; do
+ if test -f "$i/include/zlib/zlib.h"; then
+ PHP_ZLIB_DIR="$i"
+ PHP_ZLIB_INCDIR="$i/include/zlib"
+@@ -63,7 +52,6 @@ AC_DEFUN([PHP_GD_ZLIB],[
+ PHP_ZLIB_INCDIR="$i/include"
+ fi
+ done
+- fi
+ ])
+
+ AC_DEFUN([PHP_GD_WEBP],[
+@@ -140,13 +128,13 @@ AC_DEFUN([PHP_GD_PNG],[
+ AC_MSG_ERROR([PNG support requires ZLIB. Use --with-zlib-dir=<DIR>])
+ fi
+
+- PHP_CHECK_LIBRARY(png,png_write_image,
++ PHP_CHECK_LIBRARY(png16,png_write_image,
+ [
+ PHP_ADD_INCLUDE($GD_PNG_DIR/include)
+ PHP_ADD_LIBRARY_WITH_PATH(z, $PHP_ZLIB_DIR/$PHP_LIBDIR, GD_SHARED_LIBADD)
+- PHP_ADD_LIBRARY_WITH_PATH(png, $GD_PNG_DIR/$PHP_LIBDIR, GD_SHARED_LIBADD)
++ PHP_ADD_LIBRARY_WITH_PATH(png16, $GD_PNG_DIR/$PHP_LIBDIR, GD_SHARED_LIBADD)
+ ],[
+- AC_MSG_ERROR([Problem with libpng.(a|so) or libz.(a|so). Please check config.log for more information.])
++ AC_MSG_ERROR([Problem with libpng16.(a|so) or libz.(a|so). Please check config.log for more information.])
+ ],[
+ -L$PHP_ZLIB_DIR/$PHP_LIBDIR -lz -L$GD_PNG_DIR/$PHP_LIBDIR
+ ])
+@@ -186,6 +174,9 @@ AC_DEFUN([PHP_GD_XPM],[
+ AC_DEFUN([PHP_GD_FREETYPE2],[
+ if test "$PHP_FREETYPE_DIR" != "no"; then
+
++ AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
++
++ AC_MSG_CHECKING([for freetype])
+ for i in $PHP_FREETYPE_DIR /usr/local /usr; do
+ if test -f "$i/bin/freetype-config"; then
+ FREETYPE2_DIR=$i
+@@ -194,13 +185,20 @@ AC_DEFUN([PHP_GD_FREETYPE2],[
+ fi
+ done
+
+- if test -z "$FREETYPE2_DIR"; then
++ if test -n "$FREETYPE2_CONFIG"; then
++ FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags`
++ FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs`
++ AC_MSG_RESULT([found in $FREETYPE2_DIR])
++ elif test "$PKG_CONFIG" != "no" && $PKG_CONFIG --exists freetype2; then
++ FREETYPE2_DIR=pkg-config
++ FREETYPE2_CFLAGS=`$PKG_CONFIG freetype2 --cflags`
++ FREETYPE2_LIBS=`$PKG_CONFIG freetype2 --libs`
++ AC_MSG_RESULT([found by pkg-config])
++ else
++ AC_MSG_RESULT([not found])
+ AC_MSG_ERROR([freetype-config not found.])
+ fi
+
+- FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags`
+- FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs`
+-
+ PHP_EVAL_INCLINE($FREETYPE2_CFLAGS)
+ PHP_EVAL_LIBLINE($FREETYPE2_LIBS, GD_SHARED_LIBADD)
+ AC_DEFINE(HAVE_LIBFREETYPE,1,[ ])
+@@ -220,7 +218,9 @@ AC_DEFUN([PHP_GD_CHECK_VERSION],[
+ PHP_CHECK_LIBRARY(gd, gdImageCreateFromPng, [AC_DEFINE(HAVE_GD_PNG, 1, [ ])], [], [ $GD_SHARED_LIBADD ])
+ PHP_CHECK_LIBRARY(gd, gdImageCreateFromWebp, [AC_DEFINE(HAVE_GD_WEBP, 1, [ ])], [], [ $GD_SHARED_LIBADD ])
+ PHP_CHECK_LIBRARY(gd, gdImageCreateFromJpeg, [AC_DEFINE(HAVE_GD_JPG, 1, [ ])], [], [ $GD_SHARED_LIBADD ])
+- PHP_CHECK_LIBRARY(gd, gdImageCreateFromXpm, [AC_DEFINE(HAVE_GD_XPM, 1, [ ])], [], [ $GD_SHARED_LIBADD ])
++ if test "$PHP_XPM_DIR" != "no"; then
++ PHP_CHECK_LIBRARY(gd, gdImageCreateFromXpm, [AC_DEFINE(HAVE_GD_XPM, 1, [ ])], [], [ $GD_SHARED_LIBADD ])
++ fi
+ PHP_CHECK_LIBRARY(gd, gdImageCreateFromBmp, [AC_DEFINE(HAVE_GD_BMP, 1, [ ])], [], [ $GD_SHARED_LIBADD ])
+ PHP_CHECK_LIBRARY(gd, gdImageStringFT, [AC_DEFINE(HAVE_GD_FREETYPE, 1, [ ])], [], [ $GD_SHARED_LIBADD ])
+ PHP_CHECK_LIBRARY(gd, gdVersionString, [AC_DEFINE(HAVE_GD_LIBVERSION, 1, [ ])], [], [ $GD_SHARED_LIBADD ])
diff --git a/lang/php73/patches/patch-ext_phar_Makefile.frag b/lang/php73/patches/patch-ext_phar_Makefile.frag
new file mode 100644
index 00000000000..adeec9e2fcc
--- /dev/null
+++ b/lang/php73/patches/patch-ext_phar_Makefile.frag
@@ -0,0 +1,13 @@
+$NetBSD: patch-ext_phar_Makefile.frag,v 1.1 2018/12/15 17:12:44 taca 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/php73/patches/patch-ext_phar_phar_phar.php b/lang/php73/patches/patch-ext_phar_phar_phar.php
new file mode 100644
index 00000000000..6d205739ef3
--- /dev/null
+++ b/lang/php73/patches/patch-ext_phar_phar_phar.php
@@ -0,0 +1,10 @@
+$NetBSD: patch-ext_phar_phar_phar.php,v 1.1 2018/12/15 17:12:44 taca 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/php73/patches/patch-ext_recode_recode.c b/lang/php73/patches/patch-ext_recode_recode.c
new file mode 100644
index 00000000000..44708bc5c9d
--- /dev/null
+++ b/lang/php73/patches/patch-ext_recode_recode.c
@@ -0,0 +1,27 @@
+$NetBSD: patch-ext_recode_recode.c,v 1.1 2018/12/15 17:12:44 taca 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.
+
+Reported upstream as #75617
+
+--- 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/php73/patches/patch-ext_tidy_config.m4 b/lang/php73/patches/patch-ext_tidy_config.m4
new file mode 100644
index 00000000000..222fb7e2458
--- /dev/null
+++ b/lang/php73/patches/patch-ext_tidy_config.m4
@@ -0,0 +1,13 @@
+$NetBSD: patch-ext_tidy_config.m4,v 1.1 2018/12/15 17:12:44 taca Exp $
+
+--- ext/tidy/config.m4.orig 2018-12-04 16:12:28.000000000 +0000
++++ ext/tidy/config.m4
+@@ -40,7 +40,7 @@ if test "$PHP_TIDY" != "no"; then
+ fi
+
+ TIDY_LIBDIR=$TIDY_DIR/$PHP_LIBDIR
+- if test "$TIDY_LIB_NAME" == 'tidyp'; then
++ if test "$TIDY_LIB_NAME" = 'tidyp'; then
+ AC_DEFINE(HAVE_TIDYP_H,1,[defined if tidyp.h exists])
+ else
+ AC_DEFINE(HAVE_TIDY_H,1,[defined if tidy.h exists])
diff --git a/lang/php73/patches/patch-ext_xsl_php__xsl.h b/lang/php73/patches/patch-ext_xsl_php__xsl.h
new file mode 100644
index 00000000000..70669921998
--- /dev/null
+++ b/lang/php73/patches/patch-ext_xsl_php__xsl.h
@@ -0,0 +1,15 @@
+$NetBSD: patch-ext_xsl_php__xsl.h,v 1.1 2018/12/15 17:12:44 taca 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/php73/patches/patch-php.ini-development b/lang/php73/patches/patch-php.ini-development
new file mode 100644
index 00000000000..e486ff46382
--- /dev/null
+++ b/lang/php73/patches/patch-php.ini-development
@@ -0,0 +1,32 @@
+$NetBSD: patch-php.ini-development,v 1.1 2018/12/15 17:12:44 taca Exp $
+
+--- php.ini-development.orig 2018-12-04 16:12:20.000000000 +0000
++++ php.ini-development
+@@ -722,7 +722,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"
+@@ -743,7 +743,8 @@ doc_root =
+ ; http://php.net/user-dir
+ user_dir =
+
+-; Directory in which the loadable extensions (modules) reside.
++; Directory in which the loadable extensions (modules) reside. If not
++; defined, then use the extension directory specified at compile-time.
+ ; http://php.net/extension-dir
+ ;extension_dir = "./"
+ ; On windows:
+@@ -828,7 +829,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/php73/patches/patch-php.ini-production b/lang/php73/patches/patch-php.ini-production
new file mode 100644
index 00000000000..15a7e031530
--- /dev/null
+++ b/lang/php73/patches/patch-php.ini-production
@@ -0,0 +1,32 @@
+$NetBSD: patch-php.ini-production,v 1.1 2018/12/15 17:12:44 taca Exp $
+
+--- php.ini-production.orig 2018-12-04 16:12:20.000000000 +0000
++++ php.ini-production
+@@ -729,7 +729,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"
+@@ -750,7 +750,8 @@ doc_root =
+ ; http://php.net/user-dir
+ user_dir =
+
+-; Directory in which the loadable extensions (modules) reside.
++; Directory in which the loadable extensions (modules) reside. If not
++; defined, then use the extension directory specified at compile-time.
+ ; http://php.net/extension-dir
+ ;extension_dir = "./"
+ ; On windows:
+@@ -835,7 +836,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/php73/patches/patch-run-tests.php b/lang/php73/patches/patch-run-tests.php
new file mode 100644
index 00000000000..76861e9908b
--- /dev/null
+++ b/lang/php73/patches/patch-run-tests.php
@@ -0,0 +1,10 @@
+$NetBSD: patch-run-tests.php,v 1.1 2018/12/15 17:12:44 taca Exp $
+
+--- run-tests.php.orig 2018-12-04 16:12:20.000000000 +0000
++++ run-tests.php
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env php
++#!/usr/pkg/bin/php
+ <?php
+ /*
+ +----------------------------------------------------------------------+
diff --git a/lang/php73/patches/patch-sapi_cgi_Makefile.frag b/lang/php73/patches/patch-sapi_cgi_Makefile.frag
new file mode 100644
index 00000000000..9378c0c6e72
--- /dev/null
+++ b/lang/php73/patches/patch-sapi_cgi_Makefile.frag
@@ -0,0 +1,16 @@
+$NetBSD: patch-sapi_cgi_Makefile.frag,v 1.1 2018/12/15 17:12:44 taca 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/php73/patches/patch-sapi_cli_Makefile.frag b/lang/php73/patches/patch-sapi_cli_Makefile.frag
new file mode 100644
index 00000000000..94848ccbe1b
--- /dev/null
+++ b/lang/php73/patches/patch-sapi_cli_Makefile.frag
@@ -0,0 +1,19 @@
+$NetBSD: patch-sapi_cli_Makefile.frag,v 1.1 2018/12/15 17:12:44 taca 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/php73/patches/patch-sapi_fpm_fpm_events_port.c b/lang/php73/patches/patch-sapi_fpm_fpm_events_port.c
new file mode 100644
index 00000000000..2d2630a9548
--- /dev/null
+++ b/lang/php73/patches/patch-sapi_fpm_fpm_events_port.c
@@ -0,0 +1,49 @@
+$NetBSD: patch-sapi_fpm_fpm_events_port.c,v 1.1 2018/12/15 17:12:44 taca Exp $
+
+Similar to upstream bug #65800. We should resubmit this patch and
+get that bugfix intergrated, by changing port_associate() call to
+use the wrapper fpm_event_port_add().
+
+--- 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/php73/patches/patch-sapi_fpm_php-fpm.conf.in b/lang/php73/patches/patch-sapi_fpm_php-fpm.conf.in
new file mode 100644
index 00000000000..4faa3ea5cc5
--- /dev/null
+++ b/lang/php73/patches/patch-sapi_fpm_php-fpm.conf.in
@@ -0,0 +1,13 @@
+$NetBSD: patch-sapi_fpm_php-fpm.conf.in,v 1.1 2018/12/15 17:12:44 taca 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