Open larsdesigns opened 2 years ago
@jenlampton, Are there any known PHP issues that you know of? I was unable to find any in backdrop-ops but I have not checked CiviCRM.
It would surprise me if there weren't any, but I can't remember anything off hand.
I have replaced php 7.4 and php 7.2 with php 8.0 and tested the sites using an /etc/hosts
entry on my workstation for the configuration domains.
@stpaultim, Would you be some kind as to help with testing?
Everything seems okay except that drush is giving an error.
Drush is at version 8 and the error is:
PHP Fatal error: Array and string offset access syntax with curly braces is no longer supported in /home/backdrop/.composer/vendor/drush/drush/includes/command.inc on line 860
I installed drush 11 using composer but it will not run either. It is turning in to a late one so I will pick it up later today.
I restored the original drush files in the /home/backdrop
directory for now.
Just a reminder that only the beta server is being worked on.
I was able to get drush installed and running on php8.0.
@larsdesigns backdrop support for Drush only works for Drush 8 (so, no need to update to Drush 11, 10, or even 9). If we do ever run into issues with Drush 8, that would be a good time to switch to bee :)
It was decided today during the core developer meeting that I would proceed with replacing drush 8 with Backdrop CMS Bee: https://backdropcms.org/project/bee.
I will scan the other sites with the phpcs php 8 checker but I could probably use some help with testing those.
So far there have been no problems reported from Civi. I am getting close to coming to point where I can promote the PHP 8 updates to production.
Completed the following:
bee
on the beta server and made it executable. I will be moving forward with the upgrade on production in a couple hours.
Completed the following tasks:
/home/backdrop/.bee
and is sym linked to /usr/local/bin/bee
as recommended in the installation instructions. I will leave this ticket open for a little while and close it when I uninstall and clean off php 7.4 from the server.
Please report back any errors that are discovered and could potentially related to the upgrade.
@larsdesigns - The forum is not working, in that I am unable to comment on or post new topics in the forum. I assume this is related to the PHP upgrade.
We are getting the following errors:
Call to undefined function each()
This indicates to me that we might have an error in our code for the Forum that isn't PHP 8 compatible? I think we have some custom code there.
FTR: the problem is with the SMTP contrib module, and it is fixed by the PR here: https://github.com/backdrop-contrib/smtp/issues/16
I have rolled back to 7.4 for all of the sites. Let's give it another go after smtp module is fixed.
Also, I found some changes that need to be made in the theme.
I found two calls to `each()` in template.php in the borg theme on lines 394 and and 414.
It looks like the recent release of the backdrop.org has been fixed and is compatible with PHP 8. I am going to update that site to PHP 8.1.
I have implemented php 8.1 for backdropcms.org and tested the smtp module by sending myself a password reset e-mail. It seems to be running okay.
I will work on evaluating the other sites for upgrade.
I have updated sanitize.backdropcms.org to use PHP 8.1 and checked the site. The sanitize script has been using 8.1 since last October.
I just updated a module (ip
) on b.org (which is on version 1.23.0) that required a db/config update, and running update.php issued a bunch of identical warnings:
Deprecated function: preg_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated in system_requirements() (line 472 of /home/backdrop/repo/www/core/modules/system/system.install).
I checked for the each() function in all of the sites and found the following usages:
╰─ grep -rni " each(" .
./docs/backdrop-code-to-index/core/misc/states.js:392: // Break the each() loop if this is checked.
./docs/repo/www/core/misc/states.js:392: // Break the each() loop if this is checked.
./docs/repo/www/modules/contrib/diff/DiffEngine.php:315: while (list ($junk, $y) = each($matches)) {
./docs/repo/www/modules/contrib/diff/DiffEngine.php:323: while (list ($junk, $y) = each($matches)) {
./localize/repo/www/sites/all/modules/contrib/l10n_server/l10n_community/welcome.inc:174: list($language_code, $language_name) = each($language_list);
./localize/repo/www/sites/all/modules/contrib/smtp/smtp.phpmailer.inc:1637: while ( list(, $line) = each($lines) ) {
./forum/repo/www/core/misc/states.js:392: // Break the each() loop if this is checked.
./forum/repo/www/modules/contrib/smtp/includes/smtp.phpmailer.inc:1614: while ( list(, $line) = each($lines) ) {
./forum/repo/www/themes/borg/template.php:515: // Assigning the array to $flat resets the array pointer for use with each().
./forum/repo/www/themes/borg/template.php:519: list($key, $curr) = each($flat);
./forum/repo/www/themes/borg/template.php:537: // Assigning the array to $flat resets the array pointer for use with each().
./forum/repo/www/themes/borg/template.php:539: list($key, $curr) = each($flat);
./dcu/repo/www/includes/bootstrap.inc:3788: while (list($key, $callback) = each($callbacks)) {
./dcu/repo/www/includes/install.inc:782: while (list($module) = each($module_list)) {
./dcu/repo/www/includes/menu.inc:579: list($function, $args) = each($function);
./dcu/repo/www/includes/menu.inc:2405: list($key, $curr) = each($tree);
./dcu/repo/www/includes/menu.inc:2435: list($key, $curr) = each($tree);
./dcu/repo/www/includes/module.inc:407: while (list($module) = each($module_list)) {
./dcu/repo/www/includes/module.inc:543: while (list($module) = each($module_list)) {
./dcu/repo/www/modules/locale/locale.test:3192: while ($equal && list($id) = each($negotiation)) {
./dcu/repo/www/modules/locale/locale.test:3193: list(, $info_id) = each($info['fixed']);
./dcu/repo/www/modules/book/book.module:771: // Assigning the array to $flat resets the array pointer for use with each).
./dcu/repo/www/modules/book/book.module:775: list($key, $curr) = each($flat);
./dcu/repo/www/modules/book/book.module:809: // Assigning the array to $flat resets the array pointer for use with each).
./dcu/repo/www/modules/book/book.module:811: list($key, $curr) = each($flat);
./api/backdrop-code-to-index/core/misc/states.js:392: // Break the each() loop if this is checked.
./api/repo/www/core/misc/states.js:392: // Break the each() loop if this is checked.
./api/repo/www/modules/contrib/diff/DiffEngine.php:315: while (list ($junk, $y) = each($matches)) {
./api/repo/www/modules/contrib/diff/DiffEngine.php:323: while (list ($junk, $y) = each($matches)) {
./api/repo/www/modules/contrib/smtp/includes/smtp.phpmailer.inc:1614: while ( list(, $line) = each($lines) ) {
./api/repo/www/themes/borg/template.php:515: // Assigning the array to $flat resets the array pointer for use with each).
./api/repo/www/themes/borg/template.php:519: list($key, $curr) = each($flat);
./api/repo/www/themes/borg/template.php:537: // Assigning the array to $flat resets the array pointer for use with each).
./api/repo/www/themes/borg/template.php:539: list($key, $curr) = each($flat);
./events/repo/www/core/misc/states.js:392: // Break the each() loop if this is checked.
./events/repo/www/modules/contrib/smtp/includes/smtp.phpmailer.inc:1614: while ( list(, $line) = each($lines) ) {
It looks like we need to make small changes to the borg theme or update it and update the smtp module.
We don't use the dcu site so those can be ignored, as can the JavaScript. It looks close!
On Thu, Dec 1, 2022, 1:53 PM Justin Christoffersen @.***> wrote:
I checked for the each() function in all of the sites and found the following usages:
╰─ grep -rni " each(" .
./docs/backdrop-code-to-index/core/misc/states.js:392: // Break the each() loop if this is checked.
./docs/repo/www/core/misc/states.js:392: // Break the each() loop if this is checked.
./docs/repo/www/modules/contrib/diff/DiffEngine.php:315: while (list ($junk, $y) = each($matches)) {
./docs/repo/www/modules/contrib/diff/DiffEngine.php:323: while (list ($junk, $y) = each($matches)) {
./localize/repo/www/sites/all/modules/contrib/l10n_server/l10n_community/welcome.inc:174: list($language_code, $language_name) = each($language_list);
./localize/repo/www/sites/all/modules/contrib/smtp/smtp.phpmailer.inc:1637: while ( list(, $line) = each($lines) ) {
./forum/repo/www/core/misc/states.js:392: // Break the each() loop if this is checked.
./forum/repo/www/modules/contrib/smtp/includes/smtp.phpmailer.inc:1614: while ( list(, $line) = each($lines) ) {
./forum/repo/www/themes/borg/template.php:515: // Assigning the array to $flat resets the array pointer for use with each().
./forum/repo/www/themes/borg/template.php:519: list($key, $curr) = each($flat);
./forum/repo/www/themes/borg/template.php:537: // Assigning the array to $flat resets the array pointer for use with each().
./forum/repo/www/themes/borg/template.php:539: list($key, $curr) = each($flat);
./dcu/repo/www/includes/bootstrap.inc:3788: while (list($key, $callback) = each($callbacks)) {
./dcu/repo/www/includes/install.inc:782: while (list($module) = each($module_list)) {
./dcu/repo/www/includes/menu.inc:579: list($function, $args) = each($function);
./dcu/repo/www/includes/menu.inc:2405: list($key, $curr) = each($tree);
./dcu/repo/www/includes/menu.inc:2435: list($key, $curr) = each($tree);
./dcu/repo/www/includes/module.inc:407: while (list($module) = each($module_list)) {
./dcu/repo/www/includes/module.inc:543: while (list($module) = each($module_list)) {
./dcu/repo/www/modules/locale/locale.test:3192: while ($equal && list($id) = each($negotiation)) {
./dcu/repo/www/modules/locale/locale.test:3193: list(, $info_id) = each($info['fixed']);
./dcu/repo/www/modules/book/book.module:771: // Assigning the array to $flat resets the array pointer for use with each).
./dcu/repo/www/modules/book/book.module:775: list($key, $curr) = each($flat);
./dcu/repo/www/modules/book/book.module:809: // Assigning the array to $flat resets the array pointer for use with each).
./dcu/repo/www/modules/book/book.module:811: list($key, $curr) = each($flat);
./api/backdrop-code-to-index/core/misc/states.js:392: // Break the each() loop if this is checked.
./api/repo/www/core/misc/states.js:392: // Break the each() loop if this is checked.
./api/repo/www/modules/contrib/diff/DiffEngine.php:315: while (list ($junk, $y) = each($matches)) {
./api/repo/www/modules/contrib/diff/DiffEngine.php:323: while (list ($junk, $y) = each($matches)) {
./api/repo/www/modules/contrib/smtp/includes/smtp.phpmailer.inc:1614: while ( list(, $line) = each($lines) ) {
./api/repo/www/themes/borg/template.php:515: // Assigning the array to $flat resets the array pointer for use with each).
./api/repo/www/themes/borg/template.php:519: list($key, $curr) = each($flat);
./api/repo/www/themes/borg/template.php:537: // Assigning the array to $flat resets the array pointer for use with each).
./api/repo/www/themes/borg/template.php:539: list($key, $curr) = each($flat);
./events/repo/www/core/misc/states.js:392: // Break the each() loop if this is checked.
./events/repo/www/modules/contrib/smtp/includes/smtp.phpmailer.inc:1614: while ( list(, $line) = each($lines) ) {
It looks like we need to make small changes to the borg theme or update it and update the smtp module.
— Reply to this email directly, view it on GitHub https://github.com/backdrop-ops/backdropcms.org/issues/940#issuecomment-1334493163, or unsubscribe https://github.com/notifications/unsubscribe-auth/AADBERYRMFBMGZ27XMAIUITWLEM4DANCNFSM6AAAAAAQYDXBDM . You are receiving this because you were mentioned.Message ID: @.***>
@jenlampton, I enabled php 8.1 for a few more projects and updated the check list.
The end of life for php 7 security support is November 28th 2022: https://www.php.net/supported-versions.php
I will be upgrade the servers to php 8.1. in the next few days. I will begin by upgrading the beta.backdropcms.org server first. After testing is successful, I will proceed with upgrading production. The beta.backdropcms.org VM is a clone of production and should be a great testing environment.
A list of sites from nginx configuration: