Hello everybody,
lately in my company we’ve been working at a roundcube storage engine which allow roundcube to hook directly into dbmail (http://dbmail.org http://dbmail.org/) database engine bypassing all the IMAP stuff.
Everything basically is working great (you can check our work at https://github.com/skeyby/roundcube-dbmail https://github.com/skeyby/roundcube-dbmail if you like) right now, but we have a general problem I’d like to ask you about.
The problem lies in the PEAR libraries that are included in round cube’s composer.json.
We’ve seen roundcube is currently hooked to a (wrong) fork of Pear Mail mimeDecode). I say wrong because it’s a not official fork, PHP4 based, that doesn’t implement some of the functions that are available in official PEAR’s Mail mimeDecode. Furthermore the author of the fork has just published on his github that the fork will be soon cancelled because it’s not maintained anymore. In our plugin’s installation procedure we wrote instruction to change composer.json to map the official Pear Repository but that doesn’t seems like a good approach [1]… To give you some additional information Roundcube itself seems to work perfectly with the official PEAR Mail mimeDecode, so I really don’t understand why using the other one. Yesterday we run composer update on our installation of roundcube and Pear NET_SMTP got updated. Major highlights of the new version is the removal of the old PHP4 methods. That means that Net_SMTP::_send is gone, thus if you upgrade PEAR roundcube stops working. Same things happens with official PEAR Mail_mime that went from 1.8.9 to 1.9.0 RC and broke something else (I lost the log for that, sorry). We solved that by changing composer.json once again but…… [2]
Last thing I’m a bit confused about the fact that the official libraries are uppercased and the forked ones are lower case - we didn’t hit any problem with that, but I must admit that I’m a bit uncomfortable with that.
Thank you for any information you can provide us on the topic.
[1] change: "pear/mail_mime-decode": ">=1.5.5", to: "pear-pear.php.net/Mail_mimeDecode": ">=1.5.5" [2] change: "pear/mail_mime": ">=1.8.9", to: "pear/mail_mime": “1.8.9”, add "pear-pear.php.net/Mail_Mime": "1.8.9",
Andrea Brancatelli
On 08/05/2015 11:11 AM, Andrea Brancatelli wrote:
The problem lies in the PEAR libraries that are included in round cube’s composer.json.
There's a lot of work recently to make Roundcube and these PEAR libs working with PHP7. Some libs drop PHP4 compatibility which is good. So, we're currently in the switch process and not all works, but some issues has been already solved, e.g. git-master already does not use Mail_mimeDecode. Please, use git-master and give us some time to fix all issues around this switch. I think we should have all solved in git-master in a week. Later we'll work on stable branches.
On 08/05/2015 11:11 AM, Andrea Brancatelli wrote:
The problem lies in the PEAR libraries that are included in round cube’s composer.json.
Mail_mimeDecode. Please, use git-master and give us some time to fix all issues around this switch. I think we should have all solved in git-master in a week. Later we'll work on stable branches.
This sound promising!
Maybe in the meantime it’s better to update composer.json on the stable branch to hoot to the “correct” (old) version of the libs?
Thank you very much.
On Wed, Aug 5, 2015 at 11:31 AM, Andrea Brancatelli abrancatelli@schema31.it wrote:
On 08/05/2015 11:11 AM, Andrea Brancatelli wrote:
The problem lies in the PEAR libraries that are included in round cube’s composer.json.
Mail_mimeDecode. Please, use git-master and give us some time to fix all issues around this switch. I think we should have all solved in git-master in a week. Later we'll work on stable branches.
This sound promising!
Maybe in the meantime it’s better to update composer.json on the stable branch to hoot to the “correct” (old) version of the libs?
We already have a pull request for this pending: https://github.com/roundcube/roundcubemail/pull/282 but switching back to pear-pear.php.net is not necessarily the best way to fix it. But we're on it...
~Thomas