Błąd kompilacji starszych wersji PHP <=8.0
Adam Osuchowski
adwol at zonk.pl
Tue Dec 3 18:05:00 CET 2024
Maciej Kędzierski wrote:
> Próbuję przebudować pakiety ze starszymi wersjami PHP, np. 7.4, czy 5.6 i
> kompilacje wyrzucają błędy.
> Jeden błąd namierzyłem i jest związany z bibliotekami libxml2>=2.12.
>
> [...]
>
> Po przywróceniu wersji libxml2-2.11.5, kompilacja przechodzi dalej, ale
> wyrzuca błąd w innym miejscu.
> Tego już nie mogę namierzyć, co za to odpowiada.
W libxml2 w pewnym momencie zmieniły się prototypy funkcji -- pododawali
kwalifikatory const, a nowy gcc jest bardzo akuratny. Wystarczy owarunkować
per wersja:
diff -ruNp php-7.2.34.orig/ext/libxml/libxml.c php-7.2.34/ext/libxml/libxml.c
--- php-7.2.34.orig/ext/libxml/libxml.c 2020-09-30 07:15:53.000000000 +0200
+++ php-7.2.34/ext/libxml/libxml.c 2024-11-17 23:07:54.494686435 +0100
@@ -728,7 +728,11 @@ PHP_LIBXML_API void php_libxml_ctx_warni
va_end(args);
}
+#if LIBXML_VERSION >= 21200
+PHP_LIBXML_API void php_libxml_structured_error_handler(void *userData, const xmlError *error)
+#else
PHP_LIBXML_API void php_libxml_structured_error_handler(void *userData, xmlErrorPtr error)
+#endif
{
_php_list_set_error_structure(error, NULL);
W przypadku tego drugiego błędu winny jest jakiś totalnie zbędny patch
%{orgname}-mail.patch (php-mail.patch), made by PLD, w którym jakiś mądrala
próbował na siłę i nie wiadomo po co przerabiać wbudowaną funkcję mail().
Wykomentuj go ze speca i pójdzie od strzału.
More information about the pld-devel-pl
mailing list