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.

libxml2-2.13.4-1
===================

# rpmbuild --rebuild php74-7.4.33-7.src.rpm

:
:
/bin/sh /root/rpm/BUILD/php-7.4.33/libtool --silent --preserve-dup-deps --tag=CC --mode=compile x86_64-pld-linux-gcc -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 -Iext/pcre/ -I/root/rpm/BUILD/php-7.4.33/ext/pcre/ -DP HP_ATOM_INC -I/root/rpm/BUILD/php-7.4.33/include -I/root/rpm/BUILD/php-7.4.33/main -I/root/rpm/BUILD/php-7.4.33 -I/usr/include/valgrind -I/root/rpm/BUILD/php-7.4.33/ext/date/lib -I/usr/include/libxml2 -I/usr /include/enchant -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sysprof-6 -I/usr/include/fribidi -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/ webp -I/usr/include/imap -I/root/rpm/BUILD/php-7.4.33/ext/mbstring/libmbfl -I/root/rpm/BUILD/php-7.4.33/ext/mbstring/libmbfl/mbfl -I/usr/include/pspell -I/usr/include/tidy -I/usr/include/xmlrpc-epi -I/root/r pm/BUILD/php-7.4.33/TSRM -I/root/rpm/BUILD/php-7.4.33/Zend  -DDEBUG_FASTCGI -DHAVE_STRNDUP -I/usr/include/xmlrpc-epi  -I/usr/include -O2 -fwrapv -pipe -Wformat -Werror=format-security -gdwarf-4 -fno-debug-ty pes-section -fvar-tracking-assignments -g2 -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong --param=ssp-buffer-size=4 -Werror=trampolines -fPIC -march=x86-64 -mtune=generic -gdwarf-4 -fno-debug-types-section -fvar-tracking-assignments -g2 -fPIC -DPIC -Wall -Wno-strict-aliasing -DZEND_SIGNALS   -c /root/rpm/BUILD/php-7.4.33/ext/pcre/php_pcre.c -o ext/pcre/php_pcre.lo /root/rpm/BUILD/php-7.4.33/ext/libxml/libxml.c:In function 'php_libxml_shutdown': /root/rpm/BUILD/php-7.4.33/ext/libxml/libxml.c:826:17:warning: 'xmlRelaxNGCleanupTypes' is deprecated [-Wdeprecated-declarations]
 826 | xmlRelaxNGCleanupTypes();
     | ^~~~~~~~~~~~~~~~~~~~~~
In file included from /root/rpm/BUILD/php-7.4.33/ext/libxml/libxml.c:41:
/usr/include/libxml2/libxml/relaxng.h:124:21:note: declared here
 124 | xmlRelaxNGCleanupTypes     (void);
     | ^~~~~~~~~~~~~~~~~~~~~~
/root/rpm/BUILD/php-7.4.33/ext/libxml/libxml.c:In function 'zif_libxml_use_internal_errors': /root/rpm/BUILD/php-7.4.33/ext/libxml/libxml.c:1032:48:warning: comparison of distinct pointer types lacks a cast [-Wcompare-distinct-pointer-types] 1032 |         if (current_handler && current_handler ==php_libxml_structured_error_handler) {
     | ^~
/root/rpm/BUILD/php-7.4.33/ext/libxml/libxml.c:1050:49:error: passing argument 2 of 'xmlSetStructuredErrorFunc' from incompatible pointer type [-Wincompatible-pointer-types] 1050 |                 xmlSetStructuredErrorFunc(NULL, php_libxml_structured_error_handler);
     | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     | |
     | void (*)(void *, xmlError *) {aka void (*)(void *, struct _xmlError *)}
In file included from /usr/include/libxml2/libxml/valid.h:16,
                from /usr/include/libxml2/libxml/parser.h:20,
                from /root/rpm/BUILD/php-7.4.33/ext/libxml/libxml.c:34:
/usr/include/libxml2/libxml/xmlerror.h:905:57:note: expected 'xmlStructuredErrorFunc' {aka 'void (*)(void *, const struct _xmlError *)'} but argument is of type 'void (*)(void *, xmlError *)' {aka 'void (*)
(void *, struct _xmlError *)'}
 905 | xmlStructuredErrorFunc handler);
     | ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/root/rpm/BUILD/php-7.4.33/ext/libxml/libxml.c:In function 'zif_libxml_get_last_error': /root/rpm/BUILD/php-7.4.33/ext/libxml/libxml.c:1066:15:warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
1066 |         error =xmlGetLastError();
     | ^
make: *** [Makefile:607: ext/libxml/libxml.lo] Error 1
make: *** Waiting for unfinished jobs....
błąd: Błędny stan wyjścia z /root/tmp/rpm-tmp.m5vjSQ (%build)

RPM build warnings:
   php74-7.4.33-7.src.rpm: Nagłówek V4 DSA/SHA1 Signature, identyfikator klucza e4f1bc2d: NOKEY
   użytkownik builder nie istnieje — używanie root
   użytkownik builder nie istnieje — używanie root
    ** ciach **
   użytkownik builder nie istnieje — używanie root
   użytkownik builder nie istnieje — używanie root
   382. wiersz: Obsoletes bez wersji są niezalecane: Obsoletes:        phpfi    589. wiersz: Obsoletes bez wersji są niezalecane: Obsoletes:        php-pecl-domxml    630. wiersz: Obsoletes bez wersji są niezalecane: Obsoletes:        php-devel    876. wiersz: Obsoletes bez wersji są niezalecane: Obsoletes:        php-mime_magic
   Wpisy w %changelog nie są w porządku chronologicznym

RPM build errors:
   Błędny stan wyjścia z /root/tmp/rpm-tmp.m5vjSQ (%build)


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.


libxml2-2.11.5-1
================

/bin/sh /root/rpm/BUILD/php-7.4.33/libtool --silent --preserve-dup-deps --tag=CC --mode=compile x86_64-pld-linux-gcc -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 -Iext/standard/ -I/root/rpm/BUILD/php-7.4.33/ext/stand ard/ -DPHP_ATOM_INC -I/root/rpm/BUILD/php-7.4.33/include -I/root/rpm/BUILD/php-7.4.33/main -I/root/rpm/BUILD/php-7.4.33 -I/usr/include/valgrind -I/root/rpm/BUILD/php-7.4.33/ext/date/lib -I/usr/include/libxml 2 -I/usr/include/enchant -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sysprof-6 -I/usr/include/fribidi -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/ include/webp -I/usr/include/imap -I/root/rpm/BUILD/php-7.4.33/ext/mbstring/libmbfl -I/root/rpm/BUILD/php-7.4.33/ext/mbstring/libmbfl/mbfl -I/usr/include/pspell -I/usr/include/tidy -I/usr/include/xmlrpc-epi - I/root/rpm/BUILD/php-7.4.33/TSRM -I/root/rpm/BUILD/php-7.4.33/Zend  -DDEBUG_FASTCGI -DHAVE_STRNDUP -I/usr/include/xmlrpc-epi  -I/usr/include -O2 -fwrapv -pipe -Wformat -Werror=format-security -gdwarf-4 -fno- debug-types-section -fvar-tracking-assignments -g2 -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong --param=ssp-buffer-size=4 -Werror=trampolines -fPIC -march=x86-64 -mtune=generic -gdwarf-4 -fno-debug-types -section -fvar-tracking-assignments -g2 -fPIC -DPIC -Wall -Wno-strict-aliasing -DZEND_SIGNALS   -c /root/rpm/BUILD/php-7.4.33/ext/standard/math.c -o ext/standard/math.lo
/root/rpm/BUILD/php-7.4.33/ext/standard/mail.c:In function 'zif_mail':
/root/rpm/BUILD/php-7.4.33/ext/standard/mail.c:329:25:error: passing argument 1 of 'strncasecmp' from incompatible pointer type [-Wincompatible-pointer-types]  329 |         if (strncasecmp(headers, "to:", sizeof("to:") - 1) == 0 || strcasestr(headers, "\nto:")) {
     | ^~~~~~~
     | |
     | zval * {aka struct _zval_struct *}
In file included from /usr/include/string.h:462,
                from /root/rpm/BUILD/php-7.4.33/include/../main/php_config.h:2397,
                from /root/rpm/BUILD/php-7.4.33/Zend/zend_config.h:1,
                from /root/rpm/BUILD/php-7.4.33/Zend/zend_portability.h:43,
                from /root/rpm/BUILD/php-7.4.33/Zend/zend_types.h:25,
                from /root/rpm/BUILD/php-7.4.33/Zend/zend.h:27,
                from /root/rpm/BUILD/php-7.4.33/main/php.h:33,
                from /root/rpm/BUILD/php-7.4.33/ext/standard/mail.c:23:
/usr/include/strings.h:120:37:note: expected 'const char *' but argument is of type 'zval *' {aka 'struct _zval_struct *'}  120 | extern int strncasecmp (const char *__s1, const char *__s2, size_t __n)
     | ~~~~~~~~~~~~^~~~
/root/rpm/BUILD/php-7.4.33/ext/standard/mail.c:329:79:error: passing argument 1 of 'strcasestr' from incompatible pointer type [-Wincompatible-pointer-types]  329 |         if (strncasecmp(headers, "to:", sizeof("to:") - 1) == 0 || strcasestr(headers, "\nto:")) {
     | ^~~~~~~
     | |
     | zval * {aka struct _zval_struct *}
/usr/include/string.h:380:38:note: expected 'const char *' but argument is of type 'zval *' {aka 'struct _zval_struct *'}  380 | extern char *strcasestr (const char *__haystack, const char *__needle)
     | ~~~~~~~~~~~~^~~~~~~~~~
/root/rpm/BUILD/php-7.4.33/ext/standard/mail.c:333:25:error: passing argument 1 of 'strncasecmp' from incompatible pointer type [-Wincompatible-pointer-types]  333 |         if (strncasecmp(headers, "subject:", sizeof("subject:") - 1) == 0 || strcasestr(headers, "\nsubject:")) {
     | ^~~~~~~
     | |
     | zval * {aka struct _zval_struct *}
/usr/include/strings.h:120:37:note: expected 'const char *' but argument is of type 'zval *' {aka 'struct _zval_struct *'}  120 | extern int strncasecmp (const char *__s1, const char *__s2, size_t __n)
     | ~~~~~~~~~~~~^~~~
/root/rpm/BUILD/php-7.4.33/ext/standard/mail.c:333:89:error: passing argument 1 of 'strcasestr' from incompatible pointer type [-Wincompatible-pointer-types]  333 |         if (strncasecmp(headers, "subject:", sizeof("subject:") - 1) == 0 || strcasestr(headers, "\nsubject:")) {
     | ^~~~~~~
     | |
     | zval * {aka struct _zval_struct *}
/usr/include/string.h:380:38:note: expected 'const char *' but argument is of type 'zval *' {aka 'struct _zval_struct *'}  380 | extern char *strcasestr (const char *__haystack, const char *__needle)
     | ~~~~~~~~~~~~^~~~~~~~~~
make: *** [Makefile:1817: ext/standard/mail.lo] Error 1
make: *** Waiting for unfinished jobs....
błąd: Błędny stan wyjścia z /root/tmp/rpm-tmp.1AJFig (%build)

RPM build warnings:
   php74-7.4.33-7.src.rpm: Nagłówek V4 DSA/SHA1 Signature, identyfikator klucza e4f1bc2d: NOKEY
   użytkownik builder nie istnieje — używanie root
   użytkownik builder nie istnieje — używanie root
    ** ciach **
   użytkownik builder nie istnieje — używanie root
   382. wiersz: Obsoletes bez wersji są niezalecane: Obsoletes:        phpfi    589. wiersz: Obsoletes bez wersji są niezalecane: Obsoletes:        php-pecl-domxml    630. wiersz: Obsoletes bez wersji są niezalecane: Obsoletes:        php-devel    876. wiersz: Obsoletes bez wersji są niezalecane: Obsoletes:        php-mime_magic
   Wpisy w %changelog nie są w porządku chronologicznym

RPM build errors:
   Błędny stan wyjścia z /root/tmp/rpm-tmp.1AJFig (%build)


Z tego co widzę, to ostatnie kompilacje były na wersjach 8.2 i 8.3, starsze nie były dotykane od lipca. Jeszcze udało się przebudować php81-8.1.30-1.src.rpm. Wszystkie starsze 8.0 w dół generują podobne błędy przy kompilacji.

Pytanie, czy są gdzieś dostępne jakieś łatki, żeby starsze wersje PHPów się kompilowały i czy są plany na dalszego ich utrzymywania w dystrybucji?

Pozdrawiam
Maciej
_______________________________________________
pld-devel-pl mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-devel-pl

Odpowiedź listem elektroniczym