Description of problem: Update to 1.6.1 -- currently waiting on upstream providing a new .phar.
Some comments (i use latest pear for a while). 1/ install-pear-nozlib.phar only available for 1.5.4 (i'm used to create my own for my need) 2/ It seems there is a problem when packaging extensions using PEAR 1.6.1 : rpmbuild fails with an error : download directory "/var/cache/php-pear" is not writeable. Change download_dir config variable to a writeable dir So we need to investigate this before requiring devel update. For my latest spec (php-pear-SOAP), i used : %{__pear} -d download_dir=/tmp install --nodeps --packagingroot ... This is a problem with new "pear" command which cause error when building RPM of PEAR extension. This problem is probably a pear regression (already encountered in an older release, don't remenber witch one, i must search in my old specs). We could investigate various solutions - change all pear extensions spec file :( - change permission on download_dir : world writable :( - remove download_dir from pear.conf (it will then use /tmp, to be verified) - file an upstream bug, as it seems to be a regression, and the download_dir not used during "rpmbuild" (offline install) Regards
IIRC the way PEAR uses temp files in the download_dir is not safe against symlink attacks, so it can't be world-writable nor be /tmp by default (not that those would those be otherwise desirable). Is pear actually trying to *use* the download_dir is during the rpmbuild, or is it just checking whether it's writable then failing?
Pear don't use the download_dir during "rpmbuild" but only check for it (even with --offline option). This error is not present in 1.6.0 So i think it's a regression bug in 1.6.1 Full message is : ----- + /usr/bin/pear install --offline --nodeps --packagingroot /var/tmp/php-pear-Log-1.9.11-1.fc8-root-extras Log.xml download directory "/var/cache/php-pear" is not writeable. Change download_dir config variable to a writeable dir Cannot download non-local package "Log.xml" Package "Log.xml" is not valid install failed ----- Error occur in function getDownloadDir (/usr/share/pear/PEAR/Downloader.php) --- PEAR-1.6.0/Downloader.php 2007-07-03 18:00:14.000000000 +0200 +++ PEAR-1.6.1/Downloader.php 2007-07-03 18:00:51.000000000 +0200 @@ -689,7 +689,8 @@ $this->log(3, '+ tmp dir created at ' . $downloaddir); } if (!is_writable($downloaddir)) { - if (PEAR::isError(System::mkdir(array('-p', $downloaddir)))) { + if (PEAR::isError(System::mkdir(array('-p', $downloaddir))) || + !is_writable($downloaddir)) { return PEAR::raiseError('download directory "' . $downloaddir . '" is not writeable. Change download_dir config variable to ' . 'a writeable dir');
OK, I guess we can just patch that out then. Can you chase this upstream, Remi?
Bug reported upstream : http://pear.php.net/bugs/bug.php?id=11517
Another Bug of interest for this release : http://pear.php.net/bugs/bug.php?id=11420 It seems we could register PECL extensions (as PEAR extensions). This will requires a "PHP Guidelines" update. I've post on fedora-php-devel ML about this and i'm waiting for feedback. Regards.
Fixed in devel branch by Remi.