lang/php83: add version 8.3.0

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.3 comes with numerous improvements and new features such as

* Typed Class Constants
* Fetch class constant dynamically syntax
* Readonly Amendments
* Override Attribute
* New Randomizer method Random\Randomizer::getBytesFromString
* New function json_validate
* And much much more...
This commit is contained in:
taca 2023-11-30 16:14:50 +00:00
parent b59fbe3303
commit 8b23f75e9c
21 changed files with 904 additions and 0 deletions

16
lang/php83/DESCR Normal file
View file

@ -0,0 +1,16 @@
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.3 comes with numerous improvements and new features such as
* Typed Class Constants
* Fetch class constant dynamically syntax
* Readonly Amendments
* Override Attribute
* New Randomizer method Random\Randomizer::getBytesFromString
* New function json_validate
* And much much more...

11
lang/php83/MESSAGE Normal file
View file

@ -0,0 +1,11 @@
===========================================================================
$NetBSD: MESSAGE,v 1.1 2023/11/30 16:14:50 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.
===========================================================================

73
lang/php83/Makefile Normal file
View file

@ -0,0 +1,73 @@
# $NetBSD: Makefile,v 1.1 2023/11/30 16:14:50 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.3
LICENSE= php
TEST_TARGET= test
USE_TOOLS+= gmake lex
LIBTOOL_OVERRIDE= # empty
PHP_CHECK_INSTALLED= No
PHP_VERSIONS_ACCEPTED= 83
.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:
cd ${WRKSRC}; ${INSTALL_DATA} php.ini-development php.ini-production \
${DESTDIR}${EGDIR}
.include "../../lang/php/replace.mk"
.include "../../mk/bsd.pkg.mk"

View file

@ -0,0 +1,30 @@
# $NetBSD: Makefile.common,v 1.1 2023/11/30 16:14:50 taca Exp $
# used by lang/php83/Makefile.php
# used by lang/php/ext.mk
PHP_VERSION_REQD= 83
.include "../../lang/php/common.mk"
CATEGORIES+= www
MAINTAINER?= pkgsrc-users@NetBSD.org
USE_TOOLS+= pkg-config
CHECK_PORTABILITY_SKIP+= scripts/dev/makedist
.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"

57
lang/php83/Makefile.php Normal file
View file

@ -0,0 +1,57 @@
# $NetBSD: Makefile.php,v 1.1 2023/11/30 16:14:50 taca Exp $
# used by lang/php83/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/php83/Makefile.common"
DISTINFO_FILE= ${.CURDIR}/../../lang/php83/distinfo
PATCHDIR= ${.CURDIR}/../../lang/php83/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"

320
lang/php83/PLIST Normal file
View file

@ -0,0 +1,320 @@
@comment $NetBSD: PLIST,v 1.1 2023/11/30 16:14:50 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/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
${PLIST.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/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_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
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/random/php_random.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/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
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/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
include/php/sapi/cli/cli.h
${PLIST.embed}include/php/sapi/embed/php_embed.h
${PLIST.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
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}

17
lang/php83/buildlink3.mk Normal file
View file

@ -0,0 +1,17 @@
# $NetBSD: buildlink3.mk,v 1.1 2023/11/30 16:14:50 taca Exp $
BUILDLINK_TREE+= php
.if !defined(PHP_BUILDLINK3_MK)
PHP_BUILDLINK3_MK:=
BUILDLINK_API_DEPENDS.php+= php>=8.3.0<8.4
BUILDLINK_ABI_DEPENDS.php+= php>=8.3.0
BUILDLINK_PKGSRCDIR.php?= ../../lang/php83
pkgbase := php
.include "../../mk/pkg-build-options.mk"
.include "../../textproc/libxml2/buildlink3.mk"
.endif # PHP_BUILDLINK3_MK
BUILDLINK_TREE+= -php

17
lang/php83/distinfo Normal file
View file

@ -0,0 +1,17 @@
$NetBSD: distinfo,v 1.1 2023/11/30 16:14:50 taca Exp $
BLAKE2s (php-8.3.0.tar.xz) = a0dd4af2670fa1df1f70dfe524c3be08f589582d61834e75d7d33fd1d1be1393
SHA512 (php-8.3.0.tar.xz) = 8758bb0789787dda04f3d4a175f4d4a0bffadc8c3d272fefa000d6fd7b0c0a7096347c829c1ddfb3b60cf6300803d68ba6d8379f2a343e02d935ba77d01c5cf1
Size (php-8.3.0.tar.xz) = 12431612 bytes
SHA1 (patch-configure) = c8578bf4893665cb8dee242bbdc866d100912436
SHA1 (patch-ext_enchant_enchant.c) = 7d999de1b2fde2ea11e4a6e16e7b59c085924b9b
SHA1 (patch-ext_phar_Makefile.frag) = 53ea5c58b0bc27d236118d5750a74b1cba43e5dd
SHA1 (patch-ext_standard_php__fopen__wrapper.c) = 0a2c19c18f089448a8d842e99738b292ab9e5640
SHA1 (patch-ext_tidy_config.m4) = 380f4e8927582b2781faf58b17ad81b6dc967ba7
SHA1 (patch-ext_xsl_php__xsl.h) = cf930c5d6d9dab29b12558d265c67d3534a006fd
SHA1 (patch-main_streams_streams.c) = d699ce7d3a300ffb39494b3f1fa5e0958f714483
SHA1 (patch-php.ini-development) = 373d76cc7a022b578f1d5e296d1f0ac88bc26b72
SHA1 (patch-php.ini-production) = 5ab7fa6bf8403907160b0a62b56c1ee527f8eda6
SHA1 (patch-sapi_cgi_Makefile.frag) = f4cd64d334884c49787d8854115c8cd69cc79bb8
SHA1 (patch-sapi_cli_Makefile.frag) = 1cd29d09042863acbf5330e406410fdcf75d06b3
SHA1 (patch-sapi_fpm_php-fpm.conf.in) = acf9b4e70d4c5ea2b96e37e7bbf9005379ecc4d0

75
lang/php83/options.mk Normal file
View file

@ -0,0 +1,75 @@
# $NetBSD: options.mk,v 1.1 2023/11/30 16:14:50 taca Exp $
PKG_OPTIONS_VAR= PKG_OPTIONS.${PHP_PKG_PREFIX}
PKG_SUPPORTED_OPTIONS+= inet6 ssl zts readline argon2 php-embed
PKG_SUPPORTED_OPTIONS+= disable-filter-url
PKG_SUGGESTED_OPTIONS+= inet6 ssl readline
PKG_OPTIONS_LEGACY_OPTS+= maintainer-zts:zts
.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:Mzts)
CONFIGURE_ARGS+= --enable-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/libphp.so ${DESTDIR}${PREFIX}/lib/
. endif
.endif

View file

@ -0,0 +1,59 @@
$NetBSD: patch-configure,v 1.1 2023/11/30 16:14:50 taca Exp $
* Do not include "PKG_CONFIG*" in CONFIGURE_OPTIONS.
* Don't autodetect maintainer-zts.
* Shell portability.
--- configure.orig 2023-10-24 19:22:16.000000000 +0000
+++ configure
@@ -3732,6 +3732,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
@@ -7023,30 +7027,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; }
-
PHP_VAR_SUBST="$PHP_VAR_SUBST APXS"
else
@@ -78641,7 +78621,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

View file

@ -0,0 +1,15 @@
$NetBSD: patch-ext_enchant_enchant.c,v 1.1 2023/11/30 16:14:50 taca Exp $
Fix build on pkgsrc environment.
--- ext/enchant/enchant.c.orig 2022-12-06 14:26:47.000000000 +0000
+++ ext/enchant/enchant.c
@@ -23,7 +23,7 @@
#include "php_ini.h"
#include "ext/standard/info.h"
#include "Zend/zend_exceptions.h"
-#include "../spl/spl_exceptions.h"
+#include "spl/spl_exceptions.h"
#include <enchant.h>
#include "php_enchant.h"

View file

@ -0,0 +1,15 @@
$NetBSD: patch-ext_phar_Makefile.frag,v 1.1 2023/11/30 16:14:50 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

View file

@ -0,0 +1,30 @@
$NetBSD: patch-ext_standard_php__fopen__wrapper.c,v 1.1 2023/11/30 16:14:50 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");

View file

@ -0,0 +1,15 @@
$NetBSD: patch-ext_tidy_config.m4,v 1.1 2023/11/30 16:14:50 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])

View file

@ -0,0 +1,15 @@
$NetBSD: patch-ext_xsl_php__xsl.h,v 1.1 2023/11/30 16:14:50 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>

View file

@ -0,0 +1,19 @@
$NetBSD: patch-main_streams_streams.c,v 1.1 2023/11/30 16:14:50 taca Exp $
* Allow copying files with size zero.
--- main/streams/streams.c.orig 2022-05-11 01:14:18.000000000 +0000
+++ main/streams/streams.c
@@ -1584,10 +1584,8 @@ PHPAPI int _php_stream_copy_to_stream_ex
*len = haveread += didwrite;
- /* we've got at least 1 byte to read
- * less than 1 is an error
- * AND read bytes match written */
- if (mapped == 0 || mapped != didwrite) {
+ /* read bytes match written */
+ if (mapped != didwrite) {
return FAILURE;
}
if (mapped < chunk_size) {

View file

@ -0,0 +1,34 @@
$NetBSD: patch-php.ini-development,v 1.1 2023/11/30 16:14:50 taca Exp $
Set proper default configuration values.
--- php.ini-development.orig 2021-10-27 00:20:44.000000000 +0000
+++ php.ini-development
@@ -735,7 +735,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"
@@ -756,7 +756,8 @@ doc_root =
; https://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.
; https://php.net/extension-dir
;extension_dir = "./"
; On windows:
@@ -841,7 +842,7 @@ file_uploads = On
; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
; https://php.net/upload-tmp-dir
-;upload_tmp_dir =
+upload_tmp_dir =
; Maximum allowed size for uploaded files.
; https://php.net/upload-max-filesize

View file

@ -0,0 +1,34 @@
$NetBSD: patch-php.ini-production,v 1.1 2023/11/30 16:14:50 taca Exp $
Set proper default configuration values.
--- php.ini-production.orig 2021-10-27 00:20:44.000000000 +0000
+++ php.ini-production
@@ -737,7 +737,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"
@@ -758,7 +758,8 @@ doc_root =
; https://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.
; https://php.net/extension-dir
;extension_dir = "./"
; On windows:
@@ -843,7 +844,7 @@ file_uploads = On
; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
; https://php.net/upload-tmp-dir
-;upload_tmp_dir =
+upload_tmp_dir =
; Maximum allowed size for uploaded files.
; https://php.net/upload-max-filesize

View file

@ -0,0 +1,18 @@
$NetBSD: patch-sapi_cgi_Makefile.frag,v 1.1 2023/11/30 16:14:50 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

View file

@ -0,0 +1,19 @@
$NetBSD: patch-sapi_cli_Makefile.frag,v 1.1 2023/11/30 16:14:50 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)/"

View file

@ -0,0 +1,15 @@
$NetBSD: patch-sapi_fpm_php-fpm.conf.in,v 1.1 2023/11/30 16:14:50 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