Hello Tomas,

Why not using RPMs? Only windows is a problem, isn't it ?

regards
marcus


Thursday, June 19, 2003, 1:19:36 AM, you wrote:


TVVC> What about to start discussing about managment of binary pecl
TVVC> packages?

TVVC> I'm not the best person for listing the requirements, but here are some
TVVC> ideas:

TVVC> pecl package name
TVVC> -----------------

TVVC> The name of the extension would be:

TVVC> peclfoo-bin-<OS>-<ARCH>-3.1.2-<STATE>.tgz

TVVC> The os (Operating system) and arch (CPU type), would be the value
TVVC> returned by the OS_Guess class. STATE is a valid PEAR_Common package
TVVC> state.

TVVC> package creation
TVVC> ----------------

TVVC> pear build -b peclfoo-3.1.2.tgz

TVVC> The -b (or --bin) option generates the package containing only the
TVVC> compiled extension and the files marked with role "php", "doc", "test",
TVVC> "data" or "script" with the original package.xml modified
TVVC> automagically (explained in the next point).

TVVC> Without args it compiles the extension as it does nowadays.

TVVC> An idea would be to create a COMPILED_AT.txt file with some data about
TVVC> the env where the extension was compiled at, like the
TVVC> php version, the php_uname(), the extra libs versions, os vendor
TVVC> version, /etc/shadow file, etc.

TVVC> package.xml
TVVC> -----------

TVVC> As a binary release shares the same release data with the source
TVVC> distrib, except the filelist (please confirm if an
TVVC> extension compiled may have different dependencies across different
TVVC> platforms), the same package.xml file could be used for all kind of
TVVC> distribs. Let's say something like:

TVVC> <release>
TVVC>          <version>...
TVVC>          <date>
TVVC>          <notes>
TVVC>          <filelist>..
TVVC>                      <file role="ext" os="" arch="">
TVVC> </release>


TVVC> installation
TVVC> ------------

TVVC> pear install -b peclfoo (download and install the binary distrib of
TVVC> peclfoo for your current OS-ARCH)

TVVC> pear install peclfoo-bin-<OS>-<ARCH>-3.1.2-<STATE>.tgz

TVVC> All the files with role="ext" would be installed
TVVC> in "ext_dir" (pear cmd setting). The user can config it with "pear config-set 
ext_dir=XXX".
TVVC> If this var is not explicitly set, the following will be used for
TVVC> finding a default location:

TVVC> if (getenv('PHP_PEAR_EXTENSION_DIR')) {
TVVC>      define('PEAR_CONFIG_DEFAULT_EXT_DIR', getenv('PHP_PEAR_EXTENSION_DIR'));
TVVC>  } else {
TVVC>     if (ini_get('extension_dir')) {
TVVC>         define('PEAR_CONFIG_DEFAULT_EXT_DIR', ini_get('extension_dir'));
TVVC>     } elseif (defined('PEAR_EXTENSION_DIR') && @is_dir(PEAR_EXTENSION_DIR)) {
TVVC>         define('PEAR_CONFIG_DEFAULT_EXT_DIR', PEAR_EXTENSION_DIR);
TVVC>     } elseif (defined('PHP_EXTENSION_DIR')) {
TVVC>         define('PEAR_CONFIG_DEFAULT_EXT_DIR', PHP_EXTENSION_DIR);
TVVC>     } else {
TVVC>         define('PEAR_CONFIG_DEFAULT_EXT_DIR', '.');
TVVC>     }
TVVC> }

TVVC> Listing in the web
TVVC> ------------------

TVVC> A new column "Type" should be added to the release listing under the
TVVC> package home page at pear.php.net, saying that the package is a binary
TVVC> distrib compiled for OS X and ARCH Y or sources.


-- 
Best regards,
 Marcus                            mailto:[EMAIL PROTECTED]


-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to