public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Michael Orlitzky" <mjo@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-lang/php/, dev-lang/php/files/
Date: Fri, 16 Aug 2024 21:39:41 +0000 (UTC)	[thread overview]
Message-ID: <1723844097.09a4b7ed4f24d04730e19ae146317c2032c81eac.mjo@gentoo> (raw)

commit:     09a4b7ed4f24d04730e19ae146317c2032c81eac
Author:     Michael Orlitzky <mjo <AT> gentoo <DOT> org>
AuthorDate: Fri Aug 16 21:32:51 2024 +0000
Commit:     Michael Orlitzky <mjo <AT> gentoo <DOT> org>
CommitDate: Fri Aug 16 21:34:57 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=09a4b7ed

dev-lang/php: add 8.2.22, upgrade 8.3.9 -> 8.3.10

Sorry for the big test patch (again). It's been upstream for a long time
but keeps getting overlooked when cutting the releases.

Signed-off-by: Michael Orlitzky <mjo <AT> gentoo.org>

 dev-lang/php/Manifest                              |   3 +-
 ...tch => php-8.3.10-optional-png-testfixen.patch} |  28 ---
 .../php/{php-8.3.9.ebuild => php-8.2.22.ebuild}    | 278 +++++++++++++--------
 .../php/{php-8.3.9.ebuild => php-8.3.10.ebuild}    |   2 +-
 4 files changed, 178 insertions(+), 133 deletions(-)

diff --git a/dev-lang/php/Manifest b/dev-lang/php/Manifest
index 0f0436a4d5b4..8bfd4776ccb2 100644
--- a/dev-lang/php/Manifest
+++ b/dev-lang/php/Manifest
@@ -1,3 +1,4 @@
 DIST php-8.1.29.tar.xz 11826292 BLAKE2B 471f85504531c61e534c857a854de2ce9935b263e002deee19c4508390f6b2a11f89a02f55a90d660ee8d537b22a45db057e24373fb17fd2edf45f6e458f0196 SHA512 fd4f75224f71111a4cc40b3015ae70ac57a623326a3299da9ab8bd9dfad4ea27ff345d0eb75f1407d183207e763d372d738bbd8d217d01ec1414d29a547e8ba7
 DIST php-8.2.20.tar.xz 12097568 BLAKE2B 1e38e48ea9c28abfe2c3bd860bc5d959fbe327669c007f2e2a665ae14f5a045f6ad8a0a972f32618f88ea1ff3636c2692504478b5b094b48404d6c4a214f863b SHA512 c659ed4809b6507aa428b483c85c7322815ac9d7d8e4bfe575513a5e69c5a680b8d089fd98a19f83d3a00df3de61468809f21408455913aa24d519776e44abc5
-DIST php-8.3.9.tar.xz 12470616 BLAKE2B 44cc360c91b121f6fe1c768134d2e5e355fe1ab23ebefb98e60e878755e79b0bd31fa46a435eb5c3dabf034fb7b4bd785db014dc63f40331a6b168a14d849571 SHA512 f6291b71cf2c66f9effc2a8a7b0365364481cd5532551161194376893074f1f20dc7e9dbd628727e3b07460ac63b6d38bf4871bf4976e2b3b290f230b0111360
+DIST php-8.2.22.tar.xz 12099476 BLAKE2B 8c6c664f0d48ce839971e5316b6c6619434babdf26013709589b2c5e91a63d79eddc3d716762ff1714620e7e5e35cf24f06eb270931dc6f15603e233c34728af SHA512 b72df5bf8bde09571a965f512b970e2403f1c9b26fbf9efc4d1aeb5940def10e4088e5c7dbb06087b2f5206d711e34849b0726af6a81b0c3b6d9bcbd14f5172d
+DIST php-8.3.10.tar.xz 12484660 BLAKE2B a2cb60f83eea13aff7c907f322733a78f3d02bc334666a5350d795a84433252e0b27468f23eecc654fcfe882464da2699669bed247b7f4eaf40138bfb3773656 SHA512 99dc53cef802304dba455b7e1e54183e780fa21a58ec044ee5eac34d24fc9e5a1390447c18a3ef0035ef3dc531fc817016b47edab5b2e90af1233a73b59517be

diff --git a/dev-lang/php/files/php-8.3.9-optional-png-testfixen.patch b/dev-lang/php/files/php-8.3.10-optional-png-testfixen.patch
similarity index 97%
rename from dev-lang/php/files/php-8.3.9-optional-png-testfixen.patch
rename to dev-lang/php/files/php-8.3.10-optional-png-testfixen.patch
index 04b55b3b6b81..def26884ef2f 100644
--- a/dev-lang/php/files/php-8.3.9-optional-png-testfixen.patch
+++ b/dev-lang/php/files/php-8.3.10-optional-png-testfixen.patch
@@ -1247,31 +1247,3 @@ index 29cc89c1c56eb..a7be335ca92a6 100644
  --FILE--
  <?php
  
-From fa043f4716dcbd21630e16584e2d8d6baf17c77d Mon Sep 17 00:00:00 2001
-From: Michael Orlitzky <michael@orlitzky.com>
-Date: Wed, 10 Jul 2024 08:20:31 -0400
-Subject: [PATCH 1/1] ext/gd/tests/gh10614.phpt: skip if no PNG support
-
-This test uses imagecreatefrompng(), which won't be there if libgd was
-built without PNG support.
----
- ext/gd/tests/gh10614.phpt | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/ext/gd/tests/gh10614.phpt b/ext/gd/tests/gh10614.phpt
-index c068914183..1b91115d74 100644
---- a/ext/gd/tests/gh10614.phpt
-+++ b/ext/gd/tests/gh10614.phpt
-@@ -5,6 +5,9 @@
- --SKIPIF--
- <?php
- if (!GD_BUNDLED && version_compare(GD_VERSION, '2.3.4', '>=')) die("skip test requires GD 2.3.4 or older");
-+if (!(imagetypes() & IMG_PNG)) {
-+    die("skip No PNG support");
-+}
- ?>
- --FILE--
- <?php
--- 
-2.44.2
-

diff --git a/dev-lang/php/php-8.3.9.ebuild b/dev-lang/php/php-8.2.22.ebuild
similarity index 77%
copy from dev-lang/php/php-8.3.9.ebuild
copy to dev-lang/php/php-8.2.22.ebuild
index f0b4e07fb29d..b56a009d4a5b 100644
--- a/dev-lang/php/php-8.3.9.ebuild
+++ b/dev-lang/php/php-8.2.22.ebuild
@@ -5,7 +5,7 @@ EAPI=8
 
 WANT_AUTOMAKE="none"
 
-inherit autotools flag-o-matic multilib systemd
+inherit flag-o-matic multilib systemd autotools
 
 DESCRIPTION="The PHP language runtime engine"
 HOMEPAGE="https://www.php.net/"
@@ -16,6 +16,7 @@ LICENSE="PHP-3.01
 	Zend-2.0
 	bcmath? ( LGPL-2.1+ )
 	fpm? ( BSD-2 )
+	gd? ( gd )
 	unicode? ( BSD-2 LGPL-2.1 )"
 
 SLOT="$(ver_cut 1-2)"
@@ -30,22 +31,29 @@ IUSE="${IUSE}
 	threads"
 
 IUSE="${IUSE} acl apparmor argon2 avif bcmath berkdb bzip2 calendar
-	capstone cdb +ctype curl debug
+	cdb cjk +ctype curl debug
 	enchant exif ffi +fileinfo +filter firebird
 	+flatfile ftp gd gdbm gmp +iconv imap inifile
-	intl iodbc ipv6 +jit jpeg kerberos ldap ldap-sasl libedit lmdb
+	intl iodbc ipv6 +jit kerberos ldap ldap-sasl libedit lmdb
 	mhash mssql mysql mysqli nls
-	odbc +opcache +opcache-jit pcntl pdo +phar +posix postgres png
-	qdbm readline selinux +session session-mm sharedmem
+	oci8-instant-client odbc +opcache pcntl pdo +phar +posix postgres qdbm
+	readline selinux +session session-mm sharedmem
 	+simplexml snmp soap sockets sodium spell sqlite ssl
 	sysvipc systemd test tidy +tokenizer tokyocabinet truetype unicode
 	valgrind webp +xml xmlreader xmlwriter xpm xslt zip zlib"
 
 # Without USE=readline or libedit, the interactive "php -a" CLI will hang.
+# The Oracle instant client provides its own incompatible ldap library.
 REQUIRED_USE="
 	|| ( cli cgi fpm apache2 embed phpdbg )
+	avif? ( gd zlib )
 	cli? ( ^^ ( readline libedit ) )
 	!cli? ( ?? ( readline libedit ) )
+	truetype? ( gd zlib )
+	webp? ( gd zlib )
+	cjk? ( gd zlib )
+	exif? ( gd zlib )
+	xpm? ( gd zlib )
 	gd? ( zlib )
 	simplexml? ( xml )
 	soap? ( xml )
@@ -53,6 +61,7 @@ REQUIRED_USE="
 	xmlwriter? ( xml )
 	xslt? ( xml )
 	ldap-sasl? ( ldap )
+	oci8-instant-client? ( !ldap )
 	qdbm? ( !gdbm )
 	session-mm? ( session !threads )
 	mysql? ( || ( mysqli pdo ) )
@@ -67,57 +76,58 @@ RESTRICT="!test? ( test )"
 # the ./configure script. Other versions *work*, but we need to stick to
 # the ones that can be detected to avoid a repeat of bug #564824.
 COMMON_DEPEND="
-	app-eselect/eselect-php[apache2?,fpm?]
-	dev-libs/libpcre2[jit?,unicode]
+	>=app-eselect/eselect-php-0.9.7[apache2?,fpm?]
+	>=dev-libs/libpcre2-10.30[jit?,unicode]
 	virtual/libcrypt:=
 	fpm? ( acl? ( sys-apps/acl ) apparmor? ( sys-libs/libapparmor ) selinux? ( sys-libs/libselinux ) )
 	apache2? ( www-servers/apache[apache2_modules_unixd(+),threads=] )
 	argon2? ( app-crypt/argon2:= )
+	avif? ( media-libs/libavif:= )
 	berkdb? ( || (	sys-libs/db:5.3 sys-libs/db:4.8 ) )
 	bzip2? ( app-arch/bzip2:0= )
-	capstone? ( dev-libs/capstone )
 	cdb? ( || ( dev-db/cdb dev-db/tinycdb ) )
-	curl? ( net-misc/curl )
+	curl? ( >=net-misc/curl-7.29.0 )
 	enchant? ( app-text/enchant:2 )
-	ffi? ( dev-libs/libffi:= )
+	ffi? ( >=dev-libs/libffi-3.0.11:= )
 	firebird? ( dev-db/firebird )
-	gd? (
-		>=media-libs/gd-2.3.3-r4[avif?,jpeg?,png?,truetype?,webp?,xpm?]
-	)
-	gdbm? ( sys-libs/gdbm:0= )
+	gd? ( media-libs/libjpeg-turbo:0= media-libs/libpng:0= )
+	gdbm? ( >=sys-libs/gdbm-1.8.0:0= )
 	gmp? ( dev-libs/gmp:0= )
 	iconv? ( virtual/libiconv )
 	imap? ( net-libs/c-client[kerberos=,ssl=] )
 	intl? ( dev-libs/icu:= )
 	kerberos? ( virtual/krb5 )
-	ldap? ( net-nds/openldap:= )
+	ldap? ( >=net-nds/openldap-1.2.11:= )
 	ldap-sasl? ( dev-libs/cyrus-sasl )
 	libedit? ( dev-libs/libedit )
 	lmdb? ( dev-db/lmdb:= )
 	mssql? ( dev-db/freetds[mssql] )
 	nls? ( sys-devel/gettext )
-	odbc? ( iodbc? ( dev-db/libiodbc ) !iodbc? ( dev-db/unixODBC ) )
-	postgres? ( dev-db/postgresql:* )
+	oci8-instant-client? ( dev-db/oracle-instantclient[sdk] )
+	odbc? ( iodbc? ( dev-db/libiodbc ) !iodbc? ( >=dev-db/unixODBC-1.8.13 ) )
+	postgres? ( >=dev-db/postgresql-9.1:* )
 	qdbm? ( dev-db/qdbm )
 	readline? ( sys-libs/readline:0= )
 	session-mm? ( dev-libs/mm )
-	snmp? ( net-analyzer/net-snmp )
+	snmp? ( >=net-analyzer/net-snmp-5.2 )
 	sodium? ( dev-libs/libsodium:=[-minimal(-)] )
-	spell? ( app-text/aspell )
-	sqlite? ( dev-db/sqlite )
-	ssl? ( dev-libs/openssl:0= )
+	spell? ( >=app-text/aspell-0.50 )
+	sqlite? ( >=dev-db/sqlite-3.7.6.3 )
+	ssl? ( >=dev-libs/openssl-1.0.2:0= )
 	tidy? ( app-text/htmltidy )
 	tokyocabinet? ( dev-db/tokyocabinet )
-	truetype? ( media-libs/freetype )
+	truetype? ( =media-libs/freetype-2* )
 	unicode? ( dev-libs/oniguruma:= )
 	valgrind? ( dev-debug/valgrind )
-	xml? ( >=dev-libs/libxml2-2.12.5 )
+	webp? ( media-libs/libwebp:0= )
+	xml? ( >=dev-libs/libxml2-2.9.0 )
+	xpm? ( x11-libs/libXpm )
 	xslt? ( dev-libs/libxslt )
-	zip? ( dev-libs/libzip:= )
-	zlib? ( sys-libs/zlib:0= )
+	zip? ( >=dev-libs/libzip-1.2.0:= )
+	zlib? ( >=sys-libs/zlib-1.2.0.4:0= )
 "
 
-IDEPEND="app-eselect/eselect-php[apache2?,fpm?]"
+IDEPEND=">=app-eselect/eselect-php-0.9.7[apache2?,fpm?]"
 
 RDEPEND="${COMMON_DEPEND}
 	virtual/mta
@@ -130,17 +140,19 @@ RDEPEND="${COMMON_DEPEND}
 # have an incompatible version installed. See bug 593278.
 DEPEND="${COMMON_DEPEND}
 	app-arch/xz-utils
-	sys-devel/bison"
+	>=sys-devel/bison-3.0.1"
 
 BDEPEND="virtual/pkgconfig"
 
+PHP_MV="$(ver_cut 1)"
+
 PATCHES=(
-	"${FILESDIR}/php-8.3.9-optional-png-testfixen.patch"
-	"${FILESDIR}/php-8.3.9-gd-cachevars.patch"
+	"${FILESDIR}/php-iodbc-header-location.patch"
+	"${FILESDIR}/php-capstone-optional.patch"
+	"${FILESDIR}/php-8.2.8-openssl-tests.patch"
+	"${FILESDIR}/php-8.2.20-implicit-printf.patch"
 )
 
-PHP_MV="$(ver_cut 1)"
-
 # ARM/Windows functions (bug 923335)
 QA_CONFIG_IMPL_DECL_SKIP=(
 	__crc32d
@@ -164,14 +176,15 @@ php_install_ini() {
 	local phpinisrc="php.ini-production-${phpsapi}"
 	cp php.ini-production "${phpinisrc}" || die
 
-	# Set the include path to point to where we want to find PEAR
-	# packages
-	local sed_src='^;include_path = ".:/php.*'
-	local include_path="."
-	include_path+=":${EPREFIX}/usr/share/php${PHP_MV}"
-	include_path+=":${EPREFIX}/usr/share/php"
-	local sed_dst="include_path = \"${include_path}\""
-	sed -e "s|${sed_src}|${sed_dst}|" -i "${phpinisrc}" || die
+	# default to /tmp for save_path, bug #282768
+	sed -e 's|^;session.save_path .*$|session.save_path = "'"${EPREFIX}"'/tmp"|g' -i "${phpinisrc}" || die
+
+	# Set the extension dir
+	sed -e "s|^extension_dir .*$|extension_dir = ${extension_dir}|g" \
+		-i "${phpinisrc}" || die
+
+	# Set the include path to point to where we want to find PEAR packages
+	sed -e 's|^;include_path = ".:/php/includes".*|include_path = ".:'"${EPREFIX}"'/usr/share/php'${PHP_MV}':'"${EPREFIX}"'/usr/share/php"|' -i "${phpinisrc}" || die
 
 	insinto "${PHP_INI_DIR#${EPREFIX}}"
 	newins "${phpinisrc}" php.ini
@@ -184,7 +197,7 @@ php_install_ini() {
 
 	if use opcache; then
 		elog "Adding opcache to $PHP_EXT_INI_DIR"
-		echo "zend_extension = opcache.so" >> \
+		echo "zend_extension=${PHP_DESTDIR}/$(get_libdir)/opcache.so" >> \
 			 "${D}/${PHP_EXT_INI_DIR}"/opcache.ini
 		dosym "../ext/opcache.ini" \
 			  "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}/opcache.ini"
@@ -221,12 +234,62 @@ src_prepare() {
 		sapi/fpm/php-fpm.conf.in \
 		|| die 'failed to move the include directory in php-fpm.conf'
 
+	# Emulate buildconf to support cross-compilation
+	rm -fr aclocal.m4 autom4te.cache config.cache \
+		configure main/php_config.h.in || die
+	eautoconf --force
+	eautoheader
+
+	# missing skipif; fixed upstream already
+	rm sapi/cgi/tests/005.phpt || die
+
+	# These three get BORKED on no-ipv6 systems,
+	#
+	#   https://github.com/php/php-src/pull/11651
+	#
+	rm ext/sockets/tests/mcast_ipv6_recv.phpt \
+	   ext/sockets/tests/mcast_ipv6_recv_limited.phpt \
+	   ext/sockets/tests/mcast_ipv6_send.phpt \
+	   || die
+
 	# fails in a network sandbox,
 	#
 	#   https://github.com/php/php-src/issues/11662
 	#
 	rm ext/sockets/tests/bug63000.phpt || die
 
+	# expected output needs to be updated,
+	#
+	#   https://github.com/php/php-src/pull/11648
+	#
+	rm ext/dba/tests/dba_tcadb.phpt || die
+
+	# Two IMAP tests missing SKIPIFs,
+	#
+	#   https://github.com/php/php-src/pull/11654
+	#
+	rm ext/imap/tests/imap_mutf7_to_utf8.phpt \
+	   ext/imap/tests/imap_utf8_to_mutf7_basic.phpt \
+	   || die
+
+	# broken upstream with icu-73.x,
+	#
+	#   https://github.com/php/php-src/issues/11128
+	#
+	rm ext/intl/tests/calendar_clear_variation1.phpt || die
+
+	# overly sensitive to INI values; fixes sent upstream:
+	#
+	#  https://github.com/php/php-src/pull/11631
+	#
+	rm ext/session/tests/{bug74514,bug74936,gh7787}.phpt || die
+
+	# This is sensitive to the current "nice" level:
+	#
+	#   https://github.com/php/php-src/issues/11630
+	#
+	rm ext/standard/tests/general_functions/proc_nice_basic.phpt || die
+
 	# Tests ignoring the "-n" flag we pass to run-tests.php,
 	#
 	#   https://github.com/php/php-src/pull/11669
@@ -245,12 +308,38 @@ src_prepare() {
 	   sapi/cli/tests/bug78323.phpt \
 	   || die
 
+	# Same TEST_PHP_EXTRA_ARGS (-n) issue with this one, but it's
+	# already been fixed upstream.
+	rm sapi/cli/tests/017.phpt || die
+
+	# Most Oracle tests are borked,
+	#
+	#  * https://github.com/php/php-src/issues/11804
+	#  * https://github.com/php/php-src/pull/11820
+	#  * https://github.com/php/php-src/issues/11819
+	#
+	rm ext/oci8/tests/*.phpt || die
+
+	# https://github.com/php/php-src/issues/12801
+	rm ext/pcre/tests/gh11374.phpt || die
+
 	# This is a memory usage test with hard-coded limits. Whenever the
 	# limits are surpassed... they get increased... but in the meantime,
 	# the tests fail. This is not really a test that end users should
 	# be running pre-install, in my opinion. Bug 927461.
 	rm ext/fileinfo/tests/bug78987.phpt || die
 
+	# glibc-2.39 compatibility, fixed upstream in
+	# https://github.com/php/php-src/pull/14097
+	rm ext/standard/tests/strings/setlocale_variation3.phpt || die
+
+	# The expected warnings aren't triggered in this test because we
+	# define session.save_path on the CLI:
+	#
+	#   https://github.com/php/php-src/issues/14368
+	#
+	rm ext/session/tests/gh13856.phpt || die
+
 	# Bug 935382, fixed eventually by
 	#
 	# - https://github.com/php/php-src/pull/14788
@@ -266,25 +355,8 @@ src_prepare() {
 	#
 	rm ext/dba/tests/dba_gdbm.phpt || die
 
-	# Most tests failing with an external libgd have been fixed,
-	# but there are a few stragglers:
-	#
-	#  * https://github.com/php/php-src/issues/11252
-	#
-	rm ext/gd/tests/bug43073.phpt \
-	   ext/gd/tests/bug48732.phpt \
-	   ext/gd/tests/bug48732-mb.phpt \
-	   ext/gd/tests/bug48801.phpt \
-	   ext/gd/tests/bug48801-mb.phpt \
-	   ext/gd/tests/bug53504.phpt \
-	   ext/gd/tests/bug65148.phpt \
-	   ext/gd/tests/bug73272.phpt \
-	   || die
-
-	# One-off, somebody forgot to update a version constant
-	rm ext/reflection/tests/ReflectionZendExtension.phpt || die
-
-	eautoconf --force
+	# https://github.com/php/php-src/pull/14439
+	rm ext/openssl/tests/bug74341.phpt || die
 }
 
 src_configure() {
@@ -323,10 +395,10 @@ src_configure() {
 	our_conf+=(
 		$(use_with apparmor fpm-apparmor)
 		$(use_with argon2 password-argon2 "${EPREFIX}/usr")
+		$(use_with avif)
 		$(use_enable bcmath)
 		$(use_with bzip2 bz2 "${EPREFIX}/usr")
 		$(use_enable calendar)
-		$(use_with capstone)
 		$(use_enable ctype)
 		$(use_with curl)
 		$(use_enable xml dom)
@@ -351,7 +423,6 @@ src_configure() {
 		$(use_enable phar)
 		$(use_enable pdo)
 		$(use_enable opcache)
-		$(use_enable opcache-jit)
 		$(use_with postgres pgsql "${EPREFIX}/usr")
 		$(use_enable posix)
 		$(use_with selinux fpm-selinux)
@@ -378,17 +449,6 @@ src_configure() {
 		$(use_with valgrind)
 	)
 
-	# Override autoconf cache variables for libcrypt algorithms.These
-	# otherwise cannot be detected when cross-compiling. Bug 931884.
-	our_conf+=(
-		ac_cv_crypt_blowfish=yes
-		ac_cv_crypt_des=yes
-		ac_cv_crypt_ext_des=yes
-		ac_cv_crypt_md5=yes
-		ac_cv_crypt_sha512=yes
-		ac_cv_crypt_sha256=yes
-	)
-
 	# DBA support
 	if use cdb || use berkdb || use flatfile || use gdbm || use inifile \
 		|| use qdbm || use lmdb || use tokyocabinet ; then
@@ -407,20 +467,16 @@ src_configure() {
 		$(use_with lmdb lmdb "${EPREFIX}/usr")
 	)
 
-	# Use the system copy of GD. The autoconf cache variable overrides
-	# allow cross-compilation to proceed since the corresponding
-	# features cannot be detected by running a program.
+	# Support for the GD graphics library
 	our_conf+=(
-		$(use_enable gd gd)
-		$(use_with gd external-gd)
-		php_cv_lib_gd_gdImageCreateFromAvif=$(usex avif)
-		php_cv_lib_gd_gdImageCreateFromBmp=yes
-		php_cv_lib_gd_gdImageCreateFromJpeg=$(usex jpeg)
-		php_cv_lib_gd_gdImageCreateFromPng=$(usex png)
-		php_cv_lib_gd_gdImageCreateFromTga=yes
-		php_cv_lib_gd_gdImageCreateFromWebp=$(usex webp)
-		php_cv_lib_gd_gdImageCreateFromXpm=$(usex xpm)
+		$(use_with truetype freetype)
+		$(use_enable cjk gd-jis-conv)
+		$(use_with gd jpeg)
+		$(use_with xpm)
+		$(use_with webp)
 	)
+	# enable gd last, so configure can pick up the previous settings
+	our_conf+=( $(use_enable gd) )
 
 	# IMAP support
 	if use imap ; then
@@ -448,22 +504,10 @@ src_configure() {
 
 	# ODBC support
 	if use odbc && use iodbc ; then
-		# Obtain the correct -l and -I flags for the actual build from
-		# pkg-config. We use the "generic" library type to avoid the
-		# (wrong) hard-coded include dir for iodbc.
-		#
-		# We set the pdo_odbc_def_incdir variable because the
-		# ./configure script checks for the headers using "test -f" and
-		# ignores your CFLAGS... and pdo_odbc_def_libdir prevents the
-		# build system from appending a nonsense -L flag.
-		local iodbc_ldflags=$(pkg-config --libs libiodbc)
-		local iodbc_cflags=$(pkg-config --cflags libiodbc)
 		our_conf+=(
-			pdo_odbc_def_libdir="${EPREFIX}/usr/$(get_libdir)"
-			pdo_odbc_def_incdir="${EPREFIX}/usr/include/iodbc"
 			--without-unixODBC
 			--with-iodbc
-			$(use_with pdo pdo-odbc "generic,,iodbc,${iodbc_ldlags},${iodbc_cflags}")
+			$(use_with pdo pdo-odbc "iODBC,${EPREFIX}/usr")
 		)
 	elif use odbc ; then
 		our_conf+=(
@@ -479,6 +523,9 @@ src_configure() {
 		)
 	fi
 
+	# Oracle support
+	our_conf+=( $(use_with oci8-instant-client oci8) )
+
 	# PDO support
 	if use pdo ; then
 		our_conf+=(
@@ -487,6 +534,7 @@ src_configure() {
 			$(use_with postgres pdo-pgsql)
 			$(use_with sqlite pdo-sqlite)
 			$(use_with firebird pdo-firebird "${EPREFIX}/usr")
+			$(use_with oci8-instant-client pdo-oci)
 		)
 	fi
 
@@ -534,10 +582,6 @@ src_configure() {
 	# in main/build-defs.h which is included in main/php.h which is
 	# included by basically everything; so, avoiding a rebuild after
 	# changing it is not an easy job.
-	#
-	# The upstream build system also does not support building the
-	# apache2 and embed SAPIs at the same time, presumably because they
-	# both produce a libphp.so.
 	local one_sapi
 	local sapi
 	mkdir "${WORKDIR}/sapis-build" || die
@@ -599,6 +643,17 @@ src_compile() {
 	addpredict /usr/share/snmp/mibs/.index #nowarn
 	addpredict /var/lib/net-snmp/mib_indexes #nowarn
 
+	if use oci8-instant-client && use kerberos && use imap && use phar; then
+		# A conspiracy takes place when the first three of these flags
+		# are set together, causing the newly-built "php" to open
+		# /dev/urandom with mode rw when it starts. That's not actually
+		# a problem... unless you also have USE=phar, which runs that
+		# "php" to build some phar thingy in src_compile(). Later in
+		# src_test(), portage (at least) sets "addpredict /" so the
+		# problem does not repeat.
+		addpredict /dev/urandom #nowarn
+	fi
+
 	local sapi
 	for sapi in ${SAPIS} ; do
 		use "${sapi}" && emake -C "${WORKDIR}/sapis-build/${sapi}"
@@ -618,15 +673,20 @@ src_install() {
 		fi
 	done
 
-	# Install SAPI-independent targets
+	# Makefile forgets to create this before trying to write to it...
+	dodir "${PHP_DESTDIR#${EPREFIX}}/bin"
+
+	# Install php environment (without any sapis)
 	cd "${WORKDIR}/sapis-build/$first_sapi" || die
 	emake INSTALL_ROOT="${D}" \
 		install-build install-headers install-programs
-	use opcache && emake INSTALL_ROOT="${D}" install-modules
+
+	local extension_dir="$("${ED}/${PHP_DESTDIR#${EPREFIX}}/bin/php-config" --extension-dir)"
 
 	# Create the directory where we'll put version-specific php scripts
 	keepdir "/usr/share/php${PHP_MV}"
 
+	local file=""
 	local sapi_list=""
 
 	for sapi in ${SAPIS}; do
@@ -692,6 +752,12 @@ src_install() {
 		fi
 	done
 
+	# Installing opcache module
+	if use opcache ; then
+		into "${PHP_DESTDIR#${EPREFIX}}"
+		dolib.so "modules/opcache$(get_libname)"
+	fi
+
 	# Install env.d files
 	newenvd "${FILESDIR}/20php5-envd" "20php${SLOT}"
 	sed -e "s|/lib/|/$(get_libdir)/|g" -i "${ED}/etc/env.d/20php${SLOT}" || die
@@ -729,6 +795,11 @@ src_test() {
 		export TEST_PHPDBG_EXECUTABLE="${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg"
 	fi
 
+	# The sendmail override prevents ext/imap/tests/bug77020.phpt from
+	# actually trying to send mail, and will be fixed upstream soon:
+	#
+	#   https://github.com/php/php-src/issues/11629
+	#
 	# The IO capture tests need to be disabled because they fail when
 	# std{in,out,err} are redirected (as they are within portage).
 	#
@@ -738,6 +809,7 @@ src_test() {
 		"${TEST_PHP_EXECUTABLE}" -n \
 		"${WORKDIR}/sapis-build/cli/run-tests.php" --offline -n -q \
 		-d "session.save_path=${T}" \
+		-d "sendmail_path=echo >/dev/null" \
 		|| die "tests failed"
 }
 

diff --git a/dev-lang/php/php-8.3.9.ebuild b/dev-lang/php/php-8.3.10.ebuild
similarity index 99%
rename from dev-lang/php/php-8.3.9.ebuild
rename to dev-lang/php/php-8.3.10.ebuild
index f0b4e07fb29d..5abc04930731 100644
--- a/dev-lang/php/php-8.3.9.ebuild
+++ b/dev-lang/php/php-8.3.10.ebuild
@@ -135,7 +135,7 @@ DEPEND="${COMMON_DEPEND}
 BDEPEND="virtual/pkgconfig"
 
 PATCHES=(
-	"${FILESDIR}/php-8.3.9-optional-png-testfixen.patch"
+	"${FILESDIR}/php-8.3.10-optional-png-testfixen.patch"
 	"${FILESDIR}/php-8.3.9-gd-cachevars.patch"
 )
 


             reply	other threads:[~2024-08-16 21:39 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-16 21:39 Michael Orlitzky [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-03-15 16:59 [gentoo-commits] repo/gentoo:master commit in: dev-lang/php/, dev-lang/php/files/ Michael Orlitzky
2024-09-22 14:08 Michael Orlitzky
2024-09-22 12:20 Michael Orlitzky
2024-07-06  0:46 Michael Orlitzky
2024-02-08  0:32 Michael Orlitzky
2024-02-07 14:45 Michael Orlitzky
2023-07-31  0:53 Michael Orlitzky
2023-02-20 19:43 Brian Evans
2022-01-21 15:05 Brian Evans
2021-11-24 14:16 Brian Evans
2021-10-25 14:42 Brian Evans
2021-02-25 19:23 Brian Evans
2019-12-06 17:27 Brian Evans
2018-12-07  0:01 Thomas Deutschmann
2018-04-04 13:21 Brian Evans
2016-12-19 18:45 Brian Evans
2016-10-26 14:52 Brian Evans
2016-08-04 19:04 Michael Orlitzky
2015-11-29 21:38 Michael Orlitzky

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1723844097.09a4b7ed4f24d04730e19ae146317c2032c81eac.mjo@gentoo \
    --to=mjo@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox