Index: PEAR/Common.php
===================================================================
RCS file: /repository/pear-core/PEAR/Common.php,v
retrieving revision 1.156
diff -u -r1.156 Common.php
--- PEAR/Common.php 25 Mar 2006 21:09:08 -0000 1.156
+++ PEAR/Common.php 10 May 2006 03:11:20 -0000
@@ -453,7 +453,9 @@
unset($arr['dependencies']);
unset($arr['phprelease']);
unset($arr['extsrcrelease']);
+ unset($arr['zendextsrcrelease']);
unset($arr['extbinrelease']);
+ unset($arr['zendextbinrelease']);
unset($arr['bundle']);
unset($arr['lead']);
unset($arr['developer']);
Index: PEAR/Config.php
===================================================================
RCS file: /repository/pear-core/PEAR/Config.php,v
retrieving revision 1.128
diff -u -r1.128 Config.php
--- PEAR/Config.php 9 Apr 2006 18:42:59 -0000 1.128
+++ PEAR/Config.php 9 May 2006 02:32:12 -0000
@@ -420,6 +420,13 @@
'prompt' => 'PHP CLI/CGI binary',
'group' => 'File Locations (Advanced)',
),
+ 'php_ini' => array(
+ 'type' => 'file',
+ 'default' => '',
+ 'doc' => 'location of php.ini in which to enable PECL extensions on install',
+ 'prompt' => 'php.ini location',
+ 'group' => 'File Locations (Advanced)',
+ ),
// Maintainers
'username' => array(
'type' => 'string',
Index: PEAR/Command/Install.php
===================================================================
RCS file: /repository/pear-core/PEAR/Command/Install.php,v
retrieving revision 1.118
diff -u -r1.118 Install.php
--- PEAR/Command/Install.php 13 Apr 2006 00:50:40 -0000 1.118
+++ PEAR/Command/Install.php 10 May 2006 04:17:37 -0000
@@ -343,6 +343,124 @@
return $a;
}
+ function enableExtension($binaries, $type)
+ {
+ if (!($phpini = $this->config->get('php_ini', null, 'pear.php.net'))) {
+ return PEAR::raiseError('configuration option "php_ini" is not set to php.ini location');
+ }
+ $ini = $this->_parseIni($phpini);
+ if (PEAR::isError($ini)) {
+ return $ini;
+ }
+ $fp = @fopen($phpini, 'wb');
+ if (!$fp) {
+ return PEAR::raiseError('cannot open php.ini "' . $phpini . '" for writing');
+ }
+ $line = 0;
+ if ($type == 'extsrc' || $type == 'extbin') {
+ $search = 'extensions';
+ $enable = 'extension';
+ } else {
+ $search = 'zend_extensions';
+ ob_start();
+ phpinfo(INFO_GENERAL);
+ $info = ob_get_contents();
+ ob_end_clean();
+ $debug = preg_match('Debug Build.+yes', $info) ? '_debug' : '';
+ $ts = preg_match('Thread Safety.+enabled', $info) ? '_ts' : '';
+ $enable = 'zend_extension' . $debug . $ts;
+ }
+ foreach ($ini[$search] as $line => $extension) {
+ if (in_array($extension, $binaries, true) || in_array(
+ $ini['extension_dir'] . DIRECTORY_SEPARATOR . $extension, $binaries, true)) {
+ // already enabled - assume if one is, all are
+ return true;
+ }
+ }
+ if ($line) {
+ $newini = array_slice($ini['all'], 0, $line);
+ } else {
+ $newini = array();
+ }
+ foreach ($binaries as $binary) {
+ $newini[] = $enable . '="' . $binary . '"' . (OS_UNIX ? "\n" : "\r\n");
+ }
+ $newini = array_merge($newini, array_slice($ini['all'], $line));
+ foreach ($newini as $line) {
+ fwrite($fp, $line);
+ }
+ fclose($fp);
+ return true;
+ }
+
+ function _parseIni($filename)
+ {
+ if (file_exists($filename)) {
+ if (filesize($filename) > 300000) {
+ return PEAR::raiseError('php.ini "' . $filename . '" is too large, aborting');
+ }
+ ob_start();
+ phpinfo(INFO_GENERAL);
+ $info = ob_get_contents();
+ ob_end_clean();
+ $debug = preg_match('/Debug Build.+yes/', $info) ? '_debug' : '';
+ $ts = preg_match('/Thread Safety.+enabled/', $info) ? '_ts' : '';
+ $zend_extension_line = 'zend_extension' . $debug . $ts;
+ $all = @file($filename);
+ if (!$all) {
+ return PEAR::raiseError('php.ini "' . $filename .'" could not be read');
+ }
+ $zend_extensions = $extensions = array();
+ // assume this is right, but pull from the php.ini if it is found
+ $extension_dir = ini_get('extension_dir');
+ foreach ($all as $linenum => $line) {
+ $line = trim($line);
+ if (!$line) {
+ continue;
+ }
+ if ($line[0] == ';') {
+ continue;
+ }
+ if (strtolower(substr($line, 0, 13)) == 'extension_dir') {
+ $line = trim(substr($line, 13));
+ if ($line[0] == '=') {
+ $x = trim(substr($line, 1));
+ $x = explode(';', $x);
+ $extension_dir = array_shift($x);
+ continue;
+ }
+ }
+ if (strtolower(substr($line, 0, 9)) == 'extension') {
+ $line = trim(substr($line, 9));
+ if ($line[0] == '=') {
+ $x = trim(substr($line, 1));
+ $x = explode(';', $x);
+ $extensions[$linenum] = array_shift($x);
+ continue;
+ }
+ }
+ if (strtolower(substr($line, 0, strlen($zend_extension_line))) ==
+ $zend_extension_line) {
+ $line = trim(substr($line, strlen($zend_extension_line)));
+ if ($line[0] == '=') {
+ $x = trim(substr($line, 1));
+ $x = explode(';', $x);
+ $zend_extensions[$linenum] = array_shift($x);
+ continue;
+ }
+ }
+ }
+ return array(
+ 'extensions' => $extensions,
+ 'zend_extensions' => $zend_extensions,
+ 'extension_dir' => $extension_dir,
+ 'all' => $all,
+ );
+ } else {
+ return PEAR::raiseError('php.ini "' . $filename . '" does not exist');
+ }
+ }
+
// {{{ doInstall()
function doInstall($command, $options, $params)
@@ -480,7 +598,9 @@
}
if (is_array($info)) {
if ($param->getPackageType() == 'extsrc' ||
- $param->getPackageType() == 'extbin') {
+ $param->getPackageType() == 'extbin' ||
+ $param->getPackageType() == 'zendextsrc' ||
+ $param->getPackageType() == 'zendextbin') {
$pkg = &$param->getPackageFile();
if ($instbin = $pkg->getInstalledBinary()) {
$instpkg = &$instreg->getPackage($instbin, $pkg->getChannel());
@@ -499,11 +619,35 @@
$pinfo['extension'] == 'so' ||
// hp-ux
$pinfo['extension'] == 'sl') {
- $extrainfo[] = 'You should add "extension=' . $pinfo['basename']
- . '" to php.ini';
+ $binaries[] = array($atts['installed_as'], $pinfo);
break;
}
}
+ foreach ($binaries as $pinfo) {
+ PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN);
+ $ret = $this->enableExtension(array($pinfo[0]), $param->getPackageType());
+ PEAR::staticPopErrorHandling();
+ if (PEAR::isError($ret)) {
+ $extrainfo[] = $ret->getMessage();
+ if ($param->getPackageType() == 'extsrc' ||
+ $param->getPackageType() == 'extbin') {
+ $exttype = 'extension';
+ } else {
+ ob_start();
+ phpinfo(INFO_GENERAL);
+ $info = ob_get_contents();
+ ob_end_clean();
+ $debug = preg_match('Debug Build.+yes', $info) ? '_debug' : '';
+ $ts = preg_match('Thread Safety.+enabled', $info) ? '_ts' : '';
+ $exttype = 'zend_extension' . $debug . $ts;
+ }
+ $extrainfo[] = 'You should add "' . $exttype . '=' .
+ $pinfo[1]['basename'] . '" to php.ini';
+ } else {
+ $extrainfo[] = 'Extension ' . $instpkg->getProvidesExtension() .
+ ' enabled in php.ini';
+ }
+ }
}
if ($this->config->get('verbose') > 0) {
$channel = $param->getChannel();
Index: PEAR/Command/Pickle.php
===================================================================
RCS file: /repository/pear-core/PEAR/Command/Pickle.php,v
retrieving revision 1.5
diff -u -r1.5 Pickle.php
--- PEAR/Command/Pickle.php 6 Jan 2006 04:47:36 -0000 1.5
+++ PEAR/Command/Pickle.php 10 May 2006 03:27:19 -0000
@@ -63,8 +63,8 @@
only simple package.xml 2.0 will be converted. package.xml 2.0 with:
- dependency types other than required/optional PECL package/ext/php/pearinstaller
- - more than one extsrcrelease
- - extbinrelease, phprelease, or bundle release type
+ - more than one extsrcrelease or zendextsrcrelease
+ - zendextbinrelease, extbinrelease, phprelease, or bundle release type
- dependency groups
- ignore tags in release filelist
- tasks other than replace
@@ -156,7 +156,7 @@
require_once 'PEAR/PackageFile/v1.php';
$pf = new PEAR_PackageFile_v1;
$pf->setConfig($this->config);
- if (is_array($pf2->getPackageType() != 'extsrc')) {
+ if ($pf2->getPackageType() != 'extsrc' && $pf2->getPackageType() != 'zendextsrc') {
return $this->raiseError('Cannot safely convert "' . $packagexml .
'", is not an extension source package. Using a PEAR_PackageFileManager-based ' .
'script is an option');
@@ -307,7 +307,7 @@
$release = $pf2->getReleases();
if (isset($releases[0])) {
return $this->raiseError('Cannot safely process "' . $packagexml . '" contains '
- . 'multiple extsrcrelease tags. Using a PEAR_PackageFileManager-based script ' .
+ . 'multiple extsrcrelease/zendextsrcrelease tags. Using a PEAR_PackageFileManager-based script ' .
'or the convert command is an option');
}
if ($configoptions = $pf2->getConfigureOptions()) {
Index: PEAR/Command/Pickle.xml
===================================================================
RCS file: /repository/pear-core/PEAR/Command/Pickle.xml,v
retrieving revision 1.1
diff -u -r1.1 Pickle.xml
--- PEAR/Command/Pickle.xml 1 Nov 2005 05:39:31 -0000 1.1
+++ PEAR/Command/Pickle.xml 10 May 2006 03:27:28 -0000
@@ -26,8 +26,8 @@
only simple package.xml 2.0 will be converted. package.xml 2.0 with:
- dependency types other than required/optional PECL package/ext/php/pearinstaller
- - more than one extsrcrelease
- - extbinrelease, phprelease, or bundle release type
+ - more than one extsrcrelease/zendextsrcrelease
+ - zendextbinrelease, extbinrelease, phprelease, or bundle release type
- dependency groups
- ignore tags in release filelist
- tasks other than replace
Index: PEAR/Command/Registry.php
===================================================================
RCS file: /repository/pear-core/PEAR/Command/Registry.php,v
retrieving revision 1.71
diff -u -r1.71 Registry.php
--- PEAR/Command/Registry.php 27 Mar 2006 05:00:12 -0000 1.71
+++ PEAR/Command/Registry.php 10 May 2006 03:11:00 -0000
@@ -571,9 +571,15 @@
case 'extsrc' :
$release = 'PECL-style PHP extension (source code)';
break;
+ case 'zendextsrc' :
+ $release = 'PECL-style Zend extension (source code)';
+ break;
case 'extbin' :
$release = 'PECL-style PHP extension (binary)';
break;
+ case 'zendextbin' :
+ $release = 'PECL-style Zend extension (binary)';
+ break;
case 'bundle' :
$release = 'Package bundle (collection of packages)';
break;
Index: PEAR/Installer/Role.php
===================================================================
RCS file: /repository/pear-core/PEAR/Installer/Role.php,v
retrieving revision 1.14
diff -u -r1.14 Role.php
--- PEAR/Installer/Role.php 27 Mar 2006 05:15:36 -0000 1.14
+++ PEAR/Installer/Role.php 10 May 2006 03:12:52 -0000
@@ -86,8 +86,7 @@
/**
* Get a list of file roles that are valid for the particular release type.
*
- * For instance, src files serve no purpose in regular php releases. php files
- * serve no purpose in extsrc or extbin releases
+ * For instance, src files serve no purpose in regular php releases.
* @param string
* @param bool clear cache
* @return array
Index: PEAR/Installer/Role/Data.xml
===================================================================
RCS file: /repository/pear-core/PEAR/Installer/Role/Data.xml,v
retrieving revision 1.1
diff -u -r1.1 Data.xml
--- PEAR/Installer/Role/Data.xml 1 Nov 2005 05:39:32 -0000 1.1
+++ PEAR/Installer/Role/Data.xml 10 May 2006 03:11:36 -0000
@@ -2,6 +2,8 @@
php
extsrc
extbin
+ zendextsrc
+ zendextbin
1
data_dir
Index: PEAR/Installer/Role/Doc.xml
===================================================================
RCS file: /repository/pear-core/PEAR/Installer/Role/Doc.xml,v
retrieving revision 1.1
diff -u -r1.1 Doc.xml
--- PEAR/Installer/Role/Doc.xml 1 Nov 2005 05:39:32 -0000 1.1
+++ PEAR/Installer/Role/Doc.xml 10 May 2006 03:11:50 -0000
@@ -2,6 +2,8 @@
php
extsrc
extbin
+ zendextsrc
+ zendextbin
1
doc_dir
Index: PEAR/Installer/Role/Ext.xml
===================================================================
RCS file: /repository/pear-core/PEAR/Installer/Role/Ext.xml,v
retrieving revision 1.1
diff -u -r1.1 Ext.xml
--- PEAR/Installer/Role/Ext.xml 1 Nov 2005 05:39:32 -0000 1.1
+++ PEAR/Installer/Role/Ext.xml 10 May 2006 03:11:58 -0000
@@ -1,5 +1,6 @@
extbin
+ zendextbin
1
ext_dir
1
Index: PEAR/Installer/Role/Php.xml
===================================================================
RCS file: /repository/pear-core/PEAR/Installer/Role/Php.xml,v
retrieving revision 1.1
diff -u -r1.1 Php.xml
--- PEAR/Installer/Role/Php.xml 1 Nov 2005 05:39:32 -0000 1.1
+++ PEAR/Installer/Role/Php.xml 10 May 2006 03:12:04 -0000
@@ -2,6 +2,8 @@
php
extsrc
extbin
+ zendextsrc
+ zendextbin
1
php_dir
1
Index: PEAR/Installer/Role/Script.xml
===================================================================
RCS file: /repository/pear-core/PEAR/Installer/Role/Script.xml,v
retrieving revision 1.1
diff -u -r1.1 Script.xml
--- PEAR/Installer/Role/Script.xml 1 Nov 2005 05:39:32 -0000 1.1
+++ PEAR/Installer/Role/Script.xml 10 May 2006 03:12:25 -0000
@@ -2,6 +2,8 @@
php
extsrc
extbin
+ zendextsrc
+ zendextbin
1
bin_dir
1
Index: PEAR/Installer/Role/Src.xml
===================================================================
RCS file: /repository/pear-core/PEAR/Installer/Role/Src.xml,v
retrieving revision 1.1
diff -u -r1.1 Src.xml
--- PEAR/Installer/Role/Src.xml 1 Nov 2005 05:39:32 -0000 1.1
+++ PEAR/Installer/Role/Src.xml 10 May 2006 03:12:30 -0000
@@ -1,5 +1,6 @@
extsrc
+ zendextsrc
Index: PEAR/Installer/Role/Test.xml
===================================================================
RCS file: /repository/pear-core/PEAR/Installer/Role/Test.xml,v
retrieving revision 1.1
diff -u -r1.1 Test.xml
--- PEAR/Installer/Role/Test.xml 1 Nov 2005 05:39:32 -0000 1.1
+++ PEAR/Installer/Role/Test.xml 10 May 2006 03:12:34 -0000
@@ -2,6 +2,8 @@
php
extsrc
extbin
+ zendextsrc
+ zendextbin
1
test_dir
Index: PEAR/PackageFile/v2.php
===================================================================
RCS file: /repository/pear-core/PEAR/PackageFile/v2.php,v
retrieving revision 1.131
diff -u -r1.131 v2.php
--- PEAR/PackageFile/v2.php 25 Apr 2006 02:54:49 -0000 1.131
+++ PEAR/PackageFile/v2.php 10 May 2006 03:33:43 -0000
@@ -191,23 +191,24 @@
$a = false;
return $a;
}
- if ($this->getPackageType() == 'extsrc') {
+ if ($this->getPackageType() == 'extsrc' || $this->getPackageType() == 'zendextsrc') {
+ $releasetype = $this->getPackageType() . 'release';
if (!is_array($installer->getInstallPackages())) {
$a = false;
return $a;
}
foreach ($installer->getInstallPackages() as $p) {
if ($p->isExtension($this->_packageInfo['providesextension'])) {
- if ($p->getPackageType() != 'extsrc') {
+ if ($p->getPackageType() != 'extsrc' && $p->getPackageType() != 'zendextsrc') {
$a = false;
return $a; // the user probably downloaded it separately
}
}
}
- if (isset($this->_packageInfo['extsrcrelease']['binarypackage'])) {
+ if (isset($this->_packageInfo[$releasetype]['binarypackage'])) {
$installer->log(0, 'Attempting to download binary version of extension "' .
$this->_packageInfo['providesextension'] . '"');
- $params = $this->_packageInfo['extsrcrelease']['binarypackage'];
+ $params = $this->_packageInfo[$releasetype]['binarypackage'];
if (!is_array($params) || !isset($params[0])) {
$params = array($params);
}
@@ -264,7 +265,8 @@
*/
function getProvidesExtension()
{
- if (in_array($this->getPackageType(), array('extsrc', 'extbin'))) {
+ if (in_array($this->getPackageType(),
+ array('extsrc', 'extbin', 'zendextsrc', 'zendextbin'))) {
if (isset($this->_packageInfo['providesextension'])) {
return $this->_packageInfo['providesextension'];
}
@@ -278,7 +280,8 @@
*/
function isExtension($extension)
{
- if (in_array($this->getPackageType(), array('extsrc', 'extbin'))) {
+ if (in_array($this->getPackageType(),
+ array('extsrc', 'extbin', 'zendextsrc', 'zendextbin'))) {
return $this->_packageInfo['providesextension'] == $extension;
}
return false;
@@ -1027,8 +1030,8 @@
array('time', 'version',
'stability', 'license', 'notes', 'contents', 'compatible',
'dependencies', 'providesextension', 'srcpackage', 'srcuri',
- 'phprelease', 'extsrcrelease',
- 'extbinrelease', 'bundle', 'changelog'), array(), 'date');
+ 'phprelease', 'extsrcrelease', 'extbinrelease', 'zendextsrcrelease',
+ 'zendextbinrelease', 'bundle', 'changelog'), array(), 'date');
}
$this->_packageInfo['date'] = $date;
$this->_isValid = 0;
@@ -1043,8 +1046,8 @@
array('version',
'stability', 'license', 'notes', 'contents', 'compatible',
'dependencies', 'providesextension', 'srcpackage', 'srcuri',
- 'phprelease', 'extsrcrelease',
- 'extbinrelease', 'bundle', 'changelog'), $time, 'time');
+ 'phprelease', 'extsrcrelease', 'extbinrelease', 'zendextsrcrelease',
+ 'zendextbinrelease', 'bundle', 'changelog'), $time, 'time');
}
$this->_packageInfo['time'] = $time;
}
@@ -1183,7 +1186,7 @@
*/
function getConfigureOptions()
{
- if ($this->getPackageType() != 'extsrc') {
+ if ($this->getPackageType() != 'extsrc' && $this->getPackageType() != 'zendextsrc') {
return false;
}
$releases = $this->getReleases();
@@ -1718,7 +1721,7 @@
}
/**
- * @return php|extsrc|extbin|bundle|false
+ * @return php|extsrc|extbin|zendextsrc|zendextbin|bundle|false
*/
function getPackageType()
{
@@ -1731,6 +1734,12 @@
if (isset($this->_packageInfo['extbinrelease'])) {
return 'extbin';
}
+ if (isset($this->_packageInfo['zendextsrcrelease'])) {
+ return 'zendextsrc';
+ }
+ if (isset($this->_packageInfo['zendextbinrelease'])) {
+ return 'zendextbin';
+ }
if (isset($this->_packageInfo['bundle'])) {
return 'bundle';
}
@@ -1778,7 +1787,8 @@
*/
function getSourcePackage()
{
- if (isset($this->_packageInfo['extbinrelease'])) {
+ if (isset($this->_packageInfo['extbinrelease']) ||
+ isset($this->_packageInfo['zendextbinrelease'])) {
return array('channel' => $this->_packageInfo['srcchannel'],
'package' => $this->_packageInfo['srcpackage']);
}
Index: PEAR/PackageFile/v2/Validator.php
===================================================================
RCS file: /repository/pear-core/PEAR/PackageFile/v2/Validator.php,v
retrieving revision 1.89
diff -u -r1.89 Validator.php
--- PEAR/PackageFile/v2/Validator.php 27 Mar 2006 05:45:22 -0000 1.89
+++ PEAR/PackageFile/v2/Validator.php 10 May 2006 03:32:00 -0000
@@ -99,10 +99,20 @@
// needs a certain package installed in order to implement a role or task
'*providesextension',
'*srcpackage|*srcuri',
- '+phprelease|+extsrcrelease|+extbinrelease|bundle', //special validation needed
+ '+phprelease|+extsrcrelease|+extbinrelease|' .
+ '+zendextsrcrelease|+zendextbinrelease|bundle', //special validation needed
'*changelog',
);
$test = $this->_packageInfo;
+ if (isset($test['dependencies']) &&
+ isset($test['dependencies']['required']) &&
+ isset($test['dependencies']['required']['pearinstaller']) &&
+ isset($test['dependencies']['required']['pearinstaller']['min']) &&
+ version_compare('@package_version@',
+ $test['dependencies']['required']['pearinstaller']['min'], '<')) {
+ $this->_pearVersionTooLow($test['dependencies']['required']['pearinstaller']['min']);
+ return false;
+ }
// ignore post-installation array fields
if (array_key_exists('filelist', $test)) {
unset($test['filelist']);
@@ -1174,64 +1184,68 @@
), $rel, '');
}
}
- if (isset($this->_packageInfo['extsrcrelease'])) {
- $release = 'extsrcrelease';
- if (!isset($this->_packageInfo['providesextension'])) {
- $this->_mustProvideExtension($release);
- }
- if (isset($this->_packageInfo['srcpackage']) || isset($this->_packageInfo['srcuri'])) {
- $this->_cannotHaveSrcpackage($release);
- }
- $releases = $this->_packageInfo['extsrcrelease'];
- if (!is_array($releases)) {
- return true;
- }
- if (!isset($releases[0])) {
- $releases = array($releases);
- }
- foreach ($releases as $rel) {
- $this->_stupidSchemaValidate(array(
- '*installconditions',
- '*configureoption->name->prompt->?default',
- '*binarypackage',
- '*filelist',
- ), $rel, '');
- if (isset($rel['binarypackage'])) {
- if (!is_array($rel['binarypackage']) || !isset($rel['binarypackage'][0])) {
- $rel['binarypackage'] = array($rel['binarypackage']);
- }
- foreach ($rel['binarypackage'] as $bin) {
- if (!is_string($bin)) {
- $this->_binaryPackageMustBePackagename();
+ foreach (array('', 'zend') as $prefix) {
+ $releasetype = $prefix . 'extsrcrelease';
+ if (isset($this->_packageInfo[$releasetype])) {
+ $release = $releasetype;
+ if (!isset($this->_packageInfo['providesextension'])) {
+ $this->_mustProvideExtension($release);
+ }
+ if (isset($this->_packageInfo['srcpackage']) || isset($this->_packageInfo['srcuri'])) {
+ $this->_cannotHaveSrcpackage($release);
+ }
+ $releases = $this->_packageInfo[$releasetype];
+ if (!is_array($releases)) {
+ return true;
+ }
+ if (!isset($releases[0])) {
+ $releases = array($releases);
+ }
+ foreach ($releases as $rel) {
+ $this->_stupidSchemaValidate(array(
+ '*installconditions',
+ '*configureoption->name->prompt->?default',
+ '*binarypackage',
+ '*filelist',
+ ), $rel, '<' . $releasetype . '>');
+ if (isset($rel['binarypackage'])) {
+ if (!is_array($rel['binarypackage']) || !isset($rel['binarypackage'][0])) {
+ $rel['binarypackage'] = array($rel['binarypackage']);
+ }
+ foreach ($rel['binarypackage'] as $bin) {
+ if (!is_string($bin)) {
+ $this->_binaryPackageMustBePackagename();
+ }
}
}
}
}
- }
- if (isset($this->_packageInfo['extbinrelease'])) {
- $release = 'extbinrelease';
- if (!isset($this->_packageInfo['providesextension'])) {
- $this->_mustProvideExtension($release);
- }
- if (isset($this->_packageInfo['channel']) &&
- !isset($this->_packageInfo['srcpackage'])) {
- $this->_mustSrcPackage($release);
- }
- if (isset($this->_packageInfo['uri']) && !isset($this->_packageInfo['srcuri'])) {
- $this->_mustSrcuri($release);
- }
- $releases = $this->_packageInfo['extbinrelease'];
- if (!is_array($releases)) {
- return true;
- }
- if (!isset($releases[0])) {
- $releases = array($releases);
- }
- foreach ($releases as $rel) {
- $this->_stupidSchemaValidate(array(
- '*installconditions',
- '*filelist',
- ), $rel, '');
+ $releasetype = 'extbinrelease';
+ if (isset($this->_packageInfo[$releasetype])) {
+ $release = $releasetype;
+ if (!isset($this->_packageInfo['providesextension'])) {
+ $this->_mustProvideExtension($release);
+ }
+ if (isset($this->_packageInfo['channel']) &&
+ !isset($this->_packageInfo['srcpackage'])) {
+ $this->_mustSrcPackage($release);
+ }
+ if (isset($this->_packageInfo['uri']) && !isset($this->_packageInfo['srcuri'])) {
+ $this->_mustSrcuri($release);
+ }
+ $releases = $this->_packageInfo[$releasetype];
+ if (!is_array($releases)) {
+ return true;
+ }
+ if (!isset($releases[0])) {
+ $releases = array($releases);
+ }
+ foreach ($releases as $rel) {
+ $this->_stupidSchemaValidate(array(
+ '*installconditions',
+ '*filelist',
+ ), $rel, '<' . $releasetype . '>');
+ }
}
}
if (isset($this->_packageInfo['bundle'])) {
@@ -1276,6 +1290,14 @@
return in_array($role, PEAR_Installer_Role::getValidRoles($this->_pf->getPackageType()));
}
+ function _pearVersionTooLow($version)
+ {
+ $this->_stack->push(__FUNCTION__, 'error',
+ array('version' => $version),
+ 'This package.xml requires PEAR version %version% to parse properly, we are ' .
+ 'version @package_version@');
+ }
+
function _invalidTagOrder($oktags, $actual, $root)
{
$this->_stack->push(__FUNCTION__, 'error',
@@ -1287,7 +1309,7 @@
{
$this->_stack->push(__FUNCTION__, 'error', array('type' => $type),
'<%type%> is not allowed inside global , only inside ' .
- '/, use and only');
+ '//, use and only');
}
function _fileNotAllowed($type)
@@ -1491,7 +1513,7 @@
function _cannotProvideExtension($release)
{
$this->_stack->push(__FUNCTION__, 'error', array('release' => $release),
- '<%release%> packages cannot use , only extbinrelease and extsrcrelease can provide a PHP extension');
+ '<%release%> packages cannot use , only extbinrelease, extsrcrelease, zendextsrcrelease, and zendextbinrelease can provide a PHP extension');
}
function _mustProvideExtension($release)
@@ -1509,13 +1531,13 @@
function _mustSrcPackage($release)
{
$this->_stack->push(__FUNCTION__, 'error', array('release' => $release),
- ' packages must specify a source code package with ');
+ '/ packages must specify a source code package with ');
}
function _mustSrcuri($release)
{
$this->_stack->push(__FUNCTION__, 'error', array('release' => $release),
- ' packages must specify a source code package with ');
+ '/ packages must specify a source code package with ');
}
function _uriDepsCannotHaveVersioning($type)
@@ -1549,7 +1571,7 @@
{
$this->_stack->push(__FUNCTION__, 'error', array(),
' tags must contain the name of a package that is ' .
- 'a compiled version of this extsrc package');
+ 'a compiled version of this extsrc/zendextsrc package');
}
function _fileNotFound($file)
Index: PEAR/PackageFile/v2/rw.php
===================================================================
RCS file: /repository/pear-core/PEAR/PackageFile/v2/rw.php,v
retrieving revision 1.16
diff -u -r1.16 rw.php
--- PEAR/PackageFile/v2/rw.php 25 Apr 2006 02:43:47 -0000 1.16
+++ PEAR/PackageFile/v2/rw.php 10 May 2006 03:31:47 -0000
@@ -41,12 +41,14 @@
*/
function setProvidesExtension($extension)
{
- if (in_array($this->getPackageType(), array('extsrc', 'extbin'))) {
+ if (in_array($this->getPackageType(),
+ array('extsrc', 'extbin', 'zendextsrc', 'zendextbin'))) {
if (!isset($this->_packageInfo['providesextension'])) {
// ensure that the channel tag is set up in the right location
$this->_packageInfo = $this->_insertBefore($this->_packageInfo,
array('usesrole', 'usestask', 'srcpackage', 'srcuri', 'phprelease',
- 'extsrcrelease', 'extbinrelease', 'bundle', 'changelog'),
+ 'extsrcrelease', 'extbinrelease', 'zendextsrcrelease', 'zendextbinrelease',
+ 'bundle', 'changelog'),
$extension, 'providesextension');
}
$this->_packageInfo['providesextension'] = $extension;
@@ -88,7 +90,7 @@
'developer', 'contributor', 'helper', 'date', 'time', 'version',
'stability', 'license', 'notes', 'contents', 'compatible',
'dependencies', 'providesextension', 'usesrole', 'usestask', 'srcpackage', 'srcuri',
- 'phprelease', 'extsrcrelease',
+ 'phprelease', 'extsrcrelease', 'zendextsrcrelease', 'zendextbinrelease',
'extbinrelease', 'bundle', 'changelog'), $uri, 'uri');
}
$this->_packageInfo['uri'] = $uri;
@@ -105,7 +107,7 @@
'developer', 'contributor', 'helper', 'date', 'time', 'version',
'stability', 'license', 'notes', 'contents', 'compatible',
'dependencies', 'providesextension', 'usesrole', 'usestask', 'srcpackage', 'srcuri',
- 'phprelease', 'extsrcrelease',
+ 'phprelease', 'extsrcrelease', 'zendextsrcrelease', 'zendextbinrelease',
'extbinrelease', 'bundle', 'changelog'), $channel, 'channel');
}
$this->_packageInfo['channel'] = $channel;
@@ -121,7 +123,7 @@
'developer', 'contributor', 'helper', 'date', 'time', 'version',
'stability', 'license', 'notes', 'contents', 'compatible',
'dependencies', 'providesextension', 'usesrole', 'usestask', 'srcpackage', 'srcuri',
- 'phprelease', 'extsrcrelease',
+ 'phprelease', 'extsrcrelease', 'zendextsrcrelease', 'zendextbinrelease',
'extbinrelease', 'bundle', 'changelog'), $extends, 'extends');
}
$this->_packageInfo['extends'] = $extends;
@@ -137,7 +139,7 @@
'developer', 'contributor', 'helper', 'date', 'time', 'version',
'stability', 'license', 'notes', 'contents', 'compatible',
'dependencies', 'providesextension', 'usesrole', 'usestask', 'srcpackage', 'srcuri',
- 'phprelease', 'extsrcrelease',
+ 'phprelease', 'extsrcrelease', 'zendextsrcrelease', 'zendextbinrelease',
'extbinrelease', 'bundle', 'changelog'), $summary, 'summary');
}
$this->_packageInfo['summary'] = $summary;
@@ -153,7 +155,7 @@
'developer', 'contributor', 'helper', 'date', 'time', 'version',
'stability', 'license', 'notes', 'contents', 'compatible',
'dependencies', 'providesextension', 'usesrole', 'usestask', 'srcpackage', 'srcuri',
- 'phprelease', 'extsrcrelease',
+ 'phprelease', 'extsrcrelease', 'zendextsrcrelease', 'zendextbinrelease',
'extbinrelease', 'bundle', 'changelog'), $desc, 'description');
}
$this->_packageInfo['description'] = $desc;
@@ -185,7 +187,7 @@
'stability', 'license', 'notes', 'contents', 'compatible',
'dependencies', 'providesextension', 'usesrole', 'usestask',
'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease',
- 'extbinrelease', 'bundle', 'changelog');
+ 'extbinrelease', 'zendextsrcrelease', 'zendextbinrelease', 'bundle', 'changelog');
foreach (array('lead', 'developer', 'contributor', 'helper') as $testrole) {
array_shift($testarr);
if ($role == $testrole) {
@@ -292,7 +294,7 @@
$this->_packageInfo = $this->_mergeTag($this->_packageInfo, $version, array(
'version' => array('stability', 'license', 'notes', 'contents', 'compatible',
'dependencies', 'providesextension', 'usesrole', 'usestask', 'srcpackage', 'srcuri',
- 'phprelease', 'extsrcrelease',
+ 'phprelease', 'extsrcrelease', 'zendextsrcrelease', 'zendextbinrelease',
'extbinrelease', 'bundle', 'changelog'),
'release' => array('api')));
$this->_isValid = 0;
@@ -307,7 +309,7 @@
$this->_packageInfo = $this->_mergeTag($this->_packageInfo, $version, array(
'version' => array('stability', 'license', 'notes', 'contents', 'compatible',
'dependencies', 'providesextension', 'usesrole', 'usestask', 'srcpackage', 'srcuri',
- 'phprelease', 'extsrcrelease',
+ 'phprelease', 'extsrcrelease', 'zendextsrcrelease', 'zendextbinrelease',
'extbinrelease', 'bundle', 'changelog'),
'api' => array()));
$this->_isValid = 0;
@@ -325,7 +327,7 @@
$this->_packageInfo = $this->_mergeTag($this->_packageInfo, $state, array(
'stability' => array('license', 'notes', 'contents', 'compatible',
'dependencies', 'providesextension', 'usesrole', 'usestask', 'srcpackage', 'srcuri',
- 'phprelease', 'extsrcrelease',
+ 'phprelease', 'extsrcrelease', 'zendextsrcrelease', 'zendextbinrelease',
'extbinrelease', 'bundle', 'changelog'),
'release' => array('api')));
$this->_isValid = 0;
@@ -343,7 +345,7 @@
$this->_packageInfo = $this->_mergeTag($this->_packageInfo, $state, array(
'stability' => array('license', 'notes', 'contents', 'compatible',
'dependencies', 'providesextension', 'usesrole', 'usestask', 'srcpackage', 'srcuri',
- 'phprelease', 'extsrcrelease',
+ 'phprelease', 'extsrcrelease', 'zendextsrcrelease', 'zendextbinrelease',
'extbinrelease', 'bundle', 'changelog'),
'api' => array()));
$this->_isValid = 0;
@@ -356,7 +358,7 @@
$this->_packageInfo = $this->_insertBefore($this->_packageInfo,
array('notes', 'contents', 'compatible',
'dependencies', 'providesextension', 'usesrole', 'usestask', 'srcpackage', 'srcuri',
- 'phprelease', 'extsrcrelease',
+ 'phprelease', 'extsrcrelease', 'zendextsrcrelease', 'zendextbinrelease',
'extbinrelease', 'bundle', 'changelog'), 0, 'license');
}
if ($uri || $filesource) {
@@ -382,7 +384,7 @@
$this->_packageInfo = $this->_insertBefore($this->_packageInfo,
array('contents', 'compatible',
'dependencies', 'providesextension', 'usesrole', 'usestask', 'srcpackage', 'srcuri',
- 'phprelease', 'extsrcrelease',
+ 'phprelease', 'extsrcrelease', 'zendextsrcrelease', 'zendextbinrelease',
'extbinrelease', 'bundle', 'changelog'), $notes, 'notes');
}
$this->_packageInfo['notes'] = $notes;
@@ -429,7 +431,8 @@
array('compatible',
'dependencies', 'providesextension', 'usesrole', 'usestask',
'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease',
- 'extbinrelease', 'bundle', 'changelog'), array(), 'contents');
+ 'extbinrelease', 'zendextsrcrelease', 'zendextbinrelease',
+ 'bundle', 'changelog'), array(), 'contents');
}
if ($this->getPackageType() != 'bundle') {
$this->_packageInfo['contents'] =
@@ -453,7 +456,8 @@
$this->_packageInfo = $this->_mergeTag($this->_packageInfo, $path, array(
'contents' => array('compatible', 'dependencies', 'providesextension',
'usesrole', 'usestask', 'srcpackage', 'srcuri', 'phprelease',
- 'extsrcrelease', 'extbinrelease', 'bundle', 'changelog'),
+ 'extsrcrelease', 'extbinrelease', 'zendextsrcrelease', 'zendextbinrelease',
+ 'bundle', 'changelog'),
'bundledpackage' => array()));
}
@@ -546,7 +550,8 @@
$this->_packageInfo = $this->_insertBefore($this->_packageInfo,
array('compatible', 'dependencies', 'providesextension', 'usesrole', 'usestask',
'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease',
- 'extbinrelease', 'bundle', 'changelog'), array(), 'contents');
+ 'extbinrelease', 'zendextsrcrelease', 'zendextbinrelease',
+ 'bundle', 'changelog'), array(), 'contents');
}
if (isset($this->_packageInfo['contents']['dir']['file'])) {
if (!isset($this->_packageInfo['contents']['dir']['file'][0])) {
@@ -584,7 +589,7 @@
$this->_packageInfo = $this->_mergeTag($this->_packageInfo, $set, array(
'compatible' => array('dependencies', 'providesextension', 'usesrole', 'usestask',
'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease', 'extbinrelease',
- 'bundle', 'changelog')
+ 'zendextsrcrelease', 'zendextbinrelease', 'bundle', 'changelog')
));
}
@@ -614,7 +619,8 @@
$this->_isValid = 0;
$this->_packageInfo = $this->_mergeTag($this->_packageInfo, $set, array(
'usesrole' => array('usestask', 'srcpackage', 'srcuri',
- 'phprelease', 'extsrcrelease', 'extbinrelease', 'bundle', 'changelog')
+ 'phprelease', 'extsrcrelease', 'extbinrelease',
+ 'zendextsrcrelease', 'zendextbinrelease', 'bundle', 'changelog')
));
}
@@ -645,7 +651,8 @@
$this->_isValid = 0;
$this->_packageInfo = $this->_mergeTag($this->_packageInfo, $set, array(
'usestask' => array('srcpackage', 'srcuri',
- 'phprelease', 'extsrcrelease', 'extbinrelease', 'bundle', 'changelog')
+ 'phprelease', 'extsrcrelease', 'extbinrelease',
+ 'zendextsrcrelease', 'zendextbinrelease', 'bundle', 'changelog')
));
}
@@ -667,7 +674,7 @@
array(
'dependencies' => array('providesextension', 'usesrole', 'usestask',
'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease', 'extbinrelease',
- 'bundle', 'changelog')));
+ 'zendextsrcrelease', 'zendextbinrelease', 'bundle', 'changelog')));
}
$this->_packageInfo['dependencies'] = array();
}
@@ -703,7 +710,7 @@
array(
'dependencies' => array('providesextension', 'usesrole', 'usestask',
'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease', 'extbinrelease',
- 'bundle', 'changelog'),
+ 'zendextsrcrelease', 'zendextbinrelease', 'bundle', 'changelog'),
'required' => array('optional', 'group'),
'php' => array('pearinstaller', 'package', 'subpackage', 'extension', 'os', 'arch')
));
@@ -745,7 +752,7 @@
array(
'dependencies' => array('providesextension', 'usesrole', 'usestask',
'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease', 'extbinrelease',
- 'bundle', 'changelog'),
+ 'zendextsrcrelease', 'zendextbinrelease', 'bundle', 'changelog'),
'required' => array('optional', 'group'),
'pearinstaller' => array('package', 'subpackage', 'extension', 'os', 'arch')
));
@@ -773,7 +780,7 @@
array(
'dependencies' => array('providesextension', 'usesrole', 'usestask',
'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease', 'extbinrelease',
- 'bundle', 'changelog'),
+ 'zendextsrcrelease', 'zendextbinrelease', 'bundle', 'changelog'),
'required' => array('optional', 'group'),
'package' => array('subpackage', 'extension', 'os', 'arch')
));
@@ -801,7 +808,7 @@
array(
'dependencies' => array('providesextension', 'usesrole', 'usestask',
'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease', 'extbinrelease',
- 'bundle', 'changelog'),
+ 'zendextsrcrelease', 'zendextbinrelease', 'bundle', 'changelog'),
'required' => array('optional', 'group'),
'package' => array('subpackage', 'extension', 'os', 'arch')
));
@@ -815,7 +822,7 @@
array(
'dependencies' => array('providesextension', 'usesrole', 'usestask',
'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease', 'extbinrelease',
- 'bundle', 'changelog'),
+ 'zendextsrcrelease', 'zendextbinrelease', 'bundle', 'changelog'),
'group' => array(),
));
}
@@ -1014,7 +1021,7 @@
array(
'dependencies' => array('providesextension', 'usesrole', 'usestask',
'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease', 'extbinrelease',
- 'bundle', 'changelog'),
+ 'zendextsrcrelease', 'zendextbinrelease', 'bundle', 'changelog'),
$type => $arr,
'package' => array('subpackage', 'extension', 'os', 'arch')
));
@@ -1042,7 +1049,7 @@
array(
'dependencies' => array('providesextension', 'usesrole', 'usestask',
'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease', 'extbinrelease',
- 'bundle', 'changelog'),
+ 'zendextsrcrelease', 'zendextbinrelease', 'bundle', 'changelog'),
$type => $arr,
'package' => array('subpackage', 'extension', 'os', 'arch')
));
@@ -1074,7 +1081,7 @@
array(
'dependencies' => array('providesextension', 'usesrole', 'usestask',
'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease', 'extbinrelease',
- 'bundle', 'changelog'),
+ 'zendextsrcrelease', 'zendextbinrelease', 'bundle', 'changelog'),
$type => $arr,
'subpackage' => array('extension', 'os', 'arch')
));
@@ -1099,7 +1106,7 @@
array(
'dependencies' => array('providesextension', 'usesrole', 'usestask',
'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease', 'extbinrelease',
- 'bundle', 'changelog'),
+ 'zendextsrcrelease', 'zendextbinrelease', 'bundle', 'changelog'),
$type => $arr,
'subpackage' => array('extension', 'os', 'arch')
));
@@ -1126,7 +1133,7 @@
array(
'dependencies' => array('providesextension', 'usesrole', 'usestask',
'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease', 'extbinrelease',
- 'bundle', 'changelog'),
+ 'zendextsrcrelease', 'zendextbinrelease', 'bundle', 'changelog'),
$type => $arr,
'extension' => array('os', 'arch')
));
@@ -1147,7 +1154,7 @@
array(
'dependencies' => array('providesextension', 'usesrole', 'usestask',
'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease', 'extbinrelease',
- 'bundle', 'changelog'),
+ 'zendextsrcrelease', 'zendextbinrelease', 'bundle', 'changelog'),
'required' => array('optional', 'group'),
'os' => array('arch')
));
@@ -1168,7 +1175,7 @@
array(
'dependencies' => array('providesextension', 'usesrole', 'usestask',
'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease', 'extbinrelease',
- 'bundle', 'changelog'),
+ 'zendextsrcrelease', 'zendextbinrelease', 'bundle', 'changelog'),
'required' => array('optional', 'group'),
'arch' => array()
));
@@ -1180,20 +1187,24 @@
* - a php package is a PEAR-style package
* - an extbin package is a PECL-style extension binary
* - an extsrc package is a PECL-style source for a binary
+ * - an zendextbin package is a PECL-style zend extension binary
+ * - an zendextsrc package is a PECL-style source for a zend extension binary
* - a bundle package is a collection of other pre-packaged packages
- * @param php|extbin|extsrc|bundle
+ * @param php|extbin|extsrc|zendextsrc|zendextbin|bundle
* @return bool success
*/
function setPackageType($type)
{
$this->_isValid = 0;
- if (!in_array($type, array('php', 'extbin', 'extsrc', 'bundle'))) {
+ if (!in_array($type, array('php', 'extbin', 'extsrc', 'zendextsrc',
+ 'zendextbin', 'bundle'))) {
return false;
}
if ($type != 'bundle') {
$type .= 'release';
}
- foreach (array('phprelease', 'extbinrelease', 'extsrcrelease', 'bundle') as $test) {
+ foreach (array('phprelease', 'extbinrelease', 'extsrcrelease',
+ 'zendextsrcrelease', 'zendextbinrelease', 'bundle') as $test) {
unset($this->_packageInfo[$test]);
}
if (!isset($this->_packageInfo[$type])) {
@@ -1230,7 +1241,7 @@
{
if ($p = $this->getPackageType()) {
if ($strict) {
- if ($p == 'extsrc') {
+ if ($p == 'extsrc' || $p == 'zendextsrc') {
$a = null;
return $a;
}
@@ -1295,7 +1306,7 @@
*/
function addBinarypackage($package)
{
- if ($this->getPackageType() != 'extsrc') {
+ if ($this->getPackageType() != 'extsrc' && $this->getPackageType() != 'zendextsrc') {
return false;
}
$r = &$this->_getCurrentRelease(false);
@@ -1317,7 +1328,7 @@
*/
function addConfigureOption($name, $prompt, $default = null)
{
- if ($this->getPackageType() != 'extsrc') {
+ if ($this->getPackageType() != 'extsrc' && $this->getPackageType() != 'zendextsrc') {
return false;
}
$r = &$this->_getCurrentRelease(false);
@@ -1358,7 +1369,7 @@
}
$dep['exclude'] = $exclude;
}
- if ($this->getPackageType() == 'extsrc') {
+ if ($this->getPackageType() == 'extsrc' || $this->getPackageType() == 'zendextsrc') {
$r = $this->_mergeTag($r, $dep,
array(
'installconditions' => array('configureoption', 'binarypackage',
@@ -1391,7 +1402,7 @@
}
$this->_isValid = 0;
$dep = $this->_constructDep($name, false, false, $min, $max, $recommended, $exclude);
- if ($this->getPackageType() == 'extsrc') {
+ if ($this->getPackageType() == 'extsrc' || $this->getPackageType() == 'zendextsrc') {
$r = $this->_mergeTag($r, $dep,
array(
'installconditions' => array('configureoption', 'binarypackage',
@@ -1426,7 +1437,7 @@
if ($conflicts) {
$dep['conflicts'] = '';
}
- if ($this->getPackageType() == 'extsrc') {
+ if ($this->getPackageType() == 'extsrc' || $this->getPackageType() == 'zendextsrc') {
$r = $this->_mergeTag($r, $dep,
array(
'installconditions' => array('configureoption', 'binarypackage',
@@ -1461,7 +1472,7 @@
if ($conflicts) {
$dep['conflicts'] = '';
}
- if ($this->getPackageType() == 'extsrc') {
+ if ($this->getPackageType() == 'extsrc' || $this->getPackageType() == 'zendextsrc') {
$r = $this->_mergeTag($r, $dep,
array(
'installconditions' => array('configureoption', 'binarypackage',
@@ -1479,20 +1490,22 @@
/**
* For extension binary releases, this is used to specify either the
- * static URI to a source package, or the package name and channel of the extsrc
+ * static URI to a source package, or the package name and channel of the extsrc/zendextsrc
* package it is based on.
- * @param string Package name, or full URI to source package (extsrc type)
+ * @param string Package name, or full URI to source package (extsrc/zendextsrc type)
*/
function setSourcePackage($packageOrUri)
{
$this->_isValid = 0;
if (isset($this->_packageInfo['channel'])) {
$this->_packageInfo = $this->_insertBefore($this->_packageInfo, array('phprelease',
- 'extsrcrelease', 'extbinrelease', 'bundle', 'changelog'),
+ 'extsrcrelease', 'extbinrelease', 'zendextsrcrelease', 'zendextbinrelease',
+ 'bundle', 'changelog'),
$packageOrUri, 'srcpackage');
} else {
$this->_packageInfo = $this->_insertBefore($this->_packageInfo, array('phprelease',
- 'extsrcrelease', 'extbinrelease', 'bundle', 'changelog'), $packageOrUri, 'srcuri');
+ 'extsrcrelease', 'extbinrelease', 'zendextsrcrelease', 'zendextbinrelease',
+ 'bundle', 'changelog'), $packageOrUri, 'srcuri');
}
}
Index: PEAR/Validator/PECL.php
===================================================================
RCS file: /repository/pear-core/PEAR/Validator/PECL.php,v
retrieving revision 1.7
diff -u -r1.7 PECL.php
--- PEAR/Validator/PECL.php 3 Feb 2006 02:02:22 -0000 1.7
+++ PEAR/Validator/PECL.php 10 May 2006 03:34:14 -0000
@@ -48,7 +48,8 @@
function validatePackageName()
{
$ret = parent::validatePackageName();
- if ($this->_packagexml->getPackageType() == 'extsrc') {
+ if ($this->_packagexml->getPackageType() == 'extsrc' ||
+ $this->_packagexml->getPackageType() == 'zendextsrc') {
if (strtolower($this->_packagexml->getPackage()) !=
strtolower($this->_packagexml->getProvidesExtension())) {
$this->_addWarning('providesextension', 'package name "' .