From e29c950421e60be79ecbcd11cc00afe0a48eb67f Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Wed, 30 Sep 2020 16:50:15 +0200 Subject: add patch for PHP 8 from https://github.com/php/pecl-text-xdiff/pull/5 --- 5.patch | 576 ++++++++++++++++++++++++++++++++++++++++++++++++++++ php-pecl-xdiff.spec | 39 ++-- 2 files changed, 597 insertions(+), 18 deletions(-) create mode 100644 5.patch diff --git a/5.patch b/5.patch new file mode 100644 index 0000000..c7c84ea --- /dev/null +++ b/5.patch @@ -0,0 +1,576 @@ +From b9aec331034f90998e31c60166b5caf758896584 Mon Sep 17 00:00:00 2001 +From: Remi Collet +Date: Wed, 30 Sep 2020 16:45:14 +0200 +Subject: [PATCH] fix compatibility with PHP 8.0.0RC1 - add arginfo to all + functions - clean TSRMLS-* macros usage + +--- + xdiff.c | 239 ++++++++++++++++++++++++++++++++++++-------------------- + 1 file changed, 153 insertions(+), 86 deletions(-) + +diff --git a/xdiff.c b/xdiff.c +index 0756c5a..357db09 100644 +--- a/xdiff.c ++++ b/xdiff.c +@@ -37,32 +37,101 @@ struct string_buffer { + unsigned long size; + }; + +- ZEND_BEGIN_ARG_INFO(xdiff_arg_force_ref, 0) +- ZEND_ARG_PASS_INFO(0) +- ZEND_ARG_PASS_INFO(0) +- ZEND_ARG_PASS_INFO(0) +- ZEND_ARG_PASS_INFO(1) +- ZEND_END_ARG_INFO() +- +-static int load_mm_file(const char *filepath, mmfile_t *dest TSRMLS_DC); ++ZEND_BEGIN_ARG_INFO_EX(arginfo_xdiff_string_diff, 0, 0, 2) ++ ZEND_ARG_INFO(0, str1) ++ ZEND_ARG_INFO(0, str2) ++ ZEND_ARG_INFO(0, context) ++ ZEND_ARG_INFO(0, minimal) ++ZEND_END_ARG_INFO() ++ ++ZEND_BEGIN_ARG_INFO_EX(arginfo_xdiff_file_diff, 0, 0, 3) ++ ZEND_ARG_INFO(0, file1) ++ ZEND_ARG_INFO(0, file2) ++ ZEND_ARG_INFO(0, dest) ++ ZEND_ARG_INFO(0, context) ++ ZEND_ARG_INFO(0, minimal) ++ZEND_END_ARG_INFO() ++ ++ZEND_BEGIN_ARG_INFO_EX(arginfo_xdiff_string_bdiff, 0, 0, 2) ++ ZEND_ARG_INFO(0, str1) ++ ZEND_ARG_INFO(0, str2) ++ZEND_END_ARG_INFO() ++ ++#define arginfo_xdiff_string_rabdiff arginfo_xdiff_string_bdiff ++ ++ZEND_BEGIN_ARG_INFO_EX(arginfo_xdiff_file_bdiff, 0, 0, 3) ++ ZEND_ARG_INFO(0, file1) ++ ZEND_ARG_INFO(0, file2) ++ ZEND_ARG_INFO(0, dest) ++ZEND_END_ARG_INFO() ++ ++#define arginfo_xdiff_file_rabdiff arginfo_xdiff_file_bdiff ++ ++ZEND_BEGIN_ARG_INFO_EX(arginfo_xdiff_file_bdiff_size, 0, 0, 1) ++ ZEND_ARG_INFO(0, filepath) ++ZEND_END_ARG_INFO() ++ ++ZEND_BEGIN_ARG_INFO_EX(arginfo_xdiff_string_bdiff_size, 0, 0, 1) ++ ZEND_ARG_INFO(0, patch) ++ZEND_END_ARG_INFO() ++ ++ZEND_BEGIN_ARG_INFO_EX(arginfo_xdiff_file_patch, 0, 0, 3) ++ ZEND_ARG_INFO(0, file) ++ ZEND_ARG_INFO(0, patch) ++ ZEND_ARG_INFO(0, dest) ++ ZEND_ARG_INFO(0, flags) ++ZEND_END_ARG_INFO() ++ ++ZEND_BEGIN_ARG_INFO_EX(arginfo_xdiff_string_patch, 0, 0, 2) ++ ZEND_ARG_INFO(0, src) ++ ZEND_ARG_INFO(0, patch) ++ ZEND_ARG_INFO(0, flags) ++ ZEND_ARG_INFO(1, error) ++ZEND_END_ARG_INFO() ++ ++ZEND_BEGIN_ARG_INFO_EX(arginfo_xdiff_file_bpatch, 0, 0, 3) ++ ZEND_ARG_INFO(0, file) ++ ZEND_ARG_INFO(0, patch) ++ ZEND_ARG_INFO(0, dest) ++ZEND_END_ARG_INFO() ++ ++ZEND_BEGIN_ARG_INFO_EX(arginfo_xdiff_string_bpatch, 0, 0, 2) ++ ZEND_ARG_INFO(0, src) ++ ZEND_ARG_INFO(0, patch) ++ZEND_END_ARG_INFO() ++ ++ZEND_BEGIN_ARG_INFO_EX(arginfo_diff_file_merge3, 0, 0, 4) ++ ZEND_ARG_INFO(0, file1) ++ ZEND_ARG_INFO(0, file2) ++ ZEND_ARG_INFO(0, file3) ++ ZEND_ARG_INFO(0, dest) ++ZEND_END_ARG_INFO() ++ ++ZEND_BEGIN_ARG_INFO_EX(arginfo_xdiff_string_merge3, 0, 0, 3) ++ ZEND_ARG_INFO(0, str1) ++ ZEND_ARG_INFO(0, str2) ++ ZEND_ARG_INFO(0, str3) ++ ZEND_ARG_INFO(1, error) ++ZEND_END_ARG_INFO() ++ ++static int load_mm_file(const char *filepath, mmfile_t *dest); + static int load_into_mm_file(const char *buffer, unsigned long size, mmfile_t *dest); + static int append_string(void *ptr, mmbuffer_t *buffer, int array_size); + static int append_stream(void *ptr, mmbuffer_t *buffer, int array_size); + static int init_string(struct string_buffer *string); + static void free_string(struct string_buffer *string); +-static void invalidate_string(struct string_buffer *string); + +-static int make_diff(char *filepath1, char *filepath2, xdemitcb_t *output, int context, int minimal TSRMLS_DC); ++static int make_diff(char *filepath1, char *filepath2, xdemitcb_t *output, int context, int minimal); + static int make_diff_str(char *str1, int size1, char *str2, int size2, xdemitcb_t *output, int context, int minimal); +-static int make_bdiff(char *filepath1, char *filepath2, xdemitcb_t *output TSRMLS_DC); ++static int make_bdiff(char *filepath1, char *filepath2, xdemitcb_t *output); + static int make_bdiff_str(char *str1, int size1, char *str2, int size2, xdemitcb_t *output); +-static int make_patch(char *file_path, char *patch_path, xdemitcb_t *output, xdemitcb_t *error, int flags TSRMLS_DC); ++static int make_patch(char *file_path, char *patch_path, xdemitcb_t *output, xdemitcb_t *error, int flags); + static int make_patch_str(char *file, int size1, char *patch, int size2, xdemitcb_t *output, xdemitcb_t *error, int flags); +-static int make_bpatch(char *file_path, char *patch_path, xdemitcb_t *output TSRMLS_DC); ++static int make_bpatch(char *file_path, char *patch_path, xdemitcb_t *output); + static int make_bpatch_str(char *file, int size1, char *patch, int size2, xdemitcb_t *output); +-static int make_merge3(char *filepath1, char *filepath2, char *filepath3, xdemitcb_t *output, xdemitcb_t *error TSRMLS_DC); ++static int make_merge3(char *filepath1, char *filepath2, char *filepath3, xdemitcb_t *output, xdemitcb_t *error); + static int make_merge3_str(char *content1, int size1, char *content2, int size2, char *content3, int size3, xdemitcb_t *output, xdemitcb_t *error); +-static int make_rabdiff(char *filepath1, char *filepath2, xdemitcb_t *output TSRMLS_DC); ++static int make_rabdiff(char *filepath1, char *filepath2, xdemitcb_t *output); + static int make_rabdiff_str(char *str1, int size1, char *str2, int size2, xdemitcb_t *output); + + static void *xdiff_malloc(void *foo, unsigned int size) +@@ -89,25 +158,29 @@ static memallocator_t allocator = { NULL, xdiff_malloc, xdiff_free, xdiff_reallo + * Every user visible function must have an entry in xdiff_functions[]. + */ + zend_function_entry xdiff_functions[] = { +- PHP_FE(xdiff_file_diff, NULL) +- PHP_FE(xdiff_file_bdiff, NULL) +- PHP_FE(xdiff_file_patch, NULL) +- PHP_FE(xdiff_file_bpatch, NULL) +- PHP_FE(xdiff_file_merge3, NULL) +- PHP_FE(xdiff_file_rabdiff, NULL) +- PHP_FE(xdiff_file_bdiff_size, NULL) +- PHP_FE(xdiff_string_diff, NULL) +- PHP_FE(xdiff_string_bdiff, NULL) +- PHP_FE(xdiff_string_patch, xdiff_arg_force_ref) +- PHP_FE(xdiff_string_bpatch, NULL) +- PHP_FE(xdiff_string_merge3, xdiff_arg_force_ref) +- PHP_FE(xdiff_string_rabdiff, NULL) +- PHP_FE(xdiff_string_bdiff_size, NULL) +- PHP_FALIAS(xdiff_file_diff_binary, xdiff_file_bdiff, NULL) +- PHP_FALIAS(xdiff_file_patch_binary, xdiff_file_bpatch, NULL) +- PHP_FALIAS(xdiff_string_diff_binary, xdiff_string_bdiff, NULL) +- PHP_FALIAS(xdiff_string_patch_binary, xdiff_string_bpatch, NULL) ++ PHP_FE(xdiff_file_diff, arginfo_xdiff_file_diff) ++ PHP_FE(xdiff_file_bdiff, arginfo_xdiff_file_bdiff) ++ PHP_FE(xdiff_file_patch, arginfo_xdiff_file_patch) ++ PHP_FE(xdiff_file_bpatch, arginfo_xdiff_file_bpatch) ++ PHP_FE(xdiff_file_merge3, arginfo_diff_file_merge3) ++ PHP_FE(xdiff_file_rabdiff, arginfo_xdiff_file_rabdiff) ++ PHP_FE(xdiff_file_bdiff_size, arginfo_xdiff_file_bdiff_size) ++ PHP_FE(xdiff_string_diff, arginfo_xdiff_string_diff) ++ PHP_FE(xdiff_string_bdiff, arginfo_xdiff_string_bdiff) ++ PHP_FE(xdiff_string_patch, arginfo_xdiff_string_patch) ++ PHP_FE(xdiff_string_bpatch, arginfo_xdiff_string_bpatch) ++ PHP_FE(xdiff_string_merge3, arginfo_xdiff_string_merge3) ++ PHP_FE(xdiff_string_rabdiff, arginfo_xdiff_string_rabdiff) ++ PHP_FE(xdiff_string_bdiff_size, arginfo_xdiff_string_bdiff_size) ++ PHP_FALIAS(xdiff_file_diff_binary, xdiff_file_bdiff, arginfo_xdiff_file_bdiff) ++ PHP_FALIAS(xdiff_file_patch_binary, xdiff_file_bpatch, arginfo_xdiff_file_bpatch) ++ PHP_FALIAS(xdiff_string_diff_binary, xdiff_string_bdiff, arginfo_xdiff_string_bdiff) ++ PHP_FALIAS(xdiff_string_patch_binary, xdiff_string_bpatch, arginfo_xdiff_string_bpatch) ++#ifdef PHP_FE_END ++ PHP_FE_END ++#else + {NULL, NULL, NULL} ++#endif + }; + /* }}} */ + +@@ -172,7 +245,7 @@ PHP_FUNCTION(xdiff_string_diff) + xdemitcb_t output; + struct string_buffer string; + +- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "SS|lb", &str1, &str2, &context, &minimal) == FAILURE) { ++ if (zend_parse_parameters(ZEND_NUM_ARGS(), "SS|lb", &str1, &str2, &context, &minimal) == FAILURE) { + RETURN_FALSE; + } + +@@ -204,7 +277,7 @@ PHP_FUNCTION(xdiff_file_diff) + xdemitcb_t output; + php_stream *output_stream; + +- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "SSS|lb", &filepath1, &filepath2, &dest, &context, &minimal) == FAILURE) { ++ if (zend_parse_parameters(ZEND_NUM_ARGS(), "SSS|lb", &filepath1, &filepath2, &dest, &context, &minimal) == FAILURE) { + RETURN_FALSE; + } + +@@ -217,7 +290,7 @@ PHP_FUNCTION(xdiff_file_diff) + output.priv = output_stream; + output.outf = append_stream; + +- retval = make_diff(filepath1->val, filepath2->val, &output, context, minimal TSRMLS_CC); ++ retval = make_diff(filepath1->val, filepath2->val, &output, context, minimal); + if (!retval) + goto out_stream_close; + +@@ -230,7 +303,7 @@ PHP_FUNCTION(xdiff_file_diff) + } + /* }}} */ + +-/* {{{ proto mixed xdiff_string_diff_binary(string str1, string str2) ++/* {{{ proto mixed xdiff_string_bdiff(string str1, string str2) + */ + PHP_FUNCTION(xdiff_string_bdiff) + { +@@ -239,7 +312,7 @@ PHP_FUNCTION(xdiff_string_bdiff) + xdemitcb_t output; + struct string_buffer string; + +- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "SS", &str1, &str2) == FAILURE) { ++ if (zend_parse_parameters(ZEND_NUM_ARGS(), "SS", &str1, &str2) == FAILURE) { + RETURN_FALSE; + } + +@@ -261,7 +334,7 @@ PHP_FUNCTION(xdiff_string_bdiff) + } + /* }}} */ + +-/* {{{ proto bool xdiff_file_diff_binary(string file1, string file2, string dest) ++/* {{{ proto bool xdiff_file_bdiff(string file1, string file2, string dest) + */ + PHP_FUNCTION(xdiff_file_bdiff) + { +@@ -270,7 +343,7 @@ PHP_FUNCTION(xdiff_file_bdiff) + xdemitcb_t output; + php_stream *output_stream; + +- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "SSS", &filepath1, &filepath2, &result) == FAILURE) { ++ if (zend_parse_parameters(ZEND_NUM_ARGS(), "SSS", &filepath1, &filepath2, &result) == FAILURE) { + RETURN_FALSE; + } + +@@ -283,7 +356,7 @@ PHP_FUNCTION(xdiff_file_bdiff) + output.priv = output_stream; + output.outf = append_stream; + +- retval = make_bdiff(filepath1->val, filepath2->val, &output TSRMLS_CC); ++ retval = make_bdiff(filepath1->val, filepath2->val, &output); + if (!retval) + goto out_stream_close; + +@@ -305,7 +378,7 @@ PHP_FUNCTION(xdiff_string_rabdiff) + xdemitcb_t output; + struct string_buffer string; + +- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "SS", &str1, &str2) == FAILURE) { ++ if (zend_parse_parameters(ZEND_NUM_ARGS(), "SS", &str1, &str2) == FAILURE) { + RETURN_FALSE; + } + +@@ -336,7 +409,7 @@ PHP_FUNCTION(xdiff_file_rabdiff) + xdemitcb_t output; + php_stream *output_stream; + +- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "SSS", &filepath1, &filepath2, &result) == FAILURE) { ++ if (zend_parse_parameters(ZEND_NUM_ARGS(), "SSS", &filepath1, &filepath2, &result) == FAILURE) { + RETURN_FALSE; + } + +@@ -349,7 +422,7 @@ PHP_FUNCTION(xdiff_file_rabdiff) + output.priv = output_stream; + output.outf = append_stream; + +- retval = make_rabdiff(filepath1->val, filepath2->val, &output TSRMLS_CC); ++ retval = make_rabdiff(filepath1->val, filepath2->val, &output); + if (!retval) + goto out_stream_close; + +@@ -362,7 +435,7 @@ PHP_FUNCTION(xdiff_file_rabdiff) + } + /* }}} */ + +-/* {{{ proto bool xdiff_file_bdiff_size(string file1, string file2, string dest) ++/* {{{ proto bool xdiff_file_bdiff_size(string filepath) + */ + PHP_FUNCTION(xdiff_file_bdiff_size) + { +@@ -371,13 +444,13 @@ PHP_FUNCTION(xdiff_file_bdiff_size) + long result; + mmfile_t file; + +- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "S", &filepath) == FAILURE) { ++ if (zend_parse_parameters(ZEND_NUM_ARGS(), "S", &filepath) == FAILURE) { + RETURN_FALSE; + } + + RETVAL_FALSE; + +- retval = load_mm_file(filepath->val, &file TSRMLS_CC); ++ retval = load_mm_file(filepath->val, &file); + if (!retval) + goto out; + +@@ -394,7 +467,7 @@ PHP_FUNCTION(xdiff_file_bdiff_size) + } + /* }}} */ + +-/* {{{ proto bool xdiff_string_bdiff_size(string file1, string file2, string dest) ++/* {{{ proto bool xdiff_string_bdiff_size(string patch) + */ + PHP_FUNCTION(xdiff_string_bdiff_size) + { +@@ -403,7 +476,7 @@ PHP_FUNCTION(xdiff_string_bdiff_size) + long result; + mmfile_t file; + +- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "S", &patch) == FAILURE) { ++ if (zend_parse_parameters(ZEND_NUM_ARGS(), "S", &patch) == FAILURE) { + RETURN_FALSE; + } + +@@ -437,7 +510,7 @@ PHP_FUNCTION(xdiff_file_patch) + xdemitcb_t output, error_output; + struct string_buffer error_string; + +- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "SSS|l", &src_path, &patch_path, &dest_path, &flags) == FAILURE) { ++ if (zend_parse_parameters(ZEND_NUM_ARGS(), "SSS|l", &src_path, &patch_path, &dest_path, &flags) == FAILURE) { + RETURN_FALSE; + } + +@@ -457,7 +530,7 @@ PHP_FUNCTION(xdiff_file_patch) + error_output.priv= &error_string; + error_output.outf = append_string; + +- retval = make_patch(src_path->val, patch_path->val, &output, &error_output, flags TSRMLS_CC); ++ retval = make_patch(src_path->val, patch_path->val, &output, &error_output, flags); + if (retval < 0) + goto out_free_string; + +@@ -487,7 +560,7 @@ PHP_FUNCTION(xdiff_string_patch) + xdemitcb_t output, error_output; + struct string_buffer output_string, error_string; + +- if (zend_parse_parameters_ex(0, ZEND_NUM_ARGS() TSRMLS_CC, "SS|lz", &src, &patch, &flags, &error_ref) == FAILURE) { ++ if (zend_parse_parameters_ex(0, ZEND_NUM_ARGS(), "SS|lz", &src, &patch, &flags, &error_ref) == FAILURE) { + RETURN_FALSE; + } + +@@ -530,7 +603,7 @@ PHP_FUNCTION(xdiff_string_patch) + } + /* }}} */ + +-/* {{{ proto bool xdiff_file_patch_binary(string file, string patch, string dest) ++/* {{{ proto bool xdiff_file_bpatch(string file, string patch, string dest) + */ + PHP_FUNCTION(xdiff_file_bpatch) + { +@@ -539,7 +612,7 @@ PHP_FUNCTION(xdiff_file_bpatch) + int retval; + xdemitcb_t output; + +- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "SSS", &src_path, &patch_path, &dest_path) == FAILURE) { ++ if (zend_parse_parameters(ZEND_NUM_ARGS(), "SSS", &src_path, &patch_path, &dest_path) == FAILURE) { + RETURN_FALSE; + } + +@@ -552,7 +625,7 @@ PHP_FUNCTION(xdiff_file_bpatch) + output.outf = append_stream; + output.priv = output_stream; + +- retval = make_bpatch(src_path->val, patch_path->val, &output TSRMLS_CC); ++ retval = make_bpatch(src_path->val, patch_path->val, &output); + php_stream_close(output_stream); + + if (retval == 0) +@@ -563,7 +636,7 @@ PHP_FUNCTION(xdiff_file_bpatch) + } + /* }}} */ + +-/* {{{ proto string xdiff_string_patch_binary(string str, string patch) ++/* {{{ proto string xdiff_string_bpatch(string str, string patch) + */ + PHP_FUNCTION(xdiff_string_bpatch) + { +@@ -572,7 +645,7 @@ PHP_FUNCTION(xdiff_string_bpatch) + xdemitcb_t output; + struct string_buffer output_string; + +- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "SS", &src, &patch) == FAILURE) { ++ if (zend_parse_parameters(ZEND_NUM_ARGS(), "SS", &src, &patch) == FAILURE) { + RETURN_FALSE; + } + +@@ -608,7 +681,7 @@ PHP_FUNCTION(xdiff_file_merge3) + xdemitcb_t output, error_output; + int retval; + +- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "SSSS", &file1, &file2, &file3, &dest) == FAILURE) { ++ if (zend_parse_parameters(ZEND_NUM_ARGS(), "SSSS", &file1, &file2, &file3, &dest) == FAILURE) { + RETURN_FALSE; + } + +@@ -628,7 +701,7 @@ PHP_FUNCTION(xdiff_file_merge3) + error_output.priv = &string; + error_output.outf = append_string; + +- retval = make_merge3(file1->val, file2->val, file3->val, &output, &error_output TSRMLS_CC); ++ retval = make_merge3(file1->val, file2->val, file3->val, &output, &error_output); + if (!retval) + goto out_free_string; + +@@ -657,7 +730,7 @@ PHP_FUNCTION(xdiff_string_merge3) + xdemitcb_t output, error_output; + int retval; + +- if (zend_parse_parameters_ex(0, ZEND_NUM_ARGS() TSRMLS_CC, "SSS|z", &file1, &file2, &file3, &error_ref) == FAILURE) { ++ if (zend_parse_parameters_ex(0, ZEND_NUM_ARGS(), "SSS|z", &file1, &file2, &file3, &error_ref) == FAILURE) { + RETURN_FALSE; + } + +@@ -700,7 +773,7 @@ PHP_FUNCTION(xdiff_string_merge3) + } + /* }}} */ + +-static int load_mm_file(const char *filepath, mmfile_t *dest TSRMLS_DC) ++static int load_mm_file(const char *filepath, mmfile_t *dest) + { + int retval; + off_t filesize; +@@ -789,7 +862,6 @@ static int append_stream(void *ptr, mmbuffer_t *buffer, int array_size) + { + php_stream *stream = ptr; + unsigned int i; +- TSRMLS_FETCH(); + + for (i = 0; i < array_size; i++) { + php_stream_write(stream, buffer[i].ptr, buffer[i].size); +@@ -810,29 +882,24 @@ static int init_string(struct string_buffer *string) + return 1; + } + +-static void invalidate_string(struct string_buffer *string) +-{ +- string->ptr = NULL; +-} +- + static void free_string(struct string_buffer *string) + { + if (string->ptr) + efree(string->ptr); + } + +-static int make_diff(char *filepath1, char *filepath2, xdemitcb_t *output, int context, int minimal TSRMLS_DC) ++static int make_diff(char *filepath1, char *filepath2, xdemitcb_t *output, int context, int minimal) + { + mmfile_t file1, file2; + xpparam_t params; + xdemitconf_t conf; + int retval, result = 0; + +- retval = load_mm_file(filepath1, &file1 TSRMLS_CC); ++ retval = load_mm_file(filepath1, &file1); + if (!retval) + goto out; + +- retval = load_mm_file(filepath2, &file2 TSRMLS_CC); ++ retval = load_mm_file(filepath2, &file2); + if (!retval) + goto out_free_mmfile; + +@@ -885,17 +952,17 @@ static int make_diff_str(char *str1, int size1, char *str2, int size2, xdemitcb_ + return result; + } + +-static int make_bdiff(char *filepath1, char *filepath2, xdemitcb_t *output TSRMLS_DC) ++static int make_bdiff(char *filepath1, char *filepath2, xdemitcb_t *output) + { + mmfile_t file1, file2; + bdiffparam_t params; + int retval, result = 0; + +- retval = load_mm_file(filepath1, &file1 TSRMLS_CC); ++ retval = load_mm_file(filepath1, &file1); + if (!retval) + goto out; + +- retval = load_mm_file(filepath2, &file2 TSRMLS_CC); ++ retval = load_mm_file(filepath2, &file2); + if (!retval) + goto out_free_mmfile; + +@@ -945,16 +1012,16 @@ static int make_bdiff_str(char *str1, int size1, char *str2, int size2, xdemitcb + return result; + } + +-static int make_rabdiff(char *filepath1, char *filepath2, xdemitcb_t *output TSRMLS_DC) ++static int make_rabdiff(char *filepath1, char *filepath2, xdemitcb_t *output) + { + mmfile_t file1, file2; + int retval, result = 0; + +- retval = load_mm_file(filepath1, &file1 TSRMLS_CC); ++ retval = load_mm_file(filepath1, &file1); + if (!retval) + goto out; + +- retval = load_mm_file(filepath2, &file2 TSRMLS_CC); ++ retval = load_mm_file(filepath2, &file2); + if (!retval) + goto out_free_mmfile; + +@@ -999,16 +1066,16 @@ static int make_rabdiff_str(char *str1, int size1, char *str2, int size2, xdemit + return result; + } + +-static int make_patch(char *file_path, char *patch_path, xdemitcb_t *output, xdemitcb_t *error, int flags TSRMLS_DC) ++static int make_patch(char *file_path, char *patch_path, xdemitcb_t *output, xdemitcb_t *error, int flags) + { + mmfile_t file, patch; + int retval, result = 0; + +- retval = load_mm_file(file_path, &file TSRMLS_CC); ++ retval = load_mm_file(file_path, &file); + if (!retval) + goto out; + +- retval = load_mm_file(patch_path, &patch TSRMLS_CC); ++ retval = load_mm_file(patch_path, &patch); + if (!retval) + goto out_free_mmfile; + +@@ -1053,16 +1120,16 @@ static int make_patch_str(char *file, int size1, char *patch, int size2, xdemitc + return result; + } + +-static int make_bpatch(char *file_path, char *patch_path, xdemitcb_t *output TSRMLS_DC) ++static int make_bpatch(char *file_path, char *patch_path, xdemitcb_t *output) + { + mmfile_t file_mm, patch_mm; + int retval, result = 0; + +- retval = load_mm_file(file_path, &file_mm TSRMLS_CC); ++ retval = load_mm_file(file_path, &file_mm); + if (!retval) + goto out; + +- retval = load_mm_file(patch_path, &patch_mm TSRMLS_CC); ++ retval = load_mm_file(patch_path, &patch_mm); + if (!retval) + goto out_free_mmfile; + +@@ -1107,20 +1174,20 @@ static int make_bpatch_str(char *file, int size1, char *patch, int size2, xdemit + return result; + } + +-static int make_merge3(char *filepath1, char *filepath2, char *filepath3, xdemitcb_t *output, xdemitcb_t *error TSRMLS_DC) ++static int make_merge3(char *filepath1, char *filepath2, char *filepath3, xdemitcb_t *output, xdemitcb_t *error) + { + mmfile_t file1, file2, file3; + int retval, result = 0; + +- retval = load_mm_file(filepath1, &file1 TSRMLS_CC); ++ retval = load_mm_file(filepath1, &file1); + if (!retval) + goto out; + +- retval = load_mm_file(filepath2, &file2 TSRMLS_CC); ++ retval = load_mm_file(filepath2, &file2); + if (!retval) + goto out_free_mmfile; + +- retval = load_mm_file(filepath3, &file3 TSRMLS_CC); ++ retval = load_mm_file(filepath3, &file3); + if (!retval) + goto out_free_mmfile2; + diff --git a/php-pecl-xdiff.spec b/php-pecl-xdiff.spec index 2d9742e..92e9d3d 100644 --- a/php-pecl-xdiff.spec +++ b/php-pecl-xdiff.spec @@ -1,6 +1,6 @@ # remirepo spec file for php-pecl-xdiff # -# Copyright (c) 2016-2019 Remi Collet +# Copyright (c) 2016-2020 Remi Collet # License: CC-BY-SA # http://creativecommons.org/licenses/by-sa/4.0/ # @@ -22,16 +22,18 @@ %global libxdiff_version 0.23 Name: %{?sub_prefix}php-pecl-%{pecl_name} Version: 2.0.1 -Release: 7%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}} +Release: 8%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}} Summary: File differences/patches # libxdiff is LGPLv2+, xdiff extension is PHP License: PHP and LGPLv2+ -URL: http://pecl.php.net/package/%{pecl_name} -Source0: http://pecl.php.net/get/%{pecl_name}-%{version}.tgz +URL: https://pecl.php.net/package/%{pecl_name} +Source0: https://pecl.php.net/get/%{pecl_name}-%{version}.tgz # bundles the lib, as libxdiff from spot is not compatible Source1: http://www.xmailserver.org/libxdiff-%{libxdiff_version}.tar.gz Source2: config.m4 +Patch0: https://patch-diff.githubusercontent.com/raw/php/pecl-text-xdiff/pull/5.patch + BuildRequires: %{?dtsprefix}gcc BuildRequires: %{?scl_prefix}php-devel >= 7 BuildRequires: %{?scl_prefix}php-pear @@ -50,23 +52,16 @@ Provides: %{?scl_prefix}php-pecl-%{pecl_name} = %{version}-%{rele Provides: %{?scl_prefix}php-pecl-%{pecl_name}%{?_isa} = %{version}-%{release} %endif -%if "%{?vendor}" == "Remi Collet" && 0%{!?scl:1} && 0%{?rhel} +%if "%{?packager}" == "Remi Collet" && 0%{!?scl:1} && 0%{?rhel} # Other third party repo stuff -%if "%{php_version}" > "7.1" -Obsoletes: php71u-pecl-%{pecl_name} <= %{version} -Obsoletes: php71w-pecl-%{pecl_name} <= %{version} -%endif -%if "%{php_version}" > "7.2" -Obsoletes: php72u-pecl-%{pecl_name} <= %{version} -Obsoletes: php72w-pecl-%{pecl_name} <= %{version} -%endif %if "%{php_version}" > "7.3" Obsoletes: php73-pecl-%{pecl_name} <= %{version} -Obsoletes: php73w-pecl-%{pecl_name} <= %{version} %endif %if "%{php_version}" > "7.4" Obsoletes: php74-pecl-%{pecl_name} <= %{version} -Obsoletes: php74w-pecl-%{pecl_name} <= %{version} +%endif +%if "%{php_version}" > "8.0" +Obsoletes: php80-pecl-%{pecl_name} <= %{version} %endif %endif @@ -100,12 +95,16 @@ sed -e 's/role="test"/role="src"/' \ %{?_licensedir:-e '/LICENSE/s/role="doc"/role="src"/' } \ -i package.xml +cd NTS +%patch0 -p1 -b .pr + # Sanity check, really often broken -extver=$(sed -n '/#define PHP_XDIFF_VERSION/{s/.* "//;s/".*$//;p}' NTS/php_xdiff.h) +extver=$(sed -n '/#define PHP_XDIFF_VERSION/{s/.* "//;s/".*$//;p}' php_xdiff.h) if test "x${extver}" != "x%{version}"; then : Error: Upstream extension version is ${extver}, expecting %{version}. exit 1 fi +cd .. cat >%{ini_name} << 'EOF' ; Enable %{pecl_name} extension module @@ -183,7 +182,7 @@ fi : Minimal load test for NTS extension %{__php} -n \ -d extension=%{buildroot}%{php_extdir}/%{pecl_name}.so \ - --modules | grep %{pecl_name} + --modules | grep '^%{pecl_name}$' : Upstream test suite for NTS extension cd NTS @@ -197,7 +196,7 @@ REPORT_EXIT_STATUS=1 \ : Minimal load test for ZTS extension %{__ztsphp} -n \ -d extension=%{buildroot}%{php_ztsextdir}/%{pecl_name}.so \ - --modules | grep %{pecl_name} + --modules | grep '^%{pecl_name}$' : Upstream test suite for ZTS extension cd ../NTS @@ -226,6 +225,10 @@ REPORT_EXIT_STATUS=1 \ %changelog +* Wed Sep 30 2020 Remi Collet - 2.0.1-8 +- add patch for PHP 8 from + https://github.com/php/pecl-text-xdiff/pull/5 + * Tue Sep 03 2019 Remi Collet - 2.0.1-7 - rebuild for 7.4.0RC1 -- cgit