Bug 246588

Summary: php-pear 1.6.x update
Product: [Fedora] Fedora Reporter: Joe Orton <jorton>
Component: php-pearAssignee: Joe Orton <jorton>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: low Docs Contact:
Priority: low    
Version: rawhideCC: chris.stone, fedora, rpm
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2007-07-26 11:55:49 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Joe Orton 2007-07-03 08:59:02 UTC
Description of problem:
Update to 1.6.1 -- currently waiting on upstream providing a new .phar.

Comment 1 Remi Collet 2007-07-03 10:27:50 UTC
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

Comment 2 Joe Orton 2007-07-03 10:38:21 UTC
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?

Comment 3 Remi Collet 2007-07-03 16:31:45 UTC
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');


Comment 4 Joe Orton 2007-07-03 20:12:07 UTC
OK, I guess we can just patch that out then.  Can you chase this upstream, Remi?

Comment 5 Remi Collet 2007-07-04 04:17:16 UTC
Bug reported upstream :
http://pear.php.net/bugs/bug.php?id=11517

Comment 6 Remi Collet 2007-07-04 04:26:09 UTC
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.

Comment 7 Joe Orton 2007-07-26 11:55:49 UTC
Fixed in devel branch by Remi.