cellog Sat May 17 20:07:38 2008 UTC
Modified files:
/php-src/ext/phar config.m4 config.w32 phar.c phar_internal.h
phar_object.c zip.c
Log:
enable by default statically instead of shared
this is done by removing zlib/bz2 explicit dependencies because they are
unnecessary
we only ever use the stream filter, and the check for existence has
been moved to runtime where it is after startup
http://cvs.php.net/viewvc.cgi/php-src/ext/phar/config.m4?r1=1.27&r2=1.28&diff_format=u
Index: php-src/ext/phar/config.m4
diff -u php-src/ext/phar/config.m4:1.27 php-src/ext/phar/config.m4:1.28
--- php-src/ext/phar/config.m4:1.27 Mon Jan 28 08:52:06 2008
+++ php-src/ext/phar/config.m4 Sat May 17 20:07:38 2008
@@ -1,4 +1,4 @@
-dnl $Id: config.m4,v 1.27 2008/01/28 08:52:06 cellog Exp $
+dnl $Id: config.m4,v 1.28 2008/05/17 20:07:38 cellog Exp $
dnl config.m4 for extension phar
PHP_ARG_ENABLE(phar, for phar archive support,
@@ -8,8 +8,6 @@
PHP_NEW_EXTENSION(phar, util.c tar.c zip.c stream.c func_interceptors.c
dirstream.c phar.c phar_object.c phar_path_check.c, $ext_shared)
PHP_ADD_BUILD_DIR($ext_builddir/lib, 1)
PHP_SUBST(PHAR_SHARED_LIBADD)
- PHP_ADD_EXTENSION_DEP(phar, zlib, true)
- PHP_ADD_EXTENSION_DEP(phar, bz2, true)
PHP_ADD_EXTENSION_DEP(phar, spl, true)
PHP_ADD_MAKEFILE_FRAGMENT
fi
http://cvs.php.net/viewvc.cgi/php-src/ext/phar/config.w32?r1=1.27&r2=1.28&diff_format=u
Index: php-src/ext/phar/config.w32
diff -u php-src/ext/phar/config.w32:1.27 php-src/ext/phar/config.w32:1.28
--- php-src/ext/phar/config.w32:1.27 Mon Jan 28 14:39:16 2008
+++ php-src/ext/phar/config.w32 Sat May 17 20:07:38 2008
@@ -1,4 +1,4 @@
-// $Id: config.w32,v 1.27 2008/01/28 14:39:16 sfox Exp $
+// $Id: config.w32,v 1.28 2008/05/17 20:07:38 cellog Exp $
// vim:ft=javascript
ARG_ENABLE("phar", "enable phar support", "no");
@@ -8,7 +8,5 @@
if (PHP_PHAR_SHARED) {
ADD_FLAG("CFLAGS_PHAR", "/D COMPILE_DL_PHAR ");
}
- ADD_EXTENSION_DEP('phar', 'bz2', true);
ADD_EXTENSION_DEP('phar', 'spl', true);
- ADD_EXTENSION_DEP('phar', 'zlib', true);
}
http://cvs.php.net/viewvc.cgi/php-src/ext/phar/phar.c?r1=1.373&r2=1.374&diff_format=u
Index: php-src/ext/phar/phar.c
diff -u php-src/ext/phar/phar.c:1.373 php-src/ext/phar/phar.c:1.374
--- php-src/ext/phar/phar.c:1.373 Wed May 14 21:27:31 2008
+++ php-src/ext/phar/phar.c Sat May 17 20:07:38 2008
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: phar.c,v 1.373 2008/05/14 21:27:31 sfox Exp $ */
+/* $Id: phar.c,v 1.374 2008/05/17 20:07:38 cellog Exp $ */
#define PHAR_MAIN 1
#include "phar_internal.h"
@@ -25,8 +25,6 @@
#include "func_interceptors.h"
ZEND_DECLARE_MODULE_GLOBALS(phar)
-int phar_has_bz2;
-int phar_has_zlib;
#if PHP_VERSION_ID >= 50300
char *(*phar_save_resolve_path)(const char *filename, int filename_len
TSRMLS_DC);
#endif
@@ -886,7 +884,7 @@
offset += entry.compressed_filesize;
switch (entry.flags & PHAR_ENT_COMPRESSION_MASK) {
case PHAR_ENT_COMPRESSED_GZ:
- if (!phar_has_zlib) {
+ if (!PHAR_G(has_zlib)) {
if (entry.metadata) {
zval_ptr_dtor(&entry.metadata);
}
@@ -895,7 +893,7 @@
}
break;
case PHAR_ENT_COMPRESSED_BZ2:
- if (!phar_has_bz2) {
+ if (!PHAR_G(has_bz2)) {
if (entry.metadata) {
zval_ptr_dtor(&entry.metadata);
}
@@ -1307,7 +1305,7 @@
/* to properly decompress, we have to tell zlib
to look for a zlib or gzip header */
zval filterparams;
- if (!phar_has_zlib) {
+ if (!PHAR_G(has_zlib)) {
MAPPHAR_ALLOC_FAIL("unable to
decompress gzipped phar archive \"%s\" to temporary file, enable zlib extension
in php.ini")
}
array_init(&filterparams);
@@ -1358,7 +1356,7 @@
php_stream_filter *filter;
php_stream *temp;
- if (!phar_has_bz2) {
+ if (!PHAR_G(has_bz2)) {
MAPPHAR_ALLOC_FAIL("unable to
decompress bzipped phar archive \"%s\" to temporary file, enable bz2 extension
in php.ini")
}
/* entire file is bzip-compressed, uncompress
to temporary file */
@@ -2943,8 +2941,6 @@
ZEND_INIT_MODULE_GLOBALS(phar, php_phar_init_globals_module, NULL);
REGISTER_INI_ENTRIES();
- phar_has_bz2 = zend_hash_exists(&module_registry, "bz2", sizeof("bz2"));
- phar_has_zlib = zend_hash_exists(&module_registry, "zlib",
sizeof("zlib"));
phar_orig_compile_file = zend_compile_file;
zend_compile_file = phar_compile_file;
@@ -2981,6 +2977,8 @@
{
if (!PHAR_GLOBALS->request_init)
{
+ PHAR_G(has_bz2) = zend_hash_exists(&module_registry, "bz2",
sizeof("bz2"));
+ PHAR_G(has_zlib) = zend_hash_exists(&module_registry, "zlib",
sizeof("zlib"));
PHAR_GLOBALS->request_init = 1;
PHAR_GLOBALS->request_ends = 0;
PHAR_GLOBALS->request_done = 0;
@@ -3022,20 +3020,21 @@
PHP_MINFO_FUNCTION(phar) /* {{{ */
{
+ phar_request_initialize(TSRMLS_C);
php_info_print_table_start();
php_info_print_table_header(2, "Phar: PHP Archive support", "enabled");
php_info_print_table_row(2, "Phar EXT version", PHP_PHAR_VERSION);
php_info_print_table_row(2, "Phar API version", PHP_PHAR_API_VERSION);
- php_info_print_table_row(2, "CVS revision", "$Revision: 1.373 $");
+ php_info_print_table_row(2, "CVS revision", "$Revision: 1.374 $");
php_info_print_table_row(2, "Phar-based phar archives", "enabled");
php_info_print_table_row(2, "Tar-based phar archives", "enabled");
php_info_print_table_row(2, "ZIP-based phar archives", "enabled");
- if (phar_has_zlib) {
+ if (PHAR_G(has_zlib)) {
php_info_print_table_row(2, "gzip compression", "enabled");
} else {
php_info_print_table_row(2, "gzip compression", "disabled
(install ext/zlib)");
}
- if (phar_has_bz2) {
+ if (PHAR_G(has_bz2)) {
php_info_print_table_row(2, "bzip2 compression", "enabled");
} else {
php_info_print_table_row(2, "bzip2 compression", "disabled
(install pecl/bz2)");
@@ -3058,8 +3057,6 @@
*/
static zend_module_dep phar_deps[] = {
ZEND_MOD_OPTIONAL("apc")
- ZEND_MOD_OPTIONAL("zlib")
- ZEND_MOD_OPTIONAL("bz2")
#if HAVE_SPL
ZEND_MOD_REQUIRED("spl")
#endif
http://cvs.php.net/viewvc.cgi/php-src/ext/phar/phar_internal.h?r1=1.111&r2=1.112&diff_format=u
Index: php-src/ext/phar/phar_internal.h
diff -u php-src/ext/phar/phar_internal.h:1.111
php-src/ext/phar/phar_internal.h:1.112
--- php-src/ext/phar/phar_internal.h:1.111 Thu May 15 16:09:21 2008
+++ php-src/ext/phar/phar_internal.h Sat May 17 20:07:38 2008
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: phar_internal.h,v 1.111 2008/05/15 16:09:21 cellog Exp $ */
+/* $Id: phar_internal.h,v 1.112 2008/05/17 20:07:38 cellog Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -137,6 +137,8 @@
HashTable phar_alias_map;
HashTable phar_SERVER_mung_list;
int readonly;
+ int has_zlib;
+ int has_bz2;
zend_bool readonly_orig;
zend_bool require_hash_orig;
int request_init;
@@ -347,8 +349,6 @@
#endif
#ifndef PHAR_MAIN
-extern int phar_has_bz2;
-extern int phar_has_zlib;
# if PHP_VERSION_ID >= 50300
extern char *(*phar_save_resolve_path)(const char *filename, int filename_len
TSRMLS_DC);
# endif
http://cvs.php.net/viewvc.cgi/php-src/ext/phar/phar_object.c?r1=1.270&r2=1.271&diff_format=u
Index: php-src/ext/phar/phar_object.c
diff -u php-src/ext/phar/phar_object.c:1.270
php-src/ext/phar/phar_object.c:1.271
--- php-src/ext/phar/phar_object.c:1.270 Thu May 15 23:46:32 2008
+++ php-src/ext/phar/phar_object.c Sat May 17 20:07:38 2008
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: phar_object.c,v 1.270 2008/05/15 23:46:32 cellog Exp $ */
+/* $Id: phar_object.c,v 1.271 2008/05/17 20:07:38 cellog Exp $ */
#include "phar_internal.h"
#include "func_interceptors.h"
@@ -1012,23 +1012,24 @@
return;
}
+ phar_request_initialize(TSRMLS_C);
switch (method) {
case PHAR_ENT_COMPRESSED_GZ:
- if (phar_has_zlib) {
+ if (PHAR_G(has_zlib)) {
RETURN_TRUE;
} else {
RETURN_FALSE;
}
case PHAR_ENT_COMPRESSED_BZ2:
- if (phar_has_bz2) {
+ if (PHAR_G(has_bz2)) {
RETURN_TRUE;
} else {
RETURN_FALSE;
}
default:
- if (phar_has_zlib || phar_has_bz2) {
+ if (PHAR_G(has_zlib) || PHAR_G(has_bz2)) {
RETURN_TRUE;
} else {
RETURN_FALSE;
@@ -1227,10 +1228,11 @@
{
array_init(return_value);
- if (phar_has_zlib) {
+ phar_request_initialize(TSRMLS_C);
+ if (PHAR_G(has_zlib)) {
add_next_index_stringl(return_value, "GZ", 2, 1);
}
- if (phar_has_bz2) {
+ if (PHAR_G(has_bz2)) {
add_next_index_stringl(return_value, "BZIP2", 5, 1);
}
}
@@ -2108,7 +2110,7 @@
"Cannot compress entire archive with
gzip, zip archives do not support whole-archive compression");
return;
}
- if (!phar_has_zlib) {
+ if (!PHAR_G(has_zlib)) {
zend_throw_exception_ex(spl_ce_BadMethodCallException, 0 TSRMLS_CC,
"Cannot compress entire archive with
gzip, enable ext/zlib in php.ini");
return;
@@ -2122,7 +2124,7 @@
"Cannot compress entire archive with
bz2, zip archives do not support whole-archive compression");
return;
}
- if (!phar_has_bz2) {
+ if (!PHAR_G(has_bz2)) {
zend_throw_exception_ex(spl_ce_BadMethodCallException, 0 TSRMLS_CC,
"Cannot compress entire archive with
bz2, enable ext/bz2 in php.ini");
return;
@@ -2206,7 +2208,7 @@
"Cannot compress entire archive with
gzip, zip archives do not support whole-archive compression");
return;
}
- if (!phar_has_zlib) {
+ if (!PHAR_G(has_zlib)) {
zend_throw_exception_ex(spl_ce_BadMethodCallException, 0 TSRMLS_CC,
"Cannot compress entire archive with
gzip, enable ext/zlib in php.ini");
return;
@@ -2220,7 +2222,7 @@
"Cannot compress entire archive with
bz2, zip archives do not support whole-archive compression");
return;
}
- if (!phar_has_bz2) {
+ if (!PHAR_G(has_bz2)) {
zend_throw_exception_ex(spl_ce_BadMethodCallException, 0 TSRMLS_CC,
"Cannot compress entire archive with
bz2, enable ext/bz2 in php.ini");
return;
@@ -2746,12 +2748,12 @@
if (entry->is_deleted) {
return ZEND_HASH_APPLY_KEEP;
}
- if (!phar_has_bz2) {
+ if (!PHAR_G(has_bz2)) {
if (entry->flags & PHAR_ENT_COMPRESSED_BZ2) {
*(int *) argument = 0;
}
}
- if (!phar_has_zlib) {
+ if (!PHAR_G(has_zlib)) {
if (entry->flags & PHAR_ENT_COMPRESSED_GZ) {
*(int *) argument = 0;
}
@@ -2810,7 +2812,7 @@
flags = PHAR_FILE_COMPRESSED_NONE;
break;
case PHAR_ENT_COMPRESSED_GZ:
- if (!phar_has_zlib) {
+ if (!PHAR_G(has_zlib)) {
zend_throw_exception_ex(spl_ce_BadMethodCallException, 0 TSRMLS_CC,
"Cannot compress entire archive with
gzip, enable ext/zlib in php.ini");
return;
@@ -2819,7 +2821,7 @@
break;
case PHAR_ENT_COMPRESSED_BZ2:
- if (!phar_has_bz2) {
+ if (!PHAR_G(has_bz2)) {
zend_throw_exception_ex(spl_ce_BadMethodCallException, 0 TSRMLS_CC,
"Cannot compress entire archive with
bz2, enable ext/bz2 in php.ini");
return;
@@ -2908,7 +2910,7 @@
switch (method) {
case PHAR_ENT_COMPRESSED_GZ:
- if (!phar_has_zlib) {
+ if (!PHAR_G(has_zlib)) {
zend_throw_exception_ex(spl_ce_BadMethodCallException, 0 TSRMLS_CC,
"Cannot compress files within archive
with gzip, enable ext/zlib in php.ini");
return;
@@ -2917,7 +2919,7 @@
break;
case PHAR_ENT_COMPRESSED_BZ2:
- if (!phar_has_bz2) {
+ if (!PHAR_G(has_bz2)) {
zend_throw_exception_ex(spl_ce_BadMethodCallException, 0 TSRMLS_CC,
"Cannot compress files within archive
with bz2, enable ext/bz2 in php.ini");
return;
@@ -4256,7 +4258,7 @@
return;
}
if ((entry_obj->ent.entry->flags &
PHAR_ENT_COMPRESSED_BZ2) != 0) {
- if (!phar_has_bz2) {
+ if (!PHAR_G(has_bz2)) {
zend_throw_exception_ex(spl_ce_BadMethodCallException, 0 TSRMLS_CC,
"Cannot compress with gzip
compression, file is already compressed with bzip2 compression and bz2
extension is not enabled, cannot decompress");
return;
@@ -4269,7 +4271,7 @@
return;
}
}
- if (!phar_has_zlib) {
+ if (!PHAR_G(has_zlib)) {
zend_throw_exception_ex(spl_ce_BadMethodCallException, 0 TSRMLS_CC,
"Cannot compress with gzip compression,
zlib extension is not enabled");
return;
@@ -4284,7 +4286,7 @@
return;
}
if ((entry_obj->ent.entry->flags &
PHAR_ENT_COMPRESSED_GZ) != 0) {
- if (!phar_has_zlib) {
+ if (!PHAR_G(has_zlib)) {
zend_throw_exception_ex(spl_ce_BadMethodCallException, 0 TSRMLS_CC,
"Cannot compress with bzip2
compression, file is already compressed with gzip compression and zlib
extension is not enabled, cannot decompress");
return;
@@ -4297,7 +4299,7 @@
return;
}
}
- if (!phar_has_bz2) {
+ if (!PHAR_G(has_bz2)) {
zend_throw_exception_ex(spl_ce_BadMethodCallException, 0 TSRMLS_CC,
"Cannot compress with bzip2
compression, bz2 extension is not enabled");
return;
@@ -4350,12 +4352,12 @@
"Cannot compress deleted file");
return;
}
- if ((entry_obj->ent.entry->flags & PHAR_ENT_COMPRESSED_GZ) != 0 &&
!phar_has_zlib) {
+ if ((entry_obj->ent.entry->flags & PHAR_ENT_COMPRESSED_GZ) != 0 &&
!PHAR_G(has_zlib)) {
zend_throw_exception_ex(spl_ce_BadMethodCallException, 0
TSRMLS_CC,
"Cannot decompress Gzip-compressed file, zlib extension
is not enabled");
return;
}
- if ((entry_obj->ent.entry->flags & PHAR_ENT_COMPRESSED_BZ2) != 0 &&
!phar_has_bz2) {
+ if ((entry_obj->ent.entry->flags & PHAR_ENT_COMPRESSED_BZ2) != 0 &&
!PHAR_G(has_bz2)) {
zend_throw_exception_ex(spl_ce_BadMethodCallException, 0
TSRMLS_CC,
"Cannot decompress Bzip2-compressed file, bz2 extension
is not enabled");
return;
http://cvs.php.net/viewvc.cgi/php-src/ext/phar/zip.c?r1=1.47&r2=1.48&diff_format=u
Index: php-src/ext/phar/zip.c
diff -u php-src/ext/phar/zip.c:1.47 php-src/ext/phar/zip.c:1.48
--- php-src/ext/phar/zip.c:1.47 Mon May 12 20:42:06 2008
+++ php-src/ext/phar/zip.c Sat May 17 20:07:38 2008
@@ -326,14 +326,14 @@
break;
case PHAR_ZIP_COMP_DEFLATE :
entry.flags |= PHAR_ENT_COMPRESSED_GZ;
- if (!phar_has_zlib) {
+ if (!PHAR_G(has_zlib)) {
efree(entry.filename);
PHAR_ZIP_FAIL("zlib extension is
required");
}
break;
case PHAR_ZIP_COMP_BZIP2 :
entry.flags |= PHAR_ENT_COMPRESSED_BZ2;
- if (!phar_has_bz2) {
+ if (!PHAR_G(has_bz2)) {
efree(entry.filename);
PHAR_ZIP_FAIL("bzip2 extension is
required");
}
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php