Table des matières

RoundCube: Migration sous Debian Jessie

rouncube 1.1.2

Roundcube” 1.1.2 est disponible sur les backports de Jessie.

La migration de “wheezy-backport” vers “jessie-backport” n'est pas sans problème.

Voici quelques notes pour mémoire.

~~READMORE~~

wheezy -> jessie

Il semblerait que la version de roundcube qui vient avec “wheezy” backport soit un peu buggé, au point qu'il est difficile de la mettre à jour vers jessie.

Après maintes tests (merci la virtualisation), voila comment faire pour qu'une mise à jour fonctionne sans incident.

:!: On n'est jamais censé faire ça, mais je n'ai pas trouver plus simple.

Etape 1

Faire la mise à jour de votre système vers “JessieSANS modifier les backports: laissez sur “wheezy”.

Sinon, entre autres problèmes, il y a “dbconfig” qui essaye, sans succès, de mettre à jour la base de données de “roundcube”.

Etape 2 : des modifications

Donc, le système est sous “Jessie” , mais “roundcube” est encore en version “backports wheezy”.

D'abord, faire une backup du fichier “/etc/roundcube/main.inc.php” :

# cp -p /etc/roundcube/main.inc.php /var/backups/

(parce que la migration va virer ce fichier!)

Modifier des trucs dans ce fichier “/var/lib/dpkg/info/roundcube-core.postrm” , en commentant comme ceci:

# --- TJ ------------
#apache2_invoke disconf roundcube.conf
# -------------------

Déplacer ce répertoire ailleurs:

# mv /usr/share/doc/roundcube/main.inc.php.dist /var/backups/

Renommer ce lien vers la config.

# mv /var/lib/roundcube/{,old-}config

Voila: on est prêt a migrer “roundcube” sans incident…

Mise à jour

Modifier le fichier “/etc/apt/sources.list” pour avoir les backports “jessie”:

# Backports
# Pour "roundcube"
deb http://ftp.fr.debian.org/debian/ jessie-backports main contrib non-free
deb-src http://ftp.fr.debian.org/debian/ jessie-backports main contrib non-free

Et puis:

# aptitude update
# aptitude dist-upgrade
Les NOUVEAUX paquets suivants vont être installés :     
  php-mail-mimedecode{a} php-net-ldap2{a} php-net-ldap3{a} php-net-sieve{a} php5-ldap{a} 
Les paquets suivants seront ENLEVÉS : 
  libjs-jquery-ui{u} tinymce{u} 
Les paquets suivants seront mis à jour : 
  roundcube roundcube-core roundcube-mysql roundcube-plugins 
4 paquets mis à jour, 5 nouvellement installés, 2 à enlever et 0 non mis à jour.
Il est nécessaire de télécharger 2 706 ko/2 724 ko d'archives. Après dépaquetage, 2 301 ko seront utilisés.
Voulez-vous continuer ? [Y/n/?] Y
...

A l'invite pour écraser des fichiers, dites toujours “Y” (pour “Oui”)

Fichiers modifiés:

configuration

La conf dans “main.inc.php” a disparu au profit de “config.inc.php” et de “default.inc.php”.

Vous pouvez recopier (en l'adaptant légèrement) votre configuration de “main.inc.php” vers “config.inc.php”.

Tips

Quelques petites surprises qui viennent avec la nouvelle versions de “roundcube”…

self-signed

Comme d'habitude, OpenSSL est peu verbeux sur les erreurs … mais il y a un grand classique dans les erreurs: les certificats auto-signés.

Pour pouvoir les utiliser en “imap” et en “smtp”, ajouter:

$config['default_host'] = 'ssl://imap.gmail.com';     // <- FAKE pour l'exemple
$config['default_port'] = 993;

$config['imap_conn_options'] = array(
  'ssl' => array( allow_self_signed => true, ),
);

$config['smtp_server'] = 'tls://smtp.gmail.com';      // <- FAKE pour l'exemple
$config['smtp_port'] = 587;      // port submission

$config['smtp_conn_options'] = array(
  'ssl' => array( allow_self_signed => true, ),
);

Errors dans les logs

jqueryui

Dans “/var/log/roundcube/errors” :

 ... PHP Error: Failed to load config from /var/lib/roundcube/plugins/jqueryui/config.inc.php 

La conf la dedans “/etc/roundcube/plugins/jqueryui/config.inc.php” est vide …

Donc, j'ai fait ça:

# cp /usr/share/roundcube/plugins/jqueryui/config.inc.php.dist /etc/roundcube/plugins/jqueryui/config.inc.php

PEAR

... PHP Deprecated:  Non-static method PEAR::isError() should not be called statically, assuming $this from incompatible context in /usr/share/php/Net/SMTP.php on line 1132

Dans le fichier “/usr/share/roundcube/program/lib/Roundcube/bootstrap.php” ajouter “& ~E_DEPRECATED” , pour avoir (extrait):

...
$config = array(
    // --- TJ -------------------------    
    //'error_reporting'         => E_ALL & ~E_NOTICE & ~E_STRICT,
    'error_reporting'         => E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED,
    // --------------------------------
    // Some users are not using Installer, so we'll check some
    // critical PHP settings here. Only these, which doesn't provide
    // an error/warning in the logs later. See (#1486307).
    'mbstring.func_overload'  => 0,
    'magic_quotes_runtime'    => false,
    'magic_quotes_sybase'     => false, // #1488506
);
...

Les logs sont beaucoup moins bavard (sans régler le problème de fond).

Sources: