FreeBSD Horde php4.4.0 Error
* Note that this is a old article saved from a previous blog
So today I upgraded my PHP version to 4.4.0 on this FreeBSD box, Everything seemed to be okay untill I loaded up my webmail thats running Horde. I got a few errors:
Notice: Only variable references should be returned by reference in /webmail/horde/lib/Horde/Notification.php on line 98 Notice: Only variable references should be returned by reference in /webmail/horde/kronolith/lib/Kronolith.php on line 459
So crap, that looks like a bug in horde, as I was a version behind on horde I patched my horde, imp, kronolith to the latest version to see if that fixed it.
But badly enough it didn’t fixed it
After searching the bug list I found it here bug nr 2261. Here they notice that its a bug in PHP, and someone els that it can be fixed by removing the ‘&’s.
This is a backward compatibility break in PHP, so don't blame us. We are fixing those notices where we see them, any help in form of patches is welcome.
I don’t know if this really work, but the error message goes away 🙂
horde/lib/Horde/IMAP/Tree.php Remove the & on line 292. horde/lib/Horde/Notification.php Remove the & on line 94.
Well the last option certainly works. I like to have a patch for it to not get in trouble upgrading to new versions.
After checking the mailing lists I noticed it was partially fixed in rc2, So it was time to upgrade to rc2.
# cd /webmail/horde/ # wget http://ftp.horde.org/pub/horde/patches/patch-horde-3.0.4-3.0.5-rc1.gz # gunzip patch-horde-3.0.4-3.0.5-rc1.gz # patch -p1 < patch-horde-3.0.4-3.0.5-rc1 # wget http://ftp.horde.org/pub/horde/patches/patch-horde-3.0.5-rc1-3.0.5-rc2.gz # gunzip patch-horde-3.0.5-rc1-3.0.5-rc2.gz # patch -p1 < patch-horde-3.0.5-rc1-3.0.5-rc2
Well this seemed to fix it in horde, but still had it in kronolith but there is no fix in kronolith for it yet.. So I had to fix that manually.
Checking the code I had to remove the & on line 366 before _getEvents.
# cd /webmail/horde/kronolith/lib # cp Kronolith.php Kronolith.php.bak # vi Kronolith.php And change line 366 from: function &_getEvents(&$results, &$event, $startDate, $endDate, to: function _getEvents(&$results, &$event, $startDate, $endDate,
That fixed it for now, now its time to wait for the official patch :)..