PHP 5.3 issues

Still-open compatibility problems in 0.9.x with PHP 5.3.0

Core
Some breakage due to DB_DataObject ini file problem; at least loading attachments is broken.
 *  Now worked around in 0.9.x.  --brion 19:24, 12 February 2010 (UTC)

Logins don't work on Fedora 12, MacPorts
 *  Now fixed in 0.9.x.  A session cookie check via $_REQUEST fails on systems where PHP's new request_order config variable doesn't include cookies. Checking $_GET and $_COOKIE explicitly resolves the issue. --brion 23:55, 12 February 2010 (UTC)

Specific 5.2 vs 5.3 versions (PEAR mostly)
 * 5.2.10 has issues with extlib, but going to 5.3.1 exposes more issues (see below). However, the 5.2.12 prebundled rpms from IUS at http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/i386/  work great.  YMMV.

OpenID
Broken by the OpenID libraries in extlib.
 *  Fixed library in 0.9.3  --brion 14:46, 29 June 2010 (UTC)

DB_DataObject

 *  Now worked around in 0.9.x -- moved offending entry from statusnet.links.ini to a method override in Nonce.php --brion 19:24, 12 February 2010 (UTC)


 * PHP Warning: syntax error, unexpected ',' in classes/statusnet.links.ini on line 23

parse_ini_file barfs on statusnet.links.ini here: [nonce] consumer_key,token = token:consumer_key,token

Upstream regression in PHP 5.3.0?
 * Fixed bug #45956 (parse_ini_file does not return false with syntax errors in parsed file). (Jani) <- looks damn suspicious


 * "Note: If a value in the ini file contains any non-alphanumeric characters it needs to be enclosed in double-quotes ("). "
 * "Note: There are reserved words which must not be used as keys for ini files. These include: null, yes, no, true, false, on, off, none. Values null, no and false results in "", yes and true results in "1". Characters {}|&~![^" must not be used anywhere in the key and have a special meaning in the value."

Can't work around this by commenting out as we have a key as well as value containing comma. While the doc doesn't say you can't use commas in keys, even quoted looks like no dice in the key.

We end up missing data needed to do joins; attachment view is an example of something that fails: GET /mublog/attachment/1 lib/attachmentnoticesection.php:61 no such field : SELECT *, post_id as id    FROM notice           ORDER BY created desc    [nativecode=1054 ** Unknown column 'post_id' in 'field list']

PEAR Mail

 * PHP Deprecated: Assigning the return value of new by reference is deprecated in /usr/lib/php/Mail.php on line 154
 * PHP Deprecated: Assigning the return value of new by reference is deprecated in ./extlib/Mail/mimeDecode.php on line 324
 * PHP Deprecated: Assigning the return value of new by reference is deprecated in ./extlib/Mail/smtp.php on line 312

Auth/Yadis

 * PHP Deprecated: Assigning the return value of new by reference is deprecated in extlib/Auth/Yadis/XRDS.php on line 355

Auth/OpenID

 * PHP Deprecated: Assigning the return value of new by reference is deprecated in extlib/Auth/OpenID/Consumer.php on line 271
 * PHP Deprecated: Assigning the return value of new by reference is deprecated in extlib/Auth/OpenID/Consumer.php on line 273
 * PHP Deprecated: Assigning the return value of new by reference is deprecated in extlib/Auth/OpenID/Server.php on line 1100
 * PHP Deprecated: Assigning the return value of new by reference is deprecated in extlib/Auth/OpenID/Server.php on line 1680
 * PHP Deprecated: Assigning the return value of new by reference is deprecated in extlib/Auth/OpenID/Server.php on line 1681
 * PHP Deprecated: Assigning the return value of new by reference is deprecated in extlib/Auth/OpenID/Server.php on line 1682


 * http://trac.openidenabled.com/trac/ticket/347 (worked around) (temporary break link, fix it, if possible)
 * http://trac.openidenabled.com/trac/ticket/337 (temporary break link, fix it, if possible)
 * http://trac.openidenabled.com/trac/ticket/338 (temporary break link, fix it, if possible)

HTTP/Request

 * PHP Deprecated: Assigning the return value of new by reference is deprecated in ./extlib/HTTP/Request.php on line 412
 * PHP Deprecated: Assigning the return value of new by reference is deprecated in ./extlib/HTTP/Request.php on line 736
 * PHP Deprecated: Assigning the return value of new by reference is deprecated in ./extlib/HTTP/Request.php on line 749
 * PHP Deprecated: Assigning the return value of new by reference is deprecated in ./extlib/HTTP/Request.php on line 794