diff options
author | Mark A. Hershberger <mah@debian.(none)> | 2009-03-25 00:36:21 -0400 |
---|---|---|
committer | Mark A. Hershberger <mah@debian.(none)> | 2009-03-25 00:36:21 -0400 |
commit | d29a4fd2dd3b5d4cf6e80b602544d7b71d794e76 (patch) | |
tree | b38e2e5c6974b9a15f103e5cf884cba9fff90ef4 /pear | |
parent | a88a88d0986a4a32288c102cdbfebd78d7e91d99 (diff) | |
download | php-d29a4fd2dd3b5d4cf6e80b602544d7b71d794e76.tar.gz |
Imported Upstream version 5.2.0upstream/5.2.0
Diffstat (limited to 'pear')
-rw-r--r-- | pear/Makefile.frag | 2 | ||||
-rw-r--r-- | pear/install-pear-nozlib.phar | 3137 |
2 files changed, 2043 insertions, 1096 deletions
diff --git a/pear/Makefile.frag b/pear/Makefile.frag index 7c63801ca..eb8e289cb 100644 --- a/pear/Makefile.frag +++ b/pear/Makefile.frag @@ -3,7 +3,7 @@ peardir=$(PEAR_INSTALLDIR) # Skip all php.ini files altogether -PEAR_INSTALL_FLAGS = -n -dshort_open_tag=0 -dsafe_mode=0 -derror_reporting=E_ALL -dmemory_limit=-1 -ddetect_unicode=0 +PEAR_INSTALL_FLAGS = -n -dshort_open_tag=0 -dsafe_mode=0 -dopen_basedir= -derror_reporting=E_ALL -dmemory_limit=-1 -ddetect_unicode=0 install-pear-installer: $(SAPI_CLI_PATH) @$(top_builddir)/sapi/cli/php $(PEAR_INSTALL_FLAGS) $(builddir)/install-pear-nozlib.phar -d "$(peardir)" -b "$(bindir)" diff --git a/pear/install-pear-nozlib.phar b/pear/install-pear-nozlib.phar index c30900dc9..e5f43794b 100644 --- a/pear/install-pear-nozlib.phar +++ b/pear/install-pear-nozlib.phar @@ -1,649 +1,667 @@ -<?php #PHP_ARCHIVE_HEADER-0.8.0 -error_reporting(E_ALL); -if (function_exists('mb_internal_encoding')) { - mb_internal_encoding('ASCII'); -} -if (!class_exists('PHP_Archive')) {/** - * PHP_Archive Class (implements .phar) - * - * @package PHP_Archive - * @category PHP - */ -/** - * Flag for GZ compression - */ -define('PHP_ARCHIVE_COMPRESSED', 1); -/** - * PHP_Archive Class (implements .phar) - * - * PHAR files a singular archive from which an entire application can run. - * To use it, simply package it using {@see PHP_Archive_Creator} and use phar:// - * URIs to your includes. i.e. require_once 'phar://config.php' will include config.php - * from the root of the PHAR file. - * - * Gz code borrowed from the excellent File_Archive package by Vincent Lascaux. - * - * @copyright Copyright David Shafik and Synaptic Media 2004. All rights reserved. - * @author Davey Shafik <davey@synapticmedia.net> - * @author Greg Beaver <cellog@php.net> - * @link http://www.synapticmedia.net Synaptic Media - * @version Id: Archive.php,v 1.28 2006/03/03 21:35:29 cellog Exp $ - * @package PHP_Archive - * @category PHP - */ - -class PHP_Archive -{ - /** - * Whether this archive is compressed with zlib - * - * @var bool - */ - private $_compressed; - /** - * @var string Real path to the .phar archive - */ - private $_archiveName = null; - /** - * Current file name in the phar - * @var string - */ - protected $currentFilename = null; - /** - * Length of current file in the phar - * @var string - */ - protected $internalFileLength = null; - /** - * Current file statistics (size, creation date, etc.) - * @var string - */ - protected $currentStat = null; - /** - * @var resource|null Pointer to open .phar - */ - protected $fp = null; - /** - * @var int Current Position of the pointer - */ - protected $position = 0; - - /** - * Map actual realpath of phars to meta-data about the phar - * - * Data is indexed by the alias that is used by internal files. In other - * words, if a file is included via: - * <code> - * require_once 'phar://PEAR.phar/PEAR/Installer.php'; - * </code> - * then the alias is "PEAR.phar" - * - * Information stored is the actual file name, a boolean indicating whether - * this .phar is compressed with zlib, and the precise offset of internal files - * within the .phar, used with the {@link $_manifest} to load actual file contents - * @var array - */ - private static $_pharMapping = array(); - /** - * File listing for the .phar - * - * The manifest is indexed per phar. - * - * Files within the .phar are indexed by their relative path within the - * .phar. Each file has this information in its internal array - * - * - 0 = uncompressed file size - * - 1 = timestamp of when file was added to phar - * - 2 = offset of file within phar relative to internal file's start - * - 3 = compressed file size (actual size in the phar) - * @var array - */ - private static $_manifest = array(); - /** - * Absolute offset of internal files within the .phar, indexed by absolute - * path to the .phar - * - * @var array - */ - private static $_fileStart = array(); - /** - * file name of the phar - * - * @var string - */ - private $_basename; - - /** - * Map a full real file path to an alias used to refer to the .phar - * - * This function can only be called from the initialization of the .phar itself. - * Any attempt to call from outside the .phar or to re-alias the .phar will fail - * as a security measure. - * @param string $file full realpath() filepath, like /path/to/go-pear.phar - * @param string $alias alias used in opening a file within the phar - * like phar://go-pear.phar/file - * @param bool $compressed determines whether to attempt zlib uncompression - * on accessing internal files - * @param int $dataoffset the value of __COMPILER_HALT_OFFSET__ - */ - public static final function mapPhar($file, $dataoffset) - { - $file = realpath($file); - // this ensures that this is safe - if (!in_array($file, get_included_files())) { - die('SECURITY ERROR: PHP_Archive::mapPhar can only be called from within ' . - 'the phar that initiates it'); - } - if (!is_array(self::$_pharMapping)) { - self::$_pharMapping = array(); - } - if (!isset(self::$_manifest[$file])) { - $fp = fopen($file, 'rb'); - // seek to __HALT_COMPILER_OFFSET__ - fseek($fp, $dataoffset); - $manifest_length = unpack('Vlen', fread($fp, 4)); - $info = self::_unserializeManifest(fread($fp, $manifest_length['len'])); - if (!$info) { - die; // error declared in unserializeManifest - } - $alias = $info['alias']; - self::$_manifest[$file] = $info['manifest']; - $compressed = $info['compressed']; - self::$_fileStart[$file] = ftell($fp); - fclose($fp); - } - if ($compressed) { - if (!function_exists('gzinflate')) { - die('Error: zlib extension is not enabled - gzinflate() function needed' . - ' for compressed .phars'); - } - } - if (isset(self::$_pharMapping[$alias])) { - die('ERROR: PHP_Archive::mapPhar has already been called for alias "' . - $alias . '" cannot re-alias to "' . $file . '"'); - } - self::$_pharMapping[$alias] = array($file, $compressed, $dataoffset); - } - - /** - * @param string - */ - private static function processFile($path) - { - if ($path == '.') { - return ''; - } - $std = str_replace("\\", "/", $path); - while ($std != ($std = ereg_replace("[^\/:?]+/\.\./", "", $std))) ; - $std = str_replace("/./", "", $std); - if (strlen($std) > 1 && $std[0] == '/') { - $std = substr($std, 1); - } - if (strncmp($std, "./", 2) == 0) { - return substr($std, 2); - } else { - return $std; - } - } - - /** - * Seek in the master archive to a matching file or directory - * @param string - */ - protected function selectFile($path, $allowdirs = true) - { - $std = self::processFile($path); - if (isset(self::$_manifest[$this->_archiveName][$path])) { - $this->_setCurrentFile($path); - return true; - } - if (!$allowdirs) { - return 'Error: "' . $path . '" is not a file in phar "' . $this->_basename . '"'; - } - foreach (self::$_manifest[$this->_archiveName] as $file => $info) { - if (empty($std) || - //$std is a directory - strncmp($std.'/', $path, strlen($std)+1) == 0) { - $this->currentFilename = $this->internalFileLength = $this->currentStat = null; - return true; - } - } - return 'Error: "' . $path . '" not found in phar "' . $this->_basename . '"'; - } - - private function _setCurrentFile($path) - { - $this->currentStat = array( - 2 => 0100444, // file mode, readable by all, writeable by none - 4 => 0, // uid - 5 => 0, // gid - 7 => self::$_manifest[$this->_archiveName][$path][0], // size - 9 => self::$_manifest[$this->_archiveName][$path][1], // creation time - ); - $this->currentFilename = $path; - $this->internalFileLength = self::$_manifest[$this->_archiveName][$path][2]; - // seek to offset of file header within the .phar - if (is_resource(@$this->fp)) { - fseek($this->fp, self::$_fileStart[$this->_archiveName] + self::$_manifest[$this->_archiveName][$path][5]); - } - } - - /** - * Seek to a file within the master archive, and extract its contents - * @param string - * @return array|string an array containing an error message string is returned - * upon error, otherwise the file contents are returned - */ - public function extractFile($path) - { - $this->fp = @fopen($this->_archiveName, "rb"); - if (!$this->fp) { - return array('Error: cannot open phar "' . $this->_archiveName . '"'); - } - if (($e = $this->selectFile($path, false)) === true) { - $data = ''; - $count = $this->internalFileLength; - while ($count) { - if ($count < 8192) { - $data .= @fread($this->fp, $count); - $count = 0; - } else { - $count -= 8192; - $data .= @fread($this->fp, 8192); - } - } - @fclose($this->fp); - if (self::$_manifest[$this->_archiveName][$path][4] & PHP_ARCHIVE_COMPRESSED) { - $data = gzinflate($data); - } - if (!isset(self::$_manifest[$this->_archiveName][$path]['ok'])) { - if (strlen($data) != $this->currentStat[7]) { - return array("Not valid internal .phar file (size error {$size} != " . - $this->currentStat[7] . ")"); - } - if (self::$_manifest[$this->_archiveName][$path][3] != crc32($data)) { - return array("Not valid internal .phar file (checksum error)"); - } - self::$_manifest[$this->_archiveName][$path]['ok'] = true; - } - return $data; - } else { - @fclose($this->fp); - return array($e); - } - } - - /** - * Locate the .phar archive in the include_path and detect the file to open within - * the archive. - * - * Possible parameters are phar://filename_within_phar.ext or - * phar://pharname.phar/filename_within_phar.ext - * - * phar://filename_within_phar.ext will simply use the last .phar opened. - * @param string a file within the archive - * @return string the filename within the .phar to retrieve - */ - public function initializeStream($file) - { - $info = parse_url($file); - if (!isset($info['host']) || !count(self::$_pharMapping)) { - // malformed internal file - return false; - } - if (!isset($info['path'])) { - // last opened phar is requested - $info['path'] = $info['host']; - $info['host'] = ''; - } elseif (strlen($info['path']) > 1) { - $info['path'] = substr($info['path'], 1); - } - if (isset(self::$_pharMapping[$info['host']])) { - $this->_basename = $info['host']; - $this->_archiveName = self::$_pharMapping[$info['host']][0]; - $this->_compressed = self::$_pharMapping[$info['host']][1]; - } else { - // no such phar has been included, or last opened phar is requested - $pharinfo = end(self::$_pharMapping); - $this->_basename = key(self::$_pharMapping); - $this->_archiveName = $pharinfo[0]; - $this->_compressed = $pharinfo[1]; - } - $file = $info['path']; - return $file; - } - - /** - * extract the manifest into an internal array - * - * @param string $manifest - * @return false|array - */ - private static function _unserializeManifest($manifest) - { - // retrieve the number of files in the manifest - $info = unpack('V', substr($manifest, 0, 4)); - $apiver = substr($manifest, 4, 2); - $apiver = bin2hex($apiver); - $apiver_dots = hexdec($apiver[0]) . '.' . hexdec($apiver[1]) . '.' . hexdec($apiver[2]); - $majorcompat = hexdec($apiver[0]); - $calcapi = explode('.', '0.8.0'); - if ($calcapi[0] != $majorcompat) { - trigger_error('Phar is incompatible API version ' . $apiver_dots . ', but ' . - 'PHP_Archive is API version 0.8.0'); - return false; - } - if ($calcapi[0] === '0') { - if ('0.8.0' != $apiver_dots) { - trigger_error('Phar is API version ' . $apiver_dots . - ', but PHP_Archive is API version 0.8.0', E_USER_ERROR); - return false; - } - } - $ret = array('compressed' => $apiver[3]); - $aliaslen = unpack('V', substr($manifest, 6, 4)); - $ret['alias'] = substr($manifest, 10, $aliaslen[1]); - $manifest = substr($manifest, 10 + $aliaslen[1]); - $offset = 0; - $start = 0; - for ($i = 0; $i < $info[1]; $i++) { - // length of the file name - $len = unpack('V', substr($manifest, $start, 4)); - $start += 4; - // file name - $savepath = substr($manifest, $start, $len[1]); - $start += $len[1]; - // retrieve manifest data: - // 0 = uncompressed file size - // 1 = timestamp of when file was added to phar - // 2 = compressed filesize - // 3 = crc32 - // 4 = flags - $ret['manifest'][$savepath] = array_values(unpack('Va/Vb/Vc/Vd/Ce', substr($manifest, $start, 17))); - $ret['manifest'][$savepath][5] = $offset; - $offset += $ret['manifest'][$savepath][2]; - $start += 17; - } - return $ret; - } - - /** - * Open the requested file - PHP streams API - * - * @param string $file String provided by the Stream wrapper - * @access private - */ - public function stream_open($file) - { - return $this->_streamOpen($file); - } - - /** - * @param string filename to opne, or directory name - * @param bool if true, a directory will be matched, otherwise only files - * will be matched - * @uses trigger_error() - * @return bool success of opening - * @access private - */ - private function _streamOpen($file, $searchForDir = false) - { - $path = $this->initializeStream($file); - if (!$path) { - trigger_error('Error: Unknown phar in "' . $file . '"', E_USER_ERROR); - } - if (is_array($this->file = $this->extractFile($path))) { - trigger_error($this->file[0], E_USER_ERROR); - return false; - } - if ($path != $this->currentFilename) { - if (!$searchForDir) { - trigger_error("Cannot open '$file', is a directory", E_USER_ERROR); - return false; - } else { - $this->file = ''; - return true; - } - } - - if (!is_null($this->file) && $this->file !== false) { - return true; - } else { - return false; - } - } - - /** - * Read the data - PHP streams API - * - * @param int - * @access private - */ - public function stream_read($count) - { - $ret = substr($this->file, $this->position, $count); - $this->position += strlen($ret); - return $ret; - } - - /** - * Whether we've hit the end of the file - PHP streams API - * @access private - */ - function stream_eof() - { - return $this->position >= $this->currentStat[7]; - } - - /** - * For seeking the stream - PHP streams API - * @param int - * @param SEEK_SET|SEEK_CUR|SEEK_END - * @access private - */ - public function stream_seek($pos, $whence) - { - switch ($whence) { - case SEEK_SET: - if ($pos < 0) { - return false; - } - $this->position = $pos; - break; - case SEEK_CUR: - if ($pos + $this->currentStat[7] < 0) { - return false; - } - $this->position += $pos; - break; - case SEEK_END: - if ($pos + $this->currentStat[7] < 0) { - return false; - } - $this->position = $pos + $this->currentStat[7]; - default: - return false; - } - return true; - } - - /** - * The current position in the stream - PHP streams API - * @access private - */ - public function stream_tell() - { - return $this->position; - } - - /** - * The result of an fstat call, returns mod time from creation, and file size - - * PHP streams API - * @uses _stream_stat() - * @access private - */ - public function stream_stat() - { - return $this->_stream_stat(); - } - - /** - * Retrieve statistics on a file or directory within the .phar - * @param string file/directory to stat - * @access private - */ - public function _stream_stat($file = null) - { - $std = $file ? self::processFile($file) : $this->currentFilename; - if ($file) { - if (isset(self::$_manifest[$this->_archiveName][$file])) { - $this->_setCurrentFile($file); - $isdir = false; - } else { - $isdir = true; - } - } else { - $isdir = false; // open streams must be files - } - $mode = $isdir ? 0040444 : 0100444; - // 040000 = dir, 010000 = file - // everything is readable, nothing is writeable - return array( - 0, 0, $mode, 0, 0, 0, 0, 0, 0, 0, 0, 0, // non-associative indices - 'dev' => 0, 'ino' => 0, - 'mode' => $mode, - 'nlink' => 0, 'uid' => 0, 'gid' => 0, 'rdev' => 0, 'blksize' => 0, 'blocks' => 0, - 'size' => $this->currentStat[7], - 'atime' => $this->currentStat[9], - 'mtime' => $this->currentStat[9], - 'ctime' => $this->currentStat[9], - ); - } - - /** - * Stat a closed file or directory - PHP streams API - * @param string - * @param int - * @access private - */ - public function url_stat($url, $flags) - { - $path = $this->initializeStream($url); - return $this->_stream_stat($path); - } - - /** - * Open a directory in the .phar for reading - PHP streams API - * @param string directory name - * @access private - */ - public function dir_opendir($path) - { - $info = parse_url($path); - $path = !empty($info['path']) ? - $info['host'] . $info['path'] : $info['host'] . '/'; - $path = $this->initializeStream('phar://' . $path); - if (isset(self::$_manifest[$this->_archiveName][$path])) { - trigger_error('Error: "' . $path . '" is a file, and cannot be opened with opendir', - E_USER_ERROR); - return false; - } - if ($path == false) { - trigger_error('Error: Unknown phar in "' . $file . '"', E_USER_ERROR); - return false; - } - $this->fp = @fopen($this->_archiveName, "rb"); - if (!$this->fp) { - trigger_error('Error: cannot open phar "' . $this->_archiveName . '"'); - return false; - } - $this->_dirFiles = array(); - foreach (self::$_manifest[$this->_archiveName] as $file => $info) { - if ($path == '/') { - if (strpos($file, '/')) { - $this->_dirFiles[array_shift($a = explode('/', $file))] = true; - } else { - $this->_dirFiles[$file] = true; - } - } elseif (strpos($file, $path) === 0) { - $fname = substr($file, strlen($path) + 1); - if (strpos($fname, '/')) { - $this->_dirFiles[array_unshift($a = explode('/', $fname))] = true; - } else { - $this->_dirFiles[$fname] = true; - } - } - } - @fclose($this->fp); - @uksort($this->_dirFiles, 'strnatcmp'); - return true; - } - - /** - * Read the next directory entry - PHP streams API - * @access private - */ - public function dir_readdir() - { - $ret = key($this->_dirFiles); - @next($this->_dirFiles); - if (!$ret) { - return false; - } - return $ret; - } - - /** - * Close a directory handle opened with opendir() - PHP streams API - * @access private - */ - public function dir_closedir() - { - $this->_dirFiles = array(); - reset($this->_dirFiles); - return true; - } - - /** - * Rewind to the first directory entry - PHP streams API - * @access private - */ - public function dir_rewinddir() - { - reset($this->_dirFiles); - return true; - } - - /** - * API version of this class - * @return string - */ - public final function APIVersion() - { - return '0.8.0'; - } -}} -if (!class_exists('Phar')) { - if (!in_array('phar', stream_get_wrappers())) { - stream_wrapper_register('phar', 'PHP_Archive'); - } - PHP_Archive::mapPhar(__FILE__, __COMPILER_HALT_OFFSET__); -} else { - Phar::mapPhar(); -} -if (class_exists('PHP_Archive') && !in_array('phar', stream_get_wrappers())) { - stream_wrapper_register('phar', 'PHP_Archive'); -} -@ini_set('memory_limit', -1); - -require_once 'phar://install-pear-nozlib.phar/index.php'; -__HALT_COMPILER(); - - - - - - +<?php #PHP_ARCHIVE_HEADER-0.8.0
+error_reporting(E_ALL);
+if (function_exists('mb_internal_encoding')) {
+ mb_internal_encoding('ASCII');
+}
+if (!class_exists('PHP_Archive')) {/**
+ * PHP_Archive Class (implements .phar)
+ *
+ * @package PHP_Archive
+ * @category PHP
+ */
+/**
+ * Flag for GZ compression
+ */
+define('PHP_ARCHIVE_COMPRESSED', 1);
+/**
+ * PHP_Archive Class (implements .phar)
+ *
+ * PHAR files a singular archive from which an entire application can run.
+ * To use it, simply package it using {@see PHP_Archive_Creator} and use phar://
+ * URIs to your includes. i.e. require_once 'phar://config.php' will include config.php
+ * from the root of the PHAR file.
+ *
+ * Gz code borrowed from the excellent File_Archive package by Vincent Lascaux.
+ *
+ * @copyright Copyright David Shafik and Synaptic Media 2004. All rights reserved.
+ * @author Davey Shafik <davey@synapticmedia.net>
+ * @author Greg Beaver <cellog@php.net>
+ * @link http://www.synapticmedia.net Synaptic Media
+ * @version Id: Archive.php,v 1.33 2006/07/18 23:31:47 cellog Exp $
+ * @package PHP_Archive
+ * @category PHP
+ */
+
+class PHP_Archive
+{
+ /**
+ * Whether this archive is compressed with zlib
+ *
+ * @var bool
+ */
+ private $_compressed;
+ /**
+ * @var string Real path to the .phar archive
+ */
+ private $_archiveName = null;
+ /**
+ * Current file name in the phar
+ * @var string
+ */
+ protected $currentFilename = null;
+ /**
+ * Length of current file in the phar
+ * @var string
+ */
+ protected $internalFileLength = null;
+ /**
+ * Current file statistics (size, creation date, etc.)
+ * @var string
+ */
+ protected $currentStat = null;
+ /**
+ * @var resource|null Pointer to open .phar
+ */
+ protected $fp = null;
+ /**
+ * @var int Current Position of the pointer
+ */
+ protected $position = 0;
+
+ /**
+ * Map actual realpath of phars to meta-data about the phar
+ *
+ * Data is indexed by the alias that is used by internal files. In other
+ * words, if a file is included via:
+ * <code>
+ * require_once 'phar://PEAR.phar/PEAR/Installer.php';
+ * </code>
+ * then the alias is "PEAR.phar"
+ *
+ * Information stored is the actual file name, a boolean indicating whether
+ * this .phar is compressed with zlib, and the precise offset of internal files
+ * within the .phar, used with the {@link $_manifest} to load actual file contents
+ * @var array
+ */
+ private static $_pharMapping = array();
+ /**
+ * File listing for the .phar
+ *
+ * The manifest is indexed per phar.
+ *
+ * Files within the .phar are indexed by their relative path within the
+ * .phar. Each file has this information in its internal array
+ *
+ * - 0 = uncompressed file size
+ * - 1 = timestamp of when file was added to phar
+ * - 2 = offset of file within phar relative to internal file's start
+ * - 3 = compressed file size (actual size in the phar)
+ * @var array
+ */
+ private static $_manifest = array();
+ /**
+ * Absolute offset of internal files within the .phar, indexed by absolute
+ * path to the .phar
+ *
+ * @var array
+ */
+ private static $_fileStart = array();
+ /**
+ * file name of the phar
+ *
+ * @var string
+ */
+ private $_basename;
+
+ /**
+ * Map a full real file path to an alias used to refer to the .phar
+ *
+ * This function can only be called from the initialization of the .phar itself.
+ * Any attempt to call from outside the .phar or to re-alias the .phar will fail
+ * as a security measure.
+ * @param string $file full realpath() filepath, like /path/to/go-pear.phar
+ * @param string $alias alias used in opening a file within the phar
+ * like phar://go-pear.phar/file
+ * @param bool $compressed determines whether to attempt zlib uncompression
+ * on accessing internal files
+ * @param int $dataoffset the value of __COMPILER_HALT_OFFSET__
+ */
+ public static final function mapPhar($file, $dataoffset)
+ {
+ $file = realpath($file);
+ // this ensures that this is safe
+ if (!in_array($file, get_included_files())) {
+ die('SECURITY ERROR: PHP_Archive::mapPhar can only be called from within ' .
+ 'the phar that initiates it');
+ }
+ if (!is_array(self::$_pharMapping)) {
+ self::$_pharMapping = array();
+ }
+ if (!isset(self::$_manifest[$file])) {
+ $fp = fopen($file, 'rb');
+ // seek to __HALT_COMPILER_OFFSET__
+ fseek($fp, $dataoffset);
+ $manifest_length = unpack('Vlen', fread($fp, 4));
+ $manifest = '';
+ $last = '1';
+ while (strlen($last) && strlen($manifest) < $manifest_length['len']) {
+ $read = 8192;
+ if ($manifest_length['len'] - strlen($manifest) < 8192) {
+ $read = $manifest_length['len'] - strlen($manifest);
+ }
+ $last = fread($fp, $read);
+ $manifest .= $last;
+ }
+ if (strlen($manifest) < $manifest_length['len']) {
+ die('ERROR: manifest length read was "' . strlen($manifest) .'" should be "' .
+ $manifest_length['len'] . '"');
+ }
+ $info = self::_unserializeManifest($manifest);
+ if (!$info) {
+ die; // error declared in unserializeManifest
+ }
+ $alias = $info['alias'];
+ self::$_manifest[$file] = $info['manifest'];
+ $compressed = $info['compressed'];
+ self::$_fileStart[$file] = ftell($fp);
+ fclose($fp);
+ }
+ if ($compressed) {
+ if (!function_exists('gzinflate')) {
+ die('Error: zlib extension is not enabled - gzinflate() function needed' .
+ ' for compressed .phars');
+ }
+ }
+ if (isset(self::$_pharMapping[$alias])) {
+ die('ERROR: PHP_Archive::mapPhar has already been called for alias "' .
+ $alias . '" cannot re-alias to "' . $file . '"');
+ }
+ self::$_pharMapping[$alias] = array($file, $compressed, $dataoffset);
+ }
+
+ /**
+ * @param string
+ */
+ private static function processFile($path)
+ {
+ if ($path == '.') {
+ return '';
+ }
+ $std = str_replace("\\", "/", $path);
+ while ($std != ($std = ereg_replace("[^\/:?]+/\.\./", "", $std))) ;
+ $std = str_replace("/./", "", $std);
+ if (strlen($std) > 1 && $std[0] == '/') {
+ $std = substr($std, 1);
+ }
+ if (strncmp($std, "./", 2) == 0) {
+ return substr($std, 2);
+ } else {
+ return $std;
+ }
+ }
+
+ /**
+ * Seek in the master archive to a matching file or directory
+ * @param string
+ */
+ protected function selectFile($path, $allowdirs = true)
+ {
+ $std = self::processFile($path);
+ if (isset(self::$_manifest[$this->_archiveName][$path])) {
+ $this->_setCurrentFile($path);
+ return true;
+ }
+ if (!$allowdirs) {
+ return 'Error: "' . $path . '" is not a file in phar "' . $this->_basename . '"';
+ }
+ foreach (self::$_manifest[$this->_archiveName] as $file => $info) {
+ if (empty($std) ||
+ //$std is a directory
+ strncmp($std.'/', $path, strlen($std)+1) == 0) {
+ $this->currentFilename = $this->internalFileLength = $this->currentStat = null;
+ return true;
+ }
+ }
+ return 'Error: "' . $path . '" not found in phar "' . $this->_basename . '"';
+ }
+
+ private function _setCurrentFile($path)
+ {
+ $this->currentStat = array(
+ 2 => 0100444, // file mode, readable by all, writeable by none
+ 4 => 0, // uid
+ 5 => 0, // gid
+ 7 => self::$_manifest[$this->_archiveName][$path][0], // size
+ 9 => self::$_manifest[$this->_archiveName][$path][1], // creation time
+ );
+ $this->currentFilename = $path;
+ $this->internalFileLength = self::$_manifest[$this->_archiveName][$path][2];
+ // seek to offset of file header within the .phar
+ if (is_resource(@$this->fp)) {
+ fseek($this->fp, self::$_fileStart[$this->_archiveName] + self::$_manifest[$this->_archiveName][$path][5]);
+ }
+ }
+
+ /**
+ * Seek to a file within the master archive, and extract its contents
+ * @param string
+ * @return array|string an array containing an error message string is returned
+ * upon error, otherwise the file contents are returned
+ */
+ public function extractFile($path)
+ {
+ $this->fp = @fopen($this->_archiveName, "rb");
+ if (!$this->fp) {
+ return array('Error: cannot open phar "' . $this->_archiveName . '"');
+ }
+ if (($e = $this->selectFile($path, false)) === true) {
+ $data = '';
+ $count = $this->internalFileLength;
+ while ($count) {
+ if ($count < 8192) {
+ $data .= @fread($this->fp, $count);
+ $count = 0;
+ } else {
+ $count -= 8192;
+ $data .= @fread($this->fp, 8192);
+ }
+ }
+ @fclose($this->fp);
+ if (self::$_manifest[$this->_archiveName][$path][4] & PHP_ARCHIVE_COMPRESSED) {
+ $data = gzinflate($data);
+ }
+ if (!isset(self::$_manifest[$this->_archiveName][$path]['ok'])) {
+ if (strlen($data) != $this->currentStat[7]) {
+ return array("Not valid internal .phar file (size error {$size} != " .
+ $this->currentStat[7] . ")");
+ }
+ if (self::$_manifest[$this->_archiveName][$path][3] != crc32($data)) {
+ return array("Not valid internal .phar file (checksum error)");
+ }
+ self::$_manifest[$this->_archiveName][$path]['ok'] = true;
+ }
+ return $data;
+ } else {
+ @fclose($this->fp);
+ return array($e);
+ }
+ }
+
+ /**
+ * Locate the .phar archive in the include_path and detect the file to open within
+ * the archive.
+ *
+ * Possible parameters are phar://filename_within_phar.ext or
+ * phar://pharname.phar/filename_within_phar.ext
+ *
+ * phar://filename_within_phar.ext will simply use the last .phar opened.
+ * @param string a file within the archive
+ * @return string the filename within the .phar to retrieve
+ */
+ public function initializeStream($file)
+ {
+ $info = parse_url($file);
+ if (!isset($info['host']) || !count(self::$_pharMapping)) {
+ // malformed internal file
+ return false;
+ }
+ if (!isset($info['path'])) {
+ // last opened phar is requested
+ $info['path'] = $info['host'];
+ $info['host'] = '';
+ } elseif (strlen($info['path']) > 1) {
+ $info['path'] = substr($info['path'], 1);
+ }
+ if (isset(self::$_pharMapping[$info['host']])) {
+ $this->_basename = $info['host'];
+ $this->_archiveName = self::$_pharMapping[$info['host']][0];
+ $this->_compressed = self::$_pharMapping[$info['host']][1];
+ } else {
+ // no such phar has been included, or last opened phar is requested
+ $pharinfo = end(self::$_pharMapping);
+ $this->_basename = key(self::$_pharMapping);
+ $this->_archiveName = $pharinfo[0];
+ $this->_compressed = $pharinfo[1];
+ }
+ $file = $info['path'];
+ return $file;
+ }
+
+ /**
+ * extract the manifest into an internal array
+ *
+ * @param string $manifest
+ * @return false|array
+ */
+ private static function _unserializeManifest($manifest)
+ {
+ // retrieve the number of files in the manifest
+ $info = unpack('V', substr($manifest, 0, 4));
+ $apiver = substr($manifest, 4, 2);
+ $apiver = bin2hex($apiver);
+ $apiver_dots = hexdec($apiver[0]) . '.' . hexdec($apiver[1]) . '.' . hexdec($apiver[2]);
+ $majorcompat = hexdec($apiver[0]);
+ $calcapi = explode('.', '0.8.0');
+ if ($calcapi[0] != $majorcompat) {
+ trigger_error('Phar is incompatible API version ' . $apiver_dots . ', but ' .
+ 'PHP_Archive is API version 0.8.0');
+ return false;
+ }
+ if ($calcapi[0] === '0') {
+ if ('0.8.0' != $apiver_dots) {
+ trigger_error('Phar is API version ' . $apiver_dots .
+ ', but PHP_Archive is API version 0.8.0', E_USER_ERROR);
+ return false;
+ }
+ }
+ $ret = array('compressed' => $apiver[3]);
+ $aliaslen = unpack('V', substr($manifest, 6, 4));
+ $ret['alias'] = substr($manifest, 10, $aliaslen[1]);
+ $manifest = substr($manifest, 10 + $aliaslen[1]);
+ $offset = 0;
+ $start = 0;
+ for ($i = 0; $i < $info[1]; $i++) {
+ // length of the file name
+ $len = unpack('V', substr($manifest, $start, 4));
+ $start += 4;
+ // file name
+ $savepath = substr($manifest, $start, $len[1]);
+ $start += $len[1];
+ // retrieve manifest data:
+ // 0 = uncompressed file size
+ // 1 = timestamp of when file was added to phar
+ // 2 = compressed filesize
+ // 3 = crc32
+ // 4 = flags
+ $ret['manifest'][$savepath] = array_values(unpack('Va/Vb/Vc/Vd/Ce', substr($manifest, $start, 17)));
+ $ret['manifest'][$savepath][5] = $offset;
+ $offset += $ret['manifest'][$savepath][2];
+ $start += 17;
+ }
+ return $ret;
+ }
+
+ /**
+ * Open the requested file - PHP streams API
+ *
+ * @param string $file String provided by the Stream wrapper
+ * @access private
+ */
+ public function stream_open($file)
+ {
+ return $this->_streamOpen($file);
+ }
+
+ /**
+ * @param string filename to opne, or directory name
+ * @param bool if true, a directory will be matched, otherwise only files
+ * will be matched
+ * @uses trigger_error()
+ * @return bool success of opening
+ * @access private
+ */
+ private function _streamOpen($file, $searchForDir = false)
+ {
+ $path = $this->initializeStream($file);
+ if (!$path) {
+ trigger_error('Error: Unknown phar in "' . $file . '"', E_USER_ERROR);
+ }
+ if (is_array($this->file = $this->extractFile($path))) {
+ trigger_error($this->file[0], E_USER_ERROR);
+ return false;
+ }
+ if ($path != $this->currentFilename) {
+ if (!$searchForDir) {
+ trigger_error("Cannot open '$file', is a directory", E_USER_ERROR);
+ return false;
+ } else {
+ $this->file = '';
+ return true;
+ }
+ }
+
+ if (!is_null($this->file) && $this->file !== false) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Read the data - PHP streams API
+ *
+ * @param int
+ * @access private
+ */
+ public function stream_read($count)
+ {
+ $ret = substr($this->file, $this->position, $count);
+ $this->position += strlen($ret);
+ return $ret;
+ }
+
+ /**
+ * Whether we've hit the end of the file - PHP streams API
+ * @access private
+ */
+ function stream_eof()
+ {
+ return $this->position >= $this->currentStat[7];
+ }
+
+ /**
+ * For seeking the stream - PHP streams API
+ * @param int
+ * @param SEEK_SET|SEEK_CUR|SEEK_END
+ * @access private
+ */
+ public function stream_seek($pos, $whence)
+ {
+ switch ($whence) {
+ case SEEK_SET:
+ if ($pos < 0) {
+ return false;
+ }
+ $this->position = $pos;
+ break;
+ case SEEK_CUR:
+ if ($pos + $this->currentStat[7] < 0) {
+ return false;
+ }
+ $this->position += $pos;
+ break;
+ case SEEK_END:
+ if ($pos + $this->currentStat[7] < 0) {
+ return false;
+ }
+ $this->position = $pos + $this->currentStat[7];
+ default:
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * The current position in the stream - PHP streams API
+ * @access private
+ */
+ public function stream_tell()
+ {
+ return $this->position;
+ }
+
+ /**
+ * The result of an fstat call, returns mod time from creation, and file size -
+ * PHP streams API
+ * @uses _stream_stat()
+ * @access private
+ */
+ public function stream_stat()
+ {
+ return $this->_stream_stat();
+ }
+
+ /**
+ * Retrieve statistics on a file or directory within the .phar
+ * @param string file/directory to stat
+ * @access private
+ */
+ public function _stream_stat($file = null)
+ {
+ $std = $file ? self::processFile($file) : $this->currentFilename;
+ if ($file) {
+ if (isset(self::$_manifest[$this->_archiveName][$file])) {
+ $this->_setCurrentFile($file);
+ $isdir = false;
+ } else {
+ $isdir = true;
+ }
+ } else {
+ $isdir = false; // open streams must be files
+ }
+ $mode = $isdir ? 0040444 : 0100444;
+ // 040000 = dir, 010000 = file
+ // everything is readable, nothing is writeable
+ return array(
+ 0, 0, $mode, 0, 0, 0, 0, 0, 0, 0, 0, 0, // non-associative indices
+ 'dev' => 0, 'ino' => 0,
+ 'mode' => $mode,
+ 'nlink' => 0, 'uid' => 0, 'gid' => 0, 'rdev' => 0, 'blksize' => 0, 'blocks' => 0,
+ 'size' => $this->currentStat[7],
+ 'atime' => $this->currentStat[9],
+ 'mtime' => $this->currentStat[9],
+ 'ctime' => $this->currentStat[9],
+ );
+ }
+
+ /**
+ * Stat a closed file or directory - PHP streams API
+ * @param string
+ * @param int
+ * @access private
+ */
+ public function url_stat($url, $flags)
+ {
+ $path = $this->initializeStream($url);
+ return $this->_stream_stat($path);
+ }
+
+ /**
+ * Open a directory in the .phar for reading - PHP streams API
+ * @param string directory name
+ * @access private
+ */
+ public function dir_opendir($path)
+ {
+ $info = parse_url($path);
+ $path = !empty($info['path']) ?
+ $info['host'] . $info['path'] : $info['host'] . '/';
+ $path = $this->initializeStream('phar://' . $path);
+ if (isset(self::$_manifest[$this->_archiveName][$path])) {
+ trigger_error('Error: "' . $path . '" is a file, and cannot be opened with opendir',
+ E_USER_ERROR);
+ return false;
+ }
+ if ($path == false) {
+ trigger_error('Error: Unknown phar in "' . $file . '"', E_USER_ERROR);
+ return false;
+ }
+ $this->fp = @fopen($this->_archiveName, "rb");
+ if (!$this->fp) {
+ trigger_error('Error: cannot open phar "' . $this->_archiveName . '"');
+ return false;
+ }
+ $this->_dirFiles = array();
+ foreach (self::$_manifest[$this->_archiveName] as $file => $info) {
+ if ($path == '/') {
+ if (strpos($file, '/')) {
+ $a = explode('/', $file);
+ $this->_dirFiles[array_shift($a)] = true;
+ } else {
+ $this->_dirFiles[$file] = true;
+ }
+ } elseif (strpos($file, $path) === 0) {
+ $fname = substr($file, strlen($path) + 1);
+ if (strpos($fname, '/')) {
+ $a = explode('/', $fname);
+ $this->_dirFiles[array_shift($a)] = true;
+ } elseif (strlen($file) != strlen($path)) {
+ // if the two match exactly, the path searched for was
+ // not a directory, but was a file.
+ $this->_dirFiles[$fname] = true;
+ }
+ }
+ }
+ @fclose($this->fp);
+ @uksort($this->_dirFiles, 'strnatcmp');
+ return true;
+ }
+
+ /**
+ * Read the next directory entry - PHP streams API
+ * @access private
+ */
+ public function dir_readdir()
+ {
+ $ret = key($this->_dirFiles);
+ @next($this->_dirFiles);
+ if (!$ret) {
+ return false;
+ }
+ return $ret;
+ }
+
+ /**
+ * Close a directory handle opened with opendir() - PHP streams API
+ * @access private
+ */
+ public function dir_closedir()
+ {
+ $this->_dirFiles = array();
+ reset($this->_dirFiles);
+ return true;
+ }
+
+ /**
+ * Rewind to the first directory entry - PHP streams API
+ * @access private
+ */
+ public function dir_rewinddir()
+ {
+ reset($this->_dirFiles);
+ return true;
+ }
+
+ /**
+ * API version of this class
+ * @return string
+ */
+ public final function APIVersion()
+ {
+ return '0.8.0';
+ }
+}}
+if (!class_exists('Phar')) {
+ if (!in_array('phar', stream_get_wrappers())) {
+ stream_wrapper_register('phar', 'PHP_Archive');
+ }
+ PHP_Archive::mapPhar(__FILE__, __COMPILER_HALT_OFFSET__);
+} else {
+ Phar::mapPhar();
+}
+if (class_exists('PHP_Archive') && !in_array('phar', stream_get_wrappers())) {
+ stream_wrapper_register('phar', 'PHP_Archive');
+}
+@ini_set('memory_limit', -1);
+
+require_once 'phar://install-pear-nozlib.phar/index.php';
+__HALT_COMPILER();¡ + + + + + + /* vim: set ts=4 sw=4: */
// +----------------------------------------------------------------------+
// | PHP Version 4 |
@@ -661,7 +679,7 @@ __HALT_COMPILER(); // | Author: Vincent Blavet <vincent@phpconcept.net> |
// +----------------------------------------------------------------------+
//
-// $Id: Tar.php,v 1.29 2005/03/17 21:02:31 vblavet Exp $
+// $Id: Tar.php,v 1.22.2.1 2006/05/25 22:00:05 cellog Exp $
require_once 'phar://install-pear-nozlib.phar/PEAR.php';
@@ -672,7 +690,7 @@ define ('ARCHIVE_TAR_ATT_SEPARATOR', 90001); * Creates a (compressed) Tar archive
*
* @author Vincent Blavet <vincent@phpconcept.net>
-* @version $Revision: 1.29 $
+* @version $Revision: 1.22.2.1 $
* @package Archive
*/
class Archive_Tar extends PEAR
@@ -5323,7 +5341,7 @@ class Console_Getopt { ?> -/* $Id: install-pear.php,v 1.26 2006/01/02 15:29:03 cellog Exp $ */ +/* $Id: install-pear.php,v 1.27 2006/08/13 21:11:48 cellog Exp $ */ error_reporting(E_ALL); $pear_dir = dirname(__FILE__); @@ -5354,7 +5372,7 @@ if (!$a) { $force = false; $install_files = array('Archive_Tar' => 'phar://install-pear-nozlib.phar/Archive_Tar-1.3.1.tar', 'Console_Getopt' => 'phar://install-pear-nozlib.phar/Console_Getopt-1.2.tar', -'PEAR' => 'phar://install-pear-nozlib.phar/PEAR-1.4.9.tar', +'PEAR' => 'phar://install-pear-nozlib.phar/PEAR-1.4.11.tar', ); array_shift($argv); $debug = false; @@ -5451,11 +5469,16 @@ $pkg = new PEAR_PackageFile($config, $debug); foreach ($install_files as $package => $instfile) { $info = $pkg->fromAnyFile($instfile, PEAR_VALIDATE_INSTALLING); - $new_ver = $info->getVersion(); if (PEAR::isError($info)) { + if (is_array($info->getUserInfo())) { + foreach ($info->getUserInfo() as $err) { + $ui->outputData(sprintf("[PEAR] %s: %s", $package, $err['message'])); + } + } $ui->outputData(sprintf("[PEAR] %s: %s", $package, $info->getMessage())); continue; } + $new_ver = $info->getVersion(); $downloaderpackage = new PEAR_Downloader_Package($installer); $err = $downloaderpackage->initialize($instfile); if (PEAR::isError($err)) { @@ -5543,7 +5566,7 @@ foreach ($install_files as $package => $instfile) { * @author Gregory Beaver <cellog@php.net> * @copyright 1997-2005 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Guess.php,v 1.20 2005/10/26 19:33:03 cellog Exp $ + * @version CVS: $Id: Guess.php,v 1.20.2.1 2006/06/16 11:41:16 pajoye Exp $ * @link http://pear.php.net/package/PEAR * @since File available since PEAR 0.1 */ @@ -5620,7 +5643,7 @@ foreach ($install_files as $package => $instfile) { * @author Gregory Beaver <cellog@php.net> * @copyright 1997-2005 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 0.1 */ @@ -5729,10 +5752,12 @@ class OS_Guess return $glibc; // no need to run this multiple times } include_once "phar://install-pear-nozlib.phar/System.php"; - if (!file_exists('/usr/bin/cpp') || !is_executable('/usr/bin/cpp')) { + if (!@file_exists('/usr/bin/cpp') || !@is_executable('/usr/bin/cpp')) { // Use glibc's <features.h> header file to // get major and minor version number: - if ($features_file = @fopen('/usr/include/features.h', 'rb') ) { + if (@file_exists('/usr/include/features.h') && + @is_readable('/usr/include/features.h')) { + $features_file = fopen('/usr/include/features.h', 'rb'); while (!feof($features_file)) { $line = fgets($features_file, 8192); if (!$line || (strpos($line, '#define') === false)) { @@ -5868,8 +5893,8 @@ class OS_Guess * End: */ ?> -package.xml -<package packagerversion="1.4.9" version="2.0" xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0 http://pear.php.net/dtd/tasks-1.0.xsd http://pear.php.net/dtd/package-2.0 http://pear.php.net/dtd/package-2.0.xsd"> +package2.xml +<package packagerversion="1.4.11" version="2.0" xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0 http://pear.php.net/dtd/tasks-1.0.xsd http://pear.php.net/dtd/package-2.0 http://pear.php.net/dtd/package-2.0.xsd"> <name>PEAR</name> <channel>pear.php.net</channel> <summary>PEAR Base System</summary> @@ -5908,22 +5933,22 @@ package.xml <active>yes</active> </lead> <lead> + <name>Pierre-Alain Joye</name> + <user>pajoye</user> + <email>pajoye@pearfr.org</email> + <active>yes</active> + </lead> + <lead> <name>Stig Bakken</name> <user>ssb</user> <email>stig@php.net</email> - <active>yes</active> + <active>no</active> </lead> <lead> <name>Tomas V.V.Cox</name> <user>cox</user> <email>cox@idecnet.com</email> - <active>yes</active> - </lead> - <lead> - <name>Pierre-Alain Joye</name> - <user>pajoye</user> - <email>pajoye@pearfr.org</email> - <active>yes</active> + <active>no</active> </lead> <helper> <name>Tim Jackson</name> @@ -5935,7 +5960,7 @@ package.xml <name>Bertrand Gugger</name> <user>toggg</user> <email>toggg@php.net</email> - <active>yes</active> + <active>no</active> </helper> <helper> <name>Martin Jansen</name> @@ -5943,10 +5968,10 @@ package.xml <email>mj@php.net</email> <active>no</active> </helper> - <date>2006-03-22</date> - <time>23:52:54</time> + <date>2006-08-16</date> + <time>12:15:15</time> <version> - <release>1.4.9</release> + <release>1.4.11</release> <api>1.4.2</api> </version> <stability> @@ -5954,112 +5979,109 @@ package.xml <api>stable</api> </stability> <license uri="http://www.php.net/license">PHP License</license> - <notes>CRITICAL BUGFIX RELEASE -users upgrading from PEAR 1.3.x cannot upgrade to 1.4.8 -users who use --packagingroot may find that installation fails -* fix Bug #7093: if pear channel does not exist, it cannot be retrieved -* fix Bug #7165: warnings in pear -* fix Bug #7075: PEAR_PackageFile_v2 :: setLogger failed on autodetection</notes> + <notes>minor bugfix release +* fix the conflicts detection for the web frontend (before 0.5.0) +* fix warnings in the list-all command</notes> <contents> <dir name="/"> - <file md5sum="64153f3054d39f0f1d0102fa3f5b35a3" name="OS/Guess.php" role="php"> + <file md5sum="b309a1eb31b2826cd1cec229fb352eb0" name="OS/Guess.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> - <file md5sum="8c7e266a63d74cf96f9acb88d8f3383b" name="PEAR/ChannelFile/Parser.php" role="php"> + <file md5sum="28016a108b34962267f86ccc1d70d852" name="PEAR/ChannelFile/Parser.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> <file md5sum="4a11a3c4bc2c2f338c183b332def156b" name="PEAR/Command/Auth.xml" role="php" /> - <file md5sum="369704305c09c243ec79e44fedee642a" name="PEAR/Command/Auth.php" role="php"> + <file md5sum="20a596c843275e8607c0e1fdc7953e64" name="PEAR/Command/Auth.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> <file md5sum="73602fd7f051eaf8d37452d0e3063bdb" name="PEAR/Command/Build.xml" role="php" /> - <file md5sum="fc8dfcbf203a0ffcfdb99b810bc9f830" name="PEAR/Command/Build.php" role="php"> + <file md5sum="bf340957761207ff4408b560cba982e1" name="PEAR/Command/Build.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> - <file md5sum="14ed4bd2028f26ac984a0db8c91fd5fd" name="PEAR/Command/Channels.xml" role="php" /> - <file md5sum="7f4c5dad5c5e65f8a540cb35914c7b2e" name="PEAR/Command/Channels.php" role="php"> + <file md5sum="d5586c3708924122c9383738315f6539" name="PEAR/Command/Channels.xml" role="php" /> + <file md5sum="f68e6ae36ed4dd9e3b4cd2a8d67e1227" name="PEAR/Command/Channels.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> - <file md5sum="75159b905c8db019cec524cdcea28c33" name="PEAR/Command/Common.php" role="php"> + <file md5sum="0033cb00b42b118df88c0daaacbfe1d3" name="PEAR/Command/Common.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> <file md5sum="91f189cb9423b5e87ee0abc5ea1a2be3" name="PEAR/Command/Config.xml" role="php" /> - <file md5sum="429bfebc20e70ddf7a7ab5a8ee7b2de8" name="PEAR/Command/Config.php" role="php"> + <file md5sum="12df978b3560fc1e846ecbd5e367240c" name="PEAR/Command/Config.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> <file md5sum="516da3eb7ebbecfbfb4188408a1983b2" name="PEAR/Command/Install.xml" role="php" /> - <file md5sum="bbd5b352db1cb8e348ae3d8606adb33a" name="PEAR/Command/Install.php" role="php"> + <file md5sum="aa6ea8b7087130a518fcbb401f3369c6" name="PEAR/Command/Install.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> <file md5sum="5cb62a04c0a268f4edd64a49a3895c92" name="PEAR/Command/Mirror.xml" role="php" /> - <file md5sum="acbfc57a7ed9d3167f7491e3e8853cb4" name="PEAR/Command/Mirror.php" role="php"> + <file md5sum="d35b596f8c060eb666797cd2f0f61643" name="PEAR/Command/Mirror.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> - <file md5sum="23250b3cd9fae3475b1af03350cc05dc" name="PEAR/Command/Package.xml" role="php" /> - <file md5sum="69d812c4c7dddf1cbfcd527c783a0db2" name="PEAR/Command/Package.php" role="php"> + <file md5sum="bbf88f26cd10b1caa76d5eec474f093f" name="PEAR/Command/Package.xml" role="php" /> + <file md5sum="ed3d49a880913827d7c3a1beacb5531c" name="PEAR/Command/Package.php" role="php"> <tasks:replace from="@DATA-DIR@" to="data_dir" type="pear-config" /> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> <file md5sum="35817866283227237796b32d32dac44d" name="PEAR/Command/Pickle.xml" role="php" /> - <file md5sum="4fd62cc0bbc33d3e5f5d0b07fbdfa950" name="PEAR/Command/Pickle.php" role="php"> + <file md5sum="dea2b4d9388a9511e59548c61f60251a" name="PEAR/Command/Pickle.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> <file md5sum="e7fc652e4b5266bbac1c23140de01598" name="PEAR/Command/Registry.xml" role="php" /> - <file md5sum="37125dee4259ccaac350730ee90bd943" name="PEAR/Command/Registry.php" role="php"> + <file md5sum="2f8013f7a0c1e2f2ba7ca3113135015d" name="PEAR/Command/Registry.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> <file md5sum="d57b54857aba5b6ff2fe528cbf522b00" name="PEAR/Command/Remote.xml" role="php" /> - <file md5sum="7a0814e3158cd4212145a69417b658dd" name="PEAR/Command/Remote.php" role="php"> + <file md5sum="ad00e67d39dc0d15c5ed9cbd26992ec9" name="PEAR/Command/Remote.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> <file md5sum="f5072ed4032dc28fac20f526f03520f8" name="PEAR/Command/Test.xml" role="php" /> - <file md5sum="2736a481b20b6e656cbfa1fc8e8a1744" name="PEAR/Command/Test.php" role="php"> + <file md5sum="a537a76b067ccdac893469fb95c1c9cc" name="PEAR/Command/Test.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> - <file md5sum="841f797b04fb0ae96fc12f9a308ed2b6" name="PEAR/Downloader/Package.php" role="php"> + <file md5sum="9643b5ff1188628499cbbd6050e9cbab" name="PEAR/Downloader/Package.php" role="php"> <tasks:replace from="@PEAR-VER@" to="version" type="package-info" /> </file> - <file md5sum="af599522077f71d4be9a1163c659d5cf" name="PEAR/Frontend/CLI.php" role="php"> + <file md5sum="e0417ade6ffb4235c8f6fee2b9779a25" name="PEAR/Frontend/CLI.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> - <file md5sum="cd5807103ede23734e60356cd8bdd0f5" name="PEAR/Installer/Role/Common.php" role="php"> + <file md5sum="80ac44ab528facdffacc2f2183d351cf" name="PEAR/Installer/Role/Common.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> <file md5sum="a102cceaf8e9348965a856e2b5ae4e35" name="PEAR/Installer/Role/Data.xml" role="php" /> - <file md5sum="d83cab75511a3cf4c428f9d83f88f537" name="PEAR/Installer/Role/Data.php" role="php"> + <file md5sum="594fe03ab037716e90f01036b238dac9" name="PEAR/Installer/Role/Data.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> <file md5sum="5755c03e061dd14ab04a8662a860af13" name="PEAR/Installer/Role/Doc.xml" role="php" /> - <file md5sum="ab0fd8ccf2ea680e196f7dd82358b00b" name="PEAR/Installer/Role/Doc.php" role="php"> + <file md5sum="691537b382e6c38b1da2797ce38a0950" name="PEAR/Installer/Role/Doc.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> <file md5sum="2752669b1ccf927c4c71db68ac046095" name="PEAR/Installer/Role/Ext.xml" role="php" /> - <file md5sum="a56ffbb2031fb7effa9ecdbe43d79dc0" name="PEAR/Installer/Role/Ext.php" role="php"> + <file md5sum="0e3823a9702ca20530761c0f9b7cd678" name="PEAR/Installer/Role/Ext.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> <file md5sum="8997db19129f121be2d5fffb92f4075a" name="PEAR/Installer/Role/Php.xml" role="php" /> - <file md5sum="e52b84b0a716084dd41e9d8ba3a97cc2" name="PEAR/Installer/Role/Php.php" role="php"> + <file md5sum="99a73d79d2647c5b573c7e929d476fb7" name="PEAR/Installer/Role/Php.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> <file md5sum="a146c5985d669938c633bfef60692db4" name="PEAR/Installer/Role/Script.xml" role="php" /> - <file md5sum="2a5220d3d9e77a4bbeeaa593ed287581" name="PEAR/Installer/Role/Script.php" role="php"> + <file md5sum="f9d6d3999088c48ce4638d938e7ab158" name="PEAR/Installer/Role/Script.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> <file md5sum="ad0f719669cb90e76048394896c51136" name="PEAR/Installer/Role/Src.xml" role="php" /> - <file md5sum="e8c64f25150d20614524d82589d29111" name="PEAR/Installer/Role/Src.php" role="php"> + <file md5sum="70626b32b828aae617853372287098f2" name="PEAR/Installer/Role/Src.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> <file md5sum="dc2f729ae9356540c91131b3b94caddf" name="PEAR/Installer/Role/Test.xml" role="php" /> - <file md5sum="7ae6b8336e4732ffa594b804acc5f0de" name="PEAR/Installer/Role/Test.php" role="php"> + <file md5sum="7e5652e079b75f15b8ea1541fde125e6" name="PEAR/Installer/Role/Test.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> - <file md5sum="6c51d65895cf5b71a8385b247dbd0189" name="PEAR/Installer/Role.php" role="php"> + <file md5sum="4640fe2a15a082b57361bf7522d3b0fa" name="PEAR/Installer/Role.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> - <file md5sum="db40e2b0c033f3565af6c135e28a512b" name="PEAR/PackageFile/Generator/v1.php" role="php"> + <file md5sum="786d5cb198bc0ff160c202519c20201e" name="PEAR/PackageFile/Generator/v1.php" role="php"> <tasks:replace from="@PEAR-VER@" to="version" type="package-info" /> </file> - <file md5sum="b79890e413dfa78cf37cd626fe0774b1" name="PEAR/PackageFile/Generator/v2.php" role="php"> + <file md5sum="1c4afb91b1dd8f310f42b5f5531a0dea" name="PEAR/PackageFile/Generator/v2.php" role="php"> <tasks:replace from="@PEAR-VER@" to="version" type="package-info" /> </file> <file md5sum="ea3c85eac9d81f6ac0d445219b882c8b" name="PEAR/PackageFile/Parser/v1.php" role="php"> @@ -6068,116 +6090,116 @@ users who use --packagingroot may find that installation fails <file md5sum="a173a2ff92d2a93d7153b101da34cf18" name="PEAR/PackageFile/Parser/v2.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> - <file md5sum="13129c54d393a8e3018571106572b521" name="PEAR/PackageFile/v2/rw.php" role="php"> + <file md5sum="2656bd7b445c1885072ad2a25e8dfd0e" name="PEAR/PackageFile/v2/rw.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> - <file md5sum="9953c60c0861398ccfe958dfc8b4f7cd" name="PEAR/PackageFile/v2/Validator.php" role="php"> + <file md5sum="5b702d0d25f40e889b9bd205b655fb16" name="PEAR/PackageFile/v2/Validator.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> - <file md5sum="33f622302e817fa6ed2ce4285df45012" name="PEAR/PackageFile/v1.php" role="php"> + <file md5sum="30d4ddc15dfc592389411d99a2dd3b37" name="PEAR/PackageFile/v1.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> - <file md5sum="6cc1e92726f8e6bca9760fc406404bcc" name="PEAR/PackageFile/v2.php" role="php"> + <file md5sum="2a36cf4ff04777f950c9afd2aad468a1" name="PEAR/PackageFile/v2.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> - <file md5sum="d8f321b01d6bfe1e039aeee0e8c4eb55" name="PEAR/REST/10.php" role="php"> + <file md5sum="8b309d72a3c773429dea666696d9888e" name="PEAR/REST/10.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> - <file md5sum="ee95643e89c0a755daaba7c450b9053c" name="PEAR/REST/11.php" role="php"> + <file md5sum="08fee3e5c8443e5ebafc17bb13959b62" name="PEAR/REST/11.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> - <file md5sum="e4ec4c2e865fe0d863ec537117a83529" name="PEAR/Task/Postinstallscript/rw.php" role="php"> + <file md5sum="311c875b56dcda3f8848c22d1fc3d0f8" name="PEAR/Task/Postinstallscript/rw.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> - <file md5sum="4de8267715f6a5d137af80e2f813d62b" name="PEAR/Task/Replace/rw.php" role="php"> + <file md5sum="09eb8d30ef25a47f1975a2447264f645" name="PEAR/Task/Replace/rw.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> - <file md5sum="78f2b48aaf9aa4fafe7a4810b8c97d74" name="PEAR/Task/Unixeol/rw.php" role="php"> + <file md5sum="b9afa2dcef500ac15885e01647f454b5" name="PEAR/Task/Unixeol/rw.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> - <file md5sum="a11f251093545db4cd8c5f0684a7b3a3" name="PEAR/Task/Windowseol/rw.php" role="php"> + <file md5sum="631e7a866fc9921e0b9f2d45b68a1687" name="PEAR/Task/Windowseol/rw.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> - <file md5sum="a56c5f9161b46b299cef23f16491dc8b" name="PEAR/Task/Common.php" role="php"> + <file md5sum="1f0757906fc64708103e19bac2b3a4d5" name="PEAR/Task/Common.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> - <file md5sum="0a1629801eeecedaf1c6d07ac8cdcdf3" name="PEAR/Task/Postinstallscript.php" role="php"> + <file md5sum="5815d0ea19cd0a4f00cb1e8e2e9eb163" name="PEAR/Task/Postinstallscript.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> - <file md5sum="bf45b4b62b86b854a07552d9ebf32091" name="PEAR/Task/Replace.php" role="php"> + <file md5sum="0cba8e6997e694aa4452a0041aaa4228" name="PEAR/Task/Replace.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> - <file md5sum="6641fe2f91c4f102b0af4182f6180ce5" name="PEAR/Task/Unixeol.php" role="php"> + <file md5sum="d33a1fb9258fbbc780b2d07d81d3af46" name="PEAR/Task/Unixeol.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> - <file md5sum="943192d2194c5c1187d336fe0245019b" name="PEAR/Task/Windowseol.php" role="php"> + <file md5sum="4f8233e21872e0fcd63efa556d63a3fc" name="PEAR/Task/Windowseol.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> - <file md5sum="eb608fe901b0d752aea41ee221351c47" name="PEAR/Validator/PECL.php" role="php"> + <file md5sum="16fba26b50c17e2752c9ad82f96f102c" name="PEAR/Validator/PECL.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> - <file md5sum="61be98ca654ca4e19bba431fa4dc1bc1" name="PEAR/Autoloader.php" role="php"> + <file md5sum="5ce65e09af7eb738c639141838c6f26a" name="PEAR/Autoloader.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> - <file md5sum="29369a600bc560a4bac1c2a441b76eca" name="PEAR/Builder.php" role="php"> + <file md5sum="ece2de8def8f8dd7f665b00e6694cc07" name="PEAR/Builder.php" role="php"> <tasks:replace from="@PEAR-VER@" to="version" type="package-info" /> </file> - <file md5sum="b50c43adb5045b4016730dd4d4839a02" name="PEAR/ChannelFile.php" role="php"> + <file md5sum="d6f16bff9405077e918a8f7be9e31fcf" name="PEAR/ChannelFile.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> - <file md5sum="4e79a801b34389864e77232ce37ba548" name="PEAR/Command.php" role="php"> + <file md5sum="7a6a51d4986f04e15e53fbe96fae6a9b" name="PEAR/Command.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> - <file md5sum="63325bcbd4b3c11478a75d120f123c33" name="PEAR/Common.php" role="php"> + <file md5sum="d24d08cc90e7d3fd03277806ac016b34" name="PEAR/Common.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> - <file md5sum="fc42ca3c5e2c1d647ce59f23e9ff90b1" name="PEAR/Config.php" role="php"> + <file md5sum="50af115a5d8fa85ee5f3068d172292d1" name="PEAR/Config.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> <file md5sum="f42d5ae2639dd67b90b890ac2b0e6e56" name="PEAR/Dependency.php" role="php" /> - <file md5sum="32a0bc84ac0cd679a2cd4a85de1c0239" name="PEAR/DependencyDB.php" role="php"> + <file md5sum="23082dcb6a8a754c9a2fd093a81cfde5" name="PEAR/DependencyDB.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> - <file md5sum="9038786e6a01295351662fb6c19b518b" name="PEAR/Dependency2.php" role="php"> + <file md5sum="82befcf59d8a42ab9283134649179ebc" name="PEAR/Dependency2.php" role="php"> <tasks:replace from="@PEAR-VER@" to="version" type="package-info" /> </file> - <file md5sum="7c9489f7f7b7b6c77902bcb913a14794" name="PEAR/Downloader.php" role="php"> + <file md5sum="15764f5cf89d436c9c5fa06d4652a912" name="PEAR/Downloader.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> - <file md5sum="40e4900bf7437e8a3f4659d8816cb967" name="PEAR/ErrorStack.php" role="php"> + <file md5sum="594630ac0ef25c775ef31d1c9bb3c8e6" name="PEAR/ErrorStack.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> - <file md5sum="cdc1bdbb9b624a971844f2cdd03215d0" name="PEAR/Exception.php" role="php"> + <file md5sum="985799a0d417427029cff74f1c7e94d6" name="PEAR/Exception.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> - <file md5sum="42f26287b2e3a78e3def7d2079117a87" name="PEAR/Frontend.php" role="php"> + <file md5sum="e6692dee75572336cb7b4ebea6699312" name="PEAR/Frontend.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> - <file md5sum="49fc3714f093cbd5fcd1130dbf5349e5" name="PEAR/Installer.php" role="php"> + <file md5sum="16871c2327ab0a6372a64ec4a91308cd" name="PEAR/Installer.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> - <file md5sum="cddbfc6594e973b223a027bfff9d7529" name="PEAR/PackageFile.php" role="php"> + <file md5sum="7fce4e17c75790a7800dd61a6e2a1314" name="PEAR/PackageFile.php" role="php"> <tasks:replace from="@PEAR-VER@" to="version" type="package-info" /> </file> - <file md5sum="a3c6c802ce887f63c1494d010a5020f8" name="PEAR/Packager.php" role="php"> + <file md5sum="89fbe13ab1e56bb98e2f026669a8a749" name="PEAR/Packager.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> - <file md5sum="8ee992a2e56afed8bed5d0832434ea21" name="PEAR/Registry.php" role="php"> + <file md5sum="c008052d80ba8bf49a80b6f4a224ff78" name="PEAR/Registry.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> - <file md5sum="73269d1eb0735ae699cf1825ec3445fc" name="PEAR/Remote.php" role="php"> + <file md5sum="b9df405a9c72526de21053d305251eec" name="PEAR/Remote.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> - <file md5sum="268906e90d4661aaff2445106303ad31" name="PEAR/REST.php" role="php"> + <file md5sum="882d0d90865afc47d746e54748ded42a" name="PEAR/REST.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> - <file md5sum="fa5a6b0916fb819dae2400f7b8685859" name="PEAR/RunTest.php" role="php"> + <file md5sum="dd390ae06a1284fd54e5ac5e7efe87e2" name="PEAR/RunTest.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> - <file md5sum="0703200ee14f5ae595f419963f1acb49" name="PEAR/Validate.php" role="php"> + <file md5sum="f15a4b531bd9750a17639a4201f9abbc" name="PEAR/Validate.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> - <file md5sum="740304a1ee87a803cc2eea78c7da726d" name="PEAR/XMLParser.php" role="php"> + <file md5sum="4708bbff52de958814b6ac2e22070e56" name="PEAR/XMLParser.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> <file baseinstalldir="/" md5sum="000e0141cccb734d87df52d4c5cb110b" name="scripts/pear.bat" role="script"> @@ -6232,10 +6254,10 @@ users who use --packagingroot may find that installation fails <tasks:replace from="@include_path@" to="php_dir" type="pear-config" /> </file> <file md5sum="ca444da9174e05f8a0dc71d8ee47900f" name="package.dtd" role="data" /> - <file md5sum="06b49e789f39426ba4498a578e6a370c" name="PEAR.php" role="php"> + <file md5sum="5b404cc7109d0772fb757707e4c8fa56" name="PEAR.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> - <file md5sum="947f419a1bba9a6a8bd3d5a0f967c6b8" name="System.php" role="php"> + <file md5sum="280dd4d725a486ffff1605aa16c77a6e" name="System.php" role="php"> <tasks:replace from="@package_version@" to="version" type="package-info" /> </file> <file md5sum="acd010e3bc43c0f72df584acde7b9158" name="template.spec" role="data" /> @@ -6266,7 +6288,6 @@ users who use --packagingroot may find that installation fails <name>PEAR_Frontend_Web</name> <channel>pear.php.net</channel> <max>0.5.0</max> - <exclude>0.5.0</exclude> <conflicts /> </package> <package> @@ -6294,7 +6315,7 @@ users who use --packagingroot may find that installation fails <package> <name>PEAR_Frontend_Web</name> <channel>pear.php.net</channel> - <min>0.5.0</min> + <min>0.5.1</min> </package> </group> <group hint="PEAR's PHP-GTK-based installer" name="gtkinstaller"> @@ -6308,6 +6329,7 @@ users who use --packagingroot may find that installation fails <package> <name>PEAR_Frontend_Gtk2</name> <channel>pear.php.net</channel> + <min>0.1.2</min> </package> </group> </dependencies> @@ -6342,6 +6364,32 @@ users who use --packagingroot may find that installation fails </phprelease> <changelog> <release> + <date>2006-07-18</date> + <version> + <release>1.4.10</release> + <api>1.4.2</api> + </version> + <stability> + <release>stable</release> + <api>stable</api> + </stability> + <license uri="http://www.php.net/license">PHP License</license> + <notes>bugfix release +* fix Bug #7579: cannot convert package 1.0 to 2.0 with PFM 1.6.0 +* fix Bug #7640: Check invalid date format +* fix Bug #7726: <uri> dependency is broken +* fix Bug #7830: Warning in package-dependencies command when a dir is used +* fix Bug #7842: package-dependencies wrong type display with package 1.0 +* fix Bug #8230: pear help channel-discover shows wrong text +* fix many open_basedir issues +* fix an issue in the better state detection +* fix typo in pickle command that would allow pickling of non-PECL package.xml +* implement Request #7090: PEAR_Downloader mustn't contact pear server + when installing local package file +* implement Request #7844: download_dir and temp_dir configuration option +* check pearinstaller dependency prior to validating package.xml 2.0</notes> + </release> + <release> <version> <release>1.4.0</release> <api>1.4.0</api> @@ -6605,9 +6653,27 @@ caused crashes in many places due to improper error handling * fix Bug #7015: install a package.tgz with unknown channel, fatal error in PEAR/Registry.php * fix Bug #7020: tests/PEAR_Registry/api1_1/test_getChannelValidator.phpt crashes PEAR</notes> </release> + <release> + <version> + <release>1.4.9</release> + <api>1.4.2</api> + </version> + <stability> + <release>stable</release> + <api>stable</api> + </stability> + <date>2006-03-29</date> + <license uri="http://www.php.net/license/3_0.txt">PHP License</license> + <notes>CRITICAL BUGFIX RELEASE +users upgrading from PEAR 1.3.x cannot upgrade to 1.4.8 +users who use --packagingroot may find that installation fails +* fix Bug #7093: if pear channel does not exist, it cannot be retrieved +* fix Bug #7165: warnings in pear +* fix Bug #7075: PEAR_PackageFile_v2 :: setLogger failed on autodetection</notes> + </release> </changelog> </package> - + /** * The OS_Guess class * @@ -6625,7 +6691,7 @@ caused crashes in many places due to improper error handling * @author Gregory Beaver <cellog@php.net> * @copyright 1997-2005 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Guess.php,v 1.20 2005/10/26 19:33:03 cellog Exp $ + * @version CVS: $Id: Guess.php,v 1.20.2.1 2006/06/16 11:41:16 pajoye Exp $ * @link http://pear.php.net/package/PEAR * @since File available since PEAR 0.1 */ @@ -6702,7 +6768,7 @@ caused crashes in many places due to improper error handling * @author Gregory Beaver <cellog@php.net> * @copyright 1997-2005 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 0.1 */ @@ -6811,10 +6877,12 @@ class OS_Guess return $glibc; // no need to run this multiple times } include_once "System.php"; - if (!file_exists('/usr/bin/cpp') || !is_executable('/usr/bin/cpp')) { + if (!@file_exists('/usr/bin/cpp') || !@is_executable('/usr/bin/cpp')) { // Use glibc's <features.h> header file to // get major and minor version number: - if ($features_file = @fopen('/usr/include/features.h', 'rb') ) { + if (@file_exists('/usr/include/features.h') && + @is_readable('/usr/include/features.h')) { + $features_file = fopen('/usr/include/features.h', 'rb'); while (!feof($features_file)) { $line = fgets($features_file, 8192); if (!$line || (strpos($line, '#define') === false)) { @@ -6950,7 +7018,7 @@ class OS_Guess * End: */ ?> - + /** * PEAR_ChannelFile_Parser for parsing channel.xml * @@ -6984,7 +7052,7 @@ require_once 'PEAR/ChannelFile.php'; * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -7022,7 +7090,7 @@ class PEAR_ChannelFile_Parser extends PEAR_XMLParser return $ret; } } -?> +?> <login> <summary>Connects and authenticates to remote server</summary> <shortcut>li</shortcut> @@ -7046,7 +7114,7 @@ Logs out from the remote server. This command does not actually connect to the remote server, it only deletes the stored username and password from your user configuration.</doc> </logout> -</commands> +</commands> /** * PEAR_Command_Auth (login, logout commands) * @@ -7084,7 +7152,7 @@ require_once 'PEAR/Config.php'; * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 0.1 */ @@ -7231,7 +7299,7 @@ password from your user configuration.', // }}} } -?> +?> <build> <summary>Build an Extension From C Source</summary> <function>doBuild</function> @@ -7240,7 +7308,7 @@ password from your user configuration.', <doc>[package.xml] Builds one or more extensions contained in a package.</doc> </build> -</commands> +</commands> /** * PEAR_Command_Auth (build command) * @@ -7279,7 +7347,7 @@ require_once 'PEAR/Command/Common.php'; * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 0.1 */ @@ -7344,7 +7412,7 @@ Builds one or more extensions contained in a package.' // }}} } - + <list-channels> <summary>List Available Channels</summary> <function>doList</function> @@ -7432,11 +7500,12 @@ alias. <function>doDiscover</function> <shortcut>di</shortcut> <options /> - <doc><package> -List the files in an installed package. + <doc>[<channel.xml>|<channel name>] +Initialize a Channel from its server and create the local channel.xml. </doc> </channel-discover> -</commands> +</commands> + // /* vim: set expandtab tabstop=4 shiftwidth=4: */ /** * PEAR_Command_Channels (list-channels, update-channels, channel-delete, channel-add, @@ -7456,7 +7525,7 @@ List the files in an installed package. * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Channels.php,v 1.44 2006/03/02 18:14:13 cellog Exp $ + * @version CVS: $Id: Channels.php,v 1.44.2.1 2006/07/17 18:24:10 pajoye Exp $ * @link http://pear.php.net/package/PEAR * @since File available since Release 1.4.0a1 */ @@ -7474,7 +7543,7 @@ require_once 'PEAR/Command/Common.php'; * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -7570,8 +7639,8 @@ alias. 'function' => 'doDiscover', 'shortcut' => 'di', 'options' => array(), - 'doc' => '<package> -List the files in an installed package. + 'doc' => '[<channel.xml>|<channel name>] +Initialize a Channel from its server and creates the local channel.xml. ' ), ); @@ -8216,7 +8285,7 @@ List the files in an installed package. } } ?> - + /** * PEAR_Command_Common base class * @@ -8234,7 +8303,7 @@ List the files in an installed package. * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Common.php,v 1.32 2006/03/02 16:39:14 pajoye Exp $ + * @version CVS: $Id: Common.php,v 1.32.2.1 2006/06/08 22:27:11 pajoye Exp $ * @link http://pear.php.net/package/PEAR * @since File available since Release 0.1 */ @@ -8253,7 +8322,7 @@ require_once 'PEAR.php'; * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 0.1 */ @@ -8292,7 +8361,7 @@ class PEAR_Command_Common extends PEAR var $_deps_type_trans = array( 'pkg' => 'package', - 'extension' => 'extension', + 'ext' => 'extension', 'php' => 'PHP', 'prog' => 'external program', 'ldlib' => 'external library for linking', @@ -8495,7 +8564,7 @@ class PEAR_Command_Common extends PEAR } ?> - + <config-show> <summary>Show All Settings</summary> <function>doConfigShow</function> @@ -8586,7 +8655,7 @@ PEAR installation (using the --remoteconfig option of install, upgrade, and uninstall). </doc> </config-create> -</commands> +</commands> /** * PEAR_Command_Config (config-show, config-get, config-set, config-help, config-create commands) * @@ -8604,7 +8673,7 @@ and uninstall). * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Config.php,v 1.51 2006/03/02 13:32:38 pajoye Exp $ + * @version CVS: $Id: Config.php,v 1.51.2.1 2006/06/04 12:11:39 pajoye Exp $ * @link http://pear.php.net/package/PEAR * @since File available since Release 0.1 */ @@ -8623,7 +8692,7 @@ require_once 'PEAR/Command/Common.php'; * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 0.1 */ @@ -8836,7 +8905,7 @@ and uninstall). $failmsg .= "config-set expects 2 or 3 parameters"; return PEAR::raiseError($failmsg); } - if ($error = $this->_checkLayer(@$params[2])) { + if (isset($params[2]) && $error = $this->_checkLayer($params[2])) { $failmsg .= $error; return PEAR::raiseError("config-set:$failmsg"); } @@ -9004,7 +9073,7 @@ and uninstall). } ?> - + <install> <summary>Install Package</summary> <function>doInstall</function> @@ -9257,7 +9326,7 @@ package if needed. Run post-installation scripts in package <package>, if any exist. </doc> </run-scripts> -</commands> +</commands> /** * PEAR_Command_Install (install, upgrade, upgrade-all, uninstall, bundle, run-scripts commands) * @@ -9295,7 +9364,7 @@ require_once 'PEAR/Command/Common.php'; * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 0.1 */ @@ -10030,7 +10099,7 @@ Run post-installation scripts in package <package>, if any exist. } } ?> - + <download-all> <summary>Downloads each available package from the default channel</summary> <function>doDownloadAll</function> @@ -10047,7 +10116,7 @@ Requests a list of available packages from the default channel ({config default_ and downloads them to current working directory. Note: only packages within preferred_state ({config preferred_state}) will be downloaded</doc> </download-all> -</commands> +</commands> /** * PEAR_Command_Mirror (download-all command) * @@ -10082,7 +10151,7 @@ require_once 'PEAR/Command/Common.php'; * @author Alexander Merz <alexmerz@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.2.0 */ @@ -10200,7 +10269,7 @@ packages within preferred_state ({config preferred_state}) will be downloaded' // }}} } - + <package> <summary>Build Package</summary> <function>doPackage</function> @@ -10335,7 +10404,7 @@ use the "slide" option to move the release tag. <shortcut>pd</shortcut> <options /> <doc> -List all depencies the package has.</doc> +List all dependencies the package has.</doc> </package-dependencies> <sign> <summary>Sign a package distribution file</summary> @@ -10393,7 +10462,8 @@ This is not the most intelligent conversion, and should only be used for automated conversion or learning the format. </doc> </convert> -</commands> +</commands> + /** * PEAR_Command_Package (package, package-validate, cvsdiff, cvstag, package-dependencies, * sign, makerpm, convert commands) @@ -10413,7 +10483,7 @@ used for automated conversion or learning the format. * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Package.php,v 1.119 2006/03/02 18:14:13 cellog Exp $ + * @version CVS: $Id: Package.php,v 1.119.2.1 2006/06/07 23:39:22 pajoye Exp $ * @link http://pear.php.net/package/PEAR * @since File available since Release 0.1 */ @@ -10580,7 +10650,7 @@ release), pass them as additional parameters. 'shortcut' => 'pd', 'options' => array(), 'doc' => ' -List all depencies the package has.' +List all dependencies the package has.' ), 'sign' => array( 'summary' => 'Sign a package distribution file', @@ -11557,7 +11627,7 @@ used for automated conversion or learning the format. } ?> - + <pickle> <summary>Build PECL Package</summary> <function>doPackage</function> @@ -11596,7 +11666,7 @@ will cause pickle to fail, and output an error message. If your package2.xml uses any of these features, you are best off using PEAR_PackageFileManager to generate both package.xml.</doc> </pickle> -</commands> +</commands> /** * PEAR_Command_Pickle (pickle command) * @@ -11613,7 +11683,7 @@ generate both package.xml.</doc> * @author Greg Beaver <cellog@php.net> * @copyright 2005-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Pickle.php,v 1.5 2006/01/06 04:47:36 cellog Exp $ + * @version CVS: $Id: Pickle.php,v 1.5.2.1 2006/05/10 03:25:15 cellog Exp $ * @link http://pear.php.net/package/PEAR * @since File available since Release 1.4.1 */ @@ -11631,7 +11701,7 @@ require_once 'PEAR/Command/Common.php'; * @author Greg Beaver <cellog@php.net> * @copyright 2005-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.1 */ @@ -11754,7 +11824,7 @@ generate both package.xml. 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') { return $this->raiseError('Cannot safely convert "' . $packagexml . '", is not an extension source package. Using a PEAR_PackageFileManager-based ' . 'script is an option'); @@ -11972,7 +12042,7 @@ generate both package.xml. } ?> - + <list> <summary>List Installed Packages In The Default Channel</summary> <function>doList</function> @@ -12025,7 +12095,7 @@ Displays information about a package. The package argument may be a local package file, an URL to a package file, or the name of an installed package.</doc> </info> -</commands> +</commands> /** * PEAR_Command_Registry (list, list-files, shell-test, info commands) * @@ -12062,7 +12132,7 @@ require_once 'PEAR/Command/Common.php'; * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 0.1 */ @@ -13022,7 +13092,7 @@ installed package.' } ?> - + <remote-info> <summary>Information About Remote Packages</summary> <function>doRemoteInfo</function> @@ -13113,7 +13183,7 @@ Clear the XML-RPC/REST cache. See also the cache_ttl configuration parameter. </doc> </clear-cache> -</commands> +</commands> /** * PEAR_Command_Remote (remote-info, list-upgrades, remote-list, search, list-all, download, * clear-cache commands) @@ -13132,7 +13202,7 @@ parameter. * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Remote.php,v 1.90.2.2 2006/03/23 05:45:17 cellog Exp $ + * @version CVS: $Id: Remote.php,v 1.90.2.3 2006/06/04 12:27:55 pajoye Exp $ * @link http://pear.php.net/package/PEAR * @since File available since Release 0.1 */ @@ -13152,7 +13222,7 @@ require_once 'PEAR/REST.php'; * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 0.1 */ @@ -13647,7 +13717,7 @@ parameter. function doListUpgrades($command, $options, $params) { require_once 'PEAR/Common.php'; - if (isset($params[0]) && !PEAR_Common::betterStates($params[0])) { + if (isset($params[0]) && !is_array(PEAR_Common::betterStates($params[0]))) { return $this->raiseError($params[0] . ' is not a valid state (stable/beta/alpha/devel/etc.) try "pear help list-upgrades"'); } $savechannel = $channel = $this->config->get('default_channel'); @@ -13783,7 +13853,7 @@ parameter. } ?> - + <run-tests> <summary>Run Regression Tests</summary> <function>doRunTests</function> @@ -13822,7 +13892,7 @@ parameter. <doc>[testfile|dir ...] Run regression tests with PHP's regression testing script (run-tests.php).</doc> </run-tests> -</commands> +</commands> /** * PEAR_Command_Test (run-tests) * @@ -13861,7 +13931,7 @@ require_once 'PEAR/Command/Common.php'; * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 0.1 */ @@ -14097,7 +14167,7 @@ Run regression tests with PHP\'s regression testing script (run-tests.php).', } ?> - + /** * PEAR_Downloader_Package * @@ -14114,7 +14184,7 @@ Run regression tests with PHP\'s regression testing script (run-tests.php).', * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Package.php,v 1.91 2006/01/23 19:05:52 cellog Exp $ + * @version CVS: $Id: Package.php,v 1.91.2.1 2006/05/25 22:00:05 cellog Exp $ * @link http://pear.php.net/package/PEAR * @since File available since Release 1.4.0a1 */ @@ -14148,7 +14218,7 @@ define('PEAR_DOWNLOADER_PACKAGE_STATE', -1003); * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -15109,8 +15179,10 @@ class PEAR_Downloader_Package } } else { if (isset($param['uri'])) { - $param['channel'] = '__uri'; - $param['package'] = $param['dep']['name']; + if ($this->getChannel() != '__uri') { + return false; + } + return $param['uri'] == $this->getURI(); } $package = isset($param['package']) ? $param['package'] : $param['info']->getPackage(); @@ -15818,7 +15890,7 @@ class PEAR_Downloader_Package } } ?> - + /** * PEAR_Frontend_CLI * @@ -15853,7 +15925,7 @@ require_once 'PEAR/Frontend.php'; * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 0.1 */ @@ -16560,7 +16632,7 @@ class PEAR_Frontend_CLI extends PEAR_Frontend } ?> - + /** * Base class for all installation roles. * @@ -16592,7 +16664,7 @@ class PEAR_Frontend_CLI extends PEAR_Frontend * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -16739,7 +16811,7 @@ class PEAR_Installer_Role_Common return $roleInfo['phpextension']; } } -?> +?> <releasetypes>php</releasetypes> <releasetypes>extsrc</releasetypes> <releasetypes>extbin</releasetypes> @@ -16751,7 +16823,7 @@ class PEAR_Installer_Role_Common <executable /> <phpextension /> <config_vars /> -</role> +</role> /** * PEAR_Installer_Role_Data * @@ -16779,12 +16851,12 @@ class PEAR_Installer_Role_Common * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ class PEAR_Installer_Role_Data extends PEAR_Installer_Role_Common {} -?> +?> <releasetypes>php</releasetypes> <releasetypes>extsrc</releasetypes> <releasetypes>extbin</releasetypes> @@ -16796,7 +16868,7 @@ class PEAR_Installer_Role_Data extends PEAR_Installer_Role_Common {} <executable /> <phpextension /> <config_vars /> -</role> +</role> /** * PEAR_Installer_Role_Doc * @@ -16824,12 +16896,12 @@ class PEAR_Installer_Role_Data extends PEAR_Installer_Role_Common {} * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ class PEAR_Installer_Role_Doc extends PEAR_Installer_Role_Common {} -?> +?> <releasetypes>extbin</releasetypes> <installable>1</installable> <locationconfig>ext_dir</locationconfig> @@ -16839,7 +16911,7 @@ class PEAR_Installer_Role_Doc extends PEAR_Installer_Role_Common {} <executable /> <phpextension>1</phpextension> <config_vars /> -</role> +</role> /** * PEAR_Installer_Role_Ext * @@ -16867,12 +16939,12 @@ class PEAR_Installer_Role_Doc extends PEAR_Installer_Role_Common {} * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ class PEAR_Installer_Role_Ext extends PEAR_Installer_Role_Common {} -?> +?> <releasetypes>php</releasetypes> <releasetypes>extsrc</releasetypes> <releasetypes>extbin</releasetypes> @@ -16884,7 +16956,7 @@ class PEAR_Installer_Role_Ext extends PEAR_Installer_Role_Common {} <executable /> <phpextension /> <config_vars /> -</role> +</role> /** * PEAR_Installer_Role_Php * @@ -16912,12 +16984,12 @@ class PEAR_Installer_Role_Ext extends PEAR_Installer_Role_Common {} * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ class PEAR_Installer_Role_Php extends PEAR_Installer_Role_Common {} -?> +?> <releasetypes>php</releasetypes> <releasetypes>extsrc</releasetypes> <releasetypes>extbin</releasetypes> @@ -16929,7 +17001,7 @@ class PEAR_Installer_Role_Php extends PEAR_Installer_Role_Common {} <executable>1</executable> <phpextension /> <config_vars /> -</role> +</role> /** * PEAR_Installer_Role_Script * @@ -16957,12 +17029,12 @@ class PEAR_Installer_Role_Php extends PEAR_Installer_Role_Common {} * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ class PEAR_Installer_Role_Script extends PEAR_Installer_Role_Common {} -?> +?> <releasetypes>extsrc</releasetypes> <installable /> <locationconfig /> @@ -16972,7 +17044,7 @@ class PEAR_Installer_Role_Script extends PEAR_Installer_Role_Common {} <executable /> <phpextension /> <config_vars /> -</role> +</role> /** * PEAR_Installer_Role_Src * @@ -17000,7 +17072,7 @@ class PEAR_Installer_Role_Script extends PEAR_Installer_Role_Common {} * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -17011,7 +17083,7 @@ class PEAR_Installer_Role_Src extends PEAR_Installer_Role_Common $installer->source_files++; } } -?> +?> <releasetypes>php</releasetypes> <releasetypes>extsrc</releasetypes> <releasetypes>extbin</releasetypes> @@ -17023,7 +17095,7 @@ class PEAR_Installer_Role_Src extends PEAR_Installer_Role_Common <executable /> <phpextension /> <config_vars /> -</role> +</role> /** * PEAR_Installer_Role_Test * @@ -17051,12 +17123,12 @@ class PEAR_Installer_Role_Src extends PEAR_Installer_Role_Common * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ class PEAR_Installer_Role_Test extends PEAR_Installer_Role_Common {} -?> +?> /** * PEAR_Installer_Role * @@ -17090,7 +17162,7 @@ require_once 'PEAR/XMLParser.php'; * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -17304,7 +17376,7 @@ class PEAR_Installer_Role } } ?> - + /** * package.xml generation class, package.xml version 1.0 * @@ -17321,7 +17393,7 @@ class PEAR_Installer_Role * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: v1.php,v 1.70 2006/01/06 04:47:37 cellog Exp $ + * @version CVS: $Id: v1.php,v 1.70.2.1 2006/05/10 02:55:06 cellog Exp $ * @link http://pear.php.net/package/PEAR * @since File available since Release 1.4.0a1 */ @@ -17341,7 +17413,7 @@ require_once 'PEAR/PackageFile/v2.php'; * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -17358,7 +17430,7 @@ class PEAR_PackageFile_Generator_v1 function getPackagerVersion() { - return '1.4.9'; + return '1.4.11'; } /** @@ -17512,7 +17584,7 @@ class PEAR_PackageFile_Generator_v1 ); $ret = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n"; $ret .= "<!DOCTYPE package SYSTEM \"http://pear.php.net/dtd/package-1.0\">\n"; - $ret .= "<package version=\"1.0\" packagerversion=\"1.4.9\">\n" . + $ret .= "<package version=\"1.0\" packagerversion=\"1.4.11\">\n" . " <name>$pkginfo[package]</name>"; if (isset($pkginfo['extends'])) { $ret .= "\n<extends>$pkginfo[extends]</extends>"; @@ -17986,7 +18058,9 @@ class PEAR_PackageFile_Generator_v1 } $ret = new $class; $ret->setConfig($this->_packagefile->_config); - $ret->setLogger($this->_packagefile->_logger); + if (isset($this->_packagefile->_logger) && is_object($this->_packagefile->_logger)) { + $ret->setLogger($this->_packagefile->_logger); + } $ret->fromArray($arr); return $ret; } @@ -18570,7 +18644,7 @@ class PEAR_PackageFile_Generator_v1 return $ret; } } -?> +?> /** * package.xml generation class, package.xml version 2.0 * @@ -18607,7 +18681,7 @@ require_once 'System.php'; * @author Stephan Schmidt (original XML_Serializer code) * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -18686,7 +18760,7 @@ http://pear.php.net/dtd/package-2.0.xsd', */ function getPackagerVersion() { - return '1.4.9'; + return '1.4.11'; } /** @@ -18930,7 +19004,7 @@ http://pear.php.net/dtd/package-2.0.xsd', } $this->options['beautifyFilelist'] = true; } - $arr['attribs']['packagerversion'] = '1.4.9'; + $arr['attribs']['packagerversion'] = '1.4.11'; if ($this->serialize($arr, $options)) { return $this->_serializedData . "\n"; } @@ -20102,7 +20176,7 @@ class PEAR_PackageFile_Generator_v2_XML_Util { return PEAR::raiseError($msg, $code); } } -?> +?> /** * package.xml parsing class, package.xml version 1.0 * @@ -20562,7 +20636,7 @@ class PEAR_PackageFile_Parser_v1 // }}} } -?> +?> /** * package.xml parsing class, package.xml version 2.0 * @@ -20676,7 +20750,7 @@ class PEAR_PackageFile_Parser_v2 extends PEAR_XMLParser return $ret; } } -?> +?> /** * PEAR_PackageFile_v2, package.xml version 2.0, read/write version * @@ -20707,7 +20781,7 @@ require_once 'PEAR/PackageFile/v2.php'; * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a8 */ @@ -22232,7 +22306,7 @@ class PEAR_PackageFile_v2_rw extends PEAR_PackageFile_v2 unset($this->_packageInfo['changelog']); } } -?> +?> // // +----------------------------------------------------------------------+ // | PHP Version 5 | @@ -22251,7 +22325,7 @@ class PEAR_PackageFile_v2_rw extends PEAR_PackageFile_v2 // | | // +----------------------------------------------------------------------+ // -// $Id: Validator.php,v 1.86 2006/03/02 18:14:13 cellog Exp $ +// $Id: Validator.php,v 1.86.2.1 2006/05/10 02:55:06 cellog Exp $ /** * Private validation class used by PEAR_PackageFile_v2 - do not use directly, its * sole purpose is to split up the PEAR/PackageFile/v2.php file to make it smaller @@ -22337,6 +22411,15 @@ class PEAR_PackageFile_v2_Validator '*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('1.4.11', + $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']); @@ -23504,6 +23587,14 @@ class PEAR_PackageFile_v2_Validator 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 1.4.11'); + } + function _invalidTagOrder($oktags, $actual, $root) { $this->_stack->push(__FUNCTION__, 'error', @@ -24213,7 +24304,7 @@ class PEAR_PackageFile_v2_Validator return $providesret; } } -?> +?> /** * PEAR_PackageFile_v1, package.xml version 1.0 * @@ -24496,7 +24587,7 @@ define('PEAR_PACKAGEFILE_ERROR_INVALID_FILENAME', 52); * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -25813,7 +25904,7 @@ class PEAR_PackageFile_v1 // }}} } ?> - + /** * PEAR_PackageFile_v2, package.xml version 2.0 * @@ -25844,7 +25935,7 @@ require_once 'PEAR/ErrorStack.php'; * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -27821,7 +27912,7 @@ class PEAR_PackageFile_v2 } } ?> - + /** * PEAR_REST_10 * @@ -27856,7 +27947,7 @@ require_once 'PEAR/REST.php'; * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a12 */ @@ -28444,7 +28535,7 @@ class PEAR_REST_10 return array_slice($states, $i + 1); } } -?> +?> /** * PEAR_REST_11 - implement faster list-all/remote-list command * @@ -28461,7 +28552,7 @@ class PEAR_REST_10 * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: 11.php,v 1.4 2006/01/06 04:47:37 cellog Exp $ + * @version CVS: $Id: 11.php,v 1.4.2.3 2006/08/15 21:25:12 pajoye Exp $ * @link http://pear.php.net/package/PEAR * @since File available since Release 1.4.3 */ @@ -28479,7 +28570,7 @@ require_once 'PEAR/REST.php'; * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.3 */ @@ -28502,7 +28593,7 @@ class PEAR_REST_11 return $categorylist; } $ret = array(); - if (!is_array($categorylist['c'])) { + if (!is_array($categorylist['c']) || !isset($categorylist['c'][0])) { $categorylist['c'] = array($categorylist['c']); } PEAR::pushErrorHandling(PEAR_ERROR_RETURN); @@ -28589,9 +28680,11 @@ class PEAR_REST_11 } } $d = false; - foreach ($packageinfo['deps'] as $dep) { - if ($dep['v'] == $latest) { - $d = unserialize($dep['d']); + if (isset($packageinfo['deps']) && is_array($packageinfo['deps'])) { + foreach ($packageinfo['deps'] as $dep) { + if ($dep['v'] == $latest) { + $d = unserialize($dep['d']); + } } } if ($d) { @@ -28650,7 +28743,8 @@ class PEAR_REST_11 return array_slice($states, $i + 1); } } -?> +?> + /** * <tasks:postinstallscript> - read/write version * @@ -28682,7 +28776,7 @@ require_once 'PEAR/Task/Postinstallscript.php'; * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a10 */ @@ -28825,7 +28919,7 @@ class PEAR_Task_Postinstallscript_rw extends PEAR_Task_Postinstallscript ); } } -?> +?> /** * <tasks:replace> - read/write version * @@ -28857,7 +28951,7 @@ require_once 'PEAR/Task/Replace.php'; * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a10 */ @@ -28891,7 +28985,7 @@ class PEAR_Task_Replace_rw extends PEAR_Task_Replace return $this->_params; } } -?> +?> /** * <tasks:unixeol> - read/write version * @@ -28923,7 +29017,7 @@ require_once 'PEAR/Task/Unixeol.php'; * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a10 */ @@ -28952,7 +29046,7 @@ class PEAR_Task_Unixeol_rw extends PEAR_Task_Unixeol return ''; } } -?> +?> /** * <tasks:windowseol> - read/write version * @@ -28984,7 +29078,7 @@ require_once 'PEAR/Task/Windowseol.php'; * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a10 */ @@ -29013,7 +29107,7 @@ class PEAR_Task_Windowseol_rw extends PEAR_Task_Windowseol return ''; } } -?> +?> /** * PEAR_Task_Common, base class for installer tasks * @@ -29068,7 +29162,7 @@ define('PEAR_TASK_PACKAGEANDINSTALL', 3); * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 * @abstract @@ -29220,7 +29314,7 @@ class PEAR_Task_Common return PEAR::raiseError($msg, $code); } } -?> +?> /** * <tasks:postinstallscript> * @@ -29255,7 +29349,7 @@ require_once 'PEAR/Task/Common.php'; * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -29548,7 +29642,7 @@ class PEAR_Task_Postinstallscript extends PEAR_Task_Common { } } -?> +?> /** * <tasks:replace> * @@ -29580,7 +29674,7 @@ require_once 'PEAR/Task/Common.php'; * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -29729,7 +29823,7 @@ class PEAR_Task_Replace extends PEAR_Task_Common return $contents; } } -?> +?> /** * <tasks:unixeol> * @@ -29761,7 +29855,7 @@ require_once 'PEAR/Task/Common.php'; * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -29811,7 +29905,7 @@ class PEAR_Task_Unixeol extends PEAR_Task_Common return preg_replace("/\r\n|\n\r|\r|\n/", "\n", $contents); } } -?> +?> /** * <tasks:windowseol> * @@ -29843,7 +29937,7 @@ require_once 'PEAR/Task/Common.php'; * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -29893,7 +29987,7 @@ class PEAR_Task_Windowseol extends PEAR_Task_Common return preg_replace("/\r\n|\n\r|\r|\n/", "\r\n", $contents); } } -?> +?> /** * Channel Validator for the pecl.php.net channel * @@ -29919,7 +30013,7 @@ require_once 'PEAR/Validate.php'; * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a5 */ @@ -29954,7 +30048,7 @@ class PEAR_Validator_PECL extends PEAR_Validate return $ret; } } -?> +?> /** * Class auto-loader * @@ -30006,7 +30100,7 @@ require_once "PEAR.php"; * @author Stig Bakken <ssb@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/manual/en/core.ppm.php#core.ppm.pear-autoloader * @since File available since Release 0.1 * @deprecated File deprecated in Release 1.4.0a1 @@ -30177,7 +30271,7 @@ class PEAR_Autoloader extends PEAR overload("PEAR_Autoloader"); ?> - + /** * PEAR_Builder for building PHP extensions (PECL packages) * @@ -30214,7 +30308,7 @@ require_once 'PEAR/PackageFile.php'; * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since PHP 4.0.2 * @see http://pear.php.net/manual/en/core.ppm.pear-builder.php @@ -30510,7 +30604,7 @@ class PEAR_Builder extends PEAR_Common if (!@chdir($build_dir)) { return $this->raiseError("could not chdir to $build_dir"); } - putenv('PHP_PEAR_VERSION=1.4.9'); + putenv('PHP_PEAR_VERSION=1.4.11'); foreach ($to_run as $cmd) { $err = $this->_runCommand($cmd, $callback); if (PEAR::isError($err)) { @@ -30632,7 +30726,7 @@ class PEAR_Builder extends PEAR_Common } ?> - + /** * PEAR_ChannelFile, the channel handling class * @@ -30786,7 +30880,7 @@ $GLOBALS['_PEAR_CHANNELS_MIRROR_TYPES'] = array('server'); * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -32247,7 +32341,7 @@ class PEAR_ChannelFile { } } ?> - + /** * PEAR_Command, command pattern class * @@ -32265,7 +32359,7 @@ class PEAR_ChannelFile { * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Command.php,v 1.36 2006/01/06 04:47:36 cellog Exp $ + * @version CVS: $Id: Command.php,v 1.36.2.1 2006/06/16 13:01:59 pajoye Exp $ * @link http://pear.php.net/package/PEAR * @since File available since Release 0.1 */ @@ -32343,7 +32437,7 @@ $GLOBALS['_PEAR_Command_objects'] = array(); * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 0.1 */ @@ -32480,6 +32574,11 @@ class PEAR_Command if ($dir === null) { $dir = dirname(__FILE__) . '/Command'; } + + if (!@is_dir($dir)) { + return PEAR::raiseError("registerCommands: opendir($dir) '$dir' does not exist or is not a directory"); + } + $dp = @opendir($dir); if (empty($dp)) { return PEAR::raiseError("registerCommands: opendir($dir) failed"); @@ -32654,7 +32753,7 @@ class PEAR_Command } ?> - + /** * PEAR_Common, the base class for the PEAR Installer * @@ -32784,7 +32883,7 @@ $GLOBALS['_PEAR_Common_script_phases'] = array('pre-install', 'post-install', 'p * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 * @deprecated This class will disappear, and its components will be spread @@ -33782,7 +33881,7 @@ class PEAR_Common extends PEAR } require_once 'PEAR/Config.php'; require_once 'PEAR/PackageFile.php'; -?> +?> /** * PEAR_Config, customized configuration handling for the PEAR Installer * @@ -33800,7 +33899,7 @@ require_once 'PEAR/PackageFile.php'; * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Config.php,v 1.124 2006/03/02 18:14:12 cellog Exp $ + * @version CVS: $Id: Config.php,v 1.124.2.3 2006/07/15 00:38:27 pajoye Exp $ * @link http://pear.php.net/package/PEAR * @since File available since Release 0.1 */ @@ -33922,6 +34021,15 @@ if (getenv('PHP_PEAR_TEST_DIR')) { $PEAR_INSTALL_DIR.DIRECTORY_SEPARATOR.'tests'); } +// Default for temp_dir +if (getenv('PHP_PEAR_TEMP_DIR')) { + define('PEAR_CONFIG_DEFAULT_TEMP_DIR', getenv('PHP_PEAR_TEMP_DIR')); +} else { + define('PEAR_CONFIG_DEFAULT_TEMP_DIR', + System::tmpdir() . DIRECTORY_SEPARATOR . 'pear' . + DIRECTORY_SEPARATOR . 'temp'); +} + // Default for cache_dir if (getenv('PHP_PEAR_CACHE_DIR')) { define('PEAR_CONFIG_DEFAULT_CACHE_DIR', getenv('PHP_PEAR_CACHE_DIR')); @@ -33931,6 +34039,15 @@ if (getenv('PHP_PEAR_CACHE_DIR')) { DIRECTORY_SEPARATOR . 'cache'); } +// Default for download_dir +if (getenv('PHP_PEAR_DOWNLOAD_DIR')) { + define('PEAR_CONFIG_DEFAULT_DOWNLOAD_DIR', getenv('PHP_PEAR_DOWNLOAD_DIR')); +} else { + define('PEAR_CONFIG_DEFAULT_DOWNLOAD_DIR', + System::tmpdir() . DIRECTORY_SEPARATOR . 'pear' . + DIRECTORY_SEPARATOR . 'download'); +} + // Default for php_bin if (getenv('PHP_PEAR_PHP_BIN')) { define('PEAR_CONFIG_DEFAULT_PHP_BIN', getenv('PHP_PEAR_PHP_BIN')); @@ -34000,7 +34117,7 @@ if (getenv('PHP_PEAR_SIG_KEYDIR')) { * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 0.1 */ @@ -34196,6 +34313,20 @@ class PEAR_Config extends PEAR 'prompt' => 'PEAR Installer cache directory', 'group' => 'File Locations (Advanced)', ), + 'temp_dir' => array( + 'type' => 'directory', + 'default' => PEAR_CONFIG_DEFAULT_TEMP_DIR, + 'doc' => 'directory which is used for all temp files', + 'prompt' => 'PEAR Installer temp directory', + 'group' => 'File Locations (Advanced)', + ), + 'download_dir' => array( + 'type' => 'directory', + 'default' => PEAR_CONFIG_DEFAULT_CACHE_DIR, + 'doc' => 'directory which is used for all downloaded files', + 'prompt' => 'PEAR Installer download directory', + 'group' => 'File Locations (Advanced)', + ), 'php_bin' => array( 'type' => 'file', 'default' => PEAR_CONFIG_DEFAULT_PHP_BIN, @@ -35848,7 +35979,7 @@ class PEAR_Config extends PEAR } ?> - + // // +----------------------------------------------------------------------+ // | PHP Version 5 | @@ -36343,7 +36474,7 @@ class PEAR_Dependency // }}} } ?> - + /** * PEAR_DependencyDB, advanced installed packages dependency database * @@ -36361,7 +36492,7 @@ class PEAR_Dependency * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: DependencyDB.php,v 1.30 2006/01/06 04:47:36 cellog Exp $ + * @version CVS: $Id: DependencyDB.php,v 1.30.2.1 2006/05/25 22:00:05 cellog Exp $ * @link http://pear.php.net/package/PEAR * @since File available since Release 1.4.0a1 */ @@ -36380,7 +36511,7 @@ require_once 'PEAR/Config.php'; * @author Tomas V.V.Cox <cox@idec.net.com> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -36635,16 +36766,36 @@ class PEAR_DependencyDB return false; } foreach ($this->_cache['dependencies'][$channel][$package] as $info) { + if (isset($info['dep']['uri'])) { + if (is_object($child)) { + if ($info['dep']['uri'] == $child->getURI()) { + return true; + } + } elseif (isset($child['uri'])) { + if ($info['dep']['uri'] == $child['uri']) { + return true; + } + } + return false; + } if (strtolower($info['dep']['channel']) == strtolower($depchannel) && strtolower($info['dep']['name']) == strtolower($deppackage)) { return true; } } foreach ($this->_cache['dependencies'][$channel][$package] as $info) { - if ($this->_dependsOn(array( - 'channel' => $info['dep']['channel'], - 'package' => $info['dep']['name']), $child, $checked)) { - return true; + if (isset($info['dep']['uri'])) { + if ($this->_dependsOn(array( + 'uri' => $info['dep']['uri'], + 'package' => $info['dep']['name']), $child, $checked)) { + return true; + } + } else { + if ($this->_dependsOn(array( + 'channel' => $info['dep']['channel'], + 'package' => $info['dep']['name']), $child, $checked)) { + return true; + } } } return false; @@ -36997,7 +37148,7 @@ class PEAR_DependencyDB } } } -?> +?> /** * PEAR_Dependency2, advanced dependency validation * @@ -37036,7 +37187,7 @@ require_once 'PEAR/Validate.php'; * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -37524,7 +37675,7 @@ class PEAR_Dependency2 */ function getPEARVersion() { - return '1.4.9'; + return '1.4.11'; } function validatePearinstallerDependency($dep) @@ -38198,7 +38349,7 @@ class PEAR_Dependency2 $this->_currentPackage, true))); } } -?> +?> /** * PEAR_Downloader, the PEAR Installer's download utility class * @@ -38218,7 +38369,7 @@ class PEAR_Dependency2 * @author Martin Jansen <mj@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Downloader.php,v 1.99 2006/03/02 18:14:13 cellog Exp $ + * @version CVS: $Id: Downloader.php,v 1.99.2.2 2006/06/16 12:35:12 pajoye Exp $ * @link http://pear.php.net/package/PEAR * @since File available since Release 1.3.0 */ @@ -38245,7 +38396,7 @@ define('PEAR_INSTALLER_ERROR_NO_PREF_STATE', 2); * @author Martin Jansen <mj@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.3.0 */ @@ -38332,7 +38483,7 @@ class PEAR_Downloader extends PEAR_Common * @access private */ var $_errorStack = array(); - + /** * @var boolean * @access private @@ -38493,29 +38644,37 @@ class PEAR_Downloader extends PEAR_Common $this->pushError('Package "' . $param . '" is not valid', PEAR_INSTALLER_SKIPPED); } else { - if ($params[$i] && !isset($channelschecked[$params[$i]->getChannel()]) && - !isset($this->_options['offline'])) { - $channelschecked[$params[$i]->getChannel()] = true; - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - if (!class_exists('System')) { - require_once 'System.php'; - } - $curchannel = &$this->_registry->getChannel($params[$i]->getChannel()); - if (PEAR::isError($curchannel)) { - PEAR::staticPopErrorHandling(); - return $this->raiseError($curchannel); + do { + if ($params[$i] && $params[$i]->getType() == 'local') { + // bug #7090 + // skip channel.xml check for local packages + break; } - $a = $this->downloadHttp('http://' . $params[$i]->getChannel() . - '/channel.xml', $this->ui, - System::mktemp(array('-d')), null, $curchannel->lastModified()); - PEAR::staticPopErrorHandling(); - if (PEAR::isError($a) || !$a) { - continue; + if ($params[$i] && !isset($channelschecked[$params[$i]->getChannel()]) && + !isset($this->_options['offline'])) { + $channelschecked[$params[$i]->getChannel()] = true; + PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); + if (!class_exists('System')) { + require_once 'System.php'; + } + $curchannel = &$this->_registry->getChannel($params[$i]->getChannel()); + if (PEAR::isError($curchannel)) { + PEAR::staticPopErrorHandling(); + return $this->raiseError($curchannel); + } + $a = $this->downloadHttp('http://' . $params[$i]->getChannel() . + '/channel.xml', $this->ui, + System::mktemp(array('-t' . $this->getDownloadDir())), null, $curchannel->lastModified()); + + PEAR::staticPopErrorHandling(); + if (PEAR::isError($a) || !$a) { + break; + } + $this->log(0, 'WARNING: channel "' . $params[$i]->getChannel() . '" has ' . + 'updated its protocols, use "channel-update ' . $params[$i]->getChannel() . + '" to update'); } - $this->log(0, 'WARNING: channel "' . $params[$i]->getChannel() . '" has ' . - 'updated its protocols, use "channel-update ' . $params[$i]->getChannel() . - '" to update'); - } + } while (false); if ($params[$i] && !isset($this->_options['downloadonly'])) { if (isset($this->_options['packagingroot'])) { $checkdir = $this->_prependPath( @@ -39043,33 +39202,62 @@ class PEAR_Downloader extends PEAR_Common { $xsdversion = isset($dep['rel']) ? '1.0' : '2.0'; $curchannel = $this->config->get('default_channel'); - if (isset($dep['channel'])) { - $remotechannel = $dep['channel']; + if (isset($dep['uri'])) { + $xsdversion = '2.0'; + $chan = &$this->_registry->getChannel('__uri'); + if (PEAR::isError($chan)) { + return $chan; + } + $version = $this->_registry->packageInfo($dep['name'], 'version', '__uri'); + $this->configSet('default_channel', '__uri'); } else { - $remotechannel = 'pear.php.net'; - } - if (!$this->_registry->channelExists($remotechannel)) { - do { - if ($this->config->get('auto_discover')) { - if ($this->discover($remotechannel)) { - break; + if (isset($dep['channel'])) { + $remotechannel = $dep['channel']; + } else { + $remotechannel = 'pear.php.net'; + } + if (!$this->_registry->channelExists($remotechannel)) { + do { + if ($this->config->get('auto_discover')) { + if ($this->discover($remotechannel)) { + break; + } } - } - return PEAR::raiseError('Unknown remote channel: ' . $remotechannel); - } while (false); + return PEAR::raiseError('Unknown remote channel: ' . $remotechannel); + } while (false); + } + $chan = &$this->_registry->getChannel($remotechannel); + if (PEAR::isError($chan)) { + return $chan; + } + $version = $this->_registry->packageInfo($dep['name'], 'version', + $remotechannel); + $this->configSet('default_channel', $remotechannel); } - $this->configSet('default_channel', $remotechannel); $state = isset($parr['state']) ? $parr['state'] : $this->config->get('preferred_state'); if (isset($parr['state']) && isset($parr['version'])) { unset($parr['state']); } - $chan = &$this->_registry->getChannel($remotechannel); - if (PEAR::isError($chan)) { - return $chan; - } - $version = $this->_registry->packageInfo($dep['name'], 'version', - $remotechannel); - if ($chan->supportsREST($this->config->get('preferred_mirror')) && + if (isset($dep['uri'])) { + $info = &$this->newDownloaderPackage($this); + PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); + $err = $info->initialize($dep); + PEAR::staticPopErrorHandling(); + if (!$err) { + // skip parameters that were missed by preferred_state + return PEAR::raiseError('Cannot initialize dependency'); + } + if (PEAR::isError($err)) { + if (!isset($this->_options['soft'])) { + $this->log(0, $err->getMessage()); + } + if (is_object($info)) { + $param = $info->getChannel() . '/' . $info->getPackage(); + } + return PEAR::raiseError('Package "' . $param . '" is not valid'); + } + return $info; + } elseif ($chan->supportsREST($this->config->get('preferred_mirror')) && $base = $chan->getBaseURL('REST1.0', $this->config->get('preferred_mirror'))) { $rest = &$this->config->getREST('1.0', $this->_options); $url = $rest->getDepDownloadURL($base, $xsdversion, $dep, $parr, @@ -39126,7 +39314,7 @@ class PEAR_Downloader extends PEAR_Common } else { $url = $this->_remote->call('package.getDepDownloadURL', $xsdversion, $dep, $parr, $state); } - if ($parr['channel'] != $curchannel) { + if ($this->config->get('default_channel') != $curchannel) { $this->configSet('default_channel', $curchannel); } if (!is_array($url)) { @@ -39284,7 +39472,7 @@ class PEAR_Downloader extends PEAR_Common */ function sortPkgDeps(&$packages, $uninstall = false) { - $uninstall ? + $uninstall ? $this->sortPackagesForUninstall($packages) : $this->sortPackagesForInstall($packages); } @@ -39527,7 +39715,7 @@ class PEAR_Downloader extends PEAR_Common $config = &PEAR_Config::singleton(); } $proxy_host = $proxy_port = $proxy_user = $proxy_pass = ''; - if ($config->get('http_proxy')&& + if ($config->get('http_proxy')&& $proxy = parse_url($config->get('http_proxy'))) { $proxy_host = @$proxy['host']; if (isset($proxy['scheme']) && $proxy['scheme'] == 'https') { @@ -39595,7 +39783,7 @@ class PEAR_Downloader extends PEAR_Common $ifmodifiedsince = ($lastmodified ? "If-Modified-Since: $lastmodified\r\n" : ''); } $request .= "Host: $host:$port\r\n" . $ifmodifiedsince . - "User-Agent: PEAR/1.4.9/PHP/" . PHP_VERSION . "\r\n"; + "User-Agent: PEAR/1.4.11/PHP/" . PHP_VERSION . "\r\n"; if (isset($this)) { // only pass in authentication for non-static calls $username = $config->get('username'); $password = $config->get('password'); @@ -39708,7 +39896,7 @@ class PEAR_Downloader extends PEAR_Common // }}} ?> - + /** * Error Stack Implementation * @@ -39842,7 +40030,7 @@ define('PEAR_ERRORSTACK_ERR_OBJTOSTRING', 2); * $local_stack = new PEAR_ErrorStack('MyPackage'); * </code> * @author Greg Beaver <cellog@php.net> - * @version 1.4.9 + * @version 1.4.11 * @package PEAR_ErrorStack * @category Debugging * @copyright 2004-2006 Greg Beaver @@ -40678,7 +40866,7 @@ class PEAR_ErrorStack { $stack = &PEAR_ErrorStack::singleton('PEAR_ErrorStack'); $stack->pushCallback(array('PEAR_ErrorStack', '_handleError')); ?> - + /* vim: set expandtab tabstop=4 shiftwidth=4 foldmethod=marker: */ /** * PEAR_Exception @@ -40775,7 +40963,7 @@ $stack->pushCallback(array('PEAR_ErrorStack', '_handleError')); * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.3.3 * @@ -41053,7 +41241,7 @@ class PEAR_Exception extends Exception } } -?> +?> /** * PEAR_Frontend, the singleton-based frontend for user input/output * @@ -41097,7 +41285,7 @@ $GLOBALS['_PEAR_FRONTEND_SINGLETON'] = null; * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -41238,7 +41426,7 @@ class PEAR_Frontend extends PEAR { } } -?> +?> /** * PEAR_Installer * @@ -41282,7 +41470,7 @@ define('PEAR_INSTALLER_NOBINARY', -240); * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 0.1 */ @@ -42829,7 +43017,7 @@ if (!function_exists("md5_file")) { } // }}} -?> +?> /** * PEAR_PackageFile, package.xml parsing utility class * @@ -42846,7 +43034,7 @@ if (!function_exists("md5_file")) { * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: PackageFile.php,v 1.33 2006/02/09 22:39:32 cellog Exp $ + * @version CVS: $Id: PackageFile.php,v 1.33.2.1 2006/06/08 00:04:13 pajoye Exp $ * @link http://pear.php.net/package/PEAR * @since File available since Release 1.4.0a1 */ @@ -42872,7 +43060,7 @@ define('PEAR_PACKAGEFILE_ERROR_INVALID_PACKAGEVERSION', 2); * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -43235,6 +43423,11 @@ class PEAR_PackageFile */ function &fromAnyFile($info, $state) { + if (is_dir($info)) { + $info = PEAR::raiseError("'$info' is a directory, a file is expected"); + return $info; + } + $fp = false; if (is_string($info) && strlen($info) < 255 && (file_exists($info) || ($fp = @fopen($info, 'r')))) { @@ -43264,7 +43457,8 @@ class PEAR_PackageFile } } -?> +?> + /** * PEAR_Packager for generating releases * @@ -43303,7 +43497,7 @@ require_once 'System.php'; * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 0.1 */ @@ -43466,7 +43660,7 @@ if (!function_exists('md5_file')) { // }}} ?> - + /** * PEAR_Registry * @@ -43511,7 +43705,7 @@ define('PEAR_REGISTRY_ERROR_CHANNEL_FILE', -6); * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -45627,7 +45821,7 @@ class PEAR_Registry extends PEAR } ?> - + /** * PEAR_Remote * @@ -45669,7 +45863,7 @@ require_once 'PEAR/Config.php'; * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 0.1 */ @@ -46146,7 +46340,7 @@ class PEAR_Remote extends PEAR } ?> - + /** * PEAR_REST * @@ -46182,7 +46376,7 @@ require_once 'PEAR/XMLParser.php'; * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -46471,7 +46665,7 @@ class PEAR_REST $ifmodifiedsince = ($lastmodified ? "If-Modified-Since: $lastmodified\r\n" : ''); } $request .= "Host: $host:$port\r\n" . $ifmodifiedsince . - "User-Agent: PEAR/1.4.9/PHP/" . PHP_VERSION . "\r\n"; + "User-Agent: PEAR/1.4.11/PHP/" . PHP_VERSION . "\r\n"; $username = $this->config->get('username'); $password = $this->config->get('password'); if ($username && $password) { @@ -46543,7 +46737,7 @@ class PEAR_REST } } ?> - + /** * PEAR_RunTest * @@ -46589,7 +46783,7 @@ putenv("PHP_PEAR_RUNTESTS=1"); * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.3.3 */ @@ -46952,7 +47146,7 @@ $text } ?> - + /** * PEAR_Validate * @@ -46969,7 +47163,7 @@ $text * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Validate.php,v 1.46 2006/01/23 17:16:35 cellog Exp $ + * @version CVS: $Id: Validate.php,v 1.46.2.3 2006/07/17 17:49:37 pajoye Exp $ * @link http://pear.php.net/package/PEAR * @since File available since Release 1.4.0a1 */ @@ -46992,7 +47186,7 @@ require_once 'PEAR/Validator/PECL.php'; * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -47399,17 +47593,16 @@ class PEAR_Validate { if ($this->_state == PEAR_VALIDATE_NORMAL || $this->_state == PEAR_VALIDATE_PACKAGING) { - if (!preg_match('/\d\d\d\d\-\d\d\-\d\d/', - $this->_packagexml->getDate())) { - $this->_addFailure('date', 'invalid release date "' . - $this->_packagexml->getDate() . '"'); - return false; - } - if (strtotime($this->_packagexml->getDate()) == -1) { + if (!preg_match('/(\d\d\d\d)\-(\d\d)\-(\d\d)/', + $this->_packagexml->getDate(), $res) || + count($res) < 4 + || !checkdate($res[2], $res[3], $res[1]) + ) { $this->_addFailure('date', 'invalid release date "' . $this->_packagexml->getDate() . '"'); return false; } + if ($this->_state == PEAR_VALIDATE_PACKAGING && $this->_packagexml->getDate() != date('Y-m-d')) { $this->_addWarning('date', 'Release Date "' . @@ -47582,7 +47775,8 @@ class PEAR_Validate return true; } } -?> +?> + /** * PEAR_FTP * @@ -47613,7 +47807,7 @@ class PEAR_Validate * @author Stephan Schmidt (original XML_Unserializer code) * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -47842,7 +48036,7 @@ class PEAR_XMLParser $this->_dataStack[$this->_depth] .= $cdata; } } -?> +?> REM ----------------------------------------------------------------------
REM PHP version 5
@@ -47956,7 +48150,7 @@ GOTO END :RUN
"%PHP_PEAR_PHP_BIN%" -C -d output_buffering=1 -d safe_mode=0 -d open_basedir="" -d include_path="%PHP_PEAR_INSTALL_DIR%" -f "%PHP_PEAR_INSTALL_DIR%\pearcmd.php" -- %1 %2 %3 %4 %5 %6 %7 %8 %9
:END
-@ECHO ON +@ECHO ON REM ----------------------------------------------------------------------
REM PHP version 5
@@ -48070,7 +48264,7 @@ GOTO END :RUN
"%PHP_PEAR_PHP_BIN%" -C -d memory_limit="-1" -d safe_mode=0 -d open_basedir="" -d output_buffering=1 -d include_path="%PHP_PEAR_INSTALL_DIR%" -f "%PHP_PEAR_INSTALL_DIR%\pearcmd.php" -- %1 %2 %3 %4 %5 %6 %7 %8 %9
:END
-@ECHO ON +@ECHO ON REM ----------------------------------------------------------------------
REM PHP version 5
@@ -48184,7 +48378,7 @@ GOTO END :RUN
"%PHP_PEAR_PHP_BIN%" -C -n -d output_buffering=1 -d safe_mode=0 -d include_path="%PHP_PEAR_INSTALL_DIR%" -f "%PHP_PEAR_INSTALL_DIR%\peclcmd.php" -- %1 %2 %3 %4 %5 %6 %7 %8 %9
:END
-@ECHO ON +@ECHO ON # first find which PHP binary to use if test "x$PHP_PEAR_PHP_BIN" != "x"; then @@ -48212,7 +48406,7 @@ else fi exec $PHP -C -q $INCARG -d output_buffering=1 -d open_basedir="" -d safe_mode=0 $INCDIR/pearcmd.php "$@" - + # first find which PHP binary to use if test "x$PHP_PEAR_PHP_BIN" != "x"; then @@ -48240,7 +48434,7 @@ else fi exec $PHP -d memory_limit="-1" -C -q $INCARG -d output_buffering=1 -d open_basedir="" -d safe_mode=0 $INCDIR/pearcmd.php "$@" - + # first find which PHP binary to use if test "x$PHP_PEAR_PHP_BIN" != "x"; then @@ -48268,7 +48462,7 @@ else fi exec $PHP -C -n -q $INCARG -d output_buffering=1 -d safe_mode=0 $INCDIR/peclcmd.php "$@" - + // // +----------------------------------------------------------------------+ // | PHP Version 5 | @@ -48705,7 +48899,7 @@ function error_handler($errno, $errmsg, $file, $line, $vars) { // vim600:syn=php ?> - + // // +----------------------------------------------------------------------+ // | PHP Version 5 | @@ -48750,7 +48944,7 @@ require_once 'pearcmd.php'; // vim600:syn=php ?> - + $Id: package.dtd,v 1.38 2005/11/12 02:23:07 cellog Exp $ This is the PEAR package description, version 1.0. @@ -48853,7 +49047,7 @@ require_once 'pearcmd.php'; to CDATA #REQUIRED> - + /** * PEAR, the PHP Extension and Application Repository * @@ -48948,7 +49142,7 @@ $GLOBALS['_PEAR_error_handler_stack'] = array(); * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @see PEAR_Error * @since Class available since PHP 4.0.2 @@ -49663,7 +49857,7 @@ function _PEAR_call_destructors() * @author Gregory Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/manual/en/core.pear.pear-error.php * @see PEAR::raiseError(), PEAR::throwError() * @since Class available since PHP 4.0.2 @@ -49954,7 +50148,7 @@ class PEAR_Error * End: */ ?> - + /** * File/Directory manipulation * @@ -49971,7 +50165,7 @@ class PEAR_Error * @author Tomas V.V.Cox <cox@idecnet.com> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: System.php,v 1.53 2006/01/06 04:47:36 cellog Exp $ + * @version CVS: $Id: System.php,v 1.53.2.1 2006/06/16 13:55:16 pajoye Exp $ * @link http://pear.php.net/package/PEAR * @since File available since Release 0.1 */ @@ -50011,7 +50205,7 @@ $GLOBALS['_System_temp_files'] = array(); * @author Tomas V.V. Cox <cox@idecnet.com> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 -* @version Release: 1.4.9 +* @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 0.1 */ @@ -50447,7 +50641,7 @@ class System foreach ($exe_suffixes as $suff) { foreach ($path_elements as $dir) { $file = $dir . DIRECTORY_SEPARATOR . $program . $suff; - if ($pear_is_executable($file)) { + if (@$pear_is_executable($file)) { return $file; } } @@ -50541,7 +50735,7 @@ class System } } ?> - + Name: @rpm_package@ Version: @version@ Release: 1 @@ -50613,7 +50807,639 @@ cp -p package@package2xml@.xml %{buildroot}@rpm_xml_dir@/@package@.xml %defattr(-,root,root) %doc @doc_files@ / - + +<!DOCTYPE package SYSTEM "http://pear.php.net/dtd/package-1.0"> +<package version="1.0" packagerversion="1.4.11"> + <name>PEAR</name> + <summary>PEAR Base System</summary> + <description>The PEAR package contains: + * the PEAR installer, for creating, distributing + and installing packages + * the beta-quality PEAR_Exception PHP5 error handling mechanism + * the beta-quality PEAR_ErrorStack advanced error handling mechanism + * the PEAR_Error error handling mechanism + * the OS_Guess class for retrieving info about the OS + where PHP is running on + * the System class for quick handling of common operations + with files and directories + * the PEAR base class + + New features in a nutshell: + * full support for channels + * pre-download dependency validation + * new package.xml 2.0 format allows tremendous flexibility while maintaining BC + * support for optional dependency groups and limited support for sub-packaging + * robust dependency support + * full dependency validation on uninstall + * remote install for hosts with only ftp access - no more problems with + restricted host installation + * full support for mirroring + * support for bundling several packages into a single tarball + * support for static dependencies on a url-based package + * support for custom file roles and installation tasks + + NOTE: users of PEAR_Frontend_Web/PEAR_Frontend_Gtk must upgrade their installations + to the latest version, or PEAR will not upgrade properly + </description> + <maintainers> + <maintainer> + <user>cellog</user> + <name>Greg Beaver</name> + <email>cellog@php.net</email> + <role>lead</role> + </maintainer> + <maintainer> + <user>ssb</user> + <name>Stig Bakken</name> + <email>stig@php.net</email> + <role>lead</role> + </maintainer> + <maintainer> + <user>cox</user> + <name>Tomas V.V.Cox</name> + <email>cox@idecnet.com</email> + <role>lead</role> + </maintainer> + <maintainer> + <user>pajoye</user> + <name>Pierre-Alain Joye</name> + <email>pajoye@pearfr.org</email> + <role>lead</role> + </maintainer> + <maintainer> + <user>timj</user> + <name>Tim Jackson</name> + <email>timj@php.net</email> + <role>helper</role> + </maintainer> + <maintainer> + <user>toggg</user> + <name>Bertrand Gugger</name> + <email>toggg@php.net</email> + <role>helper</role> + </maintainer> + <maintainer> + <user>mj</user> + <name>Martin Jansen</name> + <email>mj@php.net</email> + <role>helper</role> + </maintainer> + </maintainers> + <release> + <version>1.4.11</version> + <date>2006-08-16</date> + <license>PHP License</license> + <state>stable</state> + <notes>minor bugfix release +* fix the conflicts detection for the web frontend (before 0.5.0) +* fix warnings in the list-all command + </notes> + <deps> + <dep type="php" rel="ge" version="4.2"/> + <dep type="pkg" rel="ge" version="1.3.3">PEAR</dep> + <dep type="pkg" rel="ge" version="1.3.1">Archive_Tar</dep> + <dep type="pkg" rel="ge" version="1.2">Console_Getopt</dep> + <dep type="pkg" rel="ge" version="1.4.0" optional="yes">XML_RPC</dep> + <dep type="pkg" rel="ge" version="0.5.0" optional="yes">PEAR_Frontend_Web</dep> + <dep type="pkg" rel="ge" version="0.4.0" optional="yes">PEAR_Frontend_Gtk</dep> + <dep type="pkg" rel="ge" version="0.1.0" optional="yes">PEAR_Frontend_Gtk2</dep> + <dep type="ext" rel="has">xml</dep> + <dep type="ext" rel="has">pcre</dep> + </deps> + <provides type="class" name="OS_Guess" /> + <provides type="class" name="System" /> + <provides type="function" name="md5_file" /> + <filelist> + <file role="php" name="OS/Guess.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/ChannelFile/Parser.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Command/Auth.xml"/> + <file role="php" name="PEAR/Command/Auth.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Command/Build.xml"/> + <file role="php" name="PEAR/Command/Build.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Command/Channels.xml"/> + <file role="php" name="PEAR/Command/Channels.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Command/Common.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Command/Config.xml"/> + <file role="php" name="PEAR/Command/Config.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Command/Install.xml"/> + <file role="php" name="PEAR/Command/Install.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Command/Package.xml"/> + <file role="php" name="PEAR/Command/Package.php"> + <replace from="@DATA-DIR@" to="data_dir" type="pear-config"/> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Command/Pickle.xml"/> + <file role="php" name="PEAR/Command/Pickle.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Command/Registry.xml"/> + <file role="php" name="PEAR/Command/Registry.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Command/Remote.xml"/> + <file role="php" name="PEAR/Command/Remote.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Command/Mirror.xml"/> + <file role="php" name="PEAR/Command/Mirror.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Command/Test.xml"/> + <file role="php" name="PEAR/Command/Test.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Downloader/Package.php"> + <replace from="@PEAR-VER@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Frontend/CLI.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Installer/Role/Common.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Installer/Role/Data.xml"/> + <file role="php" name="PEAR/Installer/Role/Data.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Installer/Role/Doc.xml"/> + <file role="php" name="PEAR/Installer/Role/Doc.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Installer/Role/Ext.xml"/> + <file role="php" name="PEAR/Installer/Role/Ext.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Installer/Role/Php.xml"/> + <file role="php" name="PEAR/Installer/Role/Php.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Installer/Role/Script.xml"/> + <file role="php" name="PEAR/Installer/Role/Script.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Installer/Role/Src.xml"/> + <file role="php" name="PEAR/Installer/Role/Src.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Installer/Role/Test.xml"/> + <file role="php" name="PEAR/Installer/Role/Test.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Installer/Role.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/PackageFile/Generator/v1.php"> + <replace from="@PEAR-VER@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/PackageFile/Generator/v2.php"> + <replace from="@PEAR-VER@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/PackageFile/Parser/v1.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/PackageFile/Parser/v2.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/PackageFile/v2/rw.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/PackageFile/v2/Validator.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/PackageFile/v1.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/PackageFile/v2.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/REST/10.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/REST/11.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Task/Postinstallscript/rw.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Task/Replace/rw.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Task/Unixeol/rw.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Task/Windowseol/rw.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Task/Common.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Task/Postinstallscript.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Task/Replace.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Task/Unixeol.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Task/Windowseol.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Validator/PECL.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Autoloader.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Builder.php"> + <replace from="@PEAR-VER@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/ChannelFile.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Command.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Common.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Config.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Dependency.php"/> + <file role="php" name="PEAR/DependencyDB.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Dependency2.php"> + <replace from="@PEAR-VER@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Downloader.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/ErrorStack.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Exception.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Frontend.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Installer.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Packager.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/PackageFile.php"> + <replace from="@PEAR-VER@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Registry.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Remote.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/REST.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/RunTest.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/Validate.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" name="PEAR/XMLParser.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="script" baseinstalldir="/" platform="!windows" install-as="pear" name="scripts/pear.sh"> + <replace from="@php_bin@" to="php_bin" type="pear-config"/> + <replace from="@php_dir@" to="php_dir" type="pear-config"/> + <replace from="@pear_version@" to="version" type="package-info"/> + <replace from="@include_path@" to="php_dir" type="pear-config"/> + </file> + <file role="script" baseinstalldir="/" platform="!windows" install-as="peardev" name="scripts/peardev.sh"> + <replace from="@php_bin@" to="php_bin" type="pear-config"/> + <replace from="@php_dir@" to="php_dir" type="pear-config"/> + <replace from="@pear_version@" to="version" type="package-info"/> + <replace from="@include_path@" to="php_dir" type="pear-config"/> + </file> + <file role="script" baseinstalldir="/" platform="!windows" install-as="pecl" name="scripts/pecl.sh"> + <replace from="@php_bin@" to="php_bin" type="pear-config"/> + <replace from="@php_dir@" to="php_dir" type="pear-config"/> + <replace from="@pear_version@" to="version" type="package-info"/> + <replace from="@include_path@" to="php_dir" type="pear-config"/> + </file> + <file role="script" baseinstalldir="/" platform="windows" install-as="peardev.bat" name="scripts/peardev.bat"> + <replace from="@bin_dir@" to="bin_dir" type="pear-config"/> + <replace from="@php_bin@" to="php_bin" type="pear-config"/> + <replace from="@include_path@" to="php_dir" type="pear-config"/> + </file> + <file role="script" baseinstalldir="/" platform="windows" install-as="pear.bat" name="scripts/pear.bat"> + <replace from="@bin_dir@" to="bin_dir" type="pear-config"/> + <replace from="@php_bin@" to="php_bin" type="pear-config"/> + <replace from="@include_path@" to="php_dir" type="pear-config"/> + </file> + <file role="script" baseinstalldir="/" platform="windows" install-as="pecl.bat" name="scripts/pecl.bat"> + <replace from="@bin_dir@" to="bin_dir" type="pear-config"/> + <replace from="@php_bin@" to="php_bin" type="pear-config"/> + <replace from="@include_path@" to="php_dir" type="pear-config"/> + </file> + <file role="php" baseinstalldir="/" install-as="pearcmd.php" name="scripts/pearcmd.php"> + <replace from="@php_bin@" to="php_bin" type="pear-config"/> + <replace from="@php_dir@" to="php_dir" type="pear-config"/> + <replace from="@pear_version@" to="version" type="package-info"/> + <replace from="@include_path@" to="php_dir" type="pear-config"/> + </file> + <file role="php" baseinstalldir="/" install-as="peclcmd.php" name="scripts/peclcmd.php"> + <replace from="@php_bin@" to="php_bin" type="pear-config"/> + <replace from="@php_dir@" to="php_dir" type="pear-config"/> + <replace from="@pear_version@" to="version" type="package-info"/> + <replace from="@include_path@" to="php_dir" type="pear-config"/> + </file> + <file role="data" baseinstalldir="/" name="package.dtd"/> + <file role="data" baseinstalldir="/" name="template.spec"/> + <file role="php" baseinstalldir="/" name="PEAR.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + <file role="php" baseinstalldir="/" name="System.php"> + <replace from="@package_version@" to="version" type="package-info"/> + </file> + </filelist> + </release> + <changelog> + <release> + <version>1.4.0</version> + <date>2005-09-18</date> + <license>PHP License</license> + <state>stable</state> + <notes>This is a major milestone release for PEAR. In addition to several killer features, +every single element of PEAR has a regression test, and so stability is much higher +than any previous PEAR release. +New features in a nutshell: +* full support for channels +* pre-download dependency validation +* new package.xml 2.0 format allows tremendous flexibility while maintaining BC +* support for optional dependency groups and limited support for sub-packaging +* robust dependency support +* full dependency validation on uninstall +* remote install for hosts with only ftp access - no more problems with + restricted host installation +* full support for mirroring +* support for bundling several packages into a single tarball +* support for static dependencies on a url-based package +* support for custom file roles and installation tasks +NOTE: users of PEAR_Frontend_Web/PEAR_Frontend_Gtk must upgrade their installations +to the latest version, or PEAR will not upgrade properly + </notes> + </release> + <release> + <version>1.4.1</version> + <date>2005-09-25</date> + <license>PHP License</license> + <state>stable</state> + <notes>Major bugfix release. This is a recommended download for ALL PEAR users + +UPGRADING FROM 1.4.0 WILL CAUSE A SERIES OF NOTICES. IGNORE THEM. +THIS IS CAUSED BY A BUG IN 1.4.0 THAT IS FIXED IN 1.4.1 +* fix prompt processing in post-install scripts +* make dual package.xml equivalency stricter when using package.xml/package2.xml +* fix critical error in validating bogus php dependencies of package.xml 1.0 + This error has existed for every PEAR version, and allows dependencies like: + <dep type="php" rel="has">4.3.0</dep> to + slip through unnoticed +* re-enable php-const replacements +* PEAR_PackageFile_v2::getConfigureOptions() was missing!! +* fix cvsdiff command +* fix xml encoding issues finally +* clean up package.xml 1.0 dir/file parsing +* fix invalid PEAR_Config generation +* change the user agent from PHP/phpversion to PEAR/pearversion/PHP/phpversion +* don't use a bogus uri for licenses on running convert command +* add "pickle" command for PECL packaging +* add validation warning if the release date in package.xml is not today when packaging +* implement progress bar for list-all/remote-list +* fix Bug #5323: pear search returns odd version numbers +* fix Bug #5428: pear cvstag package2.xml does not include the package.xml +* fix Bug #5449: pear makerpm completely broken for package.xml 2.0 +* fix Bug #5462: raiseError method does not return by ref anymore +* fix Bug #5465: pear install --offline fails to display error +* fix Bug #5477: Bug in Downloader.php and Dependency2.php +* fix Bug #5481: "pear install PECLextension" should display warning to use pecl command +* fix Bug #5482: installation of PECL packages should say add extensions to php.ini +* fix Bug #5483: pecl uninstall crack fatal error +* fix Bug #5487: PECL: compiled files are not uninstalled via the uninstall command +* fix Bug #5488: pecl uninstall package fails if package has a package.xml 1.0 +* fix Bug #5501: the commands list mentions XML-RPC +* fix Bug #5509: addDependecyGroup does not validate group name +* fix Bug #5513: PEAR 1.4 does not install non-pear.php.net packages + </notes> + </release> + <release> + <version>1.4.2</version> + <date>2005-10-08</date> + <license>PHP License</license> + <state>stable</state> + <notes>Minor bugfix release +* fix issues with API for adding tasks to package2.xml +* fix Bug #5520: pecl pickle fails on pecl pickle fails on extension/package deps +* fix Bug #5523: pecl pickle misses to put configureoptions into package.xml v1 +* fix Bug #5527: No need for cpp +* fix Bug #5529: configure options in package.xml 2.0 will be ignored +* fix Bug #5530: PEAR_PackageFile_v2->getConfigureOptions() API incompatible with v1 +* fix Bug #5531: adding of installconditions/binarypackage/configure options + to extsrc may fail +* fix Bug #5550: PHP notices/warnings/errors are 1 file off in trace +* fix Bug #5580: pear makerpm XML_sql2xml-0.3.2.tgz error +* fix Bug #5619: pear makerpm produces invalid .spec dependancy code +* fix Bug #5629: pear install http_download dies with bad error message + </notes> + </release> + <release> + <version>1.4.3</version> + <date>2005-11-03</date> + <license>PHP License</license> + <state>stable</state> + <notes>MINOR SECURITY FIX release +A security vulnerability has been discovered in all +PEAR versions (1.0 to 1.4.2). This vulnerability has been fixed, +and this is a recommended upgrade for all users. +Run "pear channel-update" after upgrading for exponentially +faster list-all/remote-list!! +* fix installation of files named like ".test" +* fix base class for writeable unixeol/windowseol classes +* fix running of post-install scripts with empty or no paramgroup + in CLI frontend +* fix validation of <postinstallscript> +* fix writeable PEAR_Task_Postinstallscript_rw class +* fix error in REST-based search command if searching through description + as well +* silence warning on list-upgrades/upgrade-all if no releases exist at a channel +* add checks for updated channel.xml in all remote commands +* fix pecl script if safe_mode is enabled by default +* implement SERIOUS improvement in list-all/remote-list speed. From 6 minutes + down to about 16-30 seconds +* implement --loose option to avoid recommended version validation +* implement Request #5527: alternative approach to determining glibc version +* fix Bug #5717: analyzeSourceCode() fails to process certain + quote situations properly +* fix Bug #5736: if registry can't lock registry or open filemap, + checkFileMap(), no error +* fix Bug #5676: pear config-create broken +* fix Bug #5683: Deadlock with (almost) circular dependency +* fix Bug #5725: PHP5 warnings need improvement +* fix Bug #5789: small typo +* fix Bug #5810: internet should not be contacted on install if dependencies are installed + </notes> + </release> + <release> + <version>1.4.4</version> + <date>2005-11-04</date> + <license>PHP License</license> + <state>stable</state> + <notes>* fix Bug #5865: doesn't work with PHP4.2.x + </notes> + </release> + <release> + <version>1.4.5</version> + <date>2005-11-21</date> + <license>PHP License</license> + <state>stable</state> + <notes>* REALLY fix Bug #5865: doesn't work with PHP4.2.x +* fix Bug #5854: if no installconditions match, no error is raised +* fix Bug #5945: installer should auto-skip to the next channel on timeout +* fix Bug #5947: Some package-info not handled by PEAR_PackageFile_v2 +* fix Bug #5948: Minor typo in PEAR_Validate +* fix Bug #5958: strange error on mistyping +* fix Bug #5959: patch: pear makerpm produces RPMs that do not uninstall/upgrade cleanly + </notes> + </release> + <release> + <version>1.4.6</version> + <date>2006-01-06</date> + <license>PHP License</license> + <state>stable</state> + <notes>Minor bugfix release +* fix problem with -options when using CGI version of PHP +* fix Critical Bug #5999: support for baseinstalldir broken in package2.xml format +* fix Bug #6034: date format bug +* fix Bug #6040: PEAR_Frontend#setFrontendClass has no docblock; + PEAR_Frontend not documented +* fix Bug #6044: PEAR_REST::retrieveCacheFirst doesn't return error codes +* fix Bug #6047: pear makerpm fails to handle docs in root directory +* fix Bug #6048: PEAR_Frontend::log parameters are wrong +* fix Bug #6106: Notices by list-upgrades (caused by time-outs ?) +* fix Bug #6145: Can't install PEAR with INSTALL_ROOT environment +* fix Bug #6218: the "pear" command does nothing +* fix Bug #6269: System::which() returns silliness if passed null +* fix Bug #6322: Installer fails to follow redirects [patch by Bertrand Gugger] +* fix Request #6119: Add PEAR_Frontend_Gtk2 support to PEAR + </notes> + </release> + <release> + <version>1.4.7</version> + <date>2006-02-27</date> + <license>PHP License</license> + <state>stable</state> + <notes>Minor bugfix release +* Prevent packaging of release candidate releases with versions like 1.0.0rc1 + version_compare() only understands upper-case 1.0.0RC1 +* implement CLEAN section in .phpt tests +* implement run-tests command for phpunit-based tests +* implement Request #6039: setFrontendObject needed to allow objects passed +* fix Bug #6075: unnecessary validation of maintainers can break PEAR_PFM +* fix Bug #6076: optional is not set for conversion of package2.xml to "has" rel +* fix Bug #6077: PEAR_PackageFile_Parser_v2 should return by reference +* fix Bug #6273: pear download-all fails +* fix Bug #6383: incomplete PEAR::Error message on addReplacement() +* fix Bug #6445: PEAR::registerShutdownFunc doesn't work in static calls +* fix Bug #6480: pear install --installroot option fails for pecl packages [timj] +* fix Bug #6510: status active of a maintainer cannot be change +* fix Bug #6537: wrong export compatible v1 dependencies list with exclude limit +* fix Bug #6559: pear should ignore safemode/open_basedir +* fix Bug #6576: PFM2 run in trouble with sessions +* fix Bug #6579: PFM2 changelog and license with uri +* fix Bug #6673: pear install --offline --packagingroot=/blah does not work +* fix Bug #6674: --packagingroot always uses channel pear.php.net configuration +* fix Bug #6675: postinstallscript validation fails +* fix Bug #6690: channel with / will not allow upgrade +* fix Bug #6692: Optional feature install message needs channel name +* fix Bug #6716: "pear install -r" errors after install when + attempting "pear list <pkgname>" +* fix Bug #6735: PEAR_PackageFile::fromTgzFile doesn't work with package.xml + not in root dir + </notes> + </release> + <release> + <version>1.4.8</version> + <date>2006-03-05</date> + <license>PHP License</license> + <state>stable</state> + <notes>CRITICAL BUGFIX RELEASE + +Channels with "-" in their name were suddenly invalid, and +caused crashes in many places due to improper error handling +* fix Bug #6960: channels are not allowed to have "-" in their name +* fix critical Bug #6969: PEAR list-upgrades crashes +* fix Bug #6991: Class 'PEAR_PackageFile_v1' not found in Registry.php at line 1657 +* fix Bug #7008: PEAR_Frontend::setFrontendObject doesn't set the object +* fix Bug #7015: install a package.tgz with unknown channel, fatal error in PEAR/Registry.php +* fix Bug #7020: tests/PEAR_Registry/api1_1/test_getChannelValidator.phpt crashes PEAR + </notes> + </release> + <release> + <version>1.4.9</version> + <date>2006-03-29</date> + <license>PHP License</license> + <state>stable</state> + <notes>CRITICAL BUGFIX RELEASE +users upgrading from PEAR 1.3.x cannot upgrade to 1.4.8 +users who use --packagingroot may find that installation fails +* fix Bug #7093: if pear channel does not exist, it cannot be retrieved +* fix Bug #7165: warnings in pear +* fix Bug #7075: PEAR_PackageFile_v2 :: setLogger failed on autodetection + </notes> + </release> + <release> + <version>1.4.10</version> + <date>2006-07-18</date> + <license>PHP License</license> + <state>beta</state> + <notes>bugfix release +* fix Bug #7579: cannot convert package 1.0 to 2.0 with PFM 1.6.0 +* fix Bug #7640: Check invalid date format +* fix Bug #7726: <uri> dependency is broken +* fix Bug #7830: Warning in package-dependencies command when a dir is used +* fix Bug #7842: package-dependencies wrong type display with package 1.0 +* fix Bug #8230: pear help channel-discover shows wrong text +* fix many open_basedir issues +* fix an issue in the better state detection +* fix typo in pickle command that would allow pickling of non-PECL package.xml +* implement Request #7090: PEAR_Downloader mustn't contact pear server + when installing local package file +* implement Request #7844: download_dir and temp_dir configuration option +* check pearinstaller dependency prior to validating package.xml 2.0 + </notes> + </release> + </changelog> +</package> + /** * PEAR, the PHP Extension and Application Repository * @@ -53419,7 +54245,7 @@ class PEAR_ChannelFile_Parser extends PEAR_XMLParser * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Command.php,v 1.36 2006/01/06 04:47:36 cellog Exp $ + * @version CVS: $Id: Command.php,v 1.36.2.1 2006/06/16 13:01:59 pajoye Exp $ * @link http://pear.php.net/package/PEAR * @since File available since Release 0.1 */ @@ -53634,6 +54460,11 @@ class PEAR_Command if ($dir === null) { $dir = dirname(__FILE__) . '/Command'; } + + if (!@is_dir($dir)) { + return PEAR::raiseError("registerCommands: opendir($dir) '$dir' does not exist or is not a directory"); + } + $dp = @opendir($dir); if (empty($dp)) { return PEAR::raiseError("registerCommands: opendir($dir) failed"); @@ -53826,7 +54657,7 @@ class PEAR_Command * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Common.php,v 1.32 2006/03/02 16:39:14 pajoye Exp $ + * @version CVS: $Id: Common.php,v 1.32.2.1 2006/06/08 22:27:11 pajoye Exp $ * @link http://pear.php.net/package/PEAR * @since File available since Release 0.1 */ @@ -53884,7 +54715,7 @@ class PEAR_Command_Common extends PEAR var $_deps_type_trans = array( 'pkg' => 'package', - 'extension' => 'extension', + 'ext' => 'extension', 'php' => 'PHP', 'prog' => 'external program', 'ldlib' => 'external library for linking', @@ -56259,7 +57090,7 @@ require_once 'phar://install-pear-nozlib.phar/PEAR/PackageFile.php'; * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Config.php,v 1.124 2006/03/02 18:14:12 cellog Exp $ + * @version CVS: $Id: Config.php,v 1.124.2.3 2006/07/15 00:38:27 pajoye Exp $ * @link http://pear.php.net/package/PEAR * @since File available since Release 0.1 */ @@ -56381,6 +57212,15 @@ if (getenv('PHP_PEAR_TEST_DIR')) { $PEAR_INSTALL_DIR.DIRECTORY_SEPARATOR.'tests'); } +// Default for temp_dir +if (getenv('PHP_PEAR_TEMP_DIR')) { + define('PEAR_CONFIG_DEFAULT_TEMP_DIR', getenv('PHP_PEAR_TEMP_DIR')); +} else { + define('PEAR_CONFIG_DEFAULT_TEMP_DIR', + System::tmpdir() . DIRECTORY_SEPARATOR . 'pear' . + DIRECTORY_SEPARATOR . 'temp'); +} + // Default for cache_dir if (getenv('PHP_PEAR_CACHE_DIR')) { define('PEAR_CONFIG_DEFAULT_CACHE_DIR', getenv('PHP_PEAR_CACHE_DIR')); @@ -56390,6 +57230,15 @@ if (getenv('PHP_PEAR_CACHE_DIR')) { DIRECTORY_SEPARATOR . 'cache'); } +// Default for download_dir +if (getenv('PHP_PEAR_DOWNLOAD_DIR')) { + define('PEAR_CONFIG_DEFAULT_DOWNLOAD_DIR', getenv('PHP_PEAR_DOWNLOAD_DIR')); +} else { + define('PEAR_CONFIG_DEFAULT_DOWNLOAD_DIR', + System::tmpdir() . DIRECTORY_SEPARATOR . 'pear' . + DIRECTORY_SEPARATOR . 'download'); +} + // Default for php_bin if (getenv('PHP_PEAR_PHP_BIN')) { define('PEAR_CONFIG_DEFAULT_PHP_BIN', getenv('PHP_PEAR_PHP_BIN')); @@ -56655,6 +57504,20 @@ class PEAR_Config extends PEAR 'prompt' => 'PEAR Installer cache directory', 'group' => 'File Locations (Advanced)', ), + 'temp_dir' => array( + 'type' => 'directory', + 'default' => PEAR_CONFIG_DEFAULT_TEMP_DIR, + 'doc' => 'directory which is used for all temp files', + 'prompt' => 'PEAR Installer temp directory', + 'group' => 'File Locations (Advanced)', + ), + 'download_dir' => array( + 'type' => 'directory', + 'default' => PEAR_CONFIG_DEFAULT_CACHE_DIR, + 'doc' => 'directory which is used for all downloaded files', + 'prompt' => 'PEAR Installer download directory', + 'group' => 'File Locations (Advanced)', + ), 'php_bin' => array( 'type' => 'file', 'default' => PEAR_CONFIG_DEFAULT_PHP_BIN, @@ -58346,7 +59209,7 @@ require_once 'phar://install-pear-nozlib.phar/PEAR/Validate.php'; * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -58834,7 +59697,7 @@ class PEAR_Dependency2 */ function getPEARVersion() { - return '1.4.9'; + return '1.4.11'; } function validatePearinstallerDependency($dep) @@ -59526,7 +60389,7 @@ class PEAR_Dependency2 * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: DependencyDB.php,v 1.30 2006/01/06 04:47:36 cellog Exp $ + * @version CVS: $Id: DependencyDB.php,v 1.30.2.1 2006/05/25 22:00:05 cellog Exp $ * @link http://pear.php.net/package/PEAR * @since File available since Release 1.4.0a1 */ @@ -59800,16 +60663,36 @@ class PEAR_DependencyDB return false; } foreach ($this->_cache['dependencies'][$channel][$package] as $info) { + if (isset($info['dep']['uri'])) { + if (is_object($child)) { + if ($info['dep']['uri'] == $child->getURI()) { + return true; + } + } elseif (isset($child['uri'])) { + if ($info['dep']['uri'] == $child['uri']) { + return true; + } + } + return false; + } if (strtolower($info['dep']['channel']) == strtolower($depchannel) && strtolower($info['dep']['name']) == strtolower($deppackage)) { return true; } } foreach ($this->_cache['dependencies'][$channel][$package] as $info) { - if ($this->_dependsOn(array( - 'channel' => $info['dep']['channel'], - 'package' => $info['dep']['name']), $child, $checked)) { - return true; + if (isset($info['dep']['uri'])) { + if ($this->_dependsOn(array( + 'uri' => $info['dep']['uri'], + 'package' => $info['dep']['name']), $child, $checked)) { + return true; + } + } else { + if ($this->_dependsOn(array( + 'channel' => $info['dep']['channel'], + 'package' => $info['dep']['name']), $child, $checked)) { + return true; + } } } return false; @@ -60182,7 +61065,7 @@ class PEAR_DependencyDB * @author Martin Jansen <mj@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Downloader.php,v 1.99 2006/03/02 18:14:13 cellog Exp $ + * @version CVS: $Id: Downloader.php,v 1.99.2.2 2006/06/16 12:35:12 pajoye Exp $ * @link http://pear.php.net/package/PEAR * @since File available since Release 1.3.0 */ @@ -60296,7 +61179,7 @@ class PEAR_Downloader extends PEAR_Common * @access private */ var $_errorStack = array(); - + /** * @var boolean * @access private @@ -60457,29 +61340,37 @@ class PEAR_Downloader extends PEAR_Common $this->pushError('Package "' . $param . '" is not valid', PEAR_INSTALLER_SKIPPED); } else { - if ($params[$i] && !isset($channelschecked[$params[$i]->getChannel()]) && - !isset($this->_options['offline'])) { - $channelschecked[$params[$i]->getChannel()] = true; - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - if (!class_exists('System')) { - require_once 'phar://install-pear-nozlib.phar/System.php'; - } - $curchannel = &$this->_registry->getChannel($params[$i]->getChannel()); - if (PEAR::isError($curchannel)) { - PEAR::staticPopErrorHandling(); - return $this->raiseError($curchannel); + do { + if ($params[$i] && $params[$i]->getType() == 'local') { + // bug #7090 + // skip channel.xml check for local packages + break; } - $a = $this->downloadHttp('http://' . $params[$i]->getChannel() . - '/channel.xml', $this->ui, - System::mktemp(array('-d')), null, $curchannel->lastModified()); - PEAR::staticPopErrorHandling(); - if (PEAR::isError($a) || !$a) { - continue; + if ($params[$i] && !isset($channelschecked[$params[$i]->getChannel()]) && + !isset($this->_options['offline'])) { + $channelschecked[$params[$i]->getChannel()] = true; + PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); + if (!class_exists('System')) { + require_once 'phar://install-pear-nozlib.phar/System.php'; + } + $curchannel = &$this->_registry->getChannel($params[$i]->getChannel()); + if (PEAR::isError($curchannel)) { + PEAR::staticPopErrorHandling(); + return $this->raiseError($curchannel); + } + $a = $this->downloadHttp('http://' . $params[$i]->getChannel() . + '/channel.xml', $this->ui, + System::mktemp(array('-t' . $this->getDownloadDir())), null, $curchannel->lastModified()); + + PEAR::staticPopErrorHandling(); + if (PEAR::isError($a) || !$a) { + break; + } + $this->log(0, 'WARNING: channel "' . $params[$i]->getChannel() . '" has ' . + 'updated its protocols, use "channel-update ' . $params[$i]->getChannel() . + '" to update'); } - $this->log(0, 'WARNING: channel "' . $params[$i]->getChannel() . '" has ' . - 'updated its protocols, use "channel-update ' . $params[$i]->getChannel() . - '" to update'); - } + } while (false); if ($params[$i] && !isset($this->_options['downloadonly'])) { if (isset($this->_options['packagingroot'])) { $checkdir = $this->_prependPath( @@ -61007,33 +61898,62 @@ class PEAR_Downloader extends PEAR_Common { $xsdversion = isset($dep['rel']) ? '1.0' : '2.0'; $curchannel = $this->config->get('default_channel'); - if (isset($dep['channel'])) { - $remotechannel = $dep['channel']; + if (isset($dep['uri'])) { + $xsdversion = '2.0'; + $chan = &$this->_registry->getChannel('__uri'); + if (PEAR::isError($chan)) { + return $chan; + } + $version = $this->_registry->packageInfo($dep['name'], 'version', '__uri'); + $this->configSet('default_channel', '__uri'); } else { - $remotechannel = 'pear.php.net'; - } - if (!$this->_registry->channelExists($remotechannel)) { - do { - if ($this->config->get('auto_discover')) { - if ($this->discover($remotechannel)) { - break; + if (isset($dep['channel'])) { + $remotechannel = $dep['channel']; + } else { + $remotechannel = 'pear.php.net'; + } + if (!$this->_registry->channelExists($remotechannel)) { + do { + if ($this->config->get('auto_discover')) { + if ($this->discover($remotechannel)) { + break; + } } - } - return PEAR::raiseError('Unknown remote channel: ' . $remotechannel); - } while (false); + return PEAR::raiseError('Unknown remote channel: ' . $remotechannel); + } while (false); + } + $chan = &$this->_registry->getChannel($remotechannel); + if (PEAR::isError($chan)) { + return $chan; + } + $version = $this->_registry->packageInfo($dep['name'], 'version', + $remotechannel); + $this->configSet('default_channel', $remotechannel); } - $this->configSet('default_channel', $remotechannel); $state = isset($parr['state']) ? $parr['state'] : $this->config->get('preferred_state'); if (isset($parr['state']) && isset($parr['version'])) { unset($parr['state']); } - $chan = &$this->_registry->getChannel($remotechannel); - if (PEAR::isError($chan)) { - return $chan; - } - $version = $this->_registry->packageInfo($dep['name'], 'version', - $remotechannel); - if ($chan->supportsREST($this->config->get('preferred_mirror')) && + if (isset($dep['uri'])) { + $info = &$this->newDownloaderPackage($this); + PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); + $err = $info->initialize($dep); + PEAR::staticPopErrorHandling(); + if (!$err) { + // skip parameters that were missed by preferred_state + return PEAR::raiseError('Cannot initialize dependency'); + } + if (PEAR::isError($err)) { + if (!isset($this->_options['soft'])) { + $this->log(0, $err->getMessage()); + } + if (is_object($info)) { + $param = $info->getChannel() . '/' . $info->getPackage(); + } + return PEAR::raiseError('Package "' . $param . '" is not valid'); + } + return $info; + } elseif ($chan->supportsREST($this->config->get('preferred_mirror')) && $base = $chan->getBaseURL('REST1.0', $this->config->get('preferred_mirror'))) { $rest = &$this->config->getREST('1.0', $this->_options); $url = $rest->getDepDownloadURL($base, $xsdversion, $dep, $parr, @@ -61090,7 +62010,7 @@ class PEAR_Downloader extends PEAR_Common } else { $url = $this->_remote->call('package.getDepDownloadURL', $xsdversion, $dep, $parr, $state); } - if ($parr['channel'] != $curchannel) { + if ($this->config->get('default_channel') != $curchannel) { $this->configSet('default_channel', $curchannel); } if (!is_array($url)) { @@ -61248,7 +62168,7 @@ class PEAR_Downloader extends PEAR_Common */ function sortPkgDeps(&$packages, $uninstall = false) { - $uninstall ? + $uninstall ? $this->sortPackagesForUninstall($packages) : $this->sortPackagesForInstall($packages); } @@ -61491,7 +62411,7 @@ class PEAR_Downloader extends PEAR_Common $config = &PEAR_Config::singleton(); } $proxy_host = $proxy_port = $proxy_user = $proxy_pass = ''; - if ($config->get('http_proxy')&& + if ($config->get('http_proxy')&& $proxy = parse_url($config->get('http_proxy'))) { $proxy_host = @$proxy['host']; if (isset($proxy['scheme']) && $proxy['scheme'] == 'https') { @@ -61689,7 +62609,7 @@ class PEAR_Downloader extends PEAR_Common * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Package.php,v 1.91 2006/01/23 19:05:52 cellog Exp $ + * @version CVS: $Id: Package.php,v 1.91.2.1 2006/05/25 22:00:05 cellog Exp $ * @link http://pear.php.net/package/PEAR * @since File available since Release 1.4.0a1 */ @@ -61723,7 +62643,7 @@ define('PEAR_DOWNLOADER_PACKAGE_STATE', -1003); * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -62684,8 +63604,10 @@ class PEAR_Downloader_Package } } else { if (isset($param['uri'])) { - $param['channel'] = '__uri'; - $param['package'] = $param['dep']['name']; + if ($this->getChannel() != '__uri') { + return false; + } + return $param['uri'] == $this->getURI(); } $package = isset($param['package']) ? $param['package'] : $param['info']->getPackage(); @@ -67550,7 +68472,7 @@ class PEAR_Installer_Role_Test extends PEAR_Installer_Role_Common {} * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: PackageFile.php,v 1.33 2006/02/09 22:39:32 cellog Exp $ + * @version CVS: $Id: PackageFile.php,v 1.33.2.1 2006/06/08 00:04:13 pajoye Exp $ * @link http://pear.php.net/package/PEAR * @since File available since Release 1.4.0a1 */ @@ -67576,7 +68498,7 @@ define('PEAR_PACKAGEFILE_ERROR_INVALID_PACKAGEVERSION', 2); * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -67939,6 +68861,11 @@ class PEAR_PackageFile */ function &fromAnyFile($info, $state) { + if (is_dir($info)) { + $info = PEAR::raiseError("'$info' is a directory, a file is expected"); + return $info; + } + $fp = false; if (is_string($info) && strlen($info) < 255 && (file_exists($info) || ($fp = @fopen($info, 'r')))) { @@ -67968,7 +68895,8 @@ class PEAR_PackageFile } } -?><?php +?> +<?php /** * package.xml generation class, package.xml version 1.0 * @@ -67985,7 +68913,7 @@ class PEAR_PackageFile * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: v1.php,v 1.70 2006/01/06 04:47:37 cellog Exp $ + * @version CVS: $Id: v1.php,v 1.70.2.1 2006/05/10 02:55:06 cellog Exp $ * @link http://pear.php.net/package/PEAR * @since File available since Release 1.4.0a1 */ @@ -68005,7 +68933,7 @@ require_once 'phar://install-pear-nozlib.phar/PEAR/PackageFile/v2.php'; * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -68022,7 +68950,7 @@ class PEAR_PackageFile_Generator_v1 function getPackagerVersion() { - return '1.4.9'; + return '1.4.11'; } /** @@ -68176,7 +69104,7 @@ class PEAR_PackageFile_Generator_v1 ); $ret = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n"; $ret .= "<!DOCTYPE package SYSTEM \"http://pear.php.net/dtd/package-1.0\">\n"; - $ret .= "<package version=\"1.0\" packagerversion=\"1.4.9\">\n" . + $ret .= "<package version=\"1.0\" packagerversion=\"1.4.11\">\n" . " <name>$pkginfo[package]</name>"; if (isset($pkginfo['extends'])) { $ret .= "\n<extends>$pkginfo[extends]</extends>"; @@ -68650,7 +69578,9 @@ class PEAR_PackageFile_Generator_v1 } $ret = new $class; $ret->setConfig($this->_packagefile->_config); - $ret->setLogger($this->_packagefile->_logger); + if (isset($this->_packagefile->_logger) && is_object($this->_packagefile->_logger)) { + $ret->setLogger($this->_packagefile->_logger); + } $ret->fromArray($arr); return $ret; } @@ -69271,7 +70201,7 @@ require_once 'phar://install-pear-nozlib.phar/System.php'; * @author Stephan Schmidt (original XML_Serializer code) * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -69350,7 +70280,7 @@ http://pear.php.net/dtd/package-2.0.xsd', */ function getPackagerVersion() { - return '1.4.9'; + return '1.4.11'; } /** @@ -69594,7 +70524,7 @@ http://pear.php.net/dtd/package-2.0.xsd', } $this->options['beautifyFilelist'] = true; } - $arr['attribs']['packagerversion'] = '1.4.9'; + $arr['attribs']['packagerversion'] = '1.4.11'; if ($this->serialize($arr, $options)) { return $this->_serializedData . "\n"; } @@ -74979,7 +75909,7 @@ require_once 'phar://install-pear-nozlib.phar/PEAR/PackageFile/v2.php'; * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.4.9 + * @version Release: 1.4.11 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a8 */ @@ -76523,7 +77453,7 @@ class PEAR_PackageFile_v2_rw extends PEAR_PackageFile_v2 // | | // +----------------------------------------------------------------------+ // -// $Id: Validator.php,v 1.86 2006/03/02 18:14:13 cellog Exp $ +// $Id: Validator.php,v 1.86.2.1 2006/05/10 02:55:06 cellog Exp $ /** * Private validation class used by PEAR_PackageFile_v2 - do not use directly, its * sole purpose is to split up the PEAR/PackageFile/v2.php file to make it smaller @@ -76609,6 +77539,15 @@ class PEAR_PackageFile_v2_Validator '*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('1.4.11', + $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']); @@ -77776,6 +78715,14 @@ class PEAR_PackageFile_v2_Validator 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 1.4.11'); + } + function _invalidTagOrder($oktags, $actual, $root) { $this->_stack->push(__FUNCTION__, 'error', @@ -83445,7 +84392,7 @@ class PEAR_Task_Windowseol_rw extends PEAR_Task_Windowseol * @author Greg Beaver <cellog@php.net> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Validate.php,v 1.46 2006/01/23 17:16:35 cellog Exp $ + * @version CVS: $Id: Validate.php,v 1.46.2.3 2006/07/17 17:49:37 pajoye Exp $ * @link http://pear.php.net/package/PEAR * @since File available since Release 1.4.0a1 */ @@ -83875,17 +84822,16 @@ class PEAR_Validate { if ($this->_state == PEAR_VALIDATE_NORMAL || $this->_state == PEAR_VALIDATE_PACKAGING) { - if (!preg_match('/\d\d\d\d\-\d\d\-\d\d/', - $this->_packagexml->getDate())) { - $this->_addFailure('date', 'invalid release date "' . - $this->_packagexml->getDate() . '"'); - return false; - } - if (strtotime($this->_packagexml->getDate()) == -1) { + if (!preg_match('/(\d\d\d\d)\-(\d\d)\-(\d\d)/', + $this->_packagexml->getDate(), $res) || + count($res) < 4 + || !checkdate($res[2], $res[3], $res[1]) + ) { $this->_addFailure('date', 'invalid release date "' . $this->_packagexml->getDate() . '"'); return false; } + if ($this->_state == PEAR_VALIDATE_PACKAGING && $this->_packagexml->getDate() != date('Y-m-d')) { $this->_addWarning('date', 'Release Date "' . @@ -84058,7 +85004,8 @@ class PEAR_Validate return true; } } -?><?php +?> +<?php /** * Channel Validator for the pecl.php.net channel * @@ -84396,7 +85343,7 @@ class PEAR_XMLParser * @author Tomas V.V.Cox <cox@idecnet.com> * @copyright 1997-2006 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: System.php,v 1.53 2006/01/06 04:47:36 cellog Exp $ + * @version CVS: $Id: System.php,v 1.53.2.1 2006/06/16 13:55:16 pajoye Exp $ * @link http://pear.php.net/package/PEAR * @since File available since Release 0.1 */ @@ -84872,7 +85819,7 @@ class System foreach ($exe_suffixes as $suff) { foreach ($path_elements as $dir) { $file = $dir . DIRECTORY_SEPARATOR . $program . $suff; - if ($pear_is_executable($file)) { + if (@$pear_is_executable($file)) { return $file; } } |