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