From fac0638d1f1a637f2844f267d3b4b05c240b44b7 Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Sat, 25 Jul 2015 17:42:18 +0200 Subject: php-pear: 1.10.0dev1 --- php-pear-1.10-metadata.patch | 228 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 228 insertions(+) create mode 100644 php-pear-1.10-metadata.patch (limited to 'php-pear-1.10-metadata.patch') diff --git a/php-pear-1.10-metadata.patch b/php-pear-1.10-metadata.patch new file mode 100644 index 0000000..bc92d0d --- /dev/null +++ b/php-pear-1.10-metadata.patch @@ -0,0 +1,228 @@ +diff -up PEAR/Command/Install.php.metadata PEAR/Command/Install.php +--- PEAR/Command/Install.php.metadata 2015-07-25 13:41:42.000000000 +0200 ++++ PEAR/Command/Install.php 2015-07-25 17:07:55.601684682 +0200 +@@ -555,7 +555,13 @@ Run post-installation scripts in package + $packrootphp_dir = $this->installer->_prependPath( + $this->config->get('php_dir', null, 'pear.php.net'), + $options['packagingroot']); +- $instreg = new PEAR_Registry($packrootphp_dir); // other instreg! ++ $metadata_dir = $this->config->get('metadata_dir', null, 'pear.php.net'); ++ if ($metadata_dir) { ++ $metadata_dir = $this->installer->_prependPath( ++ $metadata_dir, ++ $options['packagingroot']); ++ } ++ $instreg = new PEAR_Registry($packrootphp_dir, false, false, $metadata_dir); // other instreg! + + if ($this->config->get('verbose') > 2) { + $this->ui->outputData('using package root: ' . $options['packagingroot']); +diff -up PEAR/Config.php.metadata PEAR/Config.php +--- PEAR/Config.php.metadata 2015-07-25 13:41:42.000000000 +0200 ++++ PEAR/Config.php 2015-07-25 17:14:09.956196305 +0200 +@@ -86,6 +86,13 @@ if (getenv('PHP_PEAR_INSTALL_DIR')) { + } + } + ++// Default for metadata_dir ++if (getenv('PHP_PEAR_METADATA_DIR')) { ++ define('PEAR_CONFIG_DEFAULT_METADATA_DIR', getenv('PHP_PEAR_METADATA_DIR')); ++} else { ++ define('PEAR_CONFIG_DEFAULT_METADATA_DIR', ''); ++} ++ + // Default for ext_dir + if (getenv('PHP_PEAR_EXTENSION_DIR')) { + define('PEAR_CONFIG_DEFAULT_EXT_DIR', getenv('PHP_PEAR_EXTENSION_DIR')); +@@ -397,6 +404,13 @@ class PEAR_Config extends PEAR + 'prompt' => 'PEAR directory', + 'group' => 'File Locations', + ), ++ 'metadata_dir' => array( ++ 'type' => 'directory', ++ 'default' => PEAR_CONFIG_DEFAULT_METADATA_DIR, ++ 'doc' => 'directory where metadata files are installed (registry, filemap, channels, ...)', ++ 'prompt' => 'PEAR metadata directory', ++ 'group' => 'File Locations', ++ ), + 'ext_dir' => array( + 'type' => 'directory', + 'default' => PEAR_CONFIG_DEFAULT_EXT_DIR, +@@ -646,7 +660,9 @@ class PEAR_Config extends PEAR + $this->configuration['default'][$key] = $info['default']; + } + +- $this->_registry['default'] = new PEAR_Registry($this->configuration['default']['php_dir']); ++ $this->_registry['default'] = new PEAR_Registry( ++ $this->configuration['default']['php_dir'], false, false, ++ $this->configuration['default']['metadata_dir']); + $this->_registry['default']->setConfig($this, false); + $this->_regInitialized['default'] = false; + //$GLOBALS['_PEAR_Config_instance'] = &$this; +@@ -750,7 +766,9 @@ class PEAR_Config extends PEAR + $this->configuration[$layer] = $data; + $this->_setupChannels(); + if (!$this->_noRegistry && ($phpdir = $this->get('php_dir', $layer, 'pear.php.net'))) { +- $this->_registry[$layer] = new PEAR_Registry($phpdir); ++ $this->_registry[$layer] = new PEAR_Registry( ++ $phpdir, false, false, ++ $this->get('metadata_dir', $layer, 'pear.php.net')); + $this->_registry[$layer]->setConfig($this, false); + $this->_regInitialized[$layer] = false; + } else { +@@ -907,7 +925,9 @@ class PEAR_Config extends PEAR + + $this->_setupChannels(); + if (!$this->_noRegistry && ($phpdir = $this->get('php_dir', $layer, 'pear.php.net'))) { +- $this->_registry[$layer] = new PEAR_Registry($phpdir); ++ $this->_registry[$layer] = new PEAR_Registry( ++ $phpdir, false, false, ++ $this->get('metadata_dir', $layer, 'pear.php.net')); + $this->_registry[$layer]->setConfig($this, false); + $this->_regInitialized[$layer] = false; + } else { +@@ -1595,7 +1615,9 @@ class PEAR_Config extends PEAR + + if (!is_object($this->_registry[$layer])) { + if ($phpdir = $this->get('php_dir', $layer, 'pear.php.net')) { +- $this->_registry[$layer] = new PEAR_Registry($phpdir); ++ $this->_registry[$layer] = new PEAR_Registry( ++ $phpdir, false, false, ++ $this->get('metadata_dir', $layer, 'pear.php.net')); + $this->_registry[$layer]->setConfig($this, false); + $this->_regInitialized[$layer] = false; + } else { +@@ -2079,7 +2101,9 @@ class PEAR_Config extends PEAR + continue; + } + $this->_registry[$layer] = +- new PEAR_Registry($this->get('php_dir', $layer, 'pear.php.net')); ++ new PEAR_Registry( ++ $this->get('php_dir', $layer, 'pear.php.net'), false, false, ++ $this->get('metadata_dir', $layer, 'pear.php.net')); + $this->_registry[$layer]->setConfig($this, false); + $this->_regInitialized[$layer] = false; + } +diff -up PEAR/DependencyDB.php.metadata PEAR/DependencyDB.php +--- PEAR/DependencyDB.php.metadata 2015-07-25 13:41:42.000000000 +0200 ++++ PEAR/DependencyDB.php 2015-07-25 17:07:55.602684685 +0200 +@@ -120,8 +120,11 @@ class PEAR_DependencyDB + + $this->_registry = &$this->_config->getRegistry(); + if (!$depdb) { +- $this->_depdb = $this->_config->get('php_dir', null, 'pear.php.net') . +- DIRECTORY_SEPARATOR . '.depdb'; ++ $dir = $this->_config->get('metadata_dir', null, 'pear.php.net'); ++ if (!$dir) { ++ $dir = $this->_config->get('php_dir', null, 'pear.php.net'); ++ } ++ $this->_depdb = $dir . DIRECTORY_SEPARATOR . '.depdb'; + } else { + $this->_depdb = $depdb; + } +@@ -758,4 +761,4 @@ class PEAR_DependencyDB + ); + } + } +-} +\ Pas de fin de ligne à la fin du fichier ++} +diff -up PEAR/Installer.php.metadata PEAR/Installer.php +--- PEAR/Installer.php.metadata 2015-07-25 17:16:56.954883069 +0200 ++++ PEAR/Installer.php 2015-07-25 17:17:16.672964162 +0200 +@@ -1128,15 +1128,6 @@ class PEAR_Installer extends PEAR_Downlo + + $pkgname = $pkg->getName(); + $channel = $pkg->getChannel(); +- if (isset($this->_options['packagingroot'])) { +- $regdir = $this->_prependPath( +- $this->config->get('php_dir', null, 'pear.php.net'), +- $this->_options['packagingroot']); +- +- $packrootphp_dir = $this->_prependPath( +- $this->config->get('php_dir', null, $channel), +- $this->_options['packagingroot']); +- } + + if (isset($options['installroot'])) { + $this->config->setInstallRoot($options['installroot']); +@@ -1148,7 +1139,21 @@ class PEAR_Installer extends PEAR_Downlo + $this->config->setInstallRoot(false); + $this->_registry = &$this->config->getRegistry(); + if (isset($this->_options['packagingroot'])) { +- $installregistry = new PEAR_Registry($regdir); ++ $regdir = $this->_prependPath( ++ $this->config->get('php_dir', null, 'pear.php.net'), ++ $this->_options['packagingroot']); ++ ++ $metadata_dir = $this->config->get('metadata_dir', null, 'pear.php.net'); ++ if ($metadata_dir) { ++ $metadata_dir = $this->_prependPath( ++ $metadata_dir, ++ $this->_options['packagingroot']); ++ } ++ $packrootphp_dir = $this->_prependPath( ++ $this->config->get('php_dir', null, $channel), ++ $this->_options['packagingroot']); ++ ++ $installregistry = new PEAR_Registry($regdir, false, false, $metadata_dir); + if (!$installregistry->channelExists($channel, true)) { + // we need to fake a channel-discover of this channel + $chanobj = $this->_registry->getChannel($channel, true); +diff -up PEAR/Registry.php.metadata PEAR/Registry.php +--- PEAR/Registry.php.metadata 2015-07-25 13:41:42.000000000 +0200 ++++ PEAR/Registry.php 2015-07-25 17:21:10.112933225 +0200 +@@ -131,23 +131,26 @@ class PEAR_Registry extends PEAR + * @access public + */ + function __construct($pear_install_dir = PEAR_INSTALL_DIR, $pear_channel = false, +- $pecl_channel = false) ++ $pecl_channel = false, $pear_metadata_dir = '') + { + parent::__construct(); +- $this->setInstallDir($pear_install_dir); ++ $this->setInstallDir($pear_install_dir, $pear_metadata_dir); + $this->_pearChannel = $pear_channel; + $this->_peclChannel = $pecl_channel; + $this->_config = false; + } + +- function setInstallDir($pear_install_dir = PEAR_INSTALL_DIR) ++ function setInstallDir($pear_install_dir = PEAR_INSTALL_DIR, $pear_metadata_dir = '') + { + $ds = DIRECTORY_SEPARATOR; + $this->install_dir = $pear_install_dir; +- $this->channelsdir = $pear_install_dir.$ds.'.channels'; +- $this->statedir = $pear_install_dir.$ds.'.registry'; +- $this->filemap = $pear_install_dir.$ds.'.filemap'; +- $this->lockfile = $pear_install_dir.$ds.'.lock'; ++ if (!$pear_metadata_dir) { ++ $pear_metadata_dir = $pear_install_dir; ++ } ++ $this->channelsdir = $pear_metadata_dir.$ds.'.channels'; ++ $this->statedir = $pear_metadata_dir.$ds.'.registry'; ++ $this->filemap = $pear_metadata_dir.$ds.'.filemap'; ++ $this->lockfile = $pear_metadata_dir.$ds.'.lock'; + } + + function hasWriteAccess() +@@ -180,7 +183,7 @@ class PEAR_Registry extends PEAR + { + $this->_config = &$config; + if ($resetInstallDir) { +- $this->setInstallDir($config->get('php_dir')); ++ $this->setInstallDir($config->get('php_dir'), $config->get('metadata_dir')); + } + } + +@@ -327,9 +330,9 @@ class PEAR_Registry extends PEAR + $this->_dependencyDB = &PEAR_DependencyDB::singleton($this->_config); + if (PEAR::isError($this->_dependencyDB)) { + // attempt to recover by removing the dep db +- if (file_exists($this->_config->get('php_dir', null, 'pear.php.net') . ++ if (file_exists($this->_config->get('metadata_dir', null, 'pear.php.net') . + DIRECTORY_SEPARATOR . '.depdb')) { +- @unlink($this->_config->get('php_dir', null, 'pear.php.net') . ++ @unlink($this->_config->get('metadata_dir', null, 'pear.php.net') . + DIRECTORY_SEPARATOR . '.depdb'); + } + -- cgit