On 6/16/21 1:14 PM, Graham Inggs wrote: > Control: tags -1 + moreinfo > > Hi Thomas > > On Mon, 14 Jun 2021 at 21:12, Thomas Goirand <z...@debian.org> wrote: >> [x] attach debdiff against the package in testing > > You've attached a debdiff against uwsgi/2.0.19.1-7 in unstable, which > is currently blocked [1]. > I think it will be best if 2.0.19.1-7 migrates to testing before you > go ahead and upload. > > Someone needs to file an unblock request justifying the changes > between 2.0.19.1-6 and 2.0.19.1-7, hence including Jonas in this > discussion. > > Regards > Graham > > > [1] https://qa.debian.org/excuses.php?package=uwsgi >
Hi Graham, As you may see in https://bugs.debian.org/989191 the release -7 just adds a patch to avoid FTBFS in Focal, which Jonas uploaded by mistake to Sid thinking Sid was affected. I'm hereby attaching the output of: git diff -u -r debian/2.0.19.1-6 -r debian/2.0.19.1-7 (which hopefully matches the debdiff) Maybe you could unblock debian/2.0.19.1-7 considering this is a target patch? Otherwise, Jonas may agree to revert the patch? Cheers, Thomas Goirand (zigo)
diff --git a/debian/changelog b/debian/changelog index 7b1449f8..70389417 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,12 @@ +uwsgi (2.0.19.1-7) unstable; urgency=medium + + * add patch cherry-picked upstream + to remove PHP TSRMLS_* macros; + unfuzz another upstream cherry-picked patch; + see bug#989191, thanks to Bryce Harrington + + -- Jonas Smedegaard <d...@jones.dk> Fri, 28 May 2021 07:56:03 +0200 + uwsgi (2.0.19.1-6) unstable; urgency=medium * fix permissions of runtime dir in uwsgi-emperor; diff --git a/debian/patches/020210221~0f2ef52.patch b/debian/patches/020210221~0f2ef52.patch new file mode 100644 index 00000000..379d9795 --- /dev/null +++ b/debian/patches/020210221~0f2ef52.patch @@ -0,0 +1,252 @@ +escription: plugins/php: remove TSRMLS_* macros + They are gone in PHP 8 and were inert since PHP 7. +Origin: upstream, https://github.com/unbit/uwsgi/commit/0f2ef52 +Author: Riccardo Magliocchetti <riccardo.magliocche...@gmail.com> +Forwarded: yes +Last-Update: 2021-05-28 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- a/plugins/php/php_plugin.c ++++ b/plugins/php/php_plugin.c +@@ -74,7 +74,7 @@ + + + #ifdef UWSGI_PHP7 +-static size_t sapi_uwsgi_ub_write(const char *str, size_t str_length TSRMLS_DC) ++static size_t sapi_uwsgi_ub_write(const char *str, size_t str_length) + #else + static int sapi_uwsgi_ub_write(const char *str, uint str_length TSRMLS_DC) + #endif +@@ -89,7 +89,7 @@ + return str_length; + } + +-static int sapi_uwsgi_send_headers(sapi_headers_struct *sapi_headers TSRMLS_DC) ++static int sapi_uwsgi_send_headers(sapi_headers_struct *sapi_headers) + { + sapi_header_struct *h; + zend_llist_position pos; +@@ -124,7 +124,7 @@ + } + + #ifdef UWSGI_PHP7 +-static size_t sapi_uwsgi_read_post(char *buffer, size_t count_bytes TSRMLS_DC) ++static size_t sapi_uwsgi_read_post(char *buffer, size_t count_bytes) + #else + static int sapi_uwsgi_read_post(char *buffer, uint count_bytes TSRMLS_DC) + #endif +@@ -151,7 +151,7 @@ + } + + +-static char *sapi_uwsgi_read_cookies(TSRMLS_D) ++static char *sapi_uwsgi_read_cookies() + { + uint16_t len = 0; + struct wsgi_request *wsgi_req = (struct wsgi_request *) SG(server_context); +@@ -164,55 +164,55 @@ + return NULL; + } + +-static void sapi_uwsgi_register_variables(zval *track_vars_array TSRMLS_DC) ++static void sapi_uwsgi_register_variables(zval *track_vars_array) + { + int i; + struct wsgi_request *wsgi_req = (struct wsgi_request *) SG(server_context); +- php_import_environment_variables(track_vars_array TSRMLS_CC); ++ php_import_environment_variables(track_vars_array); + + if (uphp.server_software) { + if (!uphp.server_software_len) uphp.server_software_len = strlen(uphp.server_software); +- php_register_variable_safe("SERVER_SOFTWARE", uphp.server_software, uphp.server_software_len, track_vars_array TSRMLS_CC); ++ php_register_variable_safe("SERVER_SOFTWARE", uphp.server_software, uphp.server_software_len, track_vars_array); + } + else { +- php_register_variable_safe("SERVER_SOFTWARE", "uWSGI", 5, track_vars_array TSRMLS_CC); ++ php_register_variable_safe("SERVER_SOFTWARE", "uWSGI", 5, track_vars_array); + } + + for (i = 0; i < wsgi_req->var_cnt; i += 2) { + php_register_variable_safe( estrndup(wsgi_req->hvec[i].iov_base, wsgi_req->hvec[i].iov_len), + wsgi_req->hvec[i + 1].iov_base, wsgi_req->hvec[i + 1].iov_len, +- track_vars_array TSRMLS_CC); ++ track_vars_array); + } + +- php_register_variable_safe("PATH_INFO", wsgi_req->path_info, wsgi_req->path_info_len, track_vars_array TSRMLS_CC); ++ php_register_variable_safe("PATH_INFO", wsgi_req->path_info, wsgi_req->path_info_len, track_vars_array); + if (wsgi_req->query_string_len > 0) { +- php_register_variable_safe("QUERY_STRING", wsgi_req->query_string, wsgi_req->query_string_len, track_vars_array TSRMLS_CC); ++ php_register_variable_safe("QUERY_STRING", wsgi_req->query_string, wsgi_req->query_string_len, track_vars_array); + } + +- php_register_variable_safe("SCRIPT_NAME", wsgi_req->script_name, wsgi_req->script_name_len, track_vars_array TSRMLS_CC); +- php_register_variable_safe("SCRIPT_FILENAME", wsgi_req->file, wsgi_req->file_len, track_vars_array TSRMLS_CC); ++ php_register_variable_safe("SCRIPT_NAME", wsgi_req->script_name, wsgi_req->script_name_len, track_vars_array); ++ php_register_variable_safe("SCRIPT_FILENAME", wsgi_req->file, wsgi_req->file_len, track_vars_array); + +- php_register_variable_safe("DOCUMENT_ROOT", wsgi_req->document_root, wsgi_req->document_root_len, track_vars_array TSRMLS_CC); ++ php_register_variable_safe("DOCUMENT_ROOT", wsgi_req->document_root, wsgi_req->document_root_len, track_vars_array); + + if (wsgi_req->path_info_len) { + char *path_translated = ecalloc(1, wsgi_req->file_len + wsgi_req->path_info_len + 1); + + memcpy(path_translated, wsgi_req->file, wsgi_req->file_len); + memcpy(path_translated + wsgi_req->file_len, wsgi_req->path_info, wsgi_req->path_info_len); +- php_register_variable_safe("PATH_TRANSLATED", path_translated, wsgi_req->file_len + wsgi_req->path_info_len , track_vars_array TSRMLS_CC); ++ php_register_variable_safe("PATH_TRANSLATED", path_translated, wsgi_req->file_len + wsgi_req->path_info_len , track_vars_array); + } + else { +- php_register_variable_safe("PATH_TRANSLATED", "", 0, track_vars_array TSRMLS_CC); ++ php_register_variable_safe("PATH_TRANSLATED", "", 0, track_vars_array); + } + +- php_register_variable_safe("PHP_SELF", wsgi_req->script_name, wsgi_req->script_name_len, track_vars_array TSRMLS_CC); ++ php_register_variable_safe("PHP_SELF", wsgi_req->script_name, wsgi_req->script_name_len, track_vars_array); + + struct uwsgi_string_list *usl = uphp.vars; + while(usl) { + char *equal = strchr(usl->value, '='); + if (equal) { + php_register_variable_safe( estrndup(usl->value, equal-usl->value), +- equal+1, strlen(equal+1), track_vars_array TSRMLS_CC); ++ equal+1, strlen(equal+1), track_vars_array); + } + usl = usl->next; + } +@@ -256,7 +256,7 @@ + #ifndef UWSGI_PHP7 + name_len = name_len + 1; + #endif +- zend_register_string_constant(name, name_len, strval, CONST_CS | CONST_PERSISTENT, module_number TSRMLS_CC); ++ zend_register_string_constant(name, name_len, strval, CONST_CS | CONST_PERSISTENT, module_number); + } + usl = usl->next; + } +@@ -289,7 +289,7 @@ + char *cache = NULL; + int cachelen = 0; + +- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|s", &key, &keylen, &cache, &cachelen) == FAILURE) { ++ if (zend_parse_parameters(ZEND_NUM_ARGS(), "s|s", &key, &keylen, &cache, &cachelen) == FAILURE) { + RETURN_NULL(); + } + +@@ -305,7 +305,7 @@ + char *cache = NULL; + int cachelen = 0; + +- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &cache, &cachelen) == FAILURE) { ++ if (zend_parse_parameters(ZEND_NUM_ARGS(), "|s", &cache, &cachelen) == FAILURE) { + RETURN_NULL(); + } + +@@ -324,7 +324,7 @@ + char *cache = NULL; + int cachelen = 0; + +- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|s", &key, &keylen, &cache, &cachelen) == FAILURE) { ++ if (zend_parse_parameters(ZEND_NUM_ARGS(), "s|s", &key, &keylen, &cache, &cachelen) == FAILURE) { + RETURN_NULL(); + } + +@@ -346,7 +346,7 @@ + if (!uwsgi.caches) + RETURN_NULL(); + +- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|s", &key, &keylen, &cache, &cachelen) == FAILURE) { ++ if (zend_parse_parameters(ZEND_NUM_ARGS(), "s|s", &key, &keylen, &cache, &cachelen) == FAILURE) { + RETURN_NULL(); + } + +@@ -375,7 +375,7 @@ + if (!uwsgi.caches) + RETURN_NULL(); + +- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss|ls", &key, &keylen, &value, &vallen, &expires, &cache, &cachelen) == FAILURE) { ++ if (zend_parse_parameters(ZEND_NUM_ARGS(), "ss|ls", &key, &keylen, &value, &vallen, &expires, &cache, &cachelen) == FAILURE) { + RETURN_NULL(); + } + +@@ -398,7 +398,7 @@ + if (!uwsgi.caches) + RETURN_NULL(); + +- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss|ls", &key, &keylen, &value, &vallen, &expires, &cache, &cachelen) == FAILURE) { ++ if (zend_parse_parameters(ZEND_NUM_ARGS(), "ss|ls", &key, &keylen, &value, &vallen, &expires, &cache, &cachelen) == FAILURE) { + RETURN_NULL(); + } + +@@ -423,7 +423,7 @@ + uint16_t argvs[256]; + uint64_t size = 0; + +- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "+", &varargs, &num_args) == FAILURE) { ++ if (zend_parse_parameters(ZEND_NUM_ARGS(), "+", &varargs, &num_args) == FAILURE) { + RETURN_NULL(); + } + +@@ -481,7 +481,7 @@ + char *name; + int name_len; + +- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &name, &name_len) == FAILURE) { ++ if (zend_parse_parameters(ZEND_NUM_ARGS(), "s", &name, &name_len) == FAILURE) { + RETURN_NULL(); + } + +@@ -495,7 +495,7 @@ + long long_signum; + uint8_t signum = 0; + +- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &long_signum) == FAILURE) { ++ if (zend_parse_parameters(ZEND_NUM_ARGS(), "l", &long_signum) == FAILURE) { + RETURN_NULL(); + } + +@@ -632,7 +632,7 @@ + #if ((PHP_MAJOR_VERSION >= 7) && (PHP_MINOR_VERSION >= 1)) + static void sapi_uwsgi_log_message(char *message, int syslog_type_int) { + #else +-static void sapi_uwsgi_log_message(char *message TSRMLS_DC) { ++static void sapi_uwsgi_log_message(char *message) { + #endif + uwsgi_log("%s\n", message); + } +@@ -788,10 +788,6 @@ + + zend_file_handle file_handle; + +-#ifdef ZTS +- TSRMLS_FETCH(); +-#endif +- + SG(server_context) = (void *) wsgi_req; + + if (uwsgi_parse_vars(wsgi_req)) { +@@ -1065,7 +1061,7 @@ + file_handle.type = ZEND_HANDLE_FILENAME; + file_handle.filename = real_filename; + +- if (php_request_startup(TSRMLS_C) == FAILURE) { ++ if (php_request_startup() == FAILURE) { + uwsgi_500(wsgi_req); + return -1; + } +@@ -1073,13 +1069,13 @@ + struct uwsgi_string_list *usl=NULL; + + uwsgi_foreach(usl, uphp.exec_before) { +- if (zend_eval_string_ex(usl->value, NULL, "uWSGI php exec before", 1 TSRMLS_CC) == FAILURE) goto end; ++ if (zend_eval_string_ex(usl->value, NULL, "uWSGI php exec before", 1) == FAILURE) goto end; + } + +- php_execute_script(&file_handle TSRMLS_CC); ++ php_execute_script(&file_handle); + + uwsgi_foreach(usl, uphp.exec_after) { +- if (zend_eval_string_ex(usl->value, NULL, "uWSGI php exec after", 1 TSRMLS_CC) == FAILURE) goto end; ++ if (zend_eval_string_ex(usl->value, NULL, "uWSGI php exec after", 1) == FAILURE) goto end; + } + + end: diff --git a/debian/patches/0next20191214~f8b4c28.patch b/debian/patches/0next20191214~f8b4c28.patch index 2628ccf6..c4053c86 100644 --- a/debian/patches/0next20191214~f8b4c28.patch +++ b/debian/patches/0next20191214~f8b4c28.patch @@ -69,7 +69,7 @@ This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ - int cachelen = 0; + php_strlen_size cachelen = 0; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|s", &key, &keylen, &cache, &cachelen) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS(), "s|s", &key, &keylen, &cache, &cachelen) == FAILURE) { RETURN_NULL(); @@ -303,7 +311,7 @@ PHP_FUNCTION(uwsgi_cache_clear) { @@ -78,7 +78,7 @@ This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ - int cachelen = 0; + php_strlen_size cachelen = 0; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &cache, &cachelen) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS(), "|s", &cache, &cachelen) == FAILURE) { RETURN_NULL(); @@ -318,11 +326,11 @@ @@ -93,7 +93,7 @@ This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ - int cachelen = 0; + php_strlen_size cachelen = 0; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|s", &key, &keylen, &cache, &cachelen) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS(), "s|s", &key, &keylen, &cache, &cachelen) == FAILURE) { RETURN_NULL(); @@ -338,9 +346,9 @@ PHP_FUNCTION(uwsgi_cache_get) { diff --git a/debian/patches/series b/debian/patches/series index 9dbdf98b..b8c2938a 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -4,6 +4,7 @@ 020200709~1888a1d.patch 020200825~583592a.patch 020201007~6a4e7e6.patch +020210221~0f2ef52.patch 0next20170920~7cf140a.patch 0next20191214~f8b4c28.patch 0next20201122~6d86c03.patch