mirror of
https://github.com/php/php-src.git
synced 2024-10-17 22:42:38 +00:00
89 lines
2.6 KiB
Plaintext
89 lines
2.6 KiB
Plaintext
Author: Tomas V.V.Cox <cox@idecnet.com>
|
|
Revision: $Id$
|
|
Abstract: Open discussion on how to handle PECL binary packages
|
|
|
|
|
|
pecl package name
|
|
-----------------
|
|
|
|
The name of the extension would be:
|
|
|
|
peclfoo-bin-<OS>-<ARCH>-3.1.2.tgz
|
|
|
|
The os (Operating system) and arch (CPU type), would be the value
|
|
returned by the OS_Guess class.
|
|
|
|
package creation
|
|
----------------
|
|
|
|
pear package [-t <type>] <package>
|
|
|
|
-t <type> The type of package you want to generate (pear, rpm,
|
|
msi, src, etc)
|
|
|
|
Without args it will package the extension as it does nowadays (the
|
|
same as "-t src").
|
|
|
|
We have now native pear packages, rpm, msi is planned and others
|
|
will surely come. Additionally of generating the native package description
|
|
file, we could perhaps also call the tools for generating the whole package.
|
|
|
|
An idea would be to create in addition a BUILDINFO.txt file with some data about
|
|
the env where the extension was compiled at, like the
|
|
php version, the php_uname(), the extra libs versions, os vendor
|
|
version, pear version, etc.
|
|
|
|
package.xml
|
|
-----------
|
|
|
|
As a binary release shares the same release data with the source
|
|
distrib, the same package.xml file could be used for all kind of
|
|
distribs. Let's say something like:
|
|
|
|
<release>
|
|
<version>...
|
|
<date>
|
|
<notes>
|
|
<filelist>..
|
|
<file role="ext" platform="">
|
|
</filelist>
|
|
</release>
|
|
|
|
A package may contain many compiled extensions for different platforms,
|
|
one single extension or the sources.
|
|
|
|
|
|
Installation
|
|
------------
|
|
|
|
pear install -t bin peclfoo (download and install the binary distrib of
|
|
peclfoo for your current OS-ARCH)
|
|
|
|
pear install peclfoo (download, build and install peclfoo)
|
|
|
|
All the files with role="ext" would be installed
|
|
in "ext_dir" (pear cmd setting). The user can config it with "pear config-set ext_dir=XXX".
|
|
If this var is not explicitly set, the following will be used for
|
|
finding a default location:
|
|
|
|
if (getenv('PHP_PEAR_EXTENSION_DIR')) {
|
|
define('PEAR_CONFIG_DEFAULT_EXT_DIR', getenv('PHP_PEAR_EXTENSION_DIR'));
|
|
} else {
|
|
if (ini_get('extension_dir')) {
|
|
define('PEAR_CONFIG_DEFAULT_EXT_DIR', ini_get('extension_dir'));
|
|
} elseif (defined('PEAR_EXTENSION_DIR') && @is_dir(PEAR_EXTENSION_DIR)) {
|
|
define('PEAR_CONFIG_DEFAULT_EXT_DIR', PEAR_EXTENSION_DIR);
|
|
} elseif (defined('PHP_EXTENSION_DIR')) {
|
|
define('PEAR_CONFIG_DEFAULT_EXT_DIR', PHP_EXTENSION_DIR);
|
|
} else {
|
|
define('PEAR_CONFIG_DEFAULT_EXT_DIR', '.');
|
|
}
|
|
}
|
|
|
|
Listing in the web
|
|
------------------
|
|
|
|
A new column "Type" should be added to the release listing under the
|
|
package home page at pear.php.net, saying that the package is a binary
|
|
distrib compiled for OS X and ARCH Y or sources.
|