Package: php-openid
Version: 2.2.2-1
Severity: important

In squeeze, php5 5.3.3 is the default.  However, php-openid as
packaged triggers "Call-time pass-by-reference" errors in php >= 5.3

A circulating patch, that is distributed with the MediaWiki OpenID
extension, removes the offending '&' characters, but I'd prefer to 
use unmangled Debian packages when possible (besides which the patch's
line numbers seem to be 3 smaller than those in the files in the 
debian .orig source package).

Patch: 
Described at http://www.mediawiki.org/wiki/Extension:OpenID , under
requisite 1 / "patch for PHP > 5.3.x"
Specific patch file packaged with mediawiki extension, is attached.

I haven't tested wheezy, but expect the same problem & solution would
apply there.

Thanks much!
-arthur prokosch
system administrator
MIT Computer Science and Artificial Intelligence Lab.

---- from MediaWiki trunk, r107299, OpenID/patches/php-openid-2.2.2.patch ----

diff -bru _Auth//OpenID/Consumer.php Auth//OpenID/Consumer.php
--- _Auth//OpenID/Consumer.php  2010-04-29 22:41:05.000000000 +0200
+++ Auth//OpenID/Consumer.php   2011-02-03 12:17:42.000000000 +0100
@@ -666,7 +666,7 @@
                                         '_completeInvalid');
 
         return call_user_func_array(array($this, $method),
-                                    array($message, &$endpoint, $return_to));
+                                    array($message, $endpoint, $return_to));
     }
 
     /**
@@ -1181,7 +1181,7 @@
         // oidutil.log('Performing discovery on %s' % (claimed_id,))
         list($unused, $services) = call_user_func($this->discoverMethod,
                                                   $claimed_id,
-                                                                               
                  &$this->fetcher);
+                                                                               
                  $this->fetcher);
 
         if (!$services) {
             return new Auth_OpenID_FailureResponse(null,
diff -bru _Auth//OpenID/Server.php Auth//OpenID/Server.php
--- _Auth//OpenID/Server.php    2010-04-29 22:41:05.000000000 +0200
+++ Auth//OpenID/Server.php     2011-02-03 12:18:56.000000000 +0100
@@ -1704,7 +1704,7 @@
     {
         if (method_exists($this, "openid_" . $request->mode)) {
             $handler = array($this, "openid_" . $request->mode);
-            return call_user_func($handler, &$request);
+            return call_user_func($handler, $request);
         }
         return null;
     }
diff -bru _Auth//OpenID/TrustRoot.php Auth//OpenID/TrustRoot.php
--- _Auth//OpenID/TrustRoot.php 2010-04-29 22:41:05.000000000 +0200
+++ Auth//OpenID/TrustRoot.php  2011-02-03 12:19:24.000000000 +0100
@@ -413,7 +413,7 @@
     }
 
     call_user_func_array($discover_function,
-                         array($relying_party_url, &$fetcher));
+                         array($relying_party_url, $fetcher));
 
     $return_to_urls = array();
     $matching_endpoints = Auth_OpenID_extractReturnURL($endpoints);
diff -bru _Auth//Yadis/Manager.php Auth//Yadis/Manager.php
--- _Auth//Yadis/Manager.php    2010-04-29 22:41:05.000000000 +0200
+++ Auth//Yadis/Manager.php     2011-02-03 12:20:44.000000000 +0100
@@ -413,7 +413,7 @@
 
             list($yadis_url, $services) = call_user_func($discover_cb,
                                                          $this->url,
-                                                         &$fetcher);
+                                                         $fetcher);
 
             $manager = $this->createManager($services, $yadis_url);
         }
diff -bru _Auth//Yadis/XRDS.php Auth//Yadis/XRDS.php
--- _Auth//Yadis/XRDS.php       2010-04-29 22:41:05.000000000 +0200
+++ Auth//Yadis/XRDS.php        2011-02-03 12:19:58.000000000 +0100
@@ -429,7 +429,7 @@
 
                 foreach ($filters as $filter) {
 
-                    if (call_user_func_array($filter, array(&$service))) {
+                    if (call_user_func_array($filter, array($service))) {
                         $matches++;
 
                         if ($filter_mode == SERVICES_YADIS_MATCH_ANY) {
diff -bru _Auth//Yadis/Yadis.php Auth//Yadis/Yadis.php
--- _Auth//Yadis/Yadis.php      2010-04-29 22:41:05.000000000 +0200
+++ Auth//Yadis/Yadis.php       2011-02-03 12:20:26.000000000 +0100
@@ -141,7 +141,7 @@
     }
 
     $yadis_result = call_user_func_array($discover_func,
-                                         array($input_url, &$fetcher));
+                                         array($input_url, $fetcher));
 
     if ($yadis_result === null) {
         return array($input_url, array());


-- System Information:
Debian Release: 6.0.3
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.32-5-amd64 (SMP w/1 CPU core)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages php-openid depends on:
ii  php5                    5.3.3-7+squeeze3 server-side, HTML-embedded scripti
ii  php5-curl               5.3.3-7+squeeze3 CURL module for php5
ii  php5-gmp                5.3.3-7+squeeze3 GMP module for php5

php-openid recommends no packages.

Versions of packages php-openid suggests:
pn  php-db                        <none>     (no description available)

-- no debconf information



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to