lang/php74: Add php74 version 7.4.0 pacakge.

Add php74 version 7.4.0 pacakge based on php73.

PHP is a widely-used open source general-purpose scripting language
that is especially suited for web development and can be embedded
into HTML.  It is modular, and object-oriented.  Much of its syntax
is borrowed from C, Java and Perl with a couple of unique PHP-specific
features thrown in.  The language is designed to allow web developers
to write dynamically generated pages quickly.

PHP 7.4 comes with numerous improvements and new features such as

* Typed Properties
* Arrow Functions
* Limited Return Type Covariance and Argument Type Contravariance
* Unpacking Inside Arrays
* Numeric Literal Separator
* Weak References
* Allow Exceptions from __toString()
* Opcache Preloading
* Several Deprecations
* Extensions Removed from the Core
This commit is contained in:
taca 2019-12-15 17:56:34 +00:00
parent 32d02657c9
commit 4f7d80674c
21 changed files with 908 additions and 0 deletions

23
lang/php74/DESCR Normal file
View file

@ -0,0 +1,23 @@
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 7.4 comes with numerous improvements and new features such as
* Typed Properties
* Arrow Functions
* Limited Return Type Covariance and Argument Type Contravariance
* Unpacking Inside Arrays
* Numeric Literal Separator
* Weak References
* Allow Exceptions from __toString()
* Opcache Preloading
* Several Deprecations
* Extensions Removed from the Core
For source downloads of PHP 7.4 please visit our downloads page Windows
binaries can be found on the PHP for Windows site. The list of changes is
recorded in the ChangeLog.

11
lang/php74/MESSAGE Normal file
View file

@ -0,0 +1,11 @@
===========================================================================
$NetBSD: MESSAGE,v 1.1 2019/12/15 17:56:34 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.
===========================================================================

75
lang/php74/Makefile Normal file
View file

@ -0,0 +1,75 @@
# $NetBSD: Makefile,v 1.1 2019/12/15 17:56:34 taca Exp $
#
# We can't omit PKGNAME here to handle PKG_OPTIONS.
#
PKGNAME= php-${PHP_VERSION:S/RC/rc/}
COMMENT= PHP Hypertext Preprocessor version 7.4
LICENSE= php
TEST_TARGET= test
USE_TOOLS+= gmake lex
LIBTOOL_OVERRIDE= # empty
PHP_CHECK_INSTALLED= No
PHP_VERSIONS_ACCEPTED= 74
.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:}
SUBST_CLASSES+= path
SUBST_MESSAGE.path= Fixing common paths.
SUBST_STAGE.path= pre-configure
SUBST_FILES.path= configure
SUBST_FILES.path+= ext/phar/phar/phar.php
SUBST_FILES.path+= php.ini-development php.ini-production run-tests.php
SUBST_FILES.path+= sapi/cgi/Makefile.frag
SUBST_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 "../../mk/bsd.pkg.mk"

View file

@ -0,0 +1,32 @@
# $NetBSD: Makefile.common,v 1.1 2019/12/15 17:56:34 taca Exp $
# used by lang/php74/Makefile.php
# used by lang/php/ext.mk
# used by meta-pkgs/php74-extensions/Makefile
PHP_VERSION_REQD= 74
.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"

112
lang/php74/Makefile.php Normal file
View file

@ -0,0 +1,112 @@
# $NetBSD: Makefile.php,v 1.1 2019/12/15 17:56:34 taca Exp $
# used by lang/php74/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/php74/Makefile.common"
DISTINFO_FILE= ${.CURDIR}/../../lang/php74/distinfo
PATCHDIR= ${.CURDIR}/../../lang/php74/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+= --without-intl
CONFIGURE_ARGS+= --disable-posix
CONFIGURE_ARGS+= --disable-opcache
CONFIGURE_ARGS+= --disable-pdo
CONFIGURE_ARGS+= --disable-json
CONFIGURE_ARGS+= --enable-cgi
CONFIGURE_ARGS+= --enable-mysqlnd
CONFIGURE_ARGS+= --enable-xml
#CONFIGURE_ARGS+= --with-libxml-dir=${PREFIX}
CONFIGURE_ENV+= EXTENSION_DIR="${PREFIX}/${PHP_EXTENSION_DIR}"
.include "../../textproc/libxml2/buildlink3.mk"
#CONFIGURE_ARGS+= --with-pcre-regex=${BUILDLINK_PREFIX.pcre2}
PKG_OPTIONS_VAR= PKG_OPTIONS.${PHP_PKG_PREFIX}
PKG_SUPPORTED_OPTIONS+= inet6 ssl maintainer-zts readline argon2
PKG_SUPPORTED_OPTIONS+= disable-filter-url
PKG_SUGGESTED_OPTIONS+= inet6 ssl readline
.if ${OPSYS} == "SunOS" || ${OPSYS} == "Darwin" || ${OPSYS} == "FreeBSD"
PKG_SUPPORTED_OPTIONS+= dtrace
.endif
.include "../../mk/bsd.options.mk"
.if !empty(PKG_OPTIONS:Minet6)
CONFIGURE_ARGS+= --enable-ipv6
.else
CONFIGURE_ARGS+= --disable-ipv6
.endif
.if !empty(PKG_OPTIONS:Mssl)
. include "../../security/openssl/buildlink3.mk"
. if ${OPSYS} == "SunOS"
CONFIGURE_ARGS+= --with-openssl=yes
LIBS.SunOS+= -lcrypto
. else
CONFIGURE_ARGS+= --with-openssl=${BUILDLINK_PREFIX.openssl}
. endif
.else
CONFIGURE_ARGS+= --without-openssl
.endif
.if !empty(PKG_OPTIONS:Mmaintainer-zts)
CONFIGURE_ARGS+= --enable-maintainer-zts
.endif
.if !empty(PKG_OPTIONS:Mreadline)
.include "../../devel/readline/buildlink3.mk"
CONFIGURE_ARGS+= --with-readline=${BUILDLINK_PREFIX.readline}
.else
CONFIGURE_ARGS+= --without-readline
.endif
.if !empty(PKG_OPTIONS:Mdtrace)
PLIST.dtrace= yes
CONFIGURE_ARGS+= --enable-dtrace
# See https://bugs.php.net/bug.php?id=61268
INSTALL_MAKE_FLAGS+= -r
.endif
.if !empty(PKG_OPTIONS:Margon2)
CONFIGURE_ARGS+= --with-password-argon2=${BUILDLINK_PREFIX.argon2}
.include "../../security/argon2/buildlink3.mk"
.endif
.if !empty(PKG_OPTIONS:Mdisable-filter-url)
CFLAGS+= -DDISABLE_FILTER_URL
.endif
DL_AUTO_VARS= yes
.include "../../mk/dlopen.buildlink3.mk"

286
lang/php74/PLIST Normal file
View file

@ -0,0 +1,286 @@
@comment $NetBSD: PLIST,v 1.1 2019/12/15 17:56:34 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_bitset.h
include/php/Zend/zend_build.h
include/php/Zend/zend_builtin_functions.h
include/php/Zend/zend_closures.h
include/php/Zend/zend_compile.h
include/php/Zend/zend_config.h
include/php/Zend/zend_config.w32.h
include/php/Zend/zend_constants.h
include/php/Zend/zend_cpuinfo.h
include/php/Zend/zend_dtrace.h
${PLIST.dtrace}include/php/Zend/zend_dtrace_gen.h
include/php/Zend/zend_errors.h
include/php/Zend/zend_exceptions.h
include/php/Zend/zend_execute.h
include/php/Zend/zend_extensions.h
include/php/Zend/zend_float.h
include/php/Zend/zend_gc.h
include/php/Zend/zend_generators.h
include/php/Zend/zend_globals.h
include/php/Zend/zend_globals_macros.h
include/php/Zend/zend_hash.h
include/php/Zend/zend_highlight.h
include/php/Zend/zend_inheritance.h
include/php/Zend/zend_ini.h
include/php/Zend/zend_ini_parser.h
include/php/Zend/zend_ini_scanner.h
include/php/Zend/zend_ini_scanner_defs.h
include/php/Zend/zend_interfaces.h
include/php/Zend/zend_istdiostream.h
include/php/Zend/zend_iterators.h
include/php/Zend/zend_language_parser.h
include/php/Zend/zend_language_scanner.h
include/php/Zend/zend_language_scanner_defs.h
include/php/Zend/zend_list.h
include/php/Zend/zend_llist.h
include/php/Zend/zend_long.h
include/php/Zend/zend_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_operators.h
include/php/Zend/zend_portability.h
include/php/Zend/zend_ptr_stack.h
include/php/Zend/zend_range_check.h
include/php/Zend/zend_signal.h
include/php/Zend/zend_smart_str.h
include/php/Zend/zend_smart_str_public.h
include/php/Zend/zend_smart_string.h
include/php/Zend/zend_smart_string_public.h
include/php/Zend/zend_sort.h
include/php/Zend/zend_stack.h
include/php/Zend/zend_stream.h
include/php/Zend/zend_string.h
include/php/Zend/zend_strtod.h
include/php/Zend/zend_strtod_int.h
include/php/Zend/zend_ts_hash.h
include/php/Zend/zend_type_info.h
include/php/Zend/zend_types.h
include/php/Zend/zend_variables.h
include/php/Zend/zend_virtual_cwd.h
include/php/Zend/zend_vm.h
include/php/Zend/zend_vm_def.h
include/php/Zend/zend_vm_execute.h
include/php/Zend/zend_vm_handlers.h
include/php/Zend/zend_vm_opcodes.h
include/php/Zend/zend_vm_trace_handlers.h
include/php/Zend/zend_vm_trace_map.h
include/php/Zend/zend_weakrefs.h
include/php/ext/date/lib/timelib.h
include/php/ext/date/lib/timelib_config.h
include/php/ext/date/php_date.h
include/php/ext/dom/xml_common.h
include/php/ext/filter/php_filter.h
include/php/ext/hash/php_hash.h
include/php/ext/hash/php_hash_adler32.h
include/php/ext/hash/php_hash_crc32.h
include/php/ext/hash/php_hash_fnv.h
include/php/ext/hash/php_hash_gost.h
include/php/ext/hash/php_hash_haval.h
include/php/ext/hash/php_hash_joaat.h
include/php/ext/hash/php_hash_md.h
include/php/ext/hash/php_hash_ripemd.h
include/php/ext/hash/php_hash_sha.h
include/php/ext/hash/php_hash_sha3.h
include/php/ext/hash/php_hash_snefru.h
include/php/ext/hash/php_hash_tiger.h
include/php/ext/hash/php_hash_whirlpool.h
include/php/ext/libxml/php_libxml.h
include/php/ext/mysqlnd/config-win.h
include/php/ext/mysqlnd/mysql_float_to_double.h
include/php/ext/mysqlnd/mysqlnd.h
include/php/ext/mysqlnd/mysqlnd_alloc.h
include/php/ext/mysqlnd/mysqlnd_auth.h
include/php/ext/mysqlnd/mysqlnd_block_alloc.h
include/php/ext/mysqlnd/mysqlnd_charset.h
include/php/ext/mysqlnd/mysqlnd_commands.h
include/php/ext/mysqlnd/mysqlnd_connection.h
include/php/ext/mysqlnd/mysqlnd_debug.h
include/php/ext/mysqlnd/mysqlnd_enum_n_def.h
include/php/ext/mysqlnd/mysqlnd_ext_plugin.h
include/php/ext/mysqlnd/mysqlnd_libmysql_compat.h
include/php/ext/mysqlnd/mysqlnd_plugin.h
include/php/ext/mysqlnd/mysqlnd_portability.h
include/php/ext/mysqlnd/mysqlnd_priv.h
include/php/ext/mysqlnd/mysqlnd_protocol_frame_codec.h
include/php/ext/mysqlnd/mysqlnd_ps.h
include/php/ext/mysqlnd/mysqlnd_read_buffer.h
include/php/ext/mysqlnd/mysqlnd_result.h
include/php/ext/mysqlnd/mysqlnd_result_meta.h
include/php/ext/mysqlnd/mysqlnd_reverse_api.h
include/php/ext/mysqlnd/mysqlnd_statistics.h
include/php/ext/mysqlnd/mysqlnd_structs.h
include/php/ext/mysqlnd/mysqlnd_vio.h
include/php/ext/mysqlnd/mysqlnd_wireprotocol.h
include/php/ext/mysqlnd/php_mysqlnd.h
include/php/ext/pcre/pcre2lib/config.h
include/php/ext/pcre/pcre2lib/pcre2.h
include/php/ext/pcre/pcre2lib/pcre2_internal.h
include/php/ext/pcre/pcre2lib/pcre2_intmodedep.h
include/php/ext/pcre/pcre2lib/pcre2_ucp.h
include/php/ext/pcre/php_pcre.h
include/php/ext/phar/php_phar.h
include/php/ext/session/mod_files.h
include/php/ext/session/mod_user.h
include/php/ext/session/php_session.h
include/php/ext/simplexml/php_simplexml.h
include/php/ext/simplexml/php_simplexml_exports.h
include/php/ext/spl/php_spl.h
include/php/ext/spl/spl_array.h
include/php/ext/spl/spl_directory.h
include/php/ext/spl/spl_dllist.h
include/php/ext/spl/spl_engine.h
include/php/ext/spl/spl_exceptions.h
include/php/ext/spl/spl_fixedarray.h
include/php/ext/spl/spl_functions.h
include/php/ext/spl/spl_heap.h
include/php/ext/spl/spl_iterators.h
include/php/ext/spl/spl_observer.h
include/php/ext/standard/base64.h
include/php/ext/standard/basic_functions.h
include/php/ext/standard/crc32.h
include/php/ext/standard/credits.h
include/php/ext/standard/credits_ext.h
include/php/ext/standard/credits_sapi.h
include/php/ext/standard/crypt_blowfish.h
include/php/ext/standard/crypt_freesec.h
include/php/ext/standard/css.h
include/php/ext/standard/cyr_convert.h
include/php/ext/standard/datetime.h
include/php/ext/standard/dl.h
include/php/ext/standard/exec.h
include/php/ext/standard/file.h
include/php/ext/standard/flock_compat.h
include/php/ext/standard/fsock.h
include/php/ext/standard/head.h
include/php/ext/standard/hrtime.h
include/php/ext/standard/html.h
include/php/ext/standard/html_tables.h
include/php/ext/standard/info.h
include/php/ext/standard/md5.h
include/php/ext/standard/microtime.h
include/php/ext/standard/pack.h
include/php/ext/standard/pageinfo.h
include/php/ext/standard/php_array.h
include/php/ext/standard/php_assert.h
include/php/ext/standard/php_browscap.h
include/php/ext/standard/php_crypt.h
include/php/ext/standard/php_crypt_r.h
include/php/ext/standard/php_dir.h
include/php/ext/standard/php_dns.h
include/php/ext/standard/php_ext_syslog.h
include/php/ext/standard/php_filestat.h
include/php/ext/standard/php_fopen_wrappers.h
include/php/ext/standard/php_ftok.h
include/php/ext/standard/php_http.h
include/php/ext/standard/php_image.h
include/php/ext/standard/php_incomplete_class.h
include/php/ext/standard/php_iptc.h
include/php/ext/standard/php_lcg.h
include/php/ext/standard/php_link.h
include/php/ext/standard/php_mail.h
include/php/ext/standard/php_math.h
include/php/ext/standard/php_metaphone.h
include/php/ext/standard/php_mt_rand.h
include/php/ext/standard/php_net.h
include/php/ext/standard/php_password.h
include/php/ext/standard/php_rand.h
include/php/ext/standard/php_random.h
include/php/ext/standard/php_smart_string.h
include/php/ext/standard/php_smart_string_public.h
include/php/ext/standard/php_standard.h
include/php/ext/standard/php_string.h
include/php/ext/standard/php_type.h
include/php/ext/standard/php_uuencode.h
include/php/ext/standard/php_var.h
include/php/ext/standard/php_versioning.h
include/php/ext/standard/proc_open.h
include/php/ext/standard/quot_print.h
include/php/ext/standard/scanf.h
include/php/ext/standard/sha1.h
include/php/ext/standard/streamsfuncs.h
include/php/ext/standard/uniqid.h
include/php/ext/standard/url.h
include/php/ext/standard/url_scanner_ex.h
include/php/ext/standard/winver.h
include/php/ext/xml/expat_compat.h
include/php/ext/xml/php_xml.h
include/php/main/SAPI.h
include/php/main/build-defs.h
include/php/main/fastcgi.h
include/php/main/fopen_wrappers.h
include/php/main/http_status_codes.h
include/php/main/php.h
include/php/main/php_compat.h
include/php/main/php_config.h
include/php/main/php_content_types.h
include/php/main/php_getopt.h
include/php/main/php_globals.h
include/php/main/php_ini.h
include/php/main/php_main.h
include/php/main/php_memory_streams.h
include/php/main/php_network.h
include/php/main/php_open_temporary_file.h
include/php/main/php_output.h
include/php/main/php_reentrancy.h
include/php/main/php_scandir.h
include/php/main/php_stdint.h
include/php/main/php_streams.h
include/php/main/php_syslog.h
include/php/main/php_ticks.h
include/php/main/php_variables.h
include/php/main/php_version.h
include/php/main/rfc1867.h
include/php/main/snprintf.h
include/php/main/spprintf.h
include/php/main/streams/php_stream_context.h
include/php/main/streams/php_stream_filter_api.h
include/php/main/streams/php_stream_glob_wrapper.h
include/php/main/streams/php_stream_mmap.h
include/php/main/streams/php_stream_plain_wrapper.h
include/php/main/streams/php_stream_transport.h
include/php/main/streams/php_stream_userspace.h
include/php/main/streams/php_streams_int.h
include/php/sapi/cli/cli.h
lib/php/build/Makefile.global
lib/php/build/ax_check_compile_flag.m4
lib/php/build/ax_gcc_func_attribute.m4
lib/php/build/config.guess
lib/php/build/config.sub
lib/php/build/libtool.m4
lib/php/build/ltmain.sh
lib/php/build/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}

15
lang/php74/buildlink3.mk Normal file
View file

@ -0,0 +1,15 @@
# $NetBSD: buildlink3.mk,v 1.1 2019/12/15 17:56:34 taca Exp $
BUILDLINK_TREE+= php
.if !defined(PHP_BUILDLINK3_MK)
PHP_BUILDLINK3_MK:=
BUILDLINK_API_DEPENDS.php+= php>=7.4.0<7.5
BUILDLINK_ABI_DEPENDS.php+= php>=7.4.0<7.5
BUILDLINK_PKGSRCDIR.php?= ../../lang/php74
.include "../../textproc/libxml2/buildlink3.mk"
.endif # PHP_BUILDLINK3_MK
BUILDLINK_TREE+= -php

19
lang/php74/distinfo Normal file
View file

@ -0,0 +1,19 @@
$NetBSD: distinfo,v 1.1 2019/12/15 17:56:34 taca Exp $
SHA1 (php-7.4.0.tar.xz) = 7b0c858ef0591baaceda19ce206b6a5b454dd789
RMD160 (php-7.4.0.tar.xz) = 3b0ac010bdbe720209a80c4408f3cecbde3ccf1a
SHA512 (php-7.4.0.tar.xz) = a44ce901b64a5f3f973ed323987e570e5459923149a34d0aa036990c3a42956d28b836a25dc3baef0d90aaee432df08a72d59966174218163b9579493027115c
Size (php-7.4.0.tar.xz) = 10232208 bytes
SHA1 (patch-configure) = 5e9c9c06f6d819d5ba2832d648f41363f40f3108
SHA1 (patch-disable-filter-url) = 0a2c19c18f089448a8d842e99738b292ab9e5640
SHA1 (patch-ext_phar_Makefile.frag) = 53ea5c58b0bc27d236118d5750a74b1cba43e5dd
SHA1 (patch-ext_phar_phar_phar.php) = 5440a59bf24b9b805bc096a989096311746d9d71
SHA1 (patch-ext_tidy_config.m4) = 380f4e8927582b2781faf58b17ad81b6dc967ba7
SHA1 (patch-ext_xsl_php__xsl.h) = a9877bff7bacc77926a4541a0ac171c00ad1a627
SHA1 (patch-php.ini-development) = e6815f2774ba071baa510fd5490fb5fa377d2462
SHA1 (patch-php.ini-production) = 3ee4d2e2e4fb4dbcb5b64df86751f7feeef0e20d
SHA1 (patch-run-tests.php) = ebbe6bd52ba414780e3e166cbd0c7559966258f6
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

View file

@ -0,0 +1,67 @@
$NetBSD: patch-configure,v 1.1 2019/12/15 17:56:34 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 2019-11-26 20:13:36.000000000 +0000
+++ configure
@@ -3682,6 +3682,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
@@ -5642,9 +5646,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"
@@ -6892,27 +6893,6 @@ EOF
;;
esac
- if test "$APACHE_VERSION" -lt 2004001; then
- APXS_MPM=`$APXS -q MPM_NAME`
- if test "$APXS_MPM" != "prefork" && test "$APXS_MPM" != "peruser" && test "$APXS_MPM" != "itk"; then
-
- enable_maintainer_zts=yes
- if test "$pthreads_working" != "yes"; then
- as_fn_error $? "ZTS currently requires working POSIX threads. We were unable to verify that your system supports Pthreads." "$LINENO" 5
- fi
-
- fi
- else
- APACHE_THREADED_MPM=`$APXS_HTTPD -V 2>/dev/null | grep 'threaded:.*yes'`
- if test -n "$APACHE_THREADED_MPM"; then
-
- enable_maintainer_zts=yes
- if test "$pthreads_working" != "yes"; then
- as_fn_error $? "ZTS currently requires working POSIX threads. We were unable to verify that your system supports Pthreads." "$LINENO" 5
- fi
-
- fi
- fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
@@ -74443,7 +74423,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,30 @@
$NetBSD: patch-disable-filter-url,v 1.1 2019/12/15 17:56:34 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_phar_Makefile.frag,v 1.1 2019/12/15 17:56:34 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,12 @@
$NetBSD: patch-ext_phar_phar_phar.php,v 1.1 2019/12/15 17:56:34 taca Exp $
Prepare for shbang line replace.
--- ext/phar/phar/phar.php.orig 2015-06-23 17:33:33.000000000 +0000
+++ ext/phar/phar/phar.php
@@ -1,4 +1,4 @@
-#!/usr/local/bin/php
+#!@PREFIX@/bin/php
<?php
/** @file phar.php

View file

@ -0,0 +1,15 @@
$NetBSD: patch-ext_tidy_config.m4,v 1.1 2019/12/15 17:56:34 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 2019/12/15 17:56:34 taca Exp $
The dom header is now supplied by the main php bl3.
--- ext/xsl/php_xsl.h.orig 2017-03-14 13:17:46.000000000 +0000
+++ ext/xsl/php_xsl.h
@@ -41,7 +41,7 @@ extern zend_module_entry xsl_module_entr
#include <libexslt/exsltconfig.h>
#endif
-#include "../dom/xml_common.h"
+#include "dom/xml_common.h"
#include "xsl_fe.h"
#include <libxslt/extensions.h>

View file

@ -0,0 +1,34 @@
$NetBSD: patch-php.ini-development,v 1.1 2019/12/15 17:56:34 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

View file

@ -0,0 +1,34 @@
$NetBSD: patch-php.ini-production,v 1.1 2019/12/15 17:56:34 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

View file

@ -0,0 +1,12 @@
$NetBSD: patch-run-tests.php,v 1.1 2019/12/15 17:56:34 taca Exp $
Prepare for shbang line replace.
--- run-tests.php.orig 2018-12-04 16:12:20.000000000 +0000
+++ run-tests.php
@@ -1,4 +1,4 @@
-#!/usr/bin/env php
+#!@PREFIX@/bin/php
<?php
/*
+----------------------------------------------------------------------+

View file

@ -0,0 +1,18 @@
$NetBSD: patch-sapi_cgi_Makefile.frag,v 1.1 2019/12/15 17:56:34 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 2019/12/15 17:56:34 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,49 @@
$NetBSD: patch-sapi_fpm_fpm_events_port.c,v 1.1 2019/12/15 17:56:34 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()) {

View file

@ -0,0 +1,15 @@
$NetBSD: patch-sapi_fpm_php-fpm.conf.in,v 1.1 2019/12/15 17:56:34 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