Bug 38926

Summary: Обновить php7 до 7.4
Product: Branch p9 Reporter: Vitaly Lipatov <lav>
Component: php7Assignee: Anton Farygin <rider>
Status: CLOSED WONTFIX QA Contact: qa-p9 <qa-p9>
Severity: normal    
Priority: P5 CC: cas, marsden, rider
Version: не указана   
Hardware: x86_64   
OS: Linux   
Bug Depends on: 38165    
Bug Blocks:    

Description Vitaly Lipatov 2020-09-12 13:12:26 MSK
Изменения в php 7.4 внимательно проанализированы.
https://stitcher.io/blog/new-in-php-74

Кроме полезных новшеств появился ряд полезных depricated, которые не мешают работе. Изменение поведения имеется только для совсем грубых ситуаций
$i = 1;
чему равно $i[0]

Предлагаю рассмотреть возможность обновления php до 7.4.
Как я понимаю, вплоть до выхода 8 версии ломающих изменений там не планируется.

У 7.3 осталось 2 месяца активной поддержки, дальше год security updates и всё.
https://www.php.net/supported-versions.php
Comment 1 Vitaly Lipatov 2020-10-10 14:02:28 MSK
Отправил задание и буду тестировать.

259572 BUILDING #1 [locked] [test-only] p9 pecl-krb5.git=7.4.11-alt1 pecl-smbclient.git=7.4.11-alt1 php7.git=7.4.11-alt1 php7-apcu.git=7.4.11-alt1 php7-apcu_bc.git=7.4.11-alt1 php7-bz2.git=7.4.11-alt1 php7-calendar.git=7.4.11-alt1 php7-curl.git=7.4.11-alt1 php7-dba.git=7.4.11-alt1 php7-enchant.git=7.4.11-alt1 php7-exif.git=7.4.11-alt1 php7-fileinfo.git=7.4.11-alt1 php7-fpm-fcgi.git=7.4.11-alt1 php7-gd.git=7.4.11-alt1 php7-geoip.git=7.4.11-alt1 php7-gmp.git=7.4.11-alt1 php7-imagick.git=7.4.11-alt1 php7-imap.git=7.4.11-alt1 php7-intl.git=7.4.11-alt1 php7-ldap.git=7.4.11-alt1 php7-mbstring.git=7.4.11-alt1 php7-mcrypt.git=7.4.11-alt1 php7-memcache.git=7.4.11-alt1 php7-memcached.git=7.4.11-alt1 php7-mysqli.git=7.4.11-alt1 php7-mysqlnd-mysqli.git=7.4.11-alt1 php7-opcache.git=7.4.11-alt1 php7-openssl.git=7.4.11-alt1 php7-pcntl.git=7.4.11-alt1 php7-pdo.git=7.4.11-alt1 php7-pdo_mysql.git=7.4.11-alt1 php7-pdo_odbc.git=7.4.11-alt1 php7-pdo_pgsql.git=7.4.11-alt1 php7-pdo_sqlite.git=7.4.11-alt1 php7-pdo_sqlsrv.git=7.4.11-alt1 php7-pgsql.git=7.4.11-alt1 php7-readline.git=7.4.11-alt1 php7-redis.git=5.3.1-alt1 php7-snmp.git=7.4.11-alt1 php7-soap.git=7.4.11-alt1 php7-sockets.git=7.4.11-alt1 php7-sphinx.git=7.4.11-alt1 php7-sqlsrv.git=7.4.11-alt1 php7-ssh2.git=7.4.11-alt1 php7-tidy.git=7.4.11-alt1 php7-xdebug.git=7.4.11-alt1 php7-xhprof.git=7.4.11-alt1 php7-xmlreader.git=7.4.11-alt1 php7-xmlrpc.git=7.4.11-alt1 php7-xsl.git=7.4.11-alt1 php7-zip.git=7.4.11-alt1
Comment 2 Vitaly Lipatov 2020-10-11 04:12:37 MSK
Итоговое задание
259572 BUILDING #9 [locked] [test-only] p9 php7.git=7.4.11-alt1 php7-apcu.git=7.4.11-alt1 php7-apcu_bc.git=7.4.11-alt1 php7-bz2.git=7.4.11-alt1 php7-calendar.git=7.4.11-alt1 php7-curl.git=7.4.11-alt1 php7-dba.git=7.4.11-alt1 php7-enchant.git=7.4.11-alt1 php7-fileinfo.git=7.4.11-alt1 php7-fpm-fcgi.git=7.4.11-alt1 php7-gd.git=7.4.11-alt1 php7-geoip.git=7.4.11-alt1 php7-gmp.git=7.4.11-alt1 php7-imagick.git=7.4.11-alt1 php7-imap.git=7.4.11-alt1 php7-intl.git=7.4.11-alt1 php7-ldap.git=7.4.11-alt1 php7-mbstring.git=7.4.11-alt1 php7-mcrypt.git=7.4.11-alt1 php7-memcache.git=7.4.11-alt1 php7-memcached.git=7.4.11-alt1 php7-mysqli.git=7.4.11-alt1 php7-mysqlnd-mysqli.git=7.4.11-alt1 php7-opcache.git=7.4.11-alt1 php7-openssl.git=7.4.11-alt1 php7-pcntl.git=7.4.11-alt1 php7-pdo.git=7.4.11-alt1 php7-pdo_mysql.git=7.4.11-alt1 php7-pdo_odbc.git=7.4.11-alt1 php7-pdo_pgsql.git=7.4.11-alt1 php7-pdo_sqlite.git=7.4.11-alt1 php7-pdo_sqlsrv.git=7.4.11-alt1 php7-pgsql.git=7.4.11-alt1 php7-readline.git=7.4.11-alt1 php7-redis.git=5.3.1-alt1 php7-snmp.git=7.4.11-alt1 php7-soap.git=7.4.11-alt1 php7-sockets.git=7.4.11-alt1 php7-sphinx.git=7.4.11-alt1 php7-sqlsrv.git=7.4.11-alt1 php7-ssh2.git=7.4.11-alt1 php7-tidy.git=7.4.11-alt1 php7-xdebug.git=7.4.11-alt1 php7-xhprof.git=7.4.11-alt1 php7-xmlreader.git=7.4.11-alt1 php7-xmlrpc.git=7.4.11-alt1 php7-xsl.git=7.4.11-alt1 php7-zip.git=7.4.11-alt1 php7-exif.git=7.4.11-alt1 apache2-mod_php7.git=7.4.11-alt1 pecl-krb5.git=7.4.11-alt1 pecl-smbclient.git=7.4.11-alt1

Задание закончилось с
error: apache2-mod_php7.git tag `7.4.11-alt1' is not inherited from /gears/a/apache2-mod_php7.git branch `p9'
error: php7.git tag `7.4.11-alt1' is not inherited from /gears/p/php7.git branch `p9'

$ git diff p9 sisyphus
diff --git a/apache2-mod_php7.spec b/apache2-mod_php7.spec
index dbfbce0..2644726 100644
--- a/apache2-mod_php7.spec
+++ b/apache2-mod_php7.spec
@@ -7,7 +7,7 @@ Release: %php7_release
 
 Summary: The php7 HTML-embedded scripting language for use with Apache2
 Group: System/Servers
-License: PHP
+License: PHP-3.01
 Url: http://www.php.net/
 
 Requires: php7 = %php7_version
@@ -26,8 +26,7 @@ Patch0: apache2-mod_php7-7.1.0.patch
 Patch1: php-alt-namespace.patch
 
 BuildRequires(pre): rpm-build-php7 apache2-devel
-# Automatically added by buildreq on Wed Mar 23 2011
-BuildRequires: apache2-devel apache2-httpd-worker libmm-devel libxml2-devel php7-devel zlib-devel
+BuildRequires: apache2-devel apache2-httpd-worker libmm-devel libxml2-devel php7-devel zlib-devel libsqlite3-devel
 BuildRequires: php7-devel = %php7_version
 
 %description
Comment 3 Vitaly Lipatov 2020-10-11 04:27:03 MSK
Не очень понятно, как в p9 управлять наследованием.
 $ ssh gear.alt task check-git-inheritance 259572 6640 disable 60d9e3a8d58f4b5b6024d171404b94ba21eb58ae
girar-check-perms: access to apache2-mod_php7 DENIED for lav: project `apache2-mod_php7' is not listed in acl file for repository `p9'
Comment 4 Anton Farygin 2020-10-11 11:10:49 MSK
Репозиторий для тестирования уже должен быть создан, его достаточно.

Наследованием никак не управлять. 

Я планирую обновить в p9 php до 7.4 к новому году.
Comment 5 Andrey Cherepanov 2020-10-11 13:36:01 MSK
(Ответ для Vitaly Lipatov на комментарий #3)
> Не очень понятно, как в p9 управлять наследованием.
>  $ ssh gear.alt task check-git-inheritance 259572 6640 disable
> 60d9e3a8d58f4b5b6024d171404b94ba21eb58ae
> girar-check-perms: access to apache2-mod_php7 DENIED for lav: project
> `apache2-mod_php7' is not listed in acl file for repository `p9'

Написать sotor@.
Comment 6 Anton Farygin 2020-10-11 14:45:40 MSK
про p9 sotor@ писать бесполезно, у него нет прав на то, что бы порвать наследование.
Comment 7 Andrey Cherepanov 2020-10-11 18:27:35 MSK
(Ответ для Anton Farygin на комментарий #6)
> про p9 sotor@ писать бесполезно, у него нет прав на то, что бы порвать
> наследование.

Тогда ldv, точно!
Comment 8 Vitaly Lipatov 2020-10-12 03:50:35 MSK
Смержил проблемные ветки с Сизифом (основной сложный пакет был php7) и задание собралось.
Comment 9 Anton Farygin 2020-10-12 06:54:43 MSK
Спасибо. Что бы оно случайно не попало в репозиторий я повесил disapprove.
Comment 10 Vitaly Lipatov 2020-10-12 07:49:29 MSK
(Ответ для Anton Farygin на комментарий #9)
> Спасибо. Что бы оно случайно не попало в репозиторий я повесил disapprove.

Надеюсь, что оно попадёт туда как можно скорее, поскольку

«Для работы WordPress рекомендуется хостинг, который поддерживает:
PHP версии 7.4 или выше.»
https://ru.wordpress.org/about/requirements/

Должны быть хоть какие-то причины саботировать php 7.4, а их у тебя нет.
Comment 11 Anton Farygin 2020-10-12 08:20:32 MSK
Я планирую обновить php до 7.4 в p9 к новому году.
Причины простые - на данный момент идёт выпуск других продуктов и мы не можем отвлечь ресурсы на полномаштабное тестирование 7.4 в p9 и на наших стендах.

Кстати, уж коль зашла речь про PHP - я планирую откатить последние изменения в php7-imagick - у php7-imagick есть опция в конфиге, отключающая этот warning. И он, по большей части, надуманный.
Comment 12 Vitaly Lipatov 2020-10-12 08:47:21 MSK
(Ответ для Anton Farygin на комментарий #11)
> я планирую откатить последние изменения
> в php7-imagick - у php7-imagick есть опция в конфиге, отключающая этот
> warning. И он, по большей части, надуманный.
Да, есть imagick.skip_version_check

«However it is strongly recommended to use the version of ImageMagick that Imagick was compiled against.»
И так вроде не сильно надуманно, куча условной компиляции в зависимости от версии ImageMagick.
Comment 13 Anton Farygin 2020-10-12 08:59:12 MSK
мы используем legacy версию ImageMagick. Изменения в ней уже минимальны.
ну и сам php7-imagick тоже уже очень давно не выходил. Т.е. - эта связка в достаточной степени стабильна и делать жёсткую зависимость между ними (более жёсткую, чем set:versions) не нужно.
Comment 14 Vitaly Lipatov 2020-10-12 09:40:48 MSK
(Ответ для Anton Farygin на комментарий #13)
> мы используем legacy версию ImageMagick. Изменения в ней уже минимальны.
> ну и сам php7-imagick тоже уже очень давно не выходил. Т.е. - эта связка в
> достаточной степени стабильна и делать жёсткую зависимость между ними (более
> жёсткую, чем set:versions) не нужно.
Значит нужно было добавить в конфиг параметр, отключающий предупреждение, с комментарием о причинах.
Как бы логики нет. Если изменения минимальны, почему бы не иметь жёсткую зависимость?
Comment 15 Anton Farygin 2020-10-12 09:46:52 MSK
потому что любое минорное изменение ImageMagick будет обязывать делать пересборку этого пакета.
Comment 16 Vitaly Lipatov 2020-10-13 19:44:20 MSK
phpMyAdmin сломался с обновлением в p9 MySQL до версии 8 или новее, и починено это только в php 7.4:

Due to changes in the MySQL authentication method, PHP versions prior to 7.4 are unable to authenticate to a MySQL 8.0 or newer server (our tests show the problem actually began with MySQL 8.0.11). This relates to a PHP bug https://bugs.php.net/bug.php?id=76243. 
https://www.phpmyadmin.net/news/2020/10/10/phpmyadmin-496-and-503-are-released/
Comment 17 Anton Farygin 2020-10-13 20:22:29 MSK
Виталь, я сам обновлю, спасибо.
Comment 18 Vitaly Lipatov 2020-10-13 20:28:23 MSK
(Ответ для Anton Farygin на комментарий #17)
> Виталь, я сам обновлю, спасибо.

Спасибо, я уже обновил.
Мне ситуация не нравится, и я не очень понимаю, какое ты имеешь отношение к принятию решения о том, когда и что обновлять в p9.
Comment 19 Anton Farygin 2020-10-13 21:12:54 MSK
Примерно такое же как и ты к wine. 

Ментейнеру виднее, обычно, когда и что обновлять в стабильном бранче. Если что-то попало в сизиф, то это не повод сразу начинать копировать его в стабильные репозитории.
Comment 20 Vitaly Lipatov 2020-10-13 21:37:48 MSK
(Ответ для Anton Farygin на комментарий #19)
> Примерно такое же как и ты к wine. 
Когда мне приходят помогать, я хотя бы стараюсь не отказываться.

> Ментейнеру виднее, обычно, когда и что обновлять в стабильном бранче. Если
> что-то попало в сизиф, то это не повод сразу начинать копировать его в
> стабильные репозитории.
Тут речь о том, что 7.4 задерживает почти на год.
И у меня есть сомнения, что php удаляется достаточная доля твоей компетентности, при том, что я копаюсь в нём достаточно глубоко.
Я понимаю, что php оставляет желать лучшего в качестве кода и продолжает удивлять разными багами, но вроде в последнее время он сильно исправился.
И я хотел бы немного нивелировать эту аргументацию о возможной нестабильности php 7.4 (она не подтверждается моей практикой), и прошу как-то понизить заборчик, мешающий 7.4 добраться в p9. Также и в целях мирного решения проблемы, потому что мне будет обидно, если мои усилия пропадут, потому что в итоге после долгих уговоров мне пришлось потратить достаточно много времени на сборку 7.4 в p9.
Comment 21 Vitaly Lipatov 2020-10-14 00:51:38 MSK
(Ответ для Anton Farygin на комментарий #19)
> Примерно такое же как и ты к wine. 
Справедливости ради, пояснение не очень. В ситуации с wine сборка новой версии в бранчи всегда задерживается по моей нерасторопности, хотя меня и торопят. И необходимость новой версии там на порядок преобладает над рассуждениями о стабильности.
Comment 22 Anton Farygin 2020-10-14 06:52:07 MSK
Мне очень жаль твоих усилий, но задание со сборкой php я сделаю другое, одновременно с выходом очередной версии.

На этом предлагаю данный тред закрыть, т.к. у обновления php до 7.4 есть как и сторонники, так и противники.
Comment 23 Anton Farygin 2020-10-14 09:03:58 MSK
(Ответ для Vitaly Lipatov на комментарий #20)
> (Ответ для Anton Farygin на комментарий #19)
> > Примерно такое же как и ты к wine. 
> Когда мне приходят помогать, я хотя бы стараюсь не отказываться.

Тогда очень прошу вернуться к вопросу одновременной установки 32-х и 64-х битных wine. Предложение помочь всё ещё в силе.
Comment 24 Anton Farygin 2021-04-30 09:38:55 MSK
php 7.4 будет в branch p10