diff --git a/lang/php83/Makefile b/lang/php83/Makefile index 8948d1e444b2..45741ef17f84 100644 --- a/lang/php83/Makefile +++ b/lang/php83/Makefile @@ -1,643 +1,644 @@ PORTNAME= php83 -DISTVERSION= 8.3.1 +DISTVERSION= 8.3.2 PORTREVISION?= 0 CATEGORIES?= lang devel www MASTER_SITES= PHP/distributions DISTNAME= php-${DISTVERSION} MAINTAINER= bofh@FreeBSD.org COMMENT= PHP Scripting Language (8.3.X branch) WWW= https://www.php.net/ LICENSE= PHP301 USES+= compiler:c11 cpe gnome localbase pkgconfig tar:xz CPE_PRODUCT= php PHP_VER= 83 CONFLICTS_INSTALL?= php[0-9][0-9]${PKGNAMESUFFIX} .if !defined(PKGNAMESUFFIX) LIB_DEPENDS= libargon2.so:security/libargon2 \ libpcre2-8.so:devel/pcre2 GNU_CONFIGURE= yes +GNU_CONFIGURE_MANPREFIX= ${MANPREFIX}/share CONFIGURE_ARGS+= \ --disable-all \ --program-prefix="" \ --with-config-file-scan-dir=${PREFIX}/etc/php \ --with-layout=GNU \ --with-libxml \ --with-openssl \ --with-password-argon2=${LOCALBASE} USES+= autoreconf:build ssl USE_GNOME= libxml2 LDFLAGS+= -L${OPENSSLLIB} -lcrypto -lssl # PR230207 Allow relocations against read-only segments (override lld default) LDFLAGS_i386= -Wl,-z,notext OPTIONS_DEFINE+=CGI CLI DEBUG DTRACE EMBED FPM IPV6 LINKTHR \ MYSQLND NOASLR PCRE PHPDBG ZTS OPTIONS_DEFAULT= CGI CLI DTRACE EMBED FPM LINKTHR MYSQLND PCRE OPTIONS_EXCLUDE_DragonFly= DTRACE # ld(1) fails to link probes: Relocations in generic ELF (EM: 0) OPTIONS_EXCLUDE_aarch64= DTRACE # dt_modtext:opensolaris/ib/libdtrace/common/dt_link.c: arm not impemented OPTIONS_EXCLUDE_armv6= DTRACE OPTIONS_EXCLUDE_armv7= DTRACE # Bug 197128: No ASM code for MIPS/MIPS64, disable FPM OPTIONS_EXCLUDE_mips= DTRACE FPM OPTIONS_EXCLUDE_mips64= DTRACE FPM OPTIONS_EXCLUDE_riscv64= DTRACE NO_OPTIONS_SORT= yes OPTIONS_SUB= yes CGI_DESC= Build CGI version CLI_DESC= Build CLI version EMBED_DESC= Build embedded library FPM_DESC= Build FPM version LINKTHR_DESC= Link thread lib (for threaded extensions) MYSQLND_DESC= Build with MySQL Native Driver PCRE_DESC= Use system pcre instead of bundled one PHPDBG_DESC= Interactive PHP debugger ZTS_DESC= Force Zend Thread Safety (ZTS) build CGI_CONFIGURE_OFF= --disable-cgi CGI_VARS= PHP_SAPI+=cgi CLI_CONFIGURE_OFF= --disable-cli CLI_VARS= PHP_SAPI+=cli DEBUG_CONFIGURE_ON= --enable-debug DTRACE_CONFIGURE_ON= --enable-dtrace EMBED_CONFIGURE_ON= --enable-embed EMBED_VARS= PHP_SAPI+=embed FPM_CONFIGURE_ON= --enable-fpm \ --with-fpm-group=${WWWGRP} \ --with-fpm-user=${WWWOWN} FPM_VARS= PHP_SAPI+=fpm \ USE_RC_SUBR+=php-fpm IPV6_CONFIGURE_OFF= --disable-ipv6 LINKTHR_LIBS= -lpthread NOASLR_USES= elfctl MYSQLND_CONFIGURE_ON= --enable-mysqlnd PCRE_BUILD_DEPENDS= re2c>0:devel/re2c PCRE_CONFIGURE_ON= --with-external-pcre=${LOCALBASE} PCRE_PLIST_SUB= BUNDLED_PCRE="@comment " PCRE_PLIST_SUB_OFF= BUNDLED_PCRE="" PHPDBG_CONFIGURE_ON= --enable-phpdbg PHPDBG_VARS= PHP_SAPI+=phpdbg ZTS_CONFIGURE_ON= --enable-zts ZTS_CONFIGURE_ENV= pthreads_working="yes" DESTDIRNAME= INSTALL_ROOT .if defined(PKGNAMEPREFIX) USES+= apache PLIST= ${PKGDIR}/pkg-plist.mod PKGMESSAGE= ${PKGDIR}/pkg-message.mod MODULENAME= libphp SHORTMODNAME= php WARNING= "!!! If you have a threaded Apache, you must build ${PHP_PORT} with ZTS support to enable thread-safety in extensions !!!" WARNING+= "!!! Consider switching to php-fpm and mod_proxy_fcgi as per Apache httpd recommendations !!!" .endif .include .if ${PORT_OPTIONS:NOASLR} .if ${PORT_OPTIONS:MCLI} ELF_FEATURES+=+noaslr:sapi/cli/php .endif .if ${PORT_OPTIONS:MCGI} ELF_FEATURES+=+noaslr:sapi/cgi/php-cgi .endif .if ${PORT_OPTIONS:MPHPDBG} ELF_FEATURES+=+noaslr:sapi/phpdbg/phpdbg .endif .if ${PORT_OPTIONS:MFPM} ELF_FEATURES+=+noaslr:sapi/fpm/php-fpm .endif .endif .include .if ${ARCH} == riscv64 CONFIGURE_ARGS+= --without-pcre-jit .endif .if ${PORT_OPTIONS:MPHPDBG} && ${PORT_OPTIONS:MDEBUG} CONFIGURE_ARGS+= --enable-phpdbg-debug .endif .if ${PORT_OPTIONS:MCLI} || ${PORT_OPTIONS:MEMBED} PLIST_SUB+= SAPI_INC="" .else PLIST_SUB+= SAPI_INC="@comment " .endif CONFIGURE_ENV+= ac_cv_decimal_fp_supported="no" \ lt_cv_path_SED="sed" \ OPENSSL_CFLAGS="-I${OPENSSLINC}" \ OPENSSL_LIBS="-L${OPENSSLLIB} -lssl -lcrypto" \ PHP_OPENSSL=yes post-patch: @${TOUCH} ${WRKSRC}/ext/php_config.h post-patch-FPM-on: @${REINPLACE_CMD} -e "s|^;\(pid\)|\1|;s|^;\(pm\.[a-z_]*_servers\)|\1|" \ ${WRKSRC}/sapi/fpm/php-fpm.conf.in pre-configure: @(cd ${WRKSRC} && ${SETENV} MAKE=${MAKE_CMD} ./buildconf --force) .if !defined(PKGNAMEPREFIX) post-build: @${ECHO_CMD} "PHP_VER=${PHP_VER}" > ${WRKDIR}/php.conf @${ECHO_CMD} "PHP_VERSION=${PORTVERSION}" >> ${WRKDIR}/php.conf @${ECHO_CMD} "PHP_SAPI=${PHP_SAPI}" >> ${WRKDIR}/php.conf @${ECHO_CMD} -n "PHP_EXT_DIR=" >> ${WRKDIR}/php.conf @${SH} ${WRKSRC}/scripts/php-config --extension-dir | ${SED} -ne 's,^${PREFIX}/lib/php/,,p' >> ${WRKDIR}/php.conf @${ECHO_CMD} "PHP_EXT_INC=hash json openssl pcre random spl" >> ${WRKDIR}/php.conf test: build @(cd ${WRKSRC} && ${MAKE} test) post-install: ${INSTALL_DATA} ${WRKSRC}/php.ini-development ${WRKSRC}/php.ini-production \ ${WRKDIR}/php.conf ${STAGEDIR}/${PREFIX}/etc post-install-CLI-on: ${STRIP_CMD} ${STAGEDIR}/${PREFIX}/bin/php post-install-CGI-on: ${STRIP_CMD} ${STAGEDIR}/${PREFIX}/bin/php-cgi post-install-EMBED-on: ${STRIP_CMD} ${STAGEDIR}/${PREFIX}/lib/libphp.so post-install-FPM-on: ${STRIP_CMD} ${STAGEDIR}/${PREFIX}/sbin/php-fpm post-install-PHPDBG-on: ${STRIP_CMD} ${STAGEDIR}/${PREFIX}/bin/phpdbg .else do-install: ${MKDIR} ${STAGEDIR}${PREFIX}/${APACHEMODDIR} ${INSTALL_LIB} ${WRKSRC}/libs/${MODULENAME}.so \ ${STAGEDIR}${PREFIX}/${APACHEMODDIR} .endif .else COMMENT= The ${PHP_MODNAME} shared extension for php USES+= php:ext,noflavors PHP_MODNAME= ${PKGNAMESUFFIX:S/-//} PHP_VER= 83 IGNORE_WITH_PHP= 81 82 EXTSUBDIR= ${DISTNAME}/ext/${PHP_MODNAME} WRKSRC= ${WRKDIR}/${EXTSUBDIR} PATCHDIR= ${.CURDIR}/files PLIST= ${NONEXISTENT} EXTRACT_AFTER_ARGS?= ${EXTSUBDIR} TEST_TARGET= test .if ${PHP_MODNAME} == "bcmath" CONFIGURE_ARGS+= --enable-bcmath PHP_HEADER_DIRS= libbcmath/src .endif .if ${PHP_MODNAME} == "bz2" CONFIGURE_ARGS+= --with-bz2=/usr .endif .if ${PHP_MODNAME} == "calendar" CONFIGURE_ARGS+= --enable-calendar .endif .if ${PHP_MODNAME} == "ctype" CONFIGURE_ARGS+= --enable-ctype .endif .if ${PHP_MODNAME} == "curl" LIB_DEPENDS+= libcurl.so:ftp/curl CONFIGURE_ARGS+= --with-curl=${LOCALBASE} USES+= pkgconfig .endif .if ${PHP_MODNAME} == "dba" CONFIGURE_ARGS+= --enable-dba OPTIONS_DEFINE= CDB DB4 FLATFILE GDBM INIFILE LMDB QDBM TOKYO OPTIONS_DEFAULT= CDB FLATFILE INIFILE CDB_DESC= cdb database support DB4_DESC= Berkeley DB4 support FLATFILE_DESC= flatfile support GDBM_DESC= GDBM database support INIFILE_DESC= INI file support LMDB_DESC= LMDB database support QDBM_DESC= QDBM database support TOKYO_DESC= Tokyo Cabinet database support CDB_CONFIGURE_OFF= --without-cdb DB4_CONFIGURE_ON= --with-db4=${LOCALBASE} DB4_USES= bdb DB4_VARS= WITH_BDB_HIGHEST=yes FLATFILE_CONFIGURE_ON= --disable-flatfile GDBM_CONFIGURE_ARGS= --with-gdbm=${LOCALBASE} GDBM_LIB_DEPENDS= libgdbm.so:databases/gdbm INIFILE_CONFIGURE_OFF= --disable-inifile LMDB_LIB_DEPENDS= liblmdb.so:databases/lmdb LMDB_CONFIGURE_ARGS= --with-lmdb=${LOCALBASE} QDBM_LIB_DEPENDS= libqdbm.so:databases/qdbm QDBM_CONFIGURE_ARGS= --with-qdbm=${LOCALBASE} TOKYO_LIB_DEPENDS= libtokyocabinet.so:databases/tokyocabinet TOKYO_CONFIGURE_ON= --with-tcadb=${LOCALBASE} PHP_HEADER_DIRS= libcdb libflatfile libinifile .endif .if ${PHP_MODNAME} == "dom" CONFIGURE_ARGS+= --enable-dom USES+= pkgconfig USE_GNOME= libxml2 .endif .if ${PHP_MODNAME} == "enchant" LIB_DEPENDS+= libenchant-2.so:textproc/enchant2 CONFIGURE_ARGS+=--with-enchant=${LOCALBASE} USES+= pkgconfig .endif .if ${PHP_MODNAME} == "exif" CONFIGURE_ARGS+= --enable-exif .endif .if ${PHP_MODNAME} == "ffi" LIB_DEPENDS= libffi.so:devel/libffi CONFIGURE_ARGS+= --with-ffi .endif .if ${PHP_MODNAME} == "fileinfo" CONFIGURE_ARGS+= --enable-fileinfo PHP_HEADER_DIRS= libmagic .endif .if ${PHP_MODNAME} == "filter" CONFIGURE_ARGS+= --enable-filter .endif .if ${PHP_MODNAME} == "ftp" CONFIGURE_ARGS+= --enable-ftp CONFIGURE_ENV+= OPENSSL_CFLAGS="-I${OPENSSLINC}" \ OPENSSL_LIBS="-L${OPENSSLLIB} -lssl -lcrypto" \ PHP_OPENSSL=yes LDFLAGS+= -L${OPENSSLLIB} -lcrypto -lssl USES+= pkgconfig ssl .endif .if ${PHP_MODNAME} == "gd" LIB_DEPENDS= libfreetype.so:print/freetype2 \ libgd.so:graphics/gd \ libpng.so:graphics/png USES+= jpeg CONFIGURE_ARGS+= --enable-gd \ --with-external-gd EXTRACT_AFTER_ARGS= --no-same-owner --no-same-permissions --exclude libgd \ php-${DISTVERSION}/ext/gd OPTIONS_DEFINE= JIS WEBP X11 JIS_DESC= Enable JIS-mapped Japanese font support WEBP_DESC= Enable WebP image format support X11_DESC= Enable XPM support JIS_CONFIGURE_ON= --enable-gd-jis-conv WEBP_CONFIGURE_ON= --with-webp WEBP_LIB_DEPENDS= libwebp.so:graphics/webp X11_CONFIGURE_ON= --with-xpm X11_USE= XORG=xpm X11_USES= xorg .endif .if ${PHP_MODNAME} == "gettext" CONFIGURE_ARGS+= --with-gettext=${LOCALBASE} USES+= gettext .endif .if ${PHP_MODNAME} == "gmp" LIB_DEPENDS+= libgmp.so:math/gmp CONFIGURE_ARGS+= --with-gmp=${LOCALBASE} .endif .if ${PHP_MODNAME} == "iconv" CONFIGURE_ARGS+= --with-iconv=${LOCALBASE} USES+= iconv:translit .endif .if ${PHP_MODNAME} == "imap" PHP_MOD_PRIO= 30 LIB_DEPENDS+= libc-client.so.2010:mail/panda-cclient CONFIGURE_ARGS+= --with-imap-ssl=${OPENSSLBASE} \ --with-imap=${LOCALBASE} CONFIGURE_ENV+= OPENSSL_CFLAGS="-I${OPENSSLINC}" \ OPENSSL_LIBS="-L${OPENSSLLIB} -lssl -lcrypto" \ PHP_OPENSSL=yes LDFLAGS+= -L${OPENSSLLIB} -lcrypto -lssl USES+= ssl .endif .if ${PHP_MODNAME} == "intl" LIB_DEPENDS= libicui18n.so:devel/icu USES+= pkgconfig CPPFLAGS+= -DU_USING_ICU_NAMESPACE=1 .endif .if ${PHP_MODNAME} == "json" CONFIGURE_ARGS+= --enable-json BUILD_DEPENDS= re2c:devel/re2c .endif .if ${PHP_MODNAME} == "ldap" LIB_DEPENDS+=libsasl2.so:security/cyrus-sasl2 CONFIGURE_ARGS+=--with-ldap=${LOCALBASE} --with-ldap-sasl=${LOCALBASE} USES+= ldap .endif .if ${PHP_MODNAME} == "mbstring" CONFIGURE_ARGS+= --enable-mbstring OPTIONS_DEFINE= REGEX OPTIONS_DEFAULT= REGEX REGEX_DESC= Enable multibyte regex support REGEX_LIB_DEPENDS= libonig.so:devel/oniguruma REGEX_CONFIGURE_OFF= --disable-mbregex PHP_HEADER_DIRS= libmbfl libmbfl/filters libmbfl/mbfl libmbfl/nls .endif .if ${PHP_MODNAME} == "mysqli" CONFIGURE_ARGS+= --with-mysqli .endif .if ${PHP_MODNAME} == "odbc" LIB_DEPENDS+= libodbc.so:databases/unixODBC CONFIGURE_ARGS+= --with-unixODBC=${LOCALBASE} .endif .if ${PHP_MODNAME} == "opcache" # This is needed by Zend extensions, keep before everything. PHP_MOD_PRIO= 10 CONFIGURE_ARGS+= --enable-opcache .endif .if ${PHP_MODNAME} == "pcntl" CONFIGURE_ARGS+= --enable-pcntl .endif .if ${PHP_MODNAME} == "pdo" CONFIGURE_ARGS+= --enable-pdo .endif .if ${PHP_MODNAME} == "pdo_dblib" CONFIGURE_ARGS+= --with-pdo-dblib=${LOCALBASE} USE_PHP= pdo:build OPTIONS_DEFINE= MSSQL MSSQL_DESC= Enable Microsoft SQL Server support MSSQL_LIB_DEPENDS= libsybdb.so:databases/freetds MSSQL_LIB_DEPENDS_OFF= libct.so:databases/freetds .endif .if ${PHP_MODNAME} == "pdo_firebird" CONFIGURE_ARGS+= --with-pdo-firebird=${LOCALBASE} USES+= firebird USE_PHP= pdo:build .endif .if ${PHP_MODNAME} == "pdo_odbc" LIB_DEPENDS+= libodbc.so:databases/unixODBC CONFIGURE_ARGS+= --with-pdo-odbc=unixODBC,${LOCALBASE} USE_PHP= pdo:build .endif .if ${PHP_MODNAME} == "pdo_mysql" OPTIONS_DEFINE= MYSQLND OPTIONS_DEFAULT= MYSQLND MYSQLND_DESC= Use MySQL Native Driver MYSQLND_CONFIGURE_OFF= --with-pdo-mysql=${LOCALBASE} \ --with-zlib-dir=/usr MYSQLND_USES_OFF= mysql MYSQLND_CONFIGURE_ON= --with-pdo-mysql=mysqlnd USE_PHP= pdo:build .endif .if ${PHP_MODNAME} == "pdo_pgsql" USES+= pgsql CONFIGURE_ARGS+= --with-pdo-pgsql=${LOCALBASE} USE_PHP= pdo:build .endif .if ${PHP_MODNAME} == "pdo_sqlite" USES+= localbase sqlite CONFIGURE_ARGS+= --with-pdo-sqlite=${LOCALBASE} USE_PHP= pdo:build .endif .if ${PHP_MODNAME} == "pgsql" USES+= pgsql CONFIGURE_ARGS+= --with-pgsql=${LOCALBASE} .endif .if ${PHP_MODNAME} == "phar" CONFIGURE_ARGS+= --enable-phar .endif .if ${PHP_MODNAME} == "posix" CONFIGURE_ARGS+= --enable-posix .endif .if ${PHP_MODNAME} == "pspell" LIB_DEPENDS+= libaspell.so:textproc/aspell CONFIGURE_ARGS+= --with-pspell=${LOCALBASE} .endif .if ${PHP_MODNAME} == "readline" CONFIGURE_ARGS+=--with-libedit USES+= libedit .endif .if ${PHP_MODNAME} == "session" CONFIGURE_ARGS+= --enable-session PHP_MOD_PRIO= 18 .endif .if ${PHP_MODNAME} == "shmop" CONFIGURE_ARGS+= --enable-shmop .endif .if ${PHP_MODNAME} == "simplexml" CONFIGURE_ARGS+= --enable-simplexml USES+= pkgconfig USE_GNOME= libxml2 .endif .if ${PHP_MODNAME} == "snmp" CONFIGURE_ARGS+= --with-snmp=${LOCALBASE} CONFIGURE_ENV+= ac_cv_buggy_snprint_value="no" LIB_DEPENDS+= libnetsnmp.so:net-mgmt/net-snmp LDFLAGS+= -L${OPENSSLLIB} -lcrypto -lssl USES+= ssl .endif .if ${PHP_MODNAME} == "soap" CONFIGURE_ARGS+= --enable-soap USES+= pkgconfig USE_GNOME= libxml2 .endif .if ${PHP_MODNAME} == "sockets" CONFIGURE_ARGS+= --enable-sockets CONFIGURE_ENV+= LOCAL_CREDS_PERSISTENT=yes .endif .if ${PHP_MODNAME} == "sodium" CONFIGURE_ARGS+= --with-sodium=${LOCALBASE} LIB_DEPENDS+= libsodium.so:security/libsodium .endif .if ${PHP_MODNAME} == "sqlite3" USES+= localbase pkgconfig sqlite CONFIGURE_ARGS+= --with-sqlite3=${LOCALBASE} .endif .if ${PHP_MODNAME} == "sysvmsg" CONFIGURE_ARGS+= --enable-sysvmsg .endif .if ${PHP_MODNAME} == "sysvsem" CONFIGURE_ARGS+= --enable-sysvsem .endif .if ${PHP_MODNAME} == "sysvshm" CONFIGURE_ARGS+= --enable-sysvshm .endif .if ${PHP_MODNAME} == "tidy" CONFIGURE_ARGS+= --with-tidy=${LOCALBASE} LIB_DEPENDS+= libtidy.so:www/tidy-lib .endif .if ${PHP_MODNAME} == "tokenizer" CONFIGURE_ARGS+= --enable-tokenizer .endif .if ${PHP_MODNAME} == "xml" CONFIGURE_ARGS+= --enable-xml USES+= pkgconfig USE_GNOME= libxml2 .endif .if ${PHP_MODNAME} == "xmlreader" CONFIGURE_ARGS+= --enable-xmlreader USE_GNOME= libxml2 USE_PHP= dom:build .endif .if ${PHP_MODNAME} == "xmlrpc" CONFIGURE_ARGS+= --with-iconv-dir=${LOCALBASE} \ --with-xmlrpc USES+= iconv:translit USE_GNOME= libxml2 PHP_HEADER_DIRS= libxmlrpc USE_PHP= xml:build .endif .if ${PHP_MODNAME} == "xmlwriter" CONFIGURE_ARGS+= --enable-xmlwriter USES+= pkgconfig USE_GNOME= libxml2 .endif .if ${PHP_MODNAME} == "xsl" CONFIGURE_ARGS+= --with-xsl=${LOCALBASE} USE_GNOME= libxslt USE_PHP= dom:build xml:build .endif .if ${PHP_MODNAME} == "zip" LIB_DEPENDS+= libzip.so:archivers/libzip CONFIGURE_ARGS+= --with-zip USES+= pkgconfig .endif .if ${PHP_MODNAME} == "zlib" CONFIGURE_ARGS+= --with-zlib=/usr USES+= pkgconfig .endif .include .if ${ARCH} == aarch64 && ${PHP_MODNAME} == "opcache" CONFIGURE_ARGS+=--disable-opcache-jit .endif .if ${PHP_MODNAME} == "sqlite3" || ${PHP_MODNAME} == "zlib" post-extract: @${MV} ${WRKSRC}/config0.m4 ${WRKSRC}/config.m4 .endif .if ${PHP_MODNAME} == "xml" post-extract: @${MKDIR} ${WRKSRC}/ext/xml @${CP} ${WRKSRC}/expat_compat.h ${WRKSRC}/ext/xml .endif .endif .include diff --git a/lang/php83/distinfo b/lang/php83/distinfo index 53ca8a45b507..d7927d336a68 100644 --- a/lang/php83/distinfo +++ b/lang/php83/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1703155183 -SHA256 (php-8.3.1.tar.xz) = 56445b1771b2ba5b7573453f9e8a9451e2d810b1741a352fa05259733b1e9758 -SIZE (php-8.3.1.tar.xz) = 12444232 +TIMESTAMP = 1705528774 +SHA256 (php-8.3.2.tar.xz) = 4ffa3e44afc9c590e28dc0d2d31fc61f0139f8b335f11880a121b9f9b9f0634e +SIZE (php-8.3.2.tar.xz) = 12440200 diff --git a/lang/php83/files/patch-configure.ac b/lang/php83/files/patch-configure.ac index a616256a55df..bdd8afc9c692 100644 --- a/lang/php83/files/patch-configure.ac +++ b/lang/php83/files/patch-configure.ac @@ -1,54 +1,54 @@ ---- configure.ac.orig 2023-12-20 12:44:38 UTC +--- configure.ac.orig 2024-01-16 13:46:41 UTC +++ configure.ac @@ -55,6 +55,7 @@ AH_BOTTOM([ #include +#include #endif /* PHP_CONFIG_H */ ]) @@ -283,7 +284,6 @@ dnl -------------------------------------------------- dnl ---------------------------------------------------------------------------- -PTHREADS_CHECK PHP_HELP_SEPARATOR([SAPI modules:]) PHP_SHLIB_SUFFIX_NAMES PHP_BUILD_PROGRAM @@ -567,7 +567,7 @@ dnl bug #77284. Conservatively don't use ifuncs on Fre dnl dnl At least some versions of FreeBSD seem to have buggy ifunc support, see dnl bug #77284. Conservatively don't use ifuncs on FreeBSD. -AS_CASE([$host_alias], [*-*-*android*|*-*-*uclibc*|*-*-*musl*|*freebsd*|*openbsd*], [true], [ +AS_CASE([$host_alias], [*-*-*android*|*-*-*uclibc*|*-*-*musl*|*openbsd*], [true], [ AX_GCC_FUNC_ATTRIBUTE([ifunc]) AX_GCC_FUNC_ATTRIBUTE([target]) ]) @@ -652,7 +652,7 @@ dnl Some systems (like OpenSolaris) do not have nanosl AX_FUNC_WHICH_GETHOSTBYNAME_R dnl Some systems (like OpenSolaris) do not have nanosleep in libc. -PHP_CHECK_FUNC_LIB(nanosleep, rt) +PHP_CHECK_FUNC(nanosleep, rt) dnl Haiku does not have network api in libc. PHP_CHECK_FUNC_LIB(setsockopt, network) @@ -1463,7 +1463,7 @@ EXPANDED_PHP_CONFIG_FILE_SCAN_DIR=`eval echo "$PHP_CON EXPANDED_DATADIR=$datadir EXPANDED_PHP_CONFIG_FILE_PATH=`eval echo "$PHP_CONFIG_FILE_PATH"` EXPANDED_PHP_CONFIG_FILE_SCAN_DIR=`eval echo "$PHP_CONFIG_FILE_SCAN_DIR"` -INCLUDE_PATH=.:$EXPANDED_PEAR_INSTALLDIR +INCLUDE_PATH=.:${prefix}/share/pear exec_prefix=$old_exec_prefix libdir=$old_libdir -@@ -1705,7 +1705,7 @@ PHP_SUBST(install_binary_targets) +@@ -1706,7 +1706,7 @@ PHP_SUBST(install_binary_targets) PHP_SUBST(install_targets) PHP_SUBST(install_binary_targets) -PHP_INSTALL_HEADERS([Zend/ TSRM/ include/ main/ main/streams/]) +PHP_INSTALL_HEADERS([Zend/ TSRM/ main/ main/streams/]) PHP_INSTALL_HEADERS([Zend/Optimizer], [ \ zend_call_graph.h \ zend_cfg.h \ diff --git a/lang/php83/files/patch-ext_standard_filestat.c b/lang/php83/files/patch-ext_standard_filestat.c new file mode 100644 index 000000000000..eb08358dedfa --- /dev/null +++ b/lang/php83/files/patch-ext_standard_filestat.c @@ -0,0 +1,26 @@ +--- ext/standard/filestat.c.orig 2024-01-17 22:13:37 UTC ++++ ext/standard/filestat.c +@@ -281,7 +281,11 @@ PHPAPI zend_result php_get_gid_by_name(const char *nam + char *grbuf; + + if (grbuflen < 1) { ++#if defined(__FreeBSD__) && defined(_SC_PAGESIZE) ++ grbuflen = sysconf(_SC_PAGESIZE); ++#else + return FAILURE; ++#endif + } + + grbuf = emalloc(grbuflen); +@@ -407,7 +411,11 @@ PHPAPI zend_result php_get_uid_by_name(const char *nam + char *pwbuf; + + if (pwbuflen < 1) { ++#if defined(__FreeBSD__) && defined(_SC_PAGESIZE) ++ pwbuflen = sysconf(_SC_PAGESIZE); ++#else + return FAILURE; ++#endif + } + + pwbuf = emalloc(pwbuflen); diff --git a/lang/php83/files/patch-main_fopen__wrappers.c b/lang/php83/files/patch-main_fopen__wrappers.c new file mode 100644 index 000000000000..4044ea70b113 --- /dev/null +++ b/lang/php83/files/patch-main_fopen__wrappers.c @@ -0,0 +1,14 @@ +--- main/fopen_wrappers.c.orig 2024-01-17 22:12:12 UTC ++++ main/fopen_wrappers.c +@@ -381,7 +381,11 @@ PHPAPI int php_fopen_primary_script(zend_file_handle * + char *pwbuf; + + if (pwbuflen < 1) { ++#if defined(__FreeBSD__) && defined(_SC_PAGESIZE) ++ pwbuflen = sysconf(_SC_PAGESIZE); ++#else + return FAILURE; ++#endif + } + + pwbuf = emalloc(pwbuflen); diff --git a/lang/php83/files/patch-main_main.c b/lang/php83/files/patch-main_main.c new file mode 100644 index 000000000000..5a0c3c558cfe --- /dev/null +++ b/lang/php83/files/patch-main_main.c @@ -0,0 +1,14 @@ +--- main/main.c.orig 2024-01-17 22:08:35 UTC ++++ main/main.c +@@ -1459,7 +1459,11 @@ PHPAPI char *php_get_current_user(void) + char *pwbuf; + + if (pwbuflen < 1) { ++#if defined(__FreeBSD__) && defined(_SC_PAGESIZE) ++ pwbuflen = sysconf(_SC_PAGESIZE); ++#else + return ""; ++#endif + } + pwbuf = emalloc(pwbuflen); + if (getpwuid_r(pstat->st_uid, &_pw, pwbuf, pwbuflen, &retpwptr) != 0) { diff --git a/lang/php83/files/php-fpm.in b/lang/php83/files/php-fpm.in index c234856b0e54..511e53426b71 100644 --- a/lang/php83/files/php-fpm.in +++ b/lang/php83/files/php-fpm.in @@ -1,66 +1,101 @@ #!/bin/sh # PROVIDE: php-fpm # REQUIRE: LOGIN # KEYWORD: shutdown # # Add the following line to /etc/rc.conf to enable php-fpm: -# php_fpm_enable="YES" -# +# php-fpm_enable (bool): Set to "NO" by default. +# Set it to "YES" to enable nginx +# php-fpm_profiles (str): Set to "" by default. +# Define your profiles here. +# php_fpm_pid_prefix (str): Set to "" by default. +# When using profiles manually assign value to "php_fpm_" +# for prevent collision with other PIDs names. . /etc/rc.subr name="php_fpm" rcvar=php_fpm_enable start_precmd="php_fpm_prestart" restart_precmd="php_fpm_checkconfig" reload_precmd="php_fpm_checkconfig" +command="%%PREFIX%%/sbin/php-fpm" configtest_cmd="php_fpm_checkconfig" +_pidprefix="/var/run" +pidfile="${_pidprefix}/php-fpm.pid" +required_files="%%PREFIX%%/etc/php-fpm.conf" -load_rc_config "$name" +load_rc_config "${name}" : ${php_fpm_enable="NO"} : ${php_fpm_umask=""} -extra_commands="reload configtest logrotate" +if [ -n "$2" ]; then + profile="$2" + if [ "x${php_fpm_profiles}" != "x" ]; then + pidfile="${_pidprefix}/${php_fpm_pid_prefix}php-fpm-${profile}.pid" + eval php_fpm_configfile="\${php_fpm_${profile}_configfile:-}" + if [ "x${php_fpm_configfile}" = "x" ]; then + echo "You must define a configuration file (php_fpm_${profile}_configfile)" + exit 1 + fi + required_files="${php_fpm_configfile}" + eval php_fpm_enable="\${php_fpm_${profile}_enable:-${php_fpm_enable}}" + php_fpm_flags="-y ${php_fpm_configfile} -g ${pidfile}" + else + echo "$0: extra argument ignored" + fi +else + if [ "x${php_fpm_profiles}" != "x" -a "x$1" != "x" ]; then + for profile in ${php_fpm_profiles}; do + echo "===> php_fpm profile: ${profile}" + /usr/local/etc/rc.d/php-fpm $1 ${profile} + retcode="$?" + if [ "0${retcode}" -ne 0 ]; then + failed="${profile} (${retcode}) ${failed:-}" + else + success="${profile} ${success:-}" + fi + done + exit 0 + fi +fi -command="%%PREFIX%%/sbin/php-fpm" -pidfile="/var/run/php-fpm.pid" +extra_commands="reload configtest logrotate" sig_stop="QUIT" sig_reload="USR2" logrotate_cmd="php_fpm_logrotate" -required_files="%%PREFIX%%/etc/php-fpm.conf" - php_fpm_logrotate() { if [ -z "$rc_pid" ]; then _run_rc_notrunning return 1 fi echo "Rotating logs $name." kill -USR1 $rc_pid } php_fpm_checkconfig() { echo "Performing sanity check on php-fpm configuration:" - eval ${command} -t + eval ${command} ${php_fpm_flags} -t } php_fpm_prestart() { php_fpm_checkconfig checkconfig=$? if [ $checkconfig -ne 0 ]; then return $checkconfig fi if [ ! -z "$php_fpm_umask" ]; then echo "Setting umask to: ${php_fpm_umask}" umask $php_fpm_umask fi } run_rc_command "$1" diff --git a/lang/php83/pkg-plist b/lang/php83/pkg-plist index cac3796b458a..84225fc4e311 100644 --- a/lang/php83/pkg-plist +++ b/lang/php83/pkg-plist @@ -1,318 +1,318 @@ %%CLI%%bin/php %%CGI%%bin/php-cgi bin/php-config %%PHPDBG%%bin/phpdbg bin/phpize %%FPM%%sbin/php-fpm etc/php.conf etc/php.ini-development etc/php.ini-production %%FPM%%@sample etc/php-fpm.conf.default etc/php-fpm.conf %%FPM%%@sample etc/php-fpm.d/www.conf.default etc/php-fpm.d/www.conf include/php/TSRM/TSRM.h include/php/TSRM/tsrm_win32.h include/php/Zend/Optimizer/zend_call_graph.h include/php/Zend/Optimizer/zend_cfg.h include/php/Zend/Optimizer/zend_dfg.h include/php/Zend/Optimizer/zend_dump.h include/php/Zend/Optimizer/zend_func_info.h include/php/Zend/Optimizer/zend_inference.h include/php/Zend/Optimizer/zend_optimizer.h include/php/Zend/Optimizer/zend_ssa.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_atomic.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_call_stack.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_constants_arginfo.h include/php/Zend/zend_cpuinfo.h include/php/Zend/zend_dtrace.h %%DTRACE%%include/php/Zend/zend_dtrace_gen.h include/php/Zend/zend_enum.h include/php/Zend/zend_enum_arginfo.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_fibers.h include/php/Zend/zend_fibers_arginfo.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_hrtime.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_max_execution_timer.h include/php/Zend/zend_mmap.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_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/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_murmur.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/hash/php_hash_xxhash.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 %%MYSQLND%%include/php/ext/mysqlnd/config-win.h %%MYSQLND%%include/php/ext/mysqlnd/mysql_float_to_double.h %%MYSQLND%%include/php/ext/mysqlnd/mysqlnd.h %%MYSQLND%%include/php/ext/mysqlnd/mysqlnd_alloc.h %%MYSQLND%%include/php/ext/mysqlnd/mysqlnd_auth.h %%MYSQLND%%include/php/ext/mysqlnd/mysqlnd_block_alloc.h %%MYSQLND%%include/php/ext/mysqlnd/mysqlnd_charset.h %%MYSQLND%%include/php/ext/mysqlnd/mysqlnd_commands.h %%MYSQLND%%include/php/ext/mysqlnd/mysqlnd_connection.h %%MYSQLND%%include/php/ext/mysqlnd/mysqlnd_debug.h %%MYSQLND%%include/php/ext/mysqlnd/mysqlnd_enum_n_def.h %%MYSQLND%%include/php/ext/mysqlnd/mysqlnd_ext_plugin.h %%MYSQLND%%include/php/ext/mysqlnd/mysqlnd_libmysql_compat.h %%MYSQLND%%include/php/ext/mysqlnd/mysqlnd_plugin.h %%MYSQLND%%include/php/ext/mysqlnd/mysqlnd_portability.h %%MYSQLND%%include/php/ext/mysqlnd/mysqlnd_priv.h %%MYSQLND%%include/php/ext/mysqlnd/mysqlnd_protocol_frame_codec.h %%MYSQLND%%include/php/ext/mysqlnd/mysqlnd_ps.h %%MYSQLND%%include/php/ext/mysqlnd/mysqlnd_read_buffer.h %%MYSQLND%%include/php/ext/mysqlnd/mysqlnd_result.h %%MYSQLND%%include/php/ext/mysqlnd/mysqlnd_result_meta.h %%MYSQLND%%include/php/ext/mysqlnd/mysqlnd_reverse_api.h %%MYSQLND%%include/php/ext/mysqlnd/mysqlnd_statistics.h %%MYSQLND%%include/php/ext/mysqlnd/mysqlnd_structs.h %%MYSQLND%%include/php/ext/mysqlnd/mysqlnd_vio.h %%MYSQLND%%include/php/ext/mysqlnd/mysqlnd_wireprotocol.h %%MYSQLND%%include/php/ext/mysqlnd/php_mysqlnd.h %%BUNDLED_PCRE%%include/php/ext/pcre/pcre2lib/config.h %%BUNDLED_PCRE%%include/php/ext/pcre/pcre2lib/pcre2.h %%BUNDLED_PCRE%%include/php/ext/pcre/pcre2lib/pcre2_internal.h %%BUNDLED_PCRE%%include/php/ext/pcre/pcre2lib/pcre2_intmodedep.h %%BUNDLED_PCRE%%include/php/ext/pcre/pcre2lib/pcre2_jit_neon_inc.h %%BUNDLED_PCRE%%include/php/ext/pcre/pcre2lib/pcre2_jit_simd_inc.h %%BUNDLED_PCRE%%include/php/ext/pcre/pcre2lib/pcre2_ucp.h include/php/ext/pcre/php_pcre.h include/php/ext/random/php_random.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/file_arginfo.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/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 @touch include/php/ext/php_config.h @rmempty include/php/ext/php_config.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/main_arginfo.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_ini_builder.h include/php/main/php_main.h include/php/main/php_memory_streams.h include/php/main/php_network.h include/php/main/php_odbc_utils.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_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/main/streams/userspace_arginfo.h %%CLI%%include/php/sapi/cli/cli.h %%EMBED%%include/php/sapi/embed/php_embed.h %%EMBED%%lib/libphp.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 -%%CGI%%man/man1/php-cgi.1.gz -man/man1/php-config.1.gz -%%CLI%%man/man1/php.1.gz -%%PHPDBG%%man/man1/phpdbg.1.gz -man/man1/phpize.1.gz -%%FPM%%man/man8/php-fpm.8.gz +%%CGI%%share/man/man1/php-cgi.1.gz +share/man/man1/php-config.1.gz +%%CLI%%share/man/man1/php.1.gz +%%PHPDBG%%share/man/man1/phpdbg.1.gz +share/man/man1/phpize.1.gz +%%FPM%%share/man/man8/php-fpm.8.gz %%FPM%%share/php/fpm/status.html diff --git a/sysutils/php83-posix/files/patch-posix.c b/sysutils/php83-posix/files/patch-posix.c new file mode 100644 index 000000000000..c97a44fcff96 --- /dev/null +++ b/sysutils/php83-posix/files/patch-posix.c @@ -0,0 +1,62 @@ +--- posix.c.orig 2024-01-17 22:28:09 UTC ++++ posix.c +@@ -477,7 +477,11 @@ PHP_FUNCTION(posix_ttyname) + #if defined(ZTS) && defined(HAVE_TTYNAME_R) && defined(_SC_TTY_NAME_MAX) + buflen = sysconf(_SC_TTY_NAME_MAX); + if (buflen < 1) { ++#if defined(__FreeBSD__) && defined(_SC_PAGESIZE) ++ buflen = sysconf(_SC_PAGESIZE); ++#else + RETURN_FALSE; ++#endif + } + p = emalloc(buflen); + +@@ -784,7 +788,11 @@ PHP_FUNCTION(posix_getgrnam) + #if defined(ZTS) && defined(HAVE_GETGRNAM_R) && defined(_SC_GETGR_R_SIZE_MAX) + buflen = sysconf(_SC_GETGR_R_SIZE_MAX); + if (buflen < 1) { ++#if defined(__FreeBSD__) && defined(_SC_PAGESIZE) ++ buflen = sysconf(_SC_PAGESIZE); ++#else + RETURN_FALSE; ++#endif + } + buf = emalloc(buflen); + try_again: +@@ -840,7 +848,11 @@ PHP_FUNCTION(posix_getgrgid) + + grbuflen = sysconf(_SC_GETGR_R_SIZE_MAX); + if (grbuflen < 1) { ++#if defined(__FreeBSD__) && defined(_SC_PAGESIZE) ++ grbuflen = sysconf(_SC_PAGESIZE); ++#else + RETURN_FALSE; ++#endif + } + + grbuf = emalloc(grbuflen); +@@ -914,7 +926,11 @@ PHP_FUNCTION(posix_getpwnam) + #if defined(ZTS) && defined(_SC_GETPW_R_SIZE_MAX) && defined(HAVE_GETPWNAM_R) + buflen = sysconf(_SC_GETPW_R_SIZE_MAX); + if (buflen < 1) { ++#if defined(__FreeBSD__) && defined(_SC_PAGESIZE) ++ buflen = sysconf(_SC_PAGESIZE); ++#else + RETURN_FALSE; ++#endif + } + buf = emalloc(buflen); + pw = &pwbuf; +@@ -969,7 +985,11 @@ PHP_FUNCTION(posix_getpwuid) + #if defined(ZTS) && defined(_SC_GETPW_R_SIZE_MAX) && defined(HAVE_GETPWUID_R) + pwbuflen = sysconf(_SC_GETPW_R_SIZE_MAX); + if (pwbuflen < 1) { ++#if defined(__FreeBSD__) && defined(_SC_PAGESIZE) ++ pwbuflen = sysconf(_SC_PAGESIZE); ++#else + RETURN_FALSE; ++#endif + } + pwbuf = emalloc(pwbuflen); +