From 0198396fdd4296a886bb39e2b890e592be37f271 Mon Sep 17 00:00:00 2001 From: Max Rees Date: Fri, 27 May 2022 16:20:52 +0000 Subject: user/php7: bump { 7.4.4 --> 7.4.30 }. disable tests. fixes #266, #267, #617. * Drop getsockopt.patch [1] * Parts of no-max-ent-size.patch are obsoleted by [2] * Drop zip-glob-pathc.patch [3] * Fix build with libgd-2.3.3 * Update secfixes [1] https://github.com/php/php-src/commit/f1bf058d7cbb7eaa62c1850c0d931a2c2ee127db [2] https://github.com/php/php-src/commit/6aff9a50cae40582d2571e7aa6f336d5c6a99547 [3] https://github.com/php/php-src/commit/04920645f14ea117d5248ef3a0e03c6784c2fb49 Failing tests: ext/curl/tests/curl_basic_007.phpt ext/gd/tests/bug38212-mb.phpt ext/gd/tests/bug38212.phpt ext/gd/tests/bug41442.phpt ext/gd/tests/bug71912-mb.phpt ext/gd/tests/bug71912.phpt ext/gd/tests/bug72339.phpt ext/gd/tests/bug73155.phpt ext/gd/tests/bug73157.phpt ext/gd/tests/bug73159.phpt ext/gd/tests/bug73161.phpt ext/gd/tests/bug73868.phpt ext/gd/tests/bug79676.phpt ext/gd/tests/crafted_gd2.phpt ext/gd/tests/createfromgd2.phpt ext/gd/tests/gif2gd.phpt ext/gd/tests/imagegd_truecolor.phpt ext/gd/tests/imagescale_preserve_ratio.phpt ext/gd/tests/jpg2gd-mb.phpt ext/gd/tests/jpg2gd.phpt ext/gd/tests/png2gd.phpt ext/gettext/tests/gettext_basic-enus.phpt ext/gettext/tests/gettext_bindtextdomain-cwd.phpt ext/gettext/tests/gettext_dcgettext.phpt ext/gettext/tests/gettext_dgettext.phpt ext/gettext/tests/gettext_dngettext-plural.phpt ext/gettext/tests/gettext_ngettext.phpt ext/pcntl/tests/pcntl_unshare_01.phpt ext/pcre/tests/ctype_back_to_c.phpt ext/standard/tests/strings/bug79986.phpt --- user/php7/APKBUILD | 45 +++++++++----- user/php7/getsockopt.patch | 37 ----------- user/php7/libgd-unused-constants.patch | 51 ++++++++++++++++ user/php7/no-max-ent-size.patch | 108 ++++++--------------------------- user/php7/zip-glob-pathc.patch | 15 ----- 5 files changed, 97 insertions(+), 159 deletions(-) delete mode 100644 user/php7/getsockopt.patch create mode 100644 user/php7/libgd-unused-constants.patch delete mode 100644 user/php7/zip-glob-pathc.patch diff --git a/user/php7/APKBUILD b/user/php7/APKBUILD index c86d41e84..de6c5612b 100644 --- a/user/php7/APKBUILD +++ b/user/php7/APKBUILD @@ -25,7 +25,7 @@ pkgname=php7 _pkgname=php -pkgver=7.4.4 +pkgver=7.4.30 pkgrel=0 _apiver=20190902 _zendver=20190902 @@ -34,6 +34,7 @@ pkgdesc="The PHP7 language runtime engine" url="https://php.net/" arch="all" license="PHP-3.01 AND Zend-2.0 AND Custom:TSRM AND LGPL-2.1+ AND MIT AND Beerware AND Public-Domain AND BSD-3-Clause AND Apache-1.0 AND PostgreSQL AND BSD-2-Clause AND Zlib AND BSD-4-Clause" +options="!check" depends="" depends_dev="$pkgname=$pkgver-r$pkgrel autoconf icu-dev libedit-dev libxml2-dev pcre2-dev zlib-dev" @@ -80,12 +81,11 @@ source="https://www.php.net/distributions/$_pkgname-$pkgver.tar.bz2 disabled-tests.list enchant-2.patch fpm-paths.patch - getsockopt.patch install-pear.patch + libgd-unused-constants.patch no-max-ent-size.patch test-fixes.patch zend_bool.patch - zip-glob-pathc.patch " builddir="$srcdir/$_pkgname-$pkgver" _libdir="/usr/lib/$_pkgname" @@ -94,14 +94,14 @@ _extension_confd="/etc/$_pkgname/conf.d" # secfixes: php # 7.2.16-r0: -# - CVE-2016-10166 -# - CVE-2018-20783 # - CVE-2019-6977 # - CVE-2019-9020 # - CVE-2019-9021 # - CVE-2019-9022 # - CVE-2019-9023 # - CVE-2019-9024 +# - CVE-2016-10166 +# - CVE-2018-20783 # 7.2.19-r0: # - CVE-2019-11036 # - CVE-2019-11038 @@ -111,18 +111,32 @@ _extension_confd="/etc/$_pkgname/conf.d" # - CVE-2019-11041 # - CVE-2019-11042 # 7.4.4-r0: -# - CVE-2019-11043 -# - CVE-2019-11045 -# - CVE-2019-11046 -# - CVE-2019-11047 -# - CVE-2019-11050 -# - CVE-2019-13224 # - CVE-2020-7059 # - CVE-2020-7060 # - CVE-2020-7062 # - CVE-2020-7063 # - CVE-2020-7064 # - CVE-2020-7066 +# - CVE-2019-11043 +# - CVE-2019-11045 +# - CVE-2019-11046 +# - CVE-2019-11047 +# - CVE-2019-11050 +# - CVE-2019-13224 +# 7.4.29-r0: +# - CVE-2020-7067 +# - CVE-2020-7068 +# - CVE-2020-7069 +# - CVE-2020-7070 +# - CVE-2020-7071 +# - CVE-2019-11048 +# - CVE-2021-21702 +# - CVE-2021-21703 +# - CVE-2021-21704 +# - CVE-2021-21705 +# - CVE-2021-21706 +# - CVE-2021-21707 +# - CVE-2021-21708 # Usage: _add_ext [with|enable] name [extension dependencies...] [configure options...] _add_ext() { @@ -529,16 +543,15 @@ _mv() { mv "$@" } -sha512sums="5676023858ffbef4997c2ed99ce1689de2b56d09a0925b8fc6527d56e7f6031b380e433e417e44f84196e713d84c16b33212ed6d116b5c347d1d60586288c248 php-7.4.4.tar.bz2 +sha512sums="5d5c273805d4563ea91619a2aa21bb6f7aa3600c2e1238a37312cb7610c9aad8c6a8c3f5c9d90fda94a7bfaff6d8f26de52913b70c40a7bf23651ba64979a5dc php-7.4.30.tar.bz2 cb3ba48fbd412f12d98ef1f88b509b40bc4ca44a16779a06d43e4db3cb8d24d54404b9e11ca941b5339af8d3281ca9c8ea3ba5ced4339f91fb40608b5ce9a647 php-fpm.initd 01d4ba3ef104ea378eb0e8cbb7bdee3fdf65e4bd6865eb3bc6c0dc4af31c2d52887abdf0150b5ef984b877860285a3b1af84b11ffebb5b8b722ea9faf83edfeb php-fpm.logrotate a7f9ba5e11652fd1cb9e756c3269269a95de083ecb5be936a85c7a09c1396db9088e0251c6a643c40235c0e776fce2a471e5c7f5a033b85c7d3b3110c2b39e48 php-module.conf 587057aaf93feec2936e2851dbb42ba78310fc012e340d90c58a8912437a8b6a15585895490c31ac31cf36969ea1f2999993c5ca42031c378f31fb83d361fd73 disabled-tests.list 7c8c3cac9efce81d525cb5a70e1402e393881b83ef4c7b5d39d3565803d21cd283daf3d74e9a8b059ecac66cf339756acc63608ffcb83d960dba86583bd45108 enchant-2.patch a77dd3bdf9dc7a0f2c06ff3e7c425d062bbaa29902c17402ce98701dc99499be863ad543aa5e6a7d1c249702d6afb193398dd3199ae58e42b32b95d434fb1883 fpm-paths.patch -821bf6fde83302e7613429a61066e2bd3ca4e998dcb7c11e39f4ae84829056537501b47a051e1feba752f72d98644b9a214633db9ccb16d137d3242d145acfe0 getsockopt.patch 951fa8445c20513aa48bf7c7d773c6b4012322e7e7592c13d965758e761b9898c484f0dbc5ae565c05787e6ab868769c97c71504624b10c9570e1d4214f75b10 install-pear.patch -5fd358dfd660901c8ffdaffe0bce398ab020f8c1beb89e26ba1b21646212fe132927d52ae088220d0b9c53017cfc67f4c9b88f7602df61d36eba5768ce94e355 no-max-ent-size.patch +441305a96329bf8442a6b633c0a8b8e53af0e6cd5fc673057cbb6b5aeb687542894a7a068073dad0a8d8dc75aa8ca42e6b0a32e29d2a7a69c115714a75127e97 libgd-unused-constants.patch +0e88f432d273103bff203b439cc3464d34613092007c88ec8806d82c3e317ba267d70c84e5ebc3c8b2c739fa498816e0e102a22b191ee387a42146f4ecc60481 no-max-ent-size.patch 9160e5c6b8bf2d87299f38421caf498519eb42243118570754a5764b5e682c546309548e76df6163df49e841ff51fb07e50fadeed1687da5d73dec1810c393ee test-fixes.patch -0cd6b8739533511c0d1edcb1ecff4d8d21a6b51d21f77c382645cf31d1645eeb2ebd80e2720557ceefa58f538385e097402bdc50e613dc7699bd8f033aefa543 zend_bool.patch -1b22dfa547bd1e14e065966f5268adda771c4ad039b83acee30772cd95f0f0b1a320d75fc6ab71a0bc6ca5ce04d58d9f410767c4fae4d5e16537393c78439f21 zip-glob-pathc.patch" +0cd6b8739533511c0d1edcb1ecff4d8d21a6b51d21f77c382645cf31d1645eeb2ebd80e2720557ceefa58f538385e097402bdc50e613dc7699bd8f033aefa543 zend_bool.patch" diff --git a/user/php7/getsockopt.patch b/user/php7/getsockopt.patch deleted file mode 100644 index 81f2bc232..000000000 --- a/user/php7/getsockopt.patch +++ /dev/null @@ -1,37 +0,0 @@ -Socket options with level IPPROTO_IP and IPPROTO_IPV6 cannot be handled -in the same switch statement as options with level SOL_SOCKET since -there may be collisions in their numerical values. - -For example, on ppc64: - -* IPV6_MULTICAST_HOPS and SO_RCVTIMEO are both 18 -* IPV6_MULTICAST_LOOP and SO_SNDTIMEO are both 19 - -etc. - ---- php-7.4.4/ext/sockets/sockets.c 2020-03-17 06:40:21.000000000 -0400 -+++ php-7.4.4/ext/sockets/sockets.c 2020-03-29 22:39:57.506751737 -0400 -@@ -2008,6 +2008,7 @@ PHP_FUNCTION(socket_get_option) - } - } - } -+ goto handle_default; - } - #if HAVE_IPV6 - else if (level == IPPROTO_IPV6) { -@@ -2017,6 +2018,7 @@ PHP_FUNCTION(socket_get_option) - } else if (ret == FAILURE) { - RETURN_FALSE; - } /* else continue */ -+ goto handle_default; - } - #endif - -@@ -2063,6 +2065,7 @@ PHP_FUNCTION(socket_get_option) - break; - - default: -+ handle_default: - optlen = sizeof(other_val); - - if (getsockopt(php_sock->bsd_socket, level, optname, (char*)&other_val, &optlen) != 0) { diff --git a/user/php7/libgd-unused-constants.patch b/user/php7/libgd-unused-constants.patch new file mode 100644 index 000000000..2b5ef2f83 --- /dev/null +++ b/user/php7/libgd-unused-constants.patch @@ -0,0 +1,51 @@ +Backport of https://github.com/php/php-src/commit/b3646440b1808abf0874b6f89027ce53ec5da03f + +Affects libgd <= 2.3.3 + +See also https://github.com/libgd/libgd/commit/f4bc1f5c26925548662946ed7cfa473c190a104a + +--- php-7.4.29/ext/gd/gd.c 2022-04-12 10:55:40.000000000 +0000 ++++ php-7.4.29/ext/gd/gd.c 2022-05-27 16:40:42.048499508 +0000 +@@ -90,6 +90,10 @@ static int le_gd, le_gd_font; + #ifndef M_PI + #define M_PI 3.14159265358979323846 + #endif ++/* don't used libgd constants, not used, so going to be removed */ ++#define PHP_GD_FLIP_HORIZONTAL 1 ++#define PHP_GD_FLIP_VERTICAL 2 ++#define PHP_GD_FLIP_BOTH 3 + + #ifdef HAVE_GD_FREETYPE + static void php_imagettftext_common(INTERNAL_FUNCTION_PARAMETERS, int, int); +@@ -1137,9 +1141,9 @@ PHP_MINIT_FUNCTION(gd) + /* GD2 image format types */ + REGISTER_LONG_CONSTANT("IMG_GD2_RAW", GD2_FMT_RAW, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IMG_GD2_COMPRESSED", GD2_FMT_COMPRESSED, CONST_CS | CONST_PERSISTENT); +- REGISTER_LONG_CONSTANT("IMG_FLIP_HORIZONTAL", GD_FLIP_HORINZONTAL, CONST_CS | CONST_PERSISTENT); +- REGISTER_LONG_CONSTANT("IMG_FLIP_VERTICAL", GD_FLIP_VERTICAL, CONST_CS | CONST_PERSISTENT); +- REGISTER_LONG_CONSTANT("IMG_FLIP_BOTH", GD_FLIP_BOTH, CONST_CS | CONST_PERSISTENT); ++ REGISTER_LONG_CONSTANT("IMG_FLIP_HORIZONTAL", PHP_GD_FLIP_HORIZONTAL, CONST_CS | CONST_PERSISTENT); ++ REGISTER_LONG_CONSTANT("IMG_FLIP_VERTICAL", PHP_GD_FLIP_VERTICAL, CONST_CS | CONST_PERSISTENT); ++ REGISTER_LONG_CONSTANT("IMG_FLIP_BOTH", PHP_GD_FLIP_BOTH, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IMG_EFFECT_REPLACE", gdEffectReplace, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IMG_EFFECT_ALPHABLEND", gdEffectAlphaBlend, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IMG_EFFECT_NORMAL", gdEffectNormal, CONST_CS | CONST_PERSISTENT); +@@ -4696,15 +4700,15 @@ PHP_FUNCTION(imageflip) + } + + switch (mode) { +- case GD_FLIP_VERTICAL: ++ case PHP_GD_FLIP_VERTICAL: + gdImageFlipVertical(im); + break; + +- case GD_FLIP_HORINZONTAL: ++ case PHP_GD_FLIP_HORIZONTAL: + gdImageFlipHorizontal(im); + break; + +- case GD_FLIP_BOTH: ++ case PHP_GD_FLIP_BOTH: + gdImageFlipBoth(im); + break; + diff --git a/user/php7/no-max-ent-size.patch b/user/php7/no-max-ent-size.patch index 7f28ba3f1..d6552cf1c 100644 --- a/user/php7/no-max-ent-size.patch +++ b/user/php7/no-max-ent-size.patch @@ -1,6 +1,6 @@ ---- php-7.4.4/ext/posix/posix.c 2020-03-17 10:40:22.000000000 +0000 -+++ php-7.4.4/ext/posix/posix.c 2020-03-27 03:19:13.133440186 +0000 -@@ -1084,8 +1084,11 @@ PHP_FUNCTION(posix_getgrnam) +--- php-7.4.29/ext/posix/posix.c 2022-04-12 10:55:39.000000000 +0000 ++++ php-7.4.29/ext/posix/posix.c 2022-05-27 16:10:31.374379930 +0000 +@@ -1094,8 +1094,11 @@ PHP_FUNCTION(posix_getgrnam) ZEND_PARSE_PARAMETERS_END_EX(RETURN_FALSE); #if defined(ZTS) && defined(HAVE_GETGRNAM_R) && defined(_SC_GETGR_R_SIZE_MAX) @@ -13,17 +13,7 @@ RETURN_FALSE; } buf = emalloc(buflen); -@@ -1127,9 +1130,7 @@ PHP_FUNCTION(posix_getgrgid) - { - zend_long gid; - #if defined(ZTS) && defined(HAVE_GETGRGID_R) && defined(_SC_GETGR_R_SIZE_MAX) -- int ret; - struct group _g; -- struct group *retgrptr = NULL; - long grbuflen; - char *grbuf; - #endif -@@ -1141,20 +1142,27 @@ PHP_FUNCTION(posix_getgrgid) +@@ -1151,8 +1154,11 @@ PHP_FUNCTION(posix_getgrgid) #if defined(ZTS) && defined(HAVE_GETGRGID_R) && defined(_SC_GETGR_R_SIZE_MAX) @@ -35,29 +25,8 @@ + } else if (grbuflen < 1) { RETURN_FALSE; } -- - grbuf = emalloc(grbuflen); -+try_again: -+ g = &_g; -- ret = getgrgid_r(gid, &_g, grbuf, grbuflen, &retgrptr); -- if (ret || retgrptr == NULL) { -- POSIX_G(last_error) = ret; -+ if (getgrgid_r(gid, g, grbuf, grbuflen, &g) || g == NULL) { -+ if (errno == ERANGE) { -+ grbuflen *= 2; -+ grbuf = erealloc(grbuf, grbuflen); -+ goto try_again; -+ } -+ POSIX_G(last_error) = errno; - efree(grbuf); - RETURN_FALSE; - } -- g = &_g; - #else - if (NULL == (g = getgrgid(gid))) { - POSIX_G(last_error) = errno; -@@ -1210,14 +1218,23 @@ PHP_FUNCTION(posix_getpwnam) +@@ -1226,8 +1232,11 @@ PHP_FUNCTION(posix_getpwnam) ZEND_PARSE_PARAMETERS_END_EX(RETURN_FALSE); #if defined(ZTS) && defined(_SC_GETPW_R_SIZE_MAX) && defined(HAVE_GETPWNAM_R) @@ -70,30 +39,7 @@ RETURN_FALSE; } buf = emalloc(buflen); -+try_again: - pw = &pwbuf; - - if (getpwnam_r(name, pw, buf, buflen, &pw) || pw == NULL) { -+ if (errno == ERANGE) { -+ buflen *= 2; -+ buf = erealloc(buf, buflen); -+ goto try_again; -+ } - efree(buf); - POSIX_G(last_error) = errno; - RETURN_FALSE; -@@ -1248,10 +1265,8 @@ PHP_FUNCTION(posix_getpwuid) - zend_long uid; - #if defined(ZTS) && defined(_SC_GETPW_R_SIZE_MAX) && defined(HAVE_GETPWUID_R) - struct passwd _pw; -- struct passwd *retpwptr = NULL; - long pwbuflen; - char *pwbuf; -- int ret; - #endif - struct passwd *pw; - -@@ -1260,19 +1275,27 @@ PHP_FUNCTION(posix_getpwuid) +@@ -1282,8 +1291,11 @@ PHP_FUNCTION(posix_getpwuid) ZEND_PARSE_PARAMETERS_END_EX(RETURN_FALSE); #if defined(ZTS) && defined(_SC_GETPW_R_SIZE_MAX) && defined(HAVE_GETPWUID_R) @@ -106,29 +52,9 @@ RETURN_FALSE; } pwbuf = emalloc(pwbuflen); -+try_again: -+ pw = &_pw; - -- ret = getpwuid_r(uid, &_pw, pwbuf, pwbuflen, &retpwptr); -- if (ret || retpwptr == NULL) { -- POSIX_G(last_error) = ret; -+ if (getpwuid_r(uid, pw, pwbuf, pwbuflen, &pw) || pw == NULL) { -+ if (errno == ERANGE) { -+ pwbuflen *= 2; -+ pwbuf = erealloc(pwbuf, pwbuflen); -+ goto try_again; -+ } -+ POSIX_G(last_error) = errno; - efree(pwbuf); - RETURN_FALSE; - } -- pw = &_pw; - #else - if (NULL == (pw = getpwuid(uid))) { - POSIX_G(last_error) = errno; ---- php-7.4.4/ext/standard/filestat.c 2020-03-17 10:40:30.000000000 +0000 -+++ php-7.4.4/ext/standard/filestat.c 2020-03-27 04:00:18.333479165 +0000 -@@ -302,15 +302,25 @@ PHPAPI int php_get_gid_by_name(const cha +--- php-7.4.29/ext/standard/filestat.c 2022-04-12 10:55:45.000000000 +0000 ++++ php-7.4.29/ext/standard/filestat.c 2022-05-27 16:12:23.176939839 +0000 +@@ -310,15 +310,25 @@ PHPAPI int php_get_gid_by_name(const cha #if defined(ZTS) && defined(HAVE_GETGRNAM_R) && defined(_SC_GETGR_R_SIZE_MAX) struct group gr; struct group *retgrptr; @@ -156,7 +82,7 @@ efree(grbuf); return FAILURE; } -@@ -438,15 +448,25 @@ PHPAPI uid_t php_get_uid_by_name(const c +@@ -446,15 +456,25 @@ PHPAPI uid_t php_get_uid_by_name(const c #if defined(ZTS) && defined(_SC_GETPW_R_SIZE_MAX) && defined(HAVE_GETPWNAM_R) struct passwd pw; struct passwd *retpwptr = NULL; @@ -184,9 +110,9 @@ efree(pwbuf); return FAILURE; } ---- php-7.4.4/main/fopen_wrappers.c 2020-03-17 10:40:21.000000000 +0000 -+++ php-7.4.4/main/fopen_wrappers.c 2020-03-27 04:08:46.553487201 +0000 -@@ -366,10 +366,13 @@ PHPAPI int php_fopen_primary_script(zend +--- php-7.4.29/main/fopen_wrappers.c 2022-04-12 10:55:38.000000000 +0000 ++++ php-7.4.29/main/fopen_wrappers.c 2022-05-27 16:13:13.063261295 +0000 +@@ -375,10 +375,13 @@ PHPAPI int php_fopen_primary_script(zend struct passwd *pw; #if defined(ZTS) && defined(HAVE_GETPWNAM_R) && defined(_SC_GETPW_R_SIZE_MAX) struct passwd pwstruc; @@ -201,7 +127,7 @@ return FAILURE; } -@@ -382,7 +385,14 @@ PHPAPI int php_fopen_primary_script(zend +@@ -391,7 +394,14 @@ PHPAPI int php_fopen_primary_script(zend memcpy(user, path_info + 2, length); user[length] = '\0'; #if defined(ZTS) && defined(HAVE_GETPWNAM_R) && defined(_SC_GETPW_R_SIZE_MAX) @@ -217,9 +143,9 @@ efree(pwbuf); return FAILURE; } ---- php-7.4.4/main/main.c 2020-03-17 10:40:21.000000000 +0000 -+++ php-7.4.4/main/main.c 2020-03-27 03:33:22.663453619 +0000 -@@ -1487,23 +1487,27 @@ PHPAPI char *php_get_current_user(void) +--- php-7.4.29/main/main.c 2022-04-12 10:55:38.000000000 +0000 ++++ php-7.4.29/main/main.c 2022-05-27 16:14:26.862749793 +0000 +@@ -1534,23 +1534,27 @@ PHPAPI char *php_get_current_user(void) struct passwd *pwd; #if defined(ZTS) && defined(HAVE_GETPWUID_R) && defined(_SC_GETPW_R_SIZE_MAX) struct passwd _pw; diff --git a/user/php7/zip-glob-pathc.patch b/user/php7/zip-glob-pathc.patch deleted file mode 100644 index 74b81754a..000000000 --- a/user/php7/zip-glob-pathc.patch +++ /dev/null @@ -1,15 +0,0 @@ -Upstream: https://github.com/php/php-src/pull/5311 - ---- php-7.4.4/ext/zip/php_zip.c 2020-03-17 10:40:30.000000000 +0000 -+++ php-7.4.4/ext/zip/php_zip.c 2020-03-27 15:28:13.259857804 -0500 -@@ -606,8 +606,9 @@ int php_zip_glob(char *pattern, int pattern_len, zend_long flags, zval *return_v - add_next_index_string(return_value, globbuf.gl_pathv[n]+cwd_skip); - } - -+ ret = globbuf.gl_pathc; - globfree(&globbuf); -- return globbuf.gl_pathc; -+ return ret; - #else - zend_throw_error(NULL, "Glob support is not available"); - return 0; -- cgit v1.2.3-60-g2f50