Roundcube ne se met pas à jour

Mon serveur YunoHost

Matériel: Raspberry Pi à la maison
Version de YunoHost: 11.2.9.1 (stable)
J’ai accès à mon serveur : En SSH | Par la webadmin |
Êtes-vous dans un contexte particulier ou avez-vous effectué des modificiations particulières sur votre instance ? : non

Si votre requête est liée à une applicatio, précisez son nom et sa version: Roucube de 1.6.0~ynh4 à 1.6.6~ynh1

Description du problème

Bonjour,

J’ai voulu mettre à jour Roundcube sans succès. Il semblerait qu’il y ait eu un problème avec le script d’installation et plus précisément composer.
De mon analyse le merge entre le fichier .json et le .lock ne se fait pas et il y a une différence de version sur le paquet guzzlehttp/guzzle qui empêche la mise à jour.

Je ne suis pas un spécialiste, c’est ce que j’ai pu en déduire en regardant les logs.
ci après la partie qui pose problème:

2024-01-27 14:47:41,591: DEBUG - + COMPOSER_HOME=/var/www/roundcube/.composer
2024-01-27 14:47:41,591: DEBUG - + COMPOSER_MEMORY_LIMIT=-1
2024-01-27 14:47:41,591: DEBUG - + php8.1 /var/www/roundcube/composer.phar install --no-dev -d /var/www/roundcube --no-interaction --no-ansi
2024-01-27 14:47:41,959: DEBUG - Composer plugins have been disabled for safety in this non-interactive session. Set COMPOSER_ALLOW_SUPERUSER=1 if you want to allow plugins to run as root/super user.
2024-01-27 14:47:41,960: DEBUG - Do not run Composer as root/super user! See https://getcomposer.org/root for details
2024-01-27 14:47:42,275: DEBUG - Installing dependencies from lock file
2024-01-27 14:47:42,278: DEBUG - Verifying lock file contents can be installed on current platform.
2024-01-27 14:47:42,291: DEBUG - Warning: The lock file is not up to date with the latest changes in composer.json. You may be getting outdated dependencies. It is recommended that you run `composer update` or `composer update <package name>`.
2024-01-27 14:47:42,296: DEBUG - - Required package "guzzlehttp/guzzle" is in the lock file as "6.5.8" but that does not satisfy your constraint "^7.3.0".
2024-01-27 14:47:42,296: DEBUG - - Required package "bacon/bacon-qr-code" is not present in the lock file.
2024-01-27 14:47:42,297: DEBUG - This usually happens when composer files are incorrectly merged or the composer.json file is manually edited.
2024-01-27 14:47:42,297: DEBUG - Read more about correctly resolving merge conflicts https://getcomposer.org/doc/articles/resolving-merge-conflicts.md
2024-01-27 14:47:42,298: DEBUG - and prefer using the "require" command over editing the composer.json file directly https://getcomposer.org/doc/03-cli.md#require-r
2024-01-27 14:47:42,320: DEBUG - + ynh_die '--message=Unable to install core dependencies with Composer.'
2024-01-27 14:47:42,381: WARNING - Unable to install core dependencies with Composer.
2024-01-27 14:47:42,382: DEBUG - + ynh_exit_properly
2024-01-27 14:47:42,383: DEBUG - + [[ upgrade =~ ^install$|^upgrade$|^restore$ ]]
2024-01-27 14:47:43,881: ERROR - Could not upgrade roundcube: An error occurred inside the app upgrade script

Je vous joins également le lien avec les logs complets:

Ici

Même soucis sur du x86 : https://paste.yunohost.org/raw/onazamofoq
Il y a manifestement un soucis avec Composer.

Les lignes qui me semblent interessantes :

2024-01-27 17:15:07,443: DEBUG - Verifying lock file contents can be installed on current platform.
2024-01-27 17:15:07,511: DEBUG - Warning: The lock file is not up to date with the latest changes in composer.json. You may be getting outdated dependencies. It is recommended that you run `composer update` or `composer update <package name>`.
2024-01-27 17:15:07,512: DEBUG - - Required package "guzzlehttp/guzzle" is in the lock file as "6.5.8" but that does not satisfy your constraint "^7.3.0".
2024-01-27 17:15:07,512: DEBUG - - Required package "bacon/bacon-qr-code" is not present in the lock file.
2024-01-27 17:15:07,513: DEBUG - This usually happens when composer files are incorrectly merged or the composer.json file is manually edited.

Problème de version du paquet guzzlehttp/guzzle et absence de bacon/bacon-qr-code dans le lockfile ?

=> revoir le script d’upgrade pour ne pas demander la version 7.3 du premier package et le second, et forcer l’update/install de ces deux paquets ?

@ericg : Pas de maintenainers dans le manifest, mais je vois que tu as récemment commité.

Bonsoir,

J’ai le même souci. Je l’ai aussi signalé là :

ppr

1 Like

moi aussi même soucis, j’aurai du regarder avant de poster un autre message Roundcube upgarde failed

Du coup depuis cette tentative de mise à jour, je ne peux plus envoyer de mail :confused:

Est ce que vous avez eu ce type de problème?

Un contournement qui pour moi a fonctionné (sur plusieurs serveurs). renommer le fichier composer.lock en composer.lock.bkp, et lancer l’upgrade reconstruit ce fichier avec les mises à jour.
Un petit backup avant si ça vous fait peur

yunohost create backup --apps roundcube
mv /var/www/roundcube/composer.lock /var/www/roundcube/composer.lock.bkp
yunohost app upgrade roundcube

Après vérification, vous pouvez supprimer ce fichier

rm /var/www/roundcube/composer.lock.bkp
1 Like

Salut!

Merci pour le conseil, mais je joue de mal chance je me retrouve avec ce bug…

Il y a, à priori une solution mais je ne comprends pas comment mettre en application le script…

Hello!

thank you very much, i have tried your workaround and it works well for me.

nice greetings fichte

Bonjour,

Je viens d’effectuer le petit contournement que tu viens de proposer, et voici le souci :

Oops… something went wrong!

An internal error has occurred. Your request cannot be processed at this time.

For administrators: Please check the application and/or server error logs for more information.

Voici le log de l’upgrade :

Info : Mise à jour de roundcube…
Info : Creating a safety backup prior to the upgrade
Info : Collecte des fichiers devant être sauvegardés pour roundcube…
Info : Loading installation settings…
Info : Declaring files to be backed up…
Info : Backing up the MySQL database…
Info : Backup script completed for roundcube. (YunoHost will then actually copy those files to the archive).
Info : Création d’une archive de sauvegarde à partir des fichiers collectés …
Info : L’archive contiendra environ 57.6MB de données.
Succès ! Sauvegarde créée : roundcube-pre-upgrade1
Info : Provisioning sources…
Info : Updating system_user…
Info : Updating install_dir…
Info : Provisioning permissions…
Info : Provisioning apt…
Info : Provisioning database…
Info : […] > Ensuring downward compatibility…
Info : [+…] > Upgrading source files…
Info : [#+…] > Upgrading PHP-FPM configuration…
Info : [##…] > Reconfiguring Roundcube…
Info : [##++++++++…] > Updating dependencies with Composer…
Info : [##########+++++++…] > Upgrading additional plugins…
Info : [#################+…] > Updating roundcube configuration…
Attention : In Factory.php line 697:
Attention : The HOME or COMPOSER_HOME environment variable must be set for composer to
Attention : run correctly
Attention : update [–with WITH] [–prefer-source] [–prefer-dist] [–prefer-install PREFER-INSTALL] [–dry-run] [–dev] [–no-dev] [–lock] [–no-install] [–no-audit] [–audit-format AUDIT-FORMAT] [–no-autoloader] [–no-suggest] [–no-progress] [-w|–with-dependencies] [-W|–with-all-dependencies] [-v|vv|vvv|–verbose] [-o|–optimize-autoloader] [-a|–classmap-authoritative] [–apcu-autoloader] [–apcu-autoloader-prefix APCU-AUTOLOADER-PREFIX] [–ignore-platform-req IGNORE-PLATFORM-REQ] [–ignore-platform-reqs] [–prefer-stable] [–prefer-lowest] [-i|–interactive] [–root-reqs] [–] […]
Info : [##################+.] > Updating roundcube core…
Attention : In Factory.php line 697:
Attention : The HOME or COMPOSER_HOME environment variable must be set for composer to
Attention : run correctly
Attention : update [–with WITH] [–prefer-source] [–prefer-dist] [–prefer-install PREFER-INSTALL] [–dry-run] [–dev] [–no-dev] [–lock] [–no-install] [–no-audit] [–audit-format AUDIT-FORMAT] [–no-autoloader] [–no-suggest] [–no-progress] [-w|–with-dependencies] [-W|–with-all-dependencies] [-v|vv|vvv|–verbose] [-o|–optimize-autoloader] [-a|–classmap-authoritative] [–apcu-autoloader] [–apcu-autoloader-prefix APCU-AUTOLOADER-PREFIX] [–ignore-platform-req IGNORE-PLATFORM-REQ] [–ignore-platform-reqs] [–prefer-stable] [–prefer-lowest] [-i|–interactive] [–root-reqs] [–] […]
Attention : Executing database schema update.
Attention : Executing php composer.phar to update dependencies…
Attention : -----------------------------------------------------------------------------
Attention : ATTENTION: Update dependencies by running php composer.phar update --no-dev
Attention : -----------------------------------------------------------------------------
Attention : This instance of Roundcube is up-to-date.
Attention : Have fun!
Info : [####################] > Installation of roundcube completed
Succès ! roundcube mis à jour
Succès ! Mise à jour terminée

Du coup la mise à jour s’est bien effectuée, il me semble que J’ai eu les mêmes retours.

Que te renvoi ?

yunohost app info roundcube

description: Webmail Open Source
domain_path: webmail.exemple.eu/
name: Roundcube - webmail.exemple.eu
version: 1.6.6~ynh1

Quand est-ce que tu as eu ce message ?? En tous les cas ta mise à jour c’est bien passée, l’application rouncube fonctionne ?

Non, il y a l’erreur que j’ai indiquée plus haut lorsque je tente d’accéder à l’application :

Oops… something went wrong!

An internal error has occurred. Your request cannot be processed at this time.

For administrators: Please check the application and/or server error logs for more information.

Zut ! Pourtant j’ai pu mettre à jour 4 serveurs sans soucis…
Essaie déjà de restaurer la sauvegarde, si tu as suivi mes conseils tu dois en avoir une avec la date effectué avant de lancer la mise à jour.
Pour cela, tu supprimes d’abord l’application et tu restaures la sauvegarde

yunohost app remove roundcube
yunohost backup list   # pour trouver la sauvegarde en 20240127-XXXXXX
yunohost backup restore 20240127-XXXXXX --apps

Où bien trouver si il y a un moyen de corriger l’erreur… mais je ne suis pas sûr…
Tu n’as pas d’autres logs ?

Bonjour,

C’est ce que je disais plus haut dans le fil, j’ai également eu le problème au moment d’appliquer ta solution @rodinux.
La réponse a été trouvée mais je ne sais pas l’appliquer, j’ai mis en lien au dessus le post où se trouve la solution.

A priori sur Git il y a un script modifié qu’on peut appliquer manuellement. Mais je ne sais pas me servir de Git et je ne vois pas à quelle endroit on télécharge le script.
En plus tout est en anglais et je galère un peu :smiley:

Pour l’instant ça n’a pas l’air tout à fait au point encore…

Vous n’avez pas gardé une sauvegarde ? Je préconisait d’en faire une avant de renommer le fichier composer.lock avec cette commande

Si vous en avez une, n’hésitez pas à supprimer l’app actuelle et à la restaurer…

@rodinux

Oui, j’avais fait des sauvegardes, que j’ai restauré.
Mon Roundcube est fonctionnel.

Si tu veux tester ce script proposé (en effectuant une sauvegarde auparavant, j’ai des doutes sur sa validité tout de même) tu peux simplement essayer d’utiliser cette commande

yunohost app upgrade roundcube -u https://github.com/HugoPoi/roundcube_ynh/tree/fix-upgrade-script --debug

Mais je suis pas sûr du résultat… Ou bien désinstaller roundcube et le réinstaller…

Cela ne marche pas non plus. Je vais tenter une réinstallation complète…