PHP packaging guidelines

Andreas Thienemann andreas at bawue.net
Fri May 26 10:22:17 UTC 2006


Hello Tibbs,

thx for the mail. Sorry, I couldn't attend yesterday as we had a working 
holliday and I was absent from the pc. *g*

On Thu, 25 May 2006, Jason L Tibbitts III wrote:

> I have updated http://fedoraproject.org/wiki/Packaging/PHP with the
> results of the discussion.  I have also included a log of the IRC
> discussion for those who would like to see the full rationale.
To answer a few points from the discussion:

[17:11] <spot> do we really need the additional naming scheme?
[17:12] <spot> does the end user care if it is PECL or PEAR?

Probably. A pear package can be easier included than a pecl package.
Consider a web-developer working on his machine. He has to create an app, 
running on $random webserver, probably a shared host.
He needs support for foo, which is available as pecl or pear.
He would choose pear, as it means he doesn't need root on the 
final webserver but in the worst case can just extract the tarball in the 
webroot.

And about the naming conflicts: It's possible. The pear and pecl projects 
are not sharing the same namespace. Thus a conflict could occur, even 
though I haven't looked into the matter if there are already conflicting 
names.


[17:14] <tibbs> cweyl: Do you happen to know what the upstream tarballs 
look like for each type of module?

The upstream Tarball is not prefixed by anything, so we can't just blindly 
follow upstream.


[17:19] * spot idly wonders how nice it would be to get a php (abi) define 
in the core php package

I have no idea how often the php-abi changes. But it would sure be nice to 
depend on a specific abi version.
Icing on the cake would be if the buildsystem would automatically enqueue 
the packages depending on a specific abi version, whenever the abi 
changes.
e.g. new httpd/php/whatever update, the buildsystem enqueues the packages 
depending on it.


[17:31] <spot> each package should Provide: php-FOO = 
%{version}-%{release}
[17:31] <spot> this way, we should catch the yum install php-FOO case

+q


[17:42] <spot> cweyl: i don't suppose the PEAR modules identify what php 
they need, do they?
[17:43] <cweyl> spot: typically in the README/install, or on pear.php.net

They do that. Quite detailed even.
Each package on pear/pecl has a list of requirements.

For PECL::Package::gnupg this looks like the following:

Dependencies
Release 1.2: 	PHP Version: PHP 4.3 or newer
Release 1.1: 	PHP Version: PHP 4.3 or newer
Release 1.0: 	PHP Version: PHP 4.3 or newer


For PEAR::Package::HTML_Progress2, it's a bit more:

Dependencies:

    * PHP Version: PHP 4.2.0 or newer
    * PEAR Package: PEAR Installer 1.4.3 or newer
    * PEAR Package: HTML_Common 1.2.1 or newer
    * PEAR Package: Event_Dispatcher 0.9.1 or newer
    * PHP Extension: gd
    * PEAR Package: PHP_Compat 1.4.1 or newer (optional)
    * PEAR Package: PEAR Installer 1.3.5 or newer (optional)
    * PEAR Package: HTML_QuickForm 3.2.4 or newer (optional)
    * PEAR Package: HTML_QuickForm_Controller 1.0.4 or newer (optional)
    * PEAR Package: Image_Color 1.0.1 or newer (optional)
    * PEAR Package: HTML_Page2 0.5.0 or newer (optional)
    * PEAR Package: HTML_Template_IT 1.1 or newer (optional)
    * PEAR Package: HTML_Template_Sigma 1.1.2 or newer (optional)
    * PEAR Package: Log 1.8.7 or newer (optional)


This is detailed enough to feed rpm with a nice list of Requires to 
satisfy.


Anything else I forgot?

regards,
 andreas




More information about the fedora-extras-list mailing list