PHP zip extension broken with libzip

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

PHP zip extension broken with libzip

Joni Eskelinen
This has been a long standing bug, but i just recently sought out the cause.

The following snippets fails in currently packaged php:
$zip = new ZipArchive;
$zip->open("", ZipArchive::CREATE | ZipArchive::OVERWRITE);
$zip->addFromString("foo.txt", "foo");

With a warning:
Warning: ZipArchive::close(): Renaming temporary file failed: Illegal
seek in /tmp/zip.php on line 5

It appears that the problem lies in libzip. If the extension is built
without `--with-libzip=/usr`, the error doesn't emerge. When libzip is
not available, extension is built with a bundled zip implementation.

To test, navigating into `ext/zip` in php source.

Test with bundled library:
phpize && LDFLAGS='-lpcre' ./configure && make test

Test with libzip:
phpize && LDFLAGS='-lpcre' ./configure --with-libzip=/usr && make test

Latter produces 19 failed tests.

Problem reports:
Unsubscribe info: