Aller au contenu

Mise


lagaffe

Messages recommandés

Devant les nombreuses demandes, Voici ma procédure, avec un peu de retard (mais je décline toute responsabilité) :
vous devez bien sûr avoir déjà installé le package MailStation fourni par Synology (ce tuto est basé sur la version de synology du 04/02/2013).

Il faut savoir que cette mise à jour engendre quelques restrictions :

  • l'"onglet" admin n'est plus disponible pour le compte admin
  • l'onglet POP3 n'est plus disponible pour les utilisateurs
  • pas de possibilité de retour arrière (je n'ai pas trouvé la procédure pour sauvegarder la base) => retour arrière par désinstall/Réinstall du package
  • pas de garantie d'upgrade avec les futurs mises à jour fournient par Synology

on commence par créer le fichier indexcontacts.sh ici : /volume1/@appstore/MailStation/roundcubemail/bin/


se connecter en ssh avec le compte root à votre syno
puis copier l'intégrité du code ci dessous dans le fichier indexcontacts.sh :

#!/usr/bin/env php
<?php
/*

 +-----------------------------------------------------------------------+
 | bin/indexcontacts.sh                                                  |
 |                                                                       |
 | This file is part of the Roundcube Webmail client                     |
 | Copyright © 2011, The Roundcube Dev Team                            |
 |                                                                       |
 | Licensed under the GNU General Public License version 3 or            |
 | any later version with exceptions for skins & plugins.                |
 | See the README file for a full license statement.                     |
 |                                                                       |
 | PURPOSE:                                                              |
 |   Update the fulltext index for all contacts of the internal          |
 |   address book.                                                       |
 +-----------------------------------------------------------------------+
 | Author: Thomas Bruederli <roundcube@gmail.com>                        |
 +-----------------------------------------------------------------------+

 $Id$

*/

define('INSTALL_PATH', realpath(dirname(__FILE__) . '/..') . '/' );

require_once INSTALL_PATH.'program/include/clisetup.php';
ini_set('memory_limit', -1);

// connect to DB
$RCMAIL = rcmail::get_instance();

$db = $RCMAIL->get_dbh();
$db->db_connect('w');

if (!$db->is_connected() || $db->is_error())
    die("No DB connectionn");

// iterate over all users
$sql_result = $db->query("SELECT user_id FROM " . $RCMAIL->config->get('db_table_users', 'users')." WHERE 1=1");
while ($sql_result && ($sql_arr = $db->fetch_assoc($sql_result))) {
    echo "Indexing contacts for user " . $sql_arr['user_id'] . "...";
    
    $contacts = new rcube_contacts($db, $sql_arr['user_id']);
    $contacts->set_pagesize(9999);
    
    $result = $contacts->list_records();
    while ($result->count && ($row = $result->next())) {
        unset($row['words']);
        $contacts->update($row['ID'], $row);
    }

    echo "done.n";
}

?>

pour ce faire on exécute les commande suivantes :

cd /volume1/@appstore/MailStation/roundcubemail/bin/
vi indexcontacts.sh

on colle ensuite le contenu du code dans ce fichier, puis on le sauvegarde.

on modifie les droits de ce fichier :

chmod +x indexcontacts.sh
chown nobody:nobody indexcontacts.sh

puis on créé un lien symbolique vers ce fichier :

cd /usr/syno/bin/
ln -s ../../../volume1/@appstore/MailStation/roundcubemail/bin/indexcontacts.sh

Ensuite, on récupère les sources de la nouvelle version de roundcube ici la version 0.8.5 :

cd /tmp
wget http://iweb.dl.sourceforge.net/project/roundcubemail/roundcubemail/0.8.5/roundcubemail-0.8.5.tar.gz

on "détare" ensuite cette nouvelle version :

tar -zxvf roundcubemail-0.8.5.tar.gz

on modifie les droits des nouveaux fichiers :

chown -R nobody:nobody roundcubemail-0.8.5

On sauvegarde la version d'origine (même si à l'heure actuelle, on ne peut pas faire marche arrière, car pas de sauvegarde de la base), le retour arrière (avec la version Synology) se faisant par une désinstall/réinstall du package)

On commence par arrêter le package :

On se connecte à l'interface d'admin de votre Syno via votre navigateur favoris : http://adresseip:5000, on se connecte avec le compte admin
On va dans le Centre de paquets et on click sur arrêter (pour le package Mail Station)

puis on revient à la session ssh :

cd /volume1/@appstore/MailStation
tar -czvf ../roundcubemail_originesyno.tgz ./roundcubemail/

puis :

cd roundcubemail
rm -fR index.php README program bin
cd /tmp/roundcubemail-0.8.5
cp -p index.php LICENSE INSTALL CHANGELOG robots.txt UPGRADING README.md /volume1/@appstore/MailStation/roundcubemail/
cd config
cp -p *.dist . /volume1/@appstore/MailStation/roundcubemail/config/
cd ..

on synchronise les répertoires installer, program, bin, SQL, skins et plugins :

rsync -arv ./installer /volume1/@appstore/MailStation/roundcubemail
rsync -arv ./program /volume1/@appstore/MailStation/roundcubemail
rsync -arv ./bin /volume1/@appstore/MailStation/roundcubemail
rsync -arv ./SQL /volume1/@appstore/MailStation/roundcubemail
rsync -arv ./skins /volume1/@appstore/MailStation/roundcubemail
rsync -arv ./plugins /volume1/@appstore/MailStation/roundcubemail

on réalise maintenant la migration en tant que tel :

cd /volume1/@appstore/MailStation/roundcubemail/bin
./update.sh 

A la question ::

What version are you upgrading from? Type '?' if you don't know.

On répond ;

0.4.2

Ensuite il y a quelques WARNING à ne pas prendre en compte :

WARNING: Missing config options:
...
WARNING: Replaced config options:
...
NOTICE: Obsolete config options:
...

A la question :

Do you want me to fix your local configuration? (y/N)

répondre :

y

A la question :

Do you want to run the update queries to get the schmea fixed? (y/N)

répondre :

y

on va maintenant modifier le fichier main.inc.php (pour réactiver la fonction pop3 externe des comptes configuré avant cette migration) :

cd ../config
vi main.inc.php


ajouter (à la fin du fichier avant // end of config file) :

$rcmail_config['extmailallow'] = true;                          
$rcmail_config['extmailperiod'] = 5;

afin d'avoir ceci :

$rcmail_config['extmailallow'] = true;                                    
$rcmail_config['extmailperiod'] = 5;                                      
                                                                          
// end of config file

On revient au navigateur et on relance le package MailStation

Voilà, c'est fini, vous avez maintenant la dernière version roundcube à la date aujourd'hui.

Pour ceux qui n'ont pas encore testé cette version, ils vont être très agréablement surpris, il y a beaucoup de changements.

Bien sûr il serait préférable que Synology fournisse cet upgrade, afin de retrouver pleinement la configuration pop3 externe.

Lien vers le commentaire
Partager sur d’autres sites

Je n'ai pas encore osé franchir le pas. Peur de perdre mes emails + un peu d'espoir qu'une nouvelle version sorte avec DSM 4.2

A propos des pop3 externe: J'ai essayé d'analyser les différences entre la version 0.4 de Syno et la version 0.8.5.

Pourrais-tu essayer de voir dans le répertoire:

roundcubemail/program/steps/settings

Apriori le fichier func.inc a des paramètres en plus. Du genre la liste extmaillist existe dans la version Syno, mais pas dans la version RoundCube officiel.

J'ai l'impression que c'est là que les menus pour les pop externes sont défini.

Modifié par Lapin
Lien vers le commentaire
Partager sur d’autres sites

@Lapin, pour la perte d'Emails, normalement il n'y a pas de soucis, les Emails étant stocké dans la home directory des utilisateurs et non pas dans la base de données.

Pour le reste j'avais analysé la différence entre la version synology et la version roundcube et il y a plus d'une cinquantaine de fichiers de modifié ...

Pour le pop3 externe cela continue à fonctionner après la migration, par contre plus d'accès à l'onglet POP3 et donc plus possible de le paramétrer par là.

Concernant une nouvelle version de Synology, comme je l'indiquais, ça serait bien sûr l'idéale, mais bon j'y compte plus, espérons que je me trompe, je serais très heureux dans ce cas là.

Lien vers le commentaire
Partager sur d’autres sites

Merci pour toutes tes infos.

De mon côté je suis parti dans un projet un peu fou. J'ai fait une différence entre le roundcube 0.4.2 original et la version Syno pour extraire toutes les modifs qui ont été faites par Syno. Maintenant je suis en train d'essayer de remettre ces modifs dans le version 0.8.5. Par contre comme j'utilise mon NAS de façon intensive pour les emails, je ne veux pas prendre le risque de tester sur ma machine. Quand j'en aurais fini avec le 0.8.5 modifié je posterais l'archive sur le forum au cas où il y aurait un testeur fou dans le coin.... :rolleyes:

Modifié par Lapin
Lien vers le commentaire
Partager sur d’autres sites

Re-salut,

Voilà ce que j'ai essayé de faire:

J'ai utilisé SmartSynchronize pour faire un diff entre le RoundCube 0.4.2 des packages Syno et le 0.4.2 original.

Après a voir extrait les modifs j'ai essayé de les ré-integrer dans le RoundCube 0.8.5.

Cela m'a permit de générer une version modifiée de la 0.8.5

Le merge semble correct mis à part pour la partie graphique (roundcubemailskinslarry)

Malheureusement je n'ai pas de Syno adéquat pour faire des tests, de plus je n'y connais pas grands choses en Java, PHP et SQL pour débugger.

S'il y avait une bonne âme un peu folle qui était prête a tenter de faire fonctionner le bouzin, voici le lien:

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Merci Lagaffe pour ce tuto, j'ai mis à jour sans problèmes.

J'ai essayer d'installer sans succès le plugin calendar, je me retrouve avec une page blanche une fois le plugin installé.

Avez vous réussi a intaller des plugins ?

J'ai essayer l'installation de carddav et là c'est au moment de la création des tables dans la base de donné que ça bloque.

Merci

Lien vers le commentaire
Partager sur d’autres sites

@arnaud78, heureux que cela t'ai servi, pour le plugins, non je n'ai pas eu le temps de me pencher dessus, je suis un peu pris ailleurs pour le moment.

Mais de souvenir, il y a de grande chance qu'il faille importer manuellement la partie postgress pour que cela fonctionne, si je me souviens bien.

Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois après...

Bonjour à tous.

Voila un bon moment que je pioche des infos sur ce forum sans avoir poster.

J'ai trouvé quelque chose qui va peut être faire avancer le problème du POP3 avec la version 0.8.5.

Il faut ajouter le pluging pop3fetcher.

cf ce lien: https://github.com/morepaolo/roundcube-pop3fetcher/blob/master/README.md

Pour ma part, j'ai installer la version 0.8.5, mais j'ai des problèmes de database .... :(

Lien vers le commentaire
Partager sur d’autres sites

@Barbichon, en ayant suivi mon tuto tu as de problème de database ? car normalement la base est mise à jour.

[Edit] si tu parle de la base du plugin, c'est normal, ce dernier est pour mysql, alors que le roundcube de synology, utilise postgresql [/Edit]

Modifié par lagaffe
Lien vers le commentaire
Partager sur d’autres sites

Tout d'abord un grand merci ! Mise a jour vers 8.5 réalisé sans problème. Pour le coup le suivi de Syno sur roundcube est ... hasardeux !

J'ai vu que la version 8.6 était sortie, mais je n'ai pas tenté, n'étant pas a même de réparer en cas de problème.

Sinon j'ai une question : as-tu une piste ou des tutos pour inclure des plugins roundcube ? Je voudrai éventuellement inclure celui ci : https://github.com/graviox/Roundcube-CardDAV

Apparement nous n'avons pas accès à la base de données roundcube avec phpmyadmin pour ajouter des tables qui servent aux plugins. Une idée ?

Lien vers le commentaire
Partager sur d’autres sites

@BenGamin, De rien pour le tuto, ce forum sert à ça (le partage), j'ai pas encore eu le temps de regarder pour la version 0.8.6 (attendant la version 1.1.x avec le support gpg).

Pour les plugins il va falloir que j'y regarde. Pour la base de donnée, comme indiqué plus haut c'est normal, la base étant en postgresql et non pas en mysql.

Modifié par lagaffe
Lien vers le commentaire
Partager sur d’autres sites

Edit :

Bon j'ai trouvé comment installer un plugins,

Voila la manip pour celui que je parlais plus haut.


FAITE CETTE MANIP A VOS DEPENS !!!


Pour commencer regarder ici http://blog.idleman.fr/?p=2337, j'ai seulement adapté pour le syno.

- Dans votre DSM commencer par installer le package phpPgAdmin en ajoutant en source http://update.10trum.de/packageupdate/getpackages.php . Vérifiez bien que le paquage est lancé
- Téléchargez le plugin et décompressez le dans le répertoire plugins de votre roundcube (qui est normalement dans /volume1/@appstore/MailStation/roundcubemail/plugins/), renommez le dossier carddav pour plus de simplicité.
- Un petit

chown -R nobody:nobody carddav

pour éviter les problèmes.
- Renommez le fichier plugins/carddav/config.inc.php.dist en plugins/carddav/config.inc.php
- Connecter vous sur http://<IpDeVotreServer>/phpPgAdmin/ loguer vous en admin avec le mot de passe admin de votre dsm sur PostGreSQL by synology
- Allez sur la table : roundcubemail puis dans l'onglet SQL
- Lancez cette requete :

CREATE TABLE "carddav_server" (
"carddav_server_id" serial,
"user_id" int NOT NULL REFERENCES "users" ON DELETE CASCADE,
"url" varchar(255) NOT NULL,
"username" varchar(128) NOT NULL,
"password" varchar(128) NOT NULL,
"label" varchar(128) NOT NULL,
"read_only" int NOT NULL,
PRIMARY KEY ("carddav_server_id")
);

CREATE TABLE "carddav_contacts" (
"carddav_contact_id" serial,
"carddav_server_id" int REFERENCES "carddav_server" ON DELETE CASCADE,
"user_id" int,
"etag" varchar(64) NOT NULL,
"last_modified" varchar(128) NOT NULL,
"vcard_id" varchar(64),
"vcard" text NOT NULL,
"words" text,
"firstname" varchar(128) DEFAULT NULL,
"surname" varchar(128) DEFAULT NULL,
"name" varchar(255) DEFAULT NULL,
"email" varchar(255) DEFAULT NULL,
PRIMARY KEY ("carddav_server_id","user_id","vcard_id")
);

CREATE INDEX "user_id" ON "carddav_contacts" ("user_id");

- Une fois les tables créés on change le propriétaire des tables en roundcube
- Enfin activer le plugin en modifiant la ligne 378 du fichier /volume1/@appstore/MailStation/roundcubemail/config/main.inc.php :

$rcmail_config['plugins'] = array();

en

$rcmail_config['plugins'] = array(carddav);

Voila ! vous devrier avoir un nouvelle onglet CardDav dans les préférences de roundcube.

Modifié par BenGamin
Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

Bonsoir,

j'ai réussi a faire fonctionner un plugin pop3fetcher sur roundcube 0.8.6 aprèsa voir suivi le tuto de lagaffe

ci dessous le lien vers le fichier avec le plugin modifié et traduit et les instructions d'installatio:

Modifié par Matze
Lien vers le commentaire
Partager sur d’autres sites

@Matze, j'ai essayé pop3fetcher pour voir, effectivement cela fonctionne, par contre à la différence de celui proposé par Synology, il ne récupère que les nouveau Email et pas ceux déjà reçu avant l'installation de pop3fetcher, dû moins c'est le comportement que je constate chez moi.

Lien vers le commentaire
Partager sur d’autres sites

  • 4 semaines après...

@BenGamin, non je ne participe pas à ce package (on ne me l'a pas demandé), mais je pense que SynoCommunity est suffisamment "grande" pour le ne avoir besoin de mon aide, je pense qu'ils ont probablement créé un package en suivant le principe de mon install ou une autre, ce qui est une très bonne chose pour tout le monde.

Lien vers le commentaire
Partager sur d’autres sites

@BenGamin, non je ne participe pas à ce package (on ne me l'a pas demandé), mais je pense que SynoCommunity est suffisamment "grande" pour le ne avoir besoin de mon aide, je pense qu'ils ont probablement créé un package en suivant le principe de mon install ou une autre, ce qui est une très bonne chose pour tout le monde.

Anéfé, ça va grandement simplifier l''installation et la mise a jour. Je vais envoyer surement un mail pour demander quand ils vont mettre en "prod" le packet.

Lien vers le commentaire
Partager sur d’autres sites

  • 3 mois après...

Je suis d'accord, même s'il n'utilise pas les mêmes bases de données, ce tuto reste avec la base d'origine postgres, le package Synocommunity utilise (sauf erreur de ma part) la base mysql.

Mais c'est vrai autant n'avoir qu'un seul référentiel et donc le package Synocommunity.

Par contre à ce sujet le package Synocommunity. inclue t-il pop3fetcher ?

Lien vers le commentaire
Partager sur d’autres sites

Pas de plugins. Je suis en train de réinstaller manuellement les miens. :unsure:

Edit : Bon au final je n'arrive plus à installer mon plugin comme j'avais fait quelques postes plus haut...

je ne comprend pas ...

Comme c'est mysql, j'ai mis à jour la base mysql, fait les modif, pas grand chose qui change à part que c'est dans /volume1/@appstore/roundcube/share/roundcube/. Bien vérifié les propriétés. Bref tout. mais rien a faire je n'ai pas d'affichage du plugins dans mon roundcube.

Petite chose qui me chagrine aussi et ça pourrai venir de la : il n'y a plus de main.inc.php dans config/ mais un main.inc.php.dist. J'ai l'impression qu'il n'est as pris en compte, même si je fais une copie sans le .dist. il peux y avoir des fichier de config autre part ?

Modifié par BenGamin
Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.