From 33656b3d3602e3342e1dffe45876ad58351f4d19 Mon Sep 17 00:00:00 2001 From: Rmys Date: Mon, 5 Aug 2019 17:08:31 +0300 Subject: [PATCH] php:ver. bump --- programming/php/php/actions.py | 19 +- programming/php/php/files/70_mod_php5.conf | 19 -- .../950-Fix-dl-cross-compiling-issue.patch | 62 ---- ...nial_of_service_in_getArchiveComment.patch | 12 - .../php/files/int_overflow_in_mt_rand.patch | 14 - .../php-imap-annotation+status-current.diff | 302 ------------------ .../php/php/files/php-imap-myrights.diff | 92 ------ .../php/php/files/php5-imap-symlink.diff | 15 - ...stack_buffer_overflow_in_imagepstext.patch | 14 - .../php/php/files/system-timezone.patch | 265 --------------- programming/php/php/pspec.xml | 9 +- 11 files changed, 25 insertions(+), 798 deletions(-) delete mode 100644 programming/php/php/files/70_mod_php5.conf delete mode 100644 programming/php/php/files/950-Fix-dl-cross-compiling-issue.patch delete mode 100644 programming/php/php/files/denial_of_service_in_getArchiveComment.patch delete mode 100644 programming/php/php/files/int_overflow_in_mt_rand.patch delete mode 100644 programming/php/php/files/php-imap-annotation+status-current.diff delete mode 100644 programming/php/php/files/php-imap-myrights.diff delete mode 100644 programming/php/php/files/php5-imap-symlink.diff delete mode 100644 programming/php/php/files/stack_buffer_overflow_in_imagepstext.patch delete mode 100644 programming/php/php/files/system-timezone.patch diff --git a/programming/php/php/actions.py b/programming/php/php/actions.py index caa072814f..7de347e9ad 100644 --- a/programming/php/php/actions.py +++ b/programming/php/php/actions.py @@ -49,14 +49,16 @@ def setup(): shelltools.makedirs("fcgi") shelltools.makedirs("apache") shelltools.makedirs("fpm") + shelltools.makedirs("common") # link configure script shelltools.sym("../configure", "fcgi/configure") shelltools.sym("../configure", "apache/configure") shelltools.sym("../configure", "fpm/configure") + shelltools.sym("../configure", "common/configure") shelltools.export("LC_ALL", "C") - shelltools.export("CFLAGS", "%s -fwrapv -lkrb5 -lgssapi_krb5 -lpam" % get.CFLAGS()) + shelltools.export("CFLAGS", "%s -fwrapv -lkrb5 -lgssapi_krb5 -lpam -DU_USING_ICU_NAMESPACE=1" % get.CFLAGS()) shelltools.export("NO_INTERACTION", "1") shelltools.export("EXTENSION_DIR", "/usr/lib/php/modules") @@ -80,7 +82,6 @@ def setup(): --with-jpeg-dir=/usr/lib/ \ --with-png-dir=/usr/lib/ \ --with-freetype-dir=/usr \ - --without-pear \ --with-zend-vm=GOTO \ --with-zend-vm=SWITCH \ --with-db4=/usr/lib \ @@ -93,6 +94,7 @@ def setup(): --with-openssl=shared \ --with-imap-ssl \ --with-mysql-sock=/run/mysqld/mysqld.sock \ + --without-pear \ --disable-rpath \ " @@ -123,6 +125,13 @@ def setup(): --with-config-file-scan-dir=/etc/php/apache2/ext \ %s \ %s" % (common_options, extensions())) + + # Enable common + shelltools.cd("../common") + autotools.configure("--enable-cli \ + --enable-phpdbg \ + %s \ + %s" % (common_options, extensions())) def build(): @@ -135,6 +144,9 @@ def build(): shelltools.cd("../fpm") autotools.make() + + shelltools.cd("../common") + autotools.make() def check(): @@ -151,6 +163,9 @@ def install(): shelltools.cd("../fpm") autotools.rawInstall("INSTALL_ROOT=\"%s\"" % get.installDIR(), "install-fpm") + + shelltools.cd("../common") + autotools.rawInstall("INSTALL_ROOT=\"%s\"" % get.installDIR(), "install") shelltools.cd("..") diff --git a/programming/php/php/files/70_mod_php5.conf b/programming/php/php/files/70_mod_php5.conf deleted file mode 100644 index 246e548980..0000000000 --- a/programming/php/php/files/70_mod_php5.conf +++ /dev/null @@ -1,19 +0,0 @@ -LoadModule php5_module modules/libphp5.so - -AddHandler php5-script .php - -# Set it to handle the files - - AddType application/x-httpd-php .php - AddType application/x-httpd-php .phtml - AddType application/x-httpd-php .php3 - AddType application/x-httpd-php .php4 - AddType application/x-httpd-php .php5 - AddType application/x-httpd-php-source .phps - - -# -# Add index.php to the list of files that will be served as directory -# indexes. -# -DirectoryIndex index.php index.phtml diff --git a/programming/php/php/files/950-Fix-dl-cross-compiling-issue.patch b/programming/php/php/files/950-Fix-dl-cross-compiling-issue.patch deleted file mode 100644 index 02b1f644c1..0000000000 --- a/programming/php/php/files/950-Fix-dl-cross-compiling-issue.patch +++ /dev/null @@ -1,62 +0,0 @@ -diff -u --recursive php-5.6.6-vanilla/configure.in php-5.6.6/configure.in ---- php-5.6.6-vanilla/configure.in 2015-02-26 22:10:51.865487530 -0500 -+++ php-5.6.6/configure.in 2015-02-26 22:29:59.043102135 -0500 -@@ -453,7 +453,10 @@ - PHP_CHECK_FUNC(gethostbyaddr, nsl) - PHP_CHECK_FUNC(yp_get_default_domain, nsl) - --PHP_CHECK_FUNC(dlopen, dl) -+PHP_ADD_LIBRARY(dl) -+PHP_DEF_HAVE(dlopen) -+PHP_DEF_HAVE(libdl) -+ac_cv_func_dlopen=yes - if test "$ac_cv_func_dlopen" = "yes"; then - AC_DEFINE(HAVE_LIBDL, 1, [ ]) - fi -diff -u --recursive php-5.6.6-vanilla/ext/fileinfo/config.m4 php-5.6.6/ext/fileinfo/config.m4 ---- php-5.6.6-vanilla/ext/fileinfo/config.m4 2015-02-26 22:10:51.639487135 -0500 -+++ php-5.6.6/ext/fileinfo/config.m4 2015-02-26 22:22:47.645609128 -0500 -@@ -46,6 +46,10 @@ - AC_MSG_RESULT(no) - AC_MSG_NOTICE(using libmagic strcasestr implementation) - libmagic_sources="$libmagic_sources libmagic/strcasestr.c" -+ ],[ -+ dnl cross-compiling; assume not present -+ AC_MSG_NOTICE(using libmagic strcasestr implementation) -+ libmagic_sources="$libmagic_sources libmagic/strcasestr.c" - ]) - - PHP_NEW_EXTENSION(fileinfo, fileinfo.c $libmagic_sources, $ext_shared,,-I@ext_srcdir@/libmagic) -diff -u --recursive php-5.6.6-vanilla/ext/opcache/config.m4 php-5.6.6/ext/opcache/config.m4 ---- php-5.6.6-vanilla/ext/opcache/config.m4 2015-02-26 22:10:51.790487399 -0500 -+++ php-5.6.6/ext/opcache/config.m4 2015-02-26 22:34:19.240414394 -0500 -@@ -341,7 +341,14 @@ - flock_type=linux - AC_DEFINE([HAVE_FLOCK_LINUX], [], [Struct flock is Linux-type]) - AC_MSG_RESULT("yes") --], AC_MSG_RESULT("no") ) -+], [ -+ AC_MSG_RESULT("no") -+], [ -+ dnl cross-compiling; assume Linux -+ flock_type=linux -+ AC_DEFINE([HAVE_FLOCK_LINUX], [], [Struct flock is Linux-type]) -+ AC_MSG_RESULT("yes") -+]) - - AC_MSG_CHECKING("whether flock struct is BSD ordered") - AC_TRY_RUN([ -@@ -357,7 +364,12 @@ - flock_type=bsd - AC_DEFINE([HAVE_FLOCK_BSD], [], [Struct flock is BSD-type]) - AC_MSG_RESULT("yes") --], AC_MSG_RESULT("no") ) -+], [ -+ AC_MSG_RESULT("no") -+], [ -+ dnl cross-compiling; assume Linux -+ AC_MSG_RESULT("no") -+]) - - if test "$flock_type" == "unknown"; then - AC_MSG_ERROR([Don't know how to define struct flock on this system[,] set --enable-opcache=no]) diff --git a/programming/php/php/files/denial_of_service_in_getArchiveComment.patch b/programming/php/php/files/denial_of_service_in_getArchiveComment.patch deleted file mode 100644 index b4605c982b..0000000000 --- a/programming/php/php/files/denial_of_service_in_getArchiveComment.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- php-5.2.14.orig/ext/zip/php_zip.c 2011-01-14 16:12:17.886000067 +0200 -+++ php-5.2.14/ext/zip/php_zip.c 2011-01-14 16:14:50.233000067 +0200 -@@ -1954,6 +1954,9 @@ - - PHP_ZIP_STAT_INDEX(intern, index, 0, sb); - comment = zip_get_file_comment(intern, index, &comment_len, (int)flags); -+ if(comment==NULL) { -+ RETURN_FALSE; -+ } - RETURN_STRINGL((char *)comment, (long)comment_len, 1); - } - /* }}} */ diff --git a/programming/php/php/files/int_overflow_in_mt_rand.patch b/programming/php/php/files/int_overflow_in_mt_rand.patch deleted file mode 100644 index 95470bb6b1..0000000000 --- a/programming/php/php/files/int_overflow_in_mt_rand.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- php-5.2.14.orig/ext/standard/rand.c 2011-02-07 14:44:55.975000003 +0200 -+++ php-5.2.14/ext/standard/rand.c 2011-02-07 16:24:24.017000004 +0200 -@@ -322,6 +322,11 @@ - php_mt_srand(GENERATE_SEED() TSRMLS_CC); - } - -+ if (max < min) { -+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "max(%d) is smaller than min(%d)", max, min); -+ RETURN_FALSE; -+ } -+ - /* - * Melo: hmms.. randomMT() returns 32 random bits... - * Yet, the previous php_rand only returns 31 at most. diff --git a/programming/php/php/files/php-imap-annotation+status-current.diff b/programming/php/php/files/php-imap-annotation+status-current.diff deleted file mode 100644 index 2da8d70fe4..0000000000 --- a/programming/php/php/files/php-imap-annotation+status-current.diff +++ /dev/null @@ -1,302 +0,0 @@ -diff -Naurp php-5.3.4RC1/ext/imap/php_imap.c php-5.3.4RC1.oden/ext/imap/php_imap.c ---- php-5.3.4RC1/ext/imap/php_imap.c 2010-11-18 16:22:22.000000000 +0100 -+++ php-5.3.4RC1.oden/ext/imap/php_imap.c 2010-11-22 10:01:42.538863104 +0100 -@@ -164,6 +164,22 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_geta - ZEND_ARG_INFO(0, mailbox) - ZEND_END_ARG_INFO() - #endif -+#if defined(HAVE_IMAP2005) -+ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_setannotation, 0, 0, 5) -+ ZEND_ARG_INFO(0, stream_id) -+ ZEND_ARG_INFO(0, mailbox) -+ ZEND_ARG_INFO(0, entry) -+ ZEND_ARG_INFO(0, attr) -+ ZEND_ARG_INFO(0, value) -+ZEND_END_ARG_INFO() -+ -+ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_getannotation, 0, 0, 4) -+ ZEND_ARG_INFO(0, stream_id) -+ ZEND_ARG_INFO(0, mailbox) -+ ZEND_ARG_INFO(0, entry) -+ ZEND_ARG_INFO(0, attr) -+ZEND_END_ARG_INFO() -+#endif - - ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_expunge, 0, 0, 1) - ZEND_ARG_INFO(0, stream_id) -@@ -408,6 +424,11 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_stat - ZEND_ARG_INFO(0, options) - ZEND_END_ARG_INFO() - -+ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_status_current, 0, 0, 2) -+ ZEND_ARG_INFO(0, stream_id) -+ ZEND_ARG_INFO(0, options) -+ZEND_END_ARG_INFO() -+ - ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_bodystruct, 0, 0, 3) - ZEND_ARG_INFO(0, stream_id) - ZEND_ARG_INFO(0, msg_no) -@@ -507,6 +528,7 @@ const zend_function_entry imap_functions - PHP_FE(imap_binary, arginfo_imap_binary) - PHP_FE(imap_utf8, arginfo_imap_utf8) - PHP_FE(imap_status, arginfo_imap_status) -+ PHP_FE(imap_status_current, arginfo_imap_status_current) - PHP_FE(imap_mailboxmsginfo, arginfo_imap_mailboxmsginfo) - PHP_FE(imap_setflag_full, arginfo_imap_setflag_full) - PHP_FE(imap_clearflag_full, arginfo_imap_clearflag_full) -@@ -537,6 +559,10 @@ const zend_function_entry imap_functions - PHP_FE(imap_setacl, arginfo_imap_setacl) - PHP_FE(imap_getacl, arginfo_imap_getacl) - #endif -+#if defined(HAVE_IMAP2005) -+ PHP_FE(imap_setannotation, arginfo_imap_setannotation) -+ PHP_FE(imap_getannotation, arginfo_imap_getannotation) -+#endif - - PHP_FE(imap_mail, arginfo_imap_mail) - -@@ -798,6 +824,30 @@ void mail_getacl(MAILSTREAM *stream, cha - /* }}} */ - #endif - -+#if defined(HAVE_IMAP2005) -+/* {{{ mail_getannotation -+ * -+ * Mail GET_ANNOTATION callback -+ * Called via the mail_parameter function in c-client:src/c-client/mail.c -+ */ -+void mail_getannotation(MAILSTREAM *stream, ANNOTATION *alist) -+{ -+ ANNOTATION_VALUES *cur; -+ -+ TSRMLS_FETCH(); -+ -+ /* walk through the ANNOTATION_VALUES */ -+ -+ for(cur = alist->values; cur; cur = cur->next) { -+ if (cur->value) -+ add_assoc_stringl(IMAPG(imap_annotation_list), cur->attr, cur->value, strlen(cur->value), 1); -+ else -+ add_assoc_stringl(IMAPG(imap_annotation_list), cur->attr, "", 0, 1); -+ } -+} -+/* }}} */ -+#endif -+ - /* {{{ PHP_GINIT_FUNCTION - */ - static PHP_GINIT_FUNCTION(imap) -@@ -823,6 +873,7 @@ static PHP_GINIT_FUNCTION(imap) - #if defined(HAVE_IMAP2000) || defined(HAVE_IMAP2001) - imap_globals->quota_return = NIL; - imap_globals->imap_acl_list = NIL; -+ imap_globals->imap_annotation_list = NIL; - #endif - imap_globals->gets_stream = NIL; - } -@@ -1547,7 +1598,119 @@ PHP_FUNCTION(imap_getacl) - } - /* }}} */ - #endif /* HAVE_IMAP2000 || HAVE_IMAP2001 */ -+ -+#if defined(HAVE_IMAP2005) -+ -+/* {{{ proto bool imap_setannotation(resource stream_id, string mailbox, string entry, string attr, string value) -+ Sets an annotation for a given mailbox */ -+PHP_FUNCTION(imap_setannotation) -+{ -+ zval **streamind, **mailbox, **entry, **attr, **value; -+ pils *imap_le_struct; -+ long ret; -+ -+ // TODO: Use zend_parse_parameters here -+ if (ZEND_NUM_ARGS() != 5 || zend_get_parameters_ex(5, &streamind, &mailbox, &entry, &attr, &value) == FAILURE) { -+ ZEND_WRONG_PARAM_COUNT(); -+ } -+ -+ ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); -+ -+ convert_to_string_ex(mailbox); -+ convert_to_string_ex(entry); -+ convert_to_string_ex(attr); -+ convert_to_string_ex(value); -+ -+ // create annotation object -+ ANNOTATION *annotation = mail_newannotation(); -+ if (!annotation) -+ RETURN_FALSE; -+ annotation->values = mail_newannotationvalue(); -+ if (!annotation->values) { -+ mail_free_annotation(&annotation); -+ RETURN_FALSE; -+ } -+ -+ // fill in annotation values -+ annotation->mbox = Z_STRVAL_PP(mailbox); -+ annotation->entry = Z_STRVAL_PP(entry); -+ annotation->values->attr = Z_STRVAL_PP(attr); -+ annotation->values->value = Z_STRVAL_PP(value); -+ -+ ret = imap_setannotation(imap_le_struct->imap_stream, annotation); -+ -+ // make sure mail_free_annotation doesn't free our variables -+ annotation->mbox = NULL; -+ annotation->entry = NULL; -+ annotation->values->attr = NULL; -+ annotation->values->value = NULL; -+ mail_free_annotation(&annotation); -+ -+ RETURN_BOOL(ret); -+} -+/* }}} */ -+ -+/* {{{ proto array imap_getannotation(resource stream_id, string mailbox, string entry, string attr) -+ Gets the ACL for a given mailbox */ -+PHP_FUNCTION(imap_getannotation) -+{ -+ zval **streamind, **mailbox, **entry, **attr; -+ pils *imap_le_struct; -+ long ret; -+ -+ if(ZEND_NUM_ARGS() != 4 || zend_get_parameters_ex(4, &streamind, &mailbox, &entry, &attr) == FAILURE) { -+ ZEND_WRONG_PARAM_COUNT(); -+ } - -+ ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); -+ -+ convert_to_string_ex(mailbox); -+ convert_to_string_ex(entry); -+ convert_to_string_ex(attr); -+ -+ /* initializing the special array for the return values */ -+ if (array_init(return_value) == FAILURE) { -+ RETURN_FALSE; -+ } -+ -+ // fillup calling parameters -+ STRINGLIST *entries = mail_newstringlist(); -+ if (!entries) -+ RETURN_FALSE; -+ -+ STRINGLIST *cur = entries; -+ cur->text.data = (unsigned char *)cpystr(Z_STRVAL_PP(entry)); -+ cur->text.size = Z_STRLEN_PP(entry); -+ cur->next = NIL; -+ -+ STRINGLIST *attributes = mail_newstringlist(); -+ if (!attributes) -+ RETURN_FALSE; -+ cur = attributes; -+ cur->text.data = (unsigned char *)cpystr (Z_STRVAL_PP(attr)); -+ cur->text.size = Z_STRLEN_PP(attr); -+ cur->next = NIL; -+ -+ IMAPG(imap_annotation_list) = return_value; -+ -+ /* set the callback for the GET_ANNOTATION function */ -+ mail_parameters(NIL, SET_ANNOTATION, (void *) mail_getannotation); -+ ret = imap_getannotation(imap_le_struct->imap_stream, Z_STRVAL_PP(mailbox), entries, attributes); -+ -+ mail_free_stringlist(&entries); -+ mail_free_stringlist(&attributes); -+ -+ if (!ret) { -+ zval_dtor(return_value); -+ RETURN_FALSE; -+ } -+ -+ IMAPG(imap_annotation_list) = NIL; -+} -+/* }}} */ -+ -+#endif /* HAVE_IMAP2005 */ -+ - /* {{{ proto bool imap_expunge(resource stream_id) - Permanently delete all messages marked for deletion */ - PHP_FUNCTION(imap_expunge) -@@ -3190,6 +3353,42 @@ PHP_FUNCTION(imap_msgno) - } - /* }}} */ - -+/* {{{ proto object imap_status_current(resource stream_id, int options) -+ Get (cached) status info from current mailbox */ -+PHP_FUNCTION(imap_status_current) -+{ -+ zval **streamind, **pflags; -+ pils *imap_le_struct; -+ long flags = 0L; -+ -+ if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &streamind, &pflags) == FAILURE) { -+ ZEND_WRONG_PARAM_COUNT(); -+ } -+ -+ ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); -+ -+ convert_to_long_ex(pflags); -+ flags = Z_LVAL_PP(pflags); -+ -+ if (object_init(return_value) == FAILURE) { -+ RETURN_FALSE; -+ } -+ -+ if (flags & SA_MESSAGES) { -+ add_property_long(return_value, "messages", imap_le_struct->imap_stream->nmsgs); -+ } -+ if (flags & SA_RECENT) { -+ add_property_long(return_value, "recent", imap_le_struct->imap_stream->recent); -+ } -+ if (flags & SA_UIDNEXT) { -+ add_property_long(return_value, "uidnext", imap_le_struct->imap_stream->uid_last+1); -+ } -+ if (flags & SA_UIDVALIDITY) { -+ add_property_long(return_value, "uidvalidity", imap_le_struct->imap_stream->uid_validity); -+ } -+} -+/* }}} */ -+ - /* {{{ proto object imap_status(resource stream_id, string mailbox, int options) - Get status info from a mailbox */ - PHP_FUNCTION(imap_status) -diff -Naurp php-5.3.4RC1/ext/imap/php_imap.h php-5.3.4RC1.oden/ext/imap/php_imap.h ---- php-5.3.4RC1/ext/imap/php_imap.h 2010-01-03 10:23:27.000000000 +0100 -+++ php-5.3.4RC1.oden/ext/imap/php_imap.h 2010-11-22 10:01:42.542862889 +0100 -@@ -153,6 +153,7 @@ PHP_FUNCTION(imap_lsub); - PHP_FUNCTION(imap_lsub_full); - PHP_FUNCTION(imap_create); - PHP_FUNCTION(imap_rename); -+PHP_FUNCTION(imap_status_current); - PHP_FUNCTION(imap_status); - PHP_FUNCTION(imap_bodystruct); - PHP_FUNCTION(imap_fetch_overview); -@@ -173,6 +174,9 @@ PHP_FUNCTION(imap_mime_header_decode); - PHP_FUNCTION(imap_thread); - PHP_FUNCTION(imap_timeout); - -+// TODO: Needs fixing in configure in -+#define HAVE_IMAP2005 1 -+ - #if defined(HAVE_IMAP2000) || defined(HAVE_IMAP2001) - PHP_FUNCTION(imap_get_quota); - PHP_FUNCTION(imap_get_quotaroot); -@@ -180,7 +184,10 @@ PHP_FUNCTION(imap_set_quota); - PHP_FUNCTION(imap_setacl); - PHP_FUNCTION(imap_getacl); - #endif -- -+#if defined(HAVE_IMAP2005) -+PHP_FUNCTION(imap_setannotation); -+PHP_FUNCTION(imap_getannotation); -+#endif - - ZEND_BEGIN_MODULE_GLOBALS(imap) - char *imap_user; -@@ -211,6 +218,9 @@ ZEND_BEGIN_MODULE_GLOBALS(imap) - zval **quota_return; - zval *imap_acl_list; - #endif -+#if defined(HAVE_IMAP2005) -+ zval *imap_annotation_list; -+#endif - /* php_stream for php_mail_gets() */ - php_stream *gets_stream; - ZEND_END_MODULE_GLOBALS(imap) diff --git a/programming/php/php/files/php-imap-myrights.diff b/programming/php/php/files/php-imap-myrights.diff deleted file mode 100644 index 274a5f73da..0000000000 --- a/programming/php/php/files/php-imap-myrights.diff +++ /dev/null @@ -1,92 +0,0 @@ -diff -Naurp php-5.3.4RC1/ext/imap/php_imap.c php-5.3.4RC1.oden/ext/imap/php_imap.c ---- php-5.3.4RC1/ext/imap/php_imap.c 2010-11-22 10:39:59.349863220 +0100 -+++ php-5.3.4RC1.oden/ext/imap/php_imap.c 2010-11-22 10:40:14.709956619 +0100 -@@ -163,6 +163,11 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_geta - ZEND_ARG_INFO(0, stream_id) - ZEND_ARG_INFO(0, mailbox) - ZEND_END_ARG_INFO() -+ -+ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_myrights, 0, 0, 2) -+ ZEND_ARG_INFO(0, stream_id) -+ ZEND_ARG_INFO(0, mailbox) -+ZEND_END_ARG_INFO() - #endif - #if defined(HAVE_IMAP2005) - ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_setannotation, 0, 0, 5) -@@ -558,6 +563,7 @@ const zend_function_entry imap_functions - PHP_FE(imap_set_quota, arginfo_imap_set_quota) - PHP_FE(imap_setacl, arginfo_imap_setacl) - PHP_FE(imap_getacl, arginfo_imap_getacl) -+ PHP_FE(imap_myrights, arginfo_imap_myrights) - #endif - #if defined(HAVE_IMAP2005) - PHP_FE(imap_setannotation, arginfo_imap_setannotation) -@@ -822,6 +828,20 @@ void mail_getacl(MAILSTREAM *stream, cha - } - } - /* }}} */ -+ -+/* {{{ mail_myrights -+ * -+ * Mail MYRIGHTS callback -+ * Called via the mail_parameter function in c-client:src/c-client/mail.c -+ */ -+void mail_myrights(MAILSTREAM *stream, char *mailbox, char *rights) -+{ -+ TSRMLS_FETCH(); -+ -+ ZVAL_STRING(IMAPG(imap_acl_list), rights, 1); -+ -+} -+/* }}} */ - #endif - - #if defined(HAVE_IMAP2005) -@@ -1597,6 +1617,36 @@ PHP_FUNCTION(imap_getacl) - IMAPG(imap_acl_list) = NIL; - } - /* }}} */ -+ -+/* {{{ proto string imap_myrights(resource stream_id, string mailbox) -+ Gets my rights (ACL) for a given mailbox */ -+PHP_FUNCTION(imap_myrights) -+{ -+ zval **streamind, **mailbox; -+ pils *imap_le_struct; -+ -+ if(ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &streamind, &mailbox) == FAILURE) { -+ ZEND_WRONG_PARAM_COUNT(); -+ } -+ -+ ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); -+ -+ convert_to_string_ex(mailbox); -+ -+ IMAPG(imap_acl_list) = return_value; -+ -+ /* set the callback for the GET_ACL function */ -+ mail_parameters(NIL, SET_MYRIGHTS, (void *) mail_myrights); -+ if(!imap_myrights(imap_le_struct->imap_stream, Z_STRVAL_PP(mailbox))) { -+ php_error(E_WARNING, "c-client imap_myrights failed"); -+ zval_dtor(return_value); -+ RETURN_FALSE; -+ } -+ -+ IMAPG(imap_acl_list) = NIL; -+} -+/* }}} */ -+ - #endif /* HAVE_IMAP2000 || HAVE_IMAP2001 */ - - #if defined(HAVE_IMAP2005) -diff -Naurp php-5.3.4RC1/ext/imap/php_imap.h php-5.3.4RC1.oden/ext/imap/php_imap.h ---- php-5.3.4RC1/ext/imap/php_imap.h 2010-11-22 10:39:59.349863220 +0100 -+++ php-5.3.4RC1.oden/ext/imap/php_imap.h 2010-11-22 10:40:14.709956619 +0100 -@@ -183,6 +183,7 @@ PHP_FUNCTION(imap_get_quotaroot); - PHP_FUNCTION(imap_set_quota); - PHP_FUNCTION(imap_setacl); - PHP_FUNCTION(imap_getacl); -+PHP_FUNCTION(imap_myrights); - #endif - #if defined(HAVE_IMAP2005) - PHP_FUNCTION(imap_setannotation); diff --git a/programming/php/php/files/php5-imap-symlink.diff b/programming/php/php/files/php5-imap-symlink.diff deleted file mode 100644 index 475c037557..0000000000 --- a/programming/php/php/files/php5-imap-symlink.diff +++ /dev/null @@ -1,15 +0,0 @@ ---- ext/imap/config.m4 2006-01-23 23:55:13.000000000 +0200 -+++ ext.orig/imap/config.m4 2006-01-23 23:56:08.000000000 +0200 -@@ -146,12 +146,6 @@ - AC_MSG_ERROR(Cannot find rfc822.h. Please check your c-client installation.) - fi - -- if test -r "$IMAP_DIR/c-client/c-client.a"; then -- ln -s "$IMAP_DIR/c-client/c-client.a" "$IMAP_DIR/c-client/libc-client.a" >/dev/null 2>&1 -- elif test -r "$IMAP_DIR/$PHP_LIBDIR/c-client.a"; then -- ln -s "$IMAP_DIR/$PHP_LIBDIR/c-client.a" "$IMAP_DIR/$PHP_LIBDIR/libc-client.a" >/dev/null 2>&1 -- fi -- - for lib in c-client4 c-client imap; do - IMAP_LIB=$lib - IMAP_LIB_CHK($PHP_LIBDIR) diff --git a/programming/php/php/files/stack_buffer_overflow_in_imagepstext.patch b/programming/php/php/files/stack_buffer_overflow_in_imagepstext.patch deleted file mode 100644 index 338e5e6d3e..0000000000 --- a/programming/php/php/files/stack_buffer_overflow_in_imagepstext.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- php-5.2.14.orig/ext/gd/gd.c 2011-01-26 12:38:42.956023043 +0200 -+++ php-5.2.14/ext/gd/gd.c 2011-01-26 13:37:21.171023045 +0200 -@@ -4593,6 +4593,11 @@ - return; - } - -+ if (aa_steps != 4 && aa_steps != 16) { -+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Antialias steps must be 4 or 16"); -+ RETURN_FALSE; -+ } -+ - ZEND_FETCH_RESOURCE(bg_img, gdImagePtr, &img, -1, "Image", le_gd); - ZEND_FETCH_RESOURCE(f_ind, int *, &fnt, -1, "Type 1 font", le_ps_font); - diff --git a/programming/php/php/files/system-timezone.patch b/programming/php/php/files/system-timezone.patch deleted file mode 100644 index 42e470b5a1..0000000000 --- a/programming/php/php/files/system-timezone.patch +++ /dev/null @@ -1,265 +0,0 @@ -Index: ext/date/lib/parse_tz.c -=================================================================== -RCS file: /repository/php-src/ext/date/lib/parse_tz.c,v -retrieving revision 1.35 -diff -u -r1.35 parse_tz.c ---- ext/date/lib/parse_tz.c 31 Dec 2007 07:12:08 -0000 1.35 -+++ ext/date/lib/parse_tz.c 10 Jan 2008 11:42:15 -0000 -@@ -20,6 +20,16 @@ - - #include "timelib.h" - -+#ifdef HAVE_SYSTEM_TZDATA -+#include -+#include -+#include -+#include -+#include -+ -+#include "php_scandir.h" -+#endif -+ - #include - - #ifdef HAVE_STRING_H -@@ -27,7 +37,10 @@ - #else - #include - #endif -+ -+#ifndef HAVE_SYSTEM_TZDATA - #include "timezonedb.h" -+#endif - - #if (defined(__APPLE__) || defined(__APPLE_CC__)) && (defined(__BIG_ENDIAN__) || defined(__LITTLE_ENDIAN__)) - # if defined(__LITTLE_ENDIAN__) -@@ -202,6 +215,195 @@ - } - } - -+#ifdef HAVE_SYSTEM_TZDATA -+ -+#ifdef HAVE_SYSTEM_TZDATA_PREFIX -+#define ZONEINFO_PREFIX HAVE_SYSTEM_TZDATA_PREFIX -+#else -+#define ZONEINFO_PREFIX "/usr/share/zoneinfo" -+#endif -+ -+static const timelib_tzdb *timezonedb_system = NULL; -+ -+/* Filter out some non-tzdata files and the posix/right databases, if -+ * present. */ -+static int index_filter(const struct dirent *ent) -+{ -+ return strcmp(ent->d_name, ".") != 0 -+ && strcmp(ent->d_name, "..") != 0 -+ && strcmp(ent->d_name, "posix") != 0 -+ && strcmp(ent->d_name, "posixrules") != 0 -+ && strcmp(ent->d_name, "right") != 0 -+ && strstr(ent->d_name, ".tab") == NULL; -+} -+ -+/* Create the zone identifier index by trawling the filesystem. */ -+static void create_zone_index(timelib_tzdb *db) -+{ -+ size_t dirstack_size, dirstack_top; -+ size_t index_size, index_next; -+ timelib_tzdb_index_entry *db_index; -+ char **dirstack; -+ -+ /* LIFO stack to hold directory entres to scan; each slot is a -+ * directory name relative to the zoneinfo prefix. */ -+ dirstack_size = 32; -+ dirstack = malloc(dirstack_size * sizeof *dirstack); -+ dirstack_top = 1; -+ dirstack[0] = strdup(""); -+ -+ /* Index array. */ -+ index_size = 64; -+ db_index = malloc(index_size * sizeof *db_index); -+ index_next = 0; -+ -+ do { -+ struct dirent **ents; -+ char name[PATH_MAX], *top; -+ int count; -+ -+ /* Pop the top stack entry, and iterate through its contents. */ -+ top = dirstack[--dirstack_top]; -+ snprintf(name, sizeof name, ZONEINFO_PREFIX "/%s", top); -+ -+ count = php_scandir(name, &ents, index_filter, php_alphasort); -+ -+ while (count > 0) { -+ struct stat st; -+ const char *leaf = ents[count - 1]->d_name; -+ -+ snprintf(name, sizeof name, ZONEINFO_PREFIX "/%s/%s", -+ top, leaf); -+ -+ if (strlen(name) && stat(name, &st) == 0) { -+ /* Name, relative to the zoneinfo prefix. */ -+ const char *root = top; -+ -+ if (root[0] == '/') root++; -+ -+ snprintf(name, sizeof name, "%s%s%s", root, -+ *root ? "/": "", leaf); -+ -+ if (S_ISDIR(st.st_mode)) { -+ if (dirstack_top == dirstack_size) { -+ dirstack_size *= 2; -+ dirstack = realloc(dirstack, -+ dirstack_size * sizeof *dirstack); -+ } -+ dirstack[dirstack_top++] = strdup(name); -+ } -+ else { -+ if (index_next == index_size) { -+ index_size *= 2; -+ db_index = realloc(db_index, -+ index_size * sizeof *db_index); -+ } -+ -+ db_index[index_next].id = strdup(name); -+ db_index[index_next++].pos = 0; -+ } -+ } -+ -+ free(ents[--count]); -+ } -+ -+ free(ents); -+ free(top); -+ } while (dirstack_top); -+ -+ db->index = db_index; -+ db->index_size = index_next; -+ -+ free(dirstack); -+} -+ -+/* Return the mmap()ed tzfile if found, else NULL. On success, the -+ * length of the mapped data is placed in *length. */ -+static char *map_tzfile(const char *timezone, size_t *length) -+{ -+ char fname[PATH_MAX]; -+ struct stat st; -+ char *p; -+ int fd; -+ -+ if (strstr(timezone, "..") != NULL) { -+ return NULL; -+ } -+ -+ snprintf(fname, sizeof fname, ZONEINFO_PREFIX "/%s", timezone); -+ -+ fd = open(fname, O_RDONLY); -+ if (fd == -1) { -+ return NULL; -+ } else if (fstat(fd, &st) != 0 || st.st_size < 21) { -+ close(fd); -+ return NULL; -+ } -+ -+ *length = st.st_size; -+ p = mmap(NULL, st.st_size, PROT_READ, MAP_SHARED, fd, 0); -+ close(fd); -+ -+ return p != MAP_FAILED ? p : NULL; -+} -+ -+const timelib_tzdb *timelib_builtin_db(void) -+{ -+ if (timezonedb_system == NULL) { -+ timelib_tzdb *tmp = malloc(sizeof *tmp); -+ -+ tmp->version = "0.system"; -+ tmp->data = NULL; -+ create_zone_index(tmp); -+ timezonedb_system = tmp; -+ } -+ -+ return timezonedb_system; -+} -+ -+const timelib_tzdb_index_entry *timelib_timezone_builtin_identifiers_list(int *count) -+{ -+ *count = timezonedb_system->index_size; -+ return timezonedb_system->index; -+} -+ -+int timelib_timezone_id_is_valid(char *timezone, const timelib_tzdb *tzdb) -+{ -+ char fname[PATH_MAX]; -+ -+ if (strstr(timezone, "..") != NULL) { -+ return 0; -+ } -+ -+ snprintf(fname, sizeof fname, ZONEINFO_PREFIX "/%s", timezone); -+ -+ return access(fname, R_OK) == 0 ? 1 : 0; -+} -+ -+timelib_tzinfo *timelib_parse_tzfile(char *timezone, const timelib_tzdb *tzdb) -+{ -+ char *tzf, *orig; -+ timelib_tzinfo *tmp; -+ size_t len; -+ -+ orig = map_tzfile(timezone, &len); -+ if (orig == NULL) { -+ return NULL; -+ } -+ -+ tmp = timelib_tzinfo_ctor(timezone); -+ -+ tzf = orig + 20; -+ read_header(&tzf, tmp); -+ read_transistions(&tzf, tmp); -+ read_types(&tzf, tmp); -+ -+ munmap(orig, len); -+ -+ return tmp; -+} -+#else /* !HAVE_SYSTEM_TZDATA */ -+ - static int seek_to_tz_position(const unsigned char **tzf, char *timezone, const timelib_tzdb *tzdb) - { - int left = 0, right = tzdb->index_size - 1; -@@ -258,6 +460,7 @@ - - return tmp; - } -+#endif - - static ttinfo* fetch_timezone_offset(timelib_tzinfo *tz, timelib_sll ts, timelib_sll *transition_time) - { -Index: ext/date/lib/timelib.m4 -=================================================================== -RCS file: /repository/php-src/ext/date/lib/timelib.m4,v -retrieving revision 1.4 -diff -u -r1.4 timelib.m4 ---- ext/date/lib/timelib.m4 3 Jul 2005 23:30:52 -0000 1.4 -+++ ext/date/lib/timelib.m4 10 Jan 2008 11:42:16 -0000 -@@ -78,3 +78,17 @@ - - dnl Check for strtoll, atoll - AC_CHECK_FUNCS(strtoll atoll strftime) -+ -+PHP_ARG_WITH(system-tzdata, for use of system timezone data, -+[ --with-system-tzdata[=DIR] to specify use of system timezone data], -+no, no) -+ -+if test "$PHP_SYSTEM_TZDATA" != "no"; then -+ AC_DEFINE(HAVE_SYSTEM_TZDATA, 1, [Define if system timezone data is used]) -+ -+ if test "$PHP_SYSTEM_TZDATA" != "yes"; then -+ AC_DEFINE_UNQUOTED(HAVE_SYSTEM_TZDATA_PREFIX, "$PHP_SYSTEM_TZDATA", -+ [Define for location of system timezone data]) -+ fi -+fi -+ - diff --git a/programming/php/php/pspec.xml b/programming/php/php/pspec.xml index 59ab5da88f..30ab77400a 100644 --- a/programming/php/php/pspec.xml +++ b/programming/php/php/pspec.xml @@ -12,7 +12,7 @@ library PHP7 is an HTML-embedded scripting language. The goal of the language is to allow web developers to write dynamically generated pages quickly PHP7 is an HTML-embedded scripting language. Much of its syntax is borrowed from C, Java and Perl with a couple of unique PHP-specific features thrown in. The goal of the language is to allow web developers to write dynamically generated pages quickly. - http://us2.php.net/distributions/php-7.2.9.tar.bz2 + https://www.php.net/distributions/php-7.3.8.tar.bz2 gd-devel re2c @@ -217,6 +217,13 @@ + + 2019-08-01 + 7.3.8 + Version bump + İdris Kalp + idriskalp@gmail.com + 2018-11-26 7.2.9