Subject: [alpine-aports] [PATCH v2] testing/php7: use internal crypt_r instead of system one, add extension load order value to <ext>.ini files

From: Valery Kartel <[email-masked]>
Date: Thu, 24 Mar 2016 19:11:40 +0200

---
Dont know why php7 want to allocate all memory when use musl's crypt_r. So I swith it to use its own crypt_r variant.

Extension load order for bundled extensions is 0x, like 00_xml.ini, 01_wddx.ini (because wddx depends on xml)
For 3rd party extensions load order is 1x, like 10_gmagick.ini.
---
 testing/php7/APKBUILD                   | 21 ++++++++++++---------
 testing/php7/use-internal-crypt_r.patch | 11 +++++++++++
 2 files changed, 23 insertions(+), 9 deletions(-)
 create mode 100644 testing/php7/use-internal-crypt_r.patch

diff --git a/testing/php7/APKBUILD b/testing/php7/APKBUILD
index 8a56b5d..f06d470 100644
--- a/testing/php7/APKBUILD
+++ b/testing/php7/APKBUILD
@@ -3,7 +3,7 @@
 pkgname=php7
 _pkgreal=php
 pkgver=7.0.4
-pkgrel=0
+pkgrel=1
 pkgdesc="The PHP language runtime engine - 7th branch"
 url="http://www.php.net/"
 arch="x86_64 armhf"
@@ -86,6 +86,7 @@ source="http://php.net/distributions/$_pkgreal-$pkgver.tar.bz2
 	tidy-buffio.patch
 	includedir.patch
 	pid_log.patch
+	use-internal-crypt_r.patch
 	"
 
 _apiver="20151012"
@@ -320,7 +321,7 @@ common() {
 
 _mv_ext() {
 	local ext=$1
-	local ini=$ext.ini
+	local elo=00
 	local dir=/usr/lib/$pkgname/modules
 	local prefix=
 	pkgdesc="PHP7 extension: $ext"
@@ -328,15 +329,14 @@ _mv_ext() {
 	# extension dependencies
 	[ -n "${2-}" ] && depends=$2
 
-	# work around dependency issue
-	# https://bugs.alpinelinux.org/issues/1848
-	[ "$ext" = "wddx" ] && ini=xml_$ext.ini
+	# fix extension load order
+	[ "$ext" = "wddx" ] && elo=01
 
 	mkdir -p "$subpkgdir"/usr/lib/$pkgname/modules "$subpkgdir"/etc/$pkgname/conf.d
 	mv "$pkgdir"/usr/lib/$pkgname/modules/${ext}.so \
 		"$subpkgdir"/usr/lib/$pkgname/modules/ || return 1
 	[ "$1" = "opcache" ] && prefix="zend_"
-	echo "${prefix}extension=${ext}.so" > "$subpkgdir"/etc/$pkgname/conf.d/$ini
+	echo "${prefix}extension=${ext}.so" > "$subpkgdir"/etc/$pkgname/conf.d/${elo}_${ext}.ini
 }
 
 bcmath()	{ _mv_ext bcmath; }
@@ -404,7 +404,8 @@ a340f27e83ed4482d2fbb98658ef71cb  php7-fpm.initd
 483bc0a85c50a9a9aedbe14a19ed4526  install-pear.patch
 66f0037a029f9eed2b31d2e1d50f1860  tidy-buffio.patch
 d872e633c9b33c3c9f629dd2edd2e5c5  includedir.patch
-6ba762ab7a105163b8e5b3913deae109  pid_log.patch"
+6ba762ab7a105163b8e5b3913deae109  pid_log.patch
+523fdc923d8c6eaeab7db144792b9572  use-internal-crypt_r.patch"
 sha256sums="a246c503709c189ba8e1e22ed2cb22abc27da43a997ff1b3318e181baf529dcc  php-7.0.4.tar.bz2
 eca59e8b0498c1c93b35f9a5109ae56d0cda9d94822727d689371ccad31b3615  php7-fpm.initd
 6e4406f21b69085714cdb9d9a67c08e27a1c737ab353f9813cb2fc268352d2c6  php7-fpm.logrotate
@@ -412,7 +413,8 @@ eca59e8b0498c1c93b35f9a5109ae56d0cda9d94822727d689371ccad31b3615  php7-fpm.initd
 f739ca427a1dd53a388bad0823565299c5d4a5796b1171b892884e4d7d099bab  install-pear.patch
 5dc8f32e5e2b1cd6317ada5a5adb9b5f0802ed6e0dbe065d7bfcc0f55d47e0d5  tidy-buffio.patch
 ea74966a23b1b54548ee35e9ccc2fc8d2b7c2285c385c44d6b23d9e2f25ea1a7  includedir.patch
-0cca8729c64682387a8c44ed74f0966da697f2817152d8d05bb25bedc7eaafec  pid_log.patch"
+0cca8729c64682387a8c44ed74f0966da697f2817152d8d05bb25bedc7eaafec  pid_log.patch
+0137c36b9695734cfcab55f0cf515747a9de60306e73a0cd590c3534806dc0a9  use-internal-crypt_r.patch"
 sha512sums="9d1dc761cdd9103a91299e01117c1790550e3b94e7694dcc2555d83e5abe3d2170acd6226e8501c5f2a77b5c374b1c9f5ea009999d476818c2682a54def86b96  php-7.0.4.tar.bz2
 89076ab8e170a8f886b88bb30aa3e6a6b4463155a18ea53485cc9e3898c81afa3d01fb8403d28a45dc1680f09c645c2d81d8272bc8b9c7ced41e59b0ba226216  php7-fpm.initd
 cacce7bf789467ff40647b7319e3760c6c587218720538516e8d400baa75651f72165c4e28056cd0c1dc89efecb4d00d0d7823bed80b29136262c825ce816691  php7-fpm.logrotate
@@ -420,4 +422,5 @@ fbf9a1572d37370ec0d126502e1d066e045a992484d8fc4f1e2ede330134c1a15f4029f29fa4daeb
 f1177cbf6b1f44402f421c3d317aab1a2a40d0b1209c11519c1158df337c8945f3a313d689c939768584f3e4edbe52e8bd6103fb6777462326a9d94e8ab1f505  install-pear.patch
 6894c9cba7752a3406e774d9efc0e058c37433493c1c20101e9563bf247c112157a67e306b06b9517b0422eca521f543d637a6cbd2cea7639e43f13d773b3d2b  tidy-buffio.patch
 199aecdbd3b4035aabf5379c215f82412d3c98b79a1ee186944e7fe1f0ed6f40789ea30e2355149491de6be34fc66c5e486e2a79a7e41ab2ae18706ef3ffe79b  includedir.patch
-82231c7b27b4d044272857dc713674884715ed8e36e54be06faa5d2a949ba4bca597628958a9c5683ec51c36e05a00f6be811c7e95112b0314c98528f584a8d6  pid_log.patch"
+82231c7b27b4d044272857dc713674884715ed8e36e54be06faa5d2a949ba4bca597628958a9c5683ec51c36e05a00f6be811c7e95112b0314c98528f584a8d6  pid_log.patch
+6bba68cda5e02d5ada974464923d245d73bc1cb08d051620f74a27a2ef93997dd26e905ea19d8d7eeb62f5071ec24ef6e63618c10fe83dbeeba853d70b05b93e  use-internal-crypt_r.patch"
diff --git a/testing/php7/use-internal-crypt_r.patch b/testing/php7/use-internal-crypt_r.patch
new file mode 100644
index 0000000..aafb48d
--- /dev/null
+++ b/testing/php7/use-internal-crypt_r.patch
@@ -0,0 +1,11 @@
+--- a/configure.in
++++ b/configure.in
+@@ -766,7 +766,7 @@
+ PHP_READDIR_R_TYPE
+ PHP_CHECK_IN_ADDR_T
+ 
+-AC_CHECK_FUNCS(crypt_r, [ php_crypt_r="1" ], [ php_crypt_r="0" ])
++AC_CHECK_FUNCS(crypt_r, [ php_crypt_r="0" ], [ php_crypt_r="0" ])
+ if test "x$php_crypt_r" = "x1"; then
+   PHP_CRYPT_R_STYLE
+ fi
-- 
2.7.4

---
Unsubscribe:  [email-masked]
Help:         [email-masked]
---