From:
Operating system: FreeBSD
PHP version: 5.3.2
Package: PHAR related
Bug Type: Bug
Bug description:Unable to decompress files in a compressed phar.
Description:
------------
Use Phar::decompressFiles() to decompress files in a phar where files was
compressed with Phar::compressFiles(Phar::GZ) throw an exception.
Configure Command => './configure' '--with-layout=GNU'
'--with-config-file-scan-dir=/usr/local/etc/php' '--with-mysql=mysqlnd'
'--with-mysqli=mysqlnd' '--enable-libxml' '--with-libxml-dir=/usr/local'
'--with-pcre-regex=/usr/local' '--program-prefix=' '--disable-cgi'
'--with-apxs2=/usr/local/sbin/apxs' '--with-regex=php'
'--with-zend-vm=CALL' '--disable-ipv6' '--prefix=/usr/local'
'--mandir=/usr/local/man' '--infodir=/usr/local/info/'
'--build=i386-portbld-freebsd8.0'
Phar API version : 1.1.1
df -h output : /dev/ad0s1e 66G 7.6G 53G 13% /usr
Test script:
---------------
<?php
mkdir(__DIR__ . '/files');
for ($file = 1; $file < 50; $file++)
{
file_put_contents(__DIR__ . '/files/' . $file . '.php', '<?php echo \''
.
str_repeat($file, 5000) . '\'; ?>');
}
$phar = new \Phar(__DIR__ . '/compressed.phar');
$phar->buildFromDirectory(__DIR__ . '/files', '/\.php$/');
$phar->setSignatureAlgorithm(\Phar::SHA1);
$phar->compressFiles(\Phar::GZ);
for ($file = 1; $file < 50; $file++)
{
unlink(__DIR__ . '/files/' . $file . '.php');
}
rmdir(__DIR__ . '/files');
$phar = new \Phar(__DIR__ . '/compressed.phar');
$phar->decompressFiles();
foreach ($phar as $file)
{
var_dump(file_get_contents($file->getFilename()));
}
?>
Expected result:
----------------
No output and phar was decompressed.
Actual result:
--------------
f...@witchblade:~/tmp/phar
362> php -d phar.readonly=0 generator.php
PHP Fatal error: Uncaught exception 'BadMethodCallException' with message
'unable to write contents of file "1.php" to new phar
"/usr/home/fch/tmp/phar/compressed.phar"' in
/usr/home/fch/tmp/phar/generator.php:25
Stack trace:
#0 /usr/home/fch/tmp/phar/generator.php(25): Phar->decompressFiles()
#1 {main}
thrown in /usr/home/fch/tmp/phar/generator.php on line 25
--
Edit bug report at http://bugs.php.net/bug.php?id=52013&edit=1
--
Try a snapshot (PHP 5.2):
http://bugs.php.net/fix.php?id=52013&r=trysnapshot52
Try a snapshot (PHP 5.3):
http://bugs.php.net/fix.php?id=52013&r=trysnapshot53
Try a snapshot (trunk):
http://bugs.php.net/fix.php?id=52013&r=trysnapshottrunk
Fixed in SVN:
http://bugs.php.net/fix.php?id=52013&r=fixed
Fixed in SVN and need be documented:
http://bugs.php.net/fix.php?id=52013&r=needdocs
Fixed in release:
http://bugs.php.net/fix.php?id=52013&r=alreadyfixed
Need backtrace:
http://bugs.php.net/fix.php?id=52013&r=needtrace
Need Reproduce Script:
http://bugs.php.net/fix.php?id=52013&r=needscript
Try newer version:
http://bugs.php.net/fix.php?id=52013&r=oldversion
Not developer issue:
http://bugs.php.net/fix.php?id=52013&r=support
Expected behavior:
http://bugs.php.net/fix.php?id=52013&r=notwrong
Not enough info:
http://bugs.php.net/fix.php?id=52013&r=notenoughinfo
Submitted twice:
http://bugs.php.net/fix.php?id=52013&r=submittedtwice
register_globals:
http://bugs.php.net/fix.php?id=52013&r=globals
PHP 4 support discontinued: http://bugs.php.net/fix.php?id=52013&r=php4
Daylight Savings: http://bugs.php.net/fix.php?id=52013&r=dst
IIS Stability:
http://bugs.php.net/fix.php?id=52013&r=isapi
Install GNU Sed:
http://bugs.php.net/fix.php?id=52013&r=gnused
Floating point limitations:
http://bugs.php.net/fix.php?id=52013&r=float
No Zend Extensions:
http://bugs.php.net/fix.php?id=52013&r=nozend
MySQL Configuration Error:
http://bugs.php.net/fix.php?id=52013&r=mysqlcfg