Sun Mar 7 13:41:36 2021 UTC ()
lang/php80: add version 8.0.3 package

Add php80 package version 8.0.3 (PHP 8.0.3) with current PHP framework
of pkgsrc.

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.

PHP 8.0 comes with numerous improvements and new features such as

* Union Types
* Named Arguments
* Match Expressions
* Attributes
* Constructor Property Promotion
* Nullsafe Operator
* Weak Maps
* Just In Time Compilation
* And much much more...


(taca)
diff -r0 -r1.1 pkgsrc/lang/php80/DESCR
diff -r0 -r1.1 pkgsrc/lang/php80/MESSAGE
diff -r0 -r1.1 pkgsrc/lang/php80/Makefile
diff -r0 -r1.1 pkgsrc/lang/php80/Makefile.common
diff -r0 -r1.1 pkgsrc/lang/php80/Makefile.php
diff -r0 -r1.1 pkgsrc/lang/php80/PLIST
diff -r0 -r1.1 pkgsrc/lang/php80/buildlink3.mk
diff -r0 -r1.1 pkgsrc/lang/php80/distinfo
diff -r0 -r1.1 pkgsrc/lang/php80/options.mk
diff -r0 -r1.1 pkgsrc/lang/php80/patches/patch-build_libtool.m4
diff -r0 -r1.1 pkgsrc/lang/php80/patches/patch-configure
diff -r0 -r1.1 pkgsrc/lang/php80/patches/patch-disable-filter-url
diff -r0 -r1.1 pkgsrc/lang/php80/patches/patch-ext_enchant_enchant.c
diff -r0 -r1.1 pkgsrc/lang/php80/patches/patch-ext_phar_Makefile.frag
diff -r0 -r1.1 pkgsrc/lang/php80/patches/patch-ext_tidy_config.m4
diff -r0 -r1.1 pkgsrc/lang/php80/patches/patch-ext_xsl_php__xsl.h
diff -r0 -r1.1 pkgsrc/lang/php80/patches/patch-php.ini-development
diff -r0 -r1.1 pkgsrc/lang/php80/patches/patch-php.ini-production
diff -r0 -r1.1 pkgsrc/lang/php80/patches/patch-sapi_cgi_Makefile.frag
diff -r0 -r1.1 pkgsrc/lang/php80/patches/patch-sapi_cli_Makefile.frag
diff -r0 -r1.1 pkgsrc/lang/php80/patches/patch-sapi_fpm_fpm_events_port.c
diff -r0 -r1.1 pkgsrc/lang/php80/patches/patch-sapi_fpm_php-fpm.conf.in

File Added: pkgsrc/lang/php80/DESCR
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.

PHP 8.0 comes with numerous improvements and new features such as

* Union Types
* Named Arguments
* Match Expressions
* Attributes
* Constructor Property Promotion
* Nullsafe Operator
* Weak Maps
* Just In Time Compilation
* And much much more...

File Added: pkgsrc/lang/php80/MESSAGE
===========================================================================
$NetBSD: MESSAGE,v 1.1 2021/03/07 13:41:36 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.

===========================================================================

File Added: pkgsrc/lang/php80/Makefile
# $NetBSD: Makefile,v 1.1 2021/03/07 13:41:36 taca Exp $

#
# We can't omit PKGNAME here to handle PKG_OPTIONS.
#
PKGNAME=		php-${PHP_VERSION:S/RC/rc/}

COMMENT=		PHP Hypertext Preprocessor version 8.0
LICENSE=		php

TEST_TARGET=		test

USE_TOOLS+=		gmake lex
LIBTOOL_OVERRIDE=	# empty
PHP_CHECK_INSTALLED=	No

PHP_VERSIONS_ACCEPTED=		80

.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}"

# taken from devel/pkgconf/Makefile
PKGCONFIG_PATHS=	${PREFIX}/lib/pkgconfig
PKGCONFIG_PATHS+=	${PREFIX}/share/pkgconfig
PKGCONFIG_PATHS+=	/usr/lib/pkgconfig

# At this point, PREFIX is not set yet.
.if ${LOCALBASE} != ${X11BASE}
PKGCONFIG_PATHS+=	${X11BASE}/lib/pkgconfig
.endif

PHP_PKGCONFIG_PATH=	${PKGCONFIG_PATHS:ts:}

REPLACE_PHP=		ext/phar/phar/phar.php run-tests.php

SUBST_CLASSES+=		path
SUBST_MESSAGE.path=	Fixing common paths.
SUBST_STAGE.path=	pre-configure
SUBST_FILES.path=	configure
SUBST_FILES.path+=	php.ini-development php.ini-production
SUBST_FILES.path+=	sapi/cgi/Makefile.frag
SUBST_VARS.path=	CGIDIR
SUBST_VARS.path+=	PREFIX
SUBST_VARS.path+=	TOOLS_PATH.pkg-config PHP_PKGCONFIG_PATH

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}

.include "../../lang/php/replace.mk"
.include "../../mk/bsd.pkg.mk"

File Added: pkgsrc/lang/php80/Makefile.common
# $NetBSD: Makefile.common,v 1.1 2021/03/07 13:41:36 taca Exp $
# used by lang/php80/Makefile.php
# used by lang/php/ext.mk
# used by meta-pkgs/php80-extensions/Makefile

PHP_VERSION_REQD=	80

.include "../../lang/php/common.mk"

CATEGORIES+=		www
MAINTAINER?=		pkgsrc-users@NetBSD.org

USE_TOOLS+=		pkg-config

# needed due to (broken?) configure checks in php-xmlrpc and php5-dom
CONFIGURE_ENV+=		PHP_LIBXML_SHARED="1"

.if ${OPSYS} == "NetBSD"
CONFIGURE_ARGS+=	ax_cv_have_func_attribute_ifunc=no
.endif

.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
.include "../../devel/pcre2/buildlink3.mk"

File Added: pkgsrc/lang/php80/Makefile.php
# $NetBSD: Makefile.php,v 1.1 2021/03/07 13:41:36 taca Exp $
# used by lang/php80/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

USE_LIBTOOL=		YES
USE_LANGUAGES=		c c++
GNU_CONFIGURE=		YES
BUILD_DEFS+=		VARBASE
PLIST_VARS+=		dtrace

.include "../../lang/php80/Makefile.common"

DISTINFO_FILE=	${.CURDIR}/../../lang/php80/distinfo
PATCHDIR=	${.CURDIR}/../../lang/php80/patches

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+=	--with-external-pcre

CONFIGURE_ARGS+=	--disable-intl
CONFIGURE_ARGS+=	--disable-posix
CONFIGURE_ARGS+=	--disable-opcache
CONFIGURE_ARGS+=	--disable-pdo

CONFIGURE_ARGS+=	--enable-cgi
CONFIGURE_ARGS+=	--enable-mysqlnd
CONFIGURE_ARGS+=	--enable-xml
#CONFIGURE_ARGS+=	--with-libxml-dir=${PREFIX}

CONFIGURE_ENV+=		EXTENSION_DIR="${PREFIX}/${PHP_EXTENSION_DIR}"

.include "../../textproc/libxml2/buildlink3.mk"

#CONFIGURE_ARGS+=	--with-pcre-regex=${BUILDLINK_PREFIX.pcre2}

.include "options.mk"

DL_AUTO_VARS=		yes
.include "../../mk/dlopen.buildlink3.mk"

File Added: pkgsrc/lang/php80/PLIST
@comment $NetBSD: PLIST,v 1.1 2021/03/07 13:41:36 taca Exp $
bin/phar
bin/phar.phar
bin/php
bin/php-config
bin/phpdbg
bin/phpize
include/php/TSRM/TSRM.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_attributes.h
include/php/Zend/zend_attributes_arginfo.h
include/php/Zend/zend_bitset.h
include/php/Zend/zend_build.h
include/php/Zend/zend_builtin_functions.h
include/php/Zend/zend_builtin_functions_arginfo.h
include/php/Zend/zend_closures.h
include/php/Zend/zend_closures_arginfo.h
include/php/Zend/zend_compile.h
include/php/Zend/zend_config.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_exceptions_arginfo.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_gdb.h
include/php/Zend/zend_generators.h
include/php/Zend/zend_generators_arginfo.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_interfaces_arginfo.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_map_ptr.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_observer.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_system_id.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_lines.h
include/php/Zend/zend_vm_trace_map.h
include/php/Zend/zend_weakrefs.h
include/php/Zend/zend_weakrefs_arginfo.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/json/php_json.h
include/php/ext/json/php_json_parser.h
include/php/ext/json/php_json_scanner.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/basic_functions_arginfo.h
include/php/ext/standard/crc32.h
include/php/ext/standard/crc32_x86.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/datetime.h
include/php/ext/standard/dir_arginfo.h
include/php/ext/standard/dl.h
include/php/ext/standard/dl_arginfo.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/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_http.h
include/php/ext/standard/php_image.h
include/php/ext/standard/php_incomplete_class.h
include/php/ext/standard/php_lcg.h
include/php/ext/standard/php_mail.h
include/php/ext/standard/php_math.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_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/url.h
include/php/ext/standard/url_scanner_ex.h
include/php/ext/standard/user_filters_arginfo.h
include/php/ext/standard/winver.h
include/php/ext/xml/expat_compat.h
include/php/ext/xml/php_xml.h
include/php/ext/xml/xml_arginfo.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
${PLIST.embed}include/php/sapi/embed/php_embed.h
${PLIST.embed}lib/libphp7.so
lib/php/build/Makefile.global
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/gen_stub.php
lib/php/build/libtool.m4
lib/php/build/ltmain.sh
lib/php/build/php.m4
lib/php/build/php_cxx_compile_stdcxx.m4
lib/php/build/phpize.m4
lib/php/build/pkg.m4
lib/php/build/run-tests.php
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
@pkgdir ${PHPEXTDIR}

File Added: pkgsrc/lang/php80/buildlink3.mk
# $NetBSD: buildlink3.mk,v 1.1 2021/03/07 13:41:36 taca Exp $

BUILDLINK_TREE+=	php

.if !defined(PHP_BUILDLINK3_MK)
PHP_BUILDLINK3_MK:=

BUILDLINK_API_DEPENDS.php+=	php>=8.0.0<9.0
BUILDLINK_ABI_DEPENDS.php+=	php>=8.0.0
BUILDLINK_PKGSRCDIR.php?=	../../lang/php80

.include "../../textproc/libxml2/buildlink3.mk"
.endif # PHP_BUILDLINK3_MK

BUILDLINK_TREE+=	-php

File Added: pkgsrc/lang/php80/distinfo
$NetBSD: distinfo,v 1.1 2021/03/07 13:41:36 taca Exp $

SHA1 (php-8.0.3.tar.xz) = 56af40181f151e24e5dc400daa706484873bcbac
RMD160 (php-8.0.3.tar.xz) = b1330448ec01a55b450dbdefff463ef74a9db459
SHA512 (php-8.0.3.tar.xz) = 9b3631fea5280ed11c14a3ef1badb3da5b8ab19f29faa6b828ab033008ebebc487013d74d401d10b9cf21f354cd81100ba83562f3f080e23220ad38c02fb5a0d
Size (php-8.0.3.tar.xz) = 10755796 bytes
SHA1 (patch-build_libtool.m4) = e58a2bcebe9e9d7dc7255354fd9fe57878e3f8a6
SHA1 (patch-configure) = 6c3d2537eb4d1c2ed05e8e1e411701d316c67d8b
SHA1 (patch-disable-filter-url) = 0a2c19c18f089448a8d842e99738b292ab9e5640
SHA1 (patch-ext_enchant_enchant.c) = 74e0ec62928c84998ea41863088203f2511911fd
SHA1 (patch-ext_phar_Makefile.frag) = 53ea5c58b0bc27d236118d5750a74b1cba43e5dd
SHA1 (patch-ext_tidy_config.m4) = 380f4e8927582b2781faf58b17ad81b6dc967ba7
SHA1 (patch-ext_xsl_php__xsl.h) = cf930c5d6d9dab29b12558d265c67d3534a006fd
SHA1 (patch-php.ini-development) = e6815f2774ba071baa510fd5490fb5fa377d2462
SHA1 (patch-php.ini-production) = 3ee4d2e2e4fb4dbcb5b64df86751f7feeef0e20d
SHA1 (patch-sapi_cgi_Makefile.frag) = f4cd64d334884c49787d8854115c8cd69cc79bb8
SHA1 (patch-sapi_cli_Makefile.frag) = 1cd29d09042863acbf5330e406410fdcf75d06b3
SHA1 (patch-sapi_fpm_fpm_events_port.c) = b82b7caffffde1343190fae430a68eb411b5cf8a
SHA1 (patch-sapi_fpm_php-fpm.conf.in) = acf9b4e70d4c5ea2b96e37e7bbf9005379ecc4d0

File Added: pkgsrc/lang/php80/options.mk
# $NetBSD: options.mk,v 1.1 2021/03/07 13:41:36 taca Exp $

PKG_OPTIONS_VAR=	PKG_OPTIONS.${PHP_PKG_PREFIX}
PKG_SUPPORTED_OPTIONS+=	inet6 ssl maintainer-zts readline argon2 php-embed
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)
.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

PLIST_VARS+=    embed

.if !empty(PKGNAME:Mphp-[7-9]*)
.if !empty(PKG_OPTIONS:Mphp-embed)
CONFIGURE_ARGS+=	--enable-embed
INSTALLATION_DIRS+=	include/php/sapi/embed
PLIST.embed=		yes

.PHONY: post-install-embed
post-install: post-install-embed
post-install-embed:
	${INSTALL_DATA} ${WRKSRC}/sapi/embed/php_embed.h ${DESTDIR}${PREFIX}/include/php/sapi/embed/
	${INSTALL_LIB} ${WRKSRC}/libs/libphp7.so ${DESTDIR}${PREFIX}/lib/
.endif
.endif

File Added: pkgsrc/lang/php80/patches/patch-build_libtool.m4
$NetBSD: patch-build_libtool.m4,v 1.1 2021/03/07 13:41:36 taca Exp $

Stop warnings on newer autoconf.

--- build/libtool.m4.orig	2021-03-02 16:37:06.000000000 +0000
+++ build/libtool.m4
@@ -676,8 +676,11 @@ s390*-*linux*|sparc*-*linux*)
   CFLAGS="$CFLAGS -belf"
   AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
     [AC_LANG_SAVE
-     AC_LANG_C
-     AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
+     AC_LANG([C])
+     AC_LINK_IFELSE(
+       [AC_LANG_PROGRAM([],[])],
+       [lt_cv_cc_needs_belf=yes],
+       [lt_cv_cc_needs_belf=no])
      AC_LANG_RESTORE])
   if test x"$lt_cv_cc_needs_belf" != x"yes"; then
     # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
@@ -1197,7 +1200,7 @@ if test "$_LT_AC_TAGVAR(lt_cv_prog_compi
   ln conftest.a conftest.b 2>/dev/null && hard_links=no
   AC_MSG_RESULT([$hard_links])
   if test "$hard_links" = no; then
-    AC_MSG_WARN([\`$CC' does not support \`-c -o', so \`make -j' may be unsafe])
+    AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
     need_locks=warn
   fi
 else
@@ -1924,15 +1927,15 @@ AC_ARG_WITH([tags],
 
 if test -f "$ltmain" && test -n "$tagnames"; then
   if test ! -f "${ofile}"; then
-    AC_MSG_WARN([output file \`$ofile' does not exist])
+    AC_MSG_WARN([output file `$ofile' does not exist])
   fi
 
   if test -z "$LTCC"; then
     eval "`$SHELL ${ofile} --config | grep '^LTCC='`"
     if test -z "$LTCC"; then
-      AC_MSG_WARN([output file \`$ofile' does not look like a libtool script])
+      AC_MSG_WARN([output file `$ofile' does not look like a libtool script])
     else
-      AC_MSG_WARN([using \`LTCC=$LTCC', extracted from \`$ofile'])
+      AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile'])
     fi
   fi
   if test -z "$LTCFLAGS"; then
@@ -1955,7 +1958,7 @@ if test -f "$ltmain" && test -n "$tagnam
 
     if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null
     then
-      AC_MSG_ERROR([tag name \"$tagname\" already exists])
+      AC_MSG_ERROR([tag name "$tagname" already exists])
     fi
 
     # Update the list of available tags.
@@ -2728,7 +2731,7 @@ AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_L
 AC_DEFUN([_LT_AC_LANG_C_CONFIG],
 [lt_save_CC="$CC"
 AC_LANG_SAVE
-AC_LANG_C
+AC_LANG([C])
 
 # Source file extension for C test sources.
 ac_ext=c
@@ -2809,7 +2812,7 @@ CC="$lt_save_CC"
 AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)])
 AC_DEFUN([_LT_AC_LANG_CXX_CONFIG],
 [AC_LANG_SAVE
-AC_LANG_CPLUSPLUS
+AC_LANG([C++])
 AC_REQUIRE([AC_PROG_CXX])
 AC_REQUIRE([_LT_AC_PROG_CXXCPP])
 

File Added: pkgsrc/lang/php80/patches/patch-configure
$NetBSD: patch-configure,v 1.1 2021/03/07 13:41:36 taca Exp $

* Do not include "PKG_CONFIG*" in CONFIGURE_OPTIONS.
* Don't automatically add libgcc on SunOS. Reported upstream as #75941.
* Don't autodetect maintainer-zts.
* The meta_ccld removal reported upstream as #75940.

--- configure.orig	2020-11-24 17:04:03.000000000 +0000
+++ configure
@@ -3697,6 +3697,10 @@ EOF
    else
     break
    fi
+   case "$CURRENT_ARG" in
+       \'PKG_CONFIG\=*)	CURRENT_ARG="'PKG_CONFIG=@TOOLS_PATH.pkg-config@'";;
+       \'PKG_CONFIG_LIBDIR\=*)	CURRENT_ARG="'PKG_CONFIG_LIBDIR=@PHP_PKGCONFIG_PATH@'";;
+   esac
    $as_echo "$CURRENT_ARG \\" >>config.nice
    CONFIGURE_OPTIONS="$CONFIGURE_OPTIONS $CURRENT_ARG"
   done
@@ -5847,9 +5851,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"
@@ -6883,27 +6884,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_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 2>/dev/null | grep 'threaded:.*yes'`
-    if test -n "$APACHE_THREADED_MPM"; then
-
-  enable_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; }
 
@@ -74996,7 +74976,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
 

File Added: pkgsrc/lang/php80/patches/patch-disable-filter-url
$NetBSD: patch-disable-filter-url,v 1.1 2021/03/07 13:41:36 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	2019-11-19 10:24:58.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, '+')) {
@@ -380,6 +381,7 @@ php_stream * php_stream_url_wrap_php(php
 		}
 
 		return stream;
+#endif /* !DISABLE_FILTER_URL */
 	} else {
 		/* invalid php://thingy */
 		php_error_docref(NULL, E_WARNING, "Invalid php:// URL specified");

File Added: pkgsrc/lang/php80/patches/patch-ext_enchant_enchant.c
$NetBSD: patch-ext_enchant_enchant.c,v 1.1 2021/03/07 13:41:36 taca Exp $

Fix build on pkgsrc environment.

--- ext/enchant/enchant.c.orig	2021-03-02 16:37:06.000000000 +0000
+++ ext/enchant/enchant.c
@@ -24,7 +24,7 @@
 #include "ext/standard/info.h"
 #include "Zend/zend_interfaces.h"
 #include "Zend/zend_exceptions.h"
-#include "../spl/spl_exceptions.h"
+#include "spl/spl_exceptions.h"
 #include <enchant.h>
 #include "php_enchant.h"
 #include "enchant_arginfo.h"

File Added: pkgsrc/lang/php80/patches/patch-ext_phar_Makefile.frag
$NetBSD: patch-ext_phar_Makefile.frag,v 1.1 2021/03/07 13:41:36 taca Exp $

Set shbang for phar correctly.

--- 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

File Added: pkgsrc/lang/php80/patches/patch-ext_tidy_config.m4
$NetBSD: patch-ext_tidy_config.m4,v 1.1 2021/03/07 13:41:36 taca Exp $

Fix portability.

--- 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])

File Added: pkgsrc/lang/php80/patches/patch-ext_xsl_php__xsl.h
$NetBSD: patch-ext_xsl_php__xsl.h,v 1.1 2021/03/07 13:41:36 taca Exp $

Fix build on pkgsrc environment.

--- ext/xsl/php_xsl.h.orig	2021-03-02 16:37:06.000000000 +0000
+++ ext/xsl/php_xsl.h
@@ -37,7 +37,7 @@ extern zend_module_entry xsl_module_entr
 #include <libexslt/exsltconfig.h>
 #endif
 
-#include "../dom/xml_common.h"
+#include "dom/xml_common.h"
 
 #include <libxslt/extensions.h>
 #include <libxml/xpathInternals.h>

File Added: pkgsrc/lang/php80/patches/patch-php.ini-development
$NetBSD: patch-php.ini-development,v 1.1 2021/03/07 13:41:36 taca Exp $

Set proper default configuration values.

--- 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

File Added: pkgsrc/lang/php80/patches/patch-php.ini-production
$NetBSD: patch-php.ini-production,v 1.1 2021/03/07 13:41:36 taca Exp $

Set proper default configuration values.

--- 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

File Added: pkgsrc/lang/php80/patches/patch-sapi_cgi_Makefile.frag
$NetBSD: patch-sapi_cgi_Makefile.frag,v 1.1 2021/03/07 13:41:36 taca Exp $

Install to CGI directory.

--- 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

File Added: pkgsrc/lang/php80/patches/patch-sapi_cli_Makefile.frag
$NetBSD: patch-sapi_cli_Makefile.frag,v 1.1 2021/03/07 13:41:36 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)/"

File Added: pkgsrc/lang/php80/patches/Attic/patch-sapi_fpm_fpm_events_port.c
$NetBSD: patch-sapi_fpm_fpm_events_port.c,v 1.1 2021/03/07 13:41:36 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()) {

File Added: pkgsrc/lang/php80/patches/patch-sapi_fpm_php-fpm.conf.in
$NetBSD: patch-sapi_fpm_php-fpm.conf.in,v 1.1 2021/03/07 13:41:36 taca Exp $

Set proper default configuration values.

--- 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