[MacPorts] #34391: php: remove readline dependency

MacPorts noreply at macports.org
Wed May 9 23:17:59 PDT 2012


#34391: php: remove readline dependency
-------------------------------------+--------------------------------------
 Reporter:  ryandesign@…             |       Owner:  ryandesign@…           
     Type:  enhancement              |      Status:  new                    
 Priority:  Normal                   |   Milestone:                         
Component:  ports                    |     Version:                         
 Keywords:                           |        Port:  php                    
-------------------------------------+--------------------------------------
 The PHP SAPIs currently depend on readline. PHP is under the PHP license
 while readline is under the GPL and these two licenses are incompatible
 with one another. This is a problem because it means we cannot distribute
 binaries of the PHP ports. So I would like to remove the readline
 dependency.

 PHP's readline dependency is partly a holdover from when php5 was a
 monolithic port. In #19091 I wanted to separate all the extensions into
 their own ports, and php5-readline became its own port in r53781, but was
 merged back into the php5 port in r56346. At the time I didn't document
 why, but the reason was that PHP has an interactive mode, "php -a", which
 supports readline, but only if it is built into PHP, not if it is built as
 a standalone extension.

 A [https://bugs.php.net/bug.php?id=53878 PHP bug report was filed] about
 this in January 2011 and it was [https://github.com/php/php-
 src/commit/6c734a6b4c9ecf90162cf53fcf5f89864ccabbde fixed in PHP trunk] in
 February 2011. But that fix has not been back-ported to PHP 5; I expect
 users won't benefit from this fix until the release of PHP 6. The fix
 seems to affect a lot of files and contain more than a small amount of
 code and I don't know the PHP source code at all so I don't feel
 comfortable trying to back-port it to PHP 5 myself.

 Readline was already an indirect dependency of php5 via the pcre port so
 there was no advantage at the time to removing the direct readline
 dependency. And regular expressions are a central feature of PHP which
 most PHP web sites probably use so there was no point separating out the
 pcre extension. But in the past year, the pcre port has been switched from
 readline to libedit, in r84236, to make it distributable. So now there is
 benefit in removing the readline dependency from PHP, to make it
 distributable too.

 PHP can use libedit instead of readline. There is one problem with just
 replacing readline with libedit in PHP: there is one function,
 [http://www.php.net/readline-list-history readline_list_history()], which
 is only available when the readline extension is built using the readline
 library, and not when it is built using the libedit library. Therefore
 there should be variants for letting the user choose libedit or readline,
 with libedit being the default.

 Also, there's no reason readline functionality should be available in any
 SAPI other than the CLI.

-- 
Ticket URL: <https://trac.macports.org/ticket/34391>
MacPorts <http://www.macports.org/>
Ports system for Mac OS


More information about the macports-tickets mailing list