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