Commit Graph

517 Commits

Author SHA1 Message Date
Dmitry Stogov
c48c63f5e6 Improved webPhar speed (frontcontroller11.phar.phpt is disabled, should be removed) 2008-07-22 07:03:00 +00:00
Dmitry Stogov
68537af530 Fixed directory reanming/deletion 2008-07-20 14:42:34 +00:00
Dmitry Stogov
67b77b06e5 Fixed search on uninitialized data 2008-07-17 14:05:07 +00:00
Dmitry Stogov
5c631e8765 Fixed wrong arguments order 2008-07-17 13:22:32 +00:00
Dmitry Stogov
53bbf1238c Extensions MUST NOT manipulate with internal functions from EG(function_table) in run-time. It may cause problems with opcode caches and in multi-threaded environment. Now the same functions are overriden at MINIT and call original functions or PHAR ones dependent on flag setting. 2008-07-10 11:36:50 +00:00
Antony Dovgal
ae7eff10e8 add zero-terminator to the delimiter (and make valgrind happy) 2008-07-09 14:15:41 +00:00
Greg Beaver
37c684ab3d in preparation for a performance optimization that involves
eliminating phar's interception of zend_compile in favor of a new to-be-added hook in PHP 5.3+,
allow "include 'phar:///path/to/my.phar';" to work as equivalent to
php /path/to/my.phar
this slight change in scripting still allows inclusion and execution of phar stub, but removes the need to
check and modify path in zend_compile, which allows us to play much nicer with external tools like
debuggers/opcode caches
2008-06-27 01:21:12 +00:00
Steph Fox
b9e8695e75 - One solution for the openssl issues
- config.m4 needs bringing into line with config.w32, there may be broken behaviour under *nix until this is done
2008-06-23 19:18:01 +00:00
Greg Beaver
3a8b14f83f fix inode calculation, we need fname to be set for phar/tar formats prior to manifest parsing 2008-06-22 00:50:32 +00:00
Steph Fox
b964ec6e5d - ws 2008-06-21 18:57:53 +00:00
Greg Beaver
eb0a98939a PHP 5.2 fixes to direct include of compressed archives 2008-06-21 17:05:18 +00:00
Steph Fox
fc08a7cc2f The only reason that particular 'real solution' wasn't applied in the first place was that it also breaks the shared build
Maybe we don't need to call a non-existent dtor if we're going to physically apply zend_hash_graceful_reverse_destroy()?
- This works on my box, please test under *nix/OSX
2008-06-20 12:21:32 +00:00
Greg Beaver
7cc6b9f3f5 making progress - up to 42/phar vs. 48/disk with these optimizations 2008-06-20 05:42:58 +00:00
Greg Beaver
5233505043 revert really bad solution to the zend_init_rsrc_list/zend_destroy_rsrc_list problem, replace with real solution 2008-06-20 04:50:11 +00:00
Steph Fox
aa694b8b51 - Kill 10 MSVC compiler warnings due to type conflict
- Make cached manifest test platform agnostic
- Comment out zend_(init|destroy)_rsrc_list() and associated references

@Greg: cached manifest test (now) passes here regardless, make of that what you will
2008-06-18 15:06:50 +00:00
Greg Beaver
cbe23b9f20 fix windows build and more performance jumps (these are minor)
implement real copy-on-write
use virtual_dirs for wrapper stat
2008-06-18 06:38:47 +00:00
Greg Beaver
d8d31bc591 remove unused variables in phar_fix_filepath
copy virtual_dirs to avoid segfault on multi-process
fix metadata reading for phar.cache_list
initialize manifest to exact size needed (performance increase)
fix freeing of signature on error to use the correct persist value (fixes segfault on error in cache.list)
reset EG(regular_list) so it is identical to how we found it
2008-06-16 04:10:53 +00:00
Greg Beaver
c353e9277e minor performance improvement 2008-06-15 23:00:46 +00:00
Greg Beaver
4104786072 another optimization - move inode hash to initial manifest parsing, improves runtime perf of stat slightly 2008-06-15 21:42:20 +00:00
Greg Beaver
d8ed660a02 minor optimization 2008-06-15 21:15:29 +00:00
Greg Beaver
04e257a8e1 HUGE speed improvement, from 19 req/sec to 27 req/sec for phpMyAdmin - now speed with apc+phar.cache_list = on-disk speedcvs diff -u |less This is by generating a list of virtual directories and using those in stat calls instead of scanning the whole manifest hash table. on-disk phpMyAdmin = 28 req/sec 2008-06-15 18:15:48 +00:00
Greg Beaver
5ff4deaa53 full refactor of signatures complete - now to implement them for tar as a starting point 2008-06-13 20:15:19 +00:00
Felipe Pena
d61f32d021 - Fix build (ZTS) 2008-06-13 13:06:46 +00:00
Greg Beaver
9c8d13fd6c partial refactor - move signature verification into its own function, in preparation for tar/zip signature support.
next is signature creation
2008-06-13 06:34:41 +00:00
Greg Beaver
98f2dc2aca [DOC] add phar.cache_list, a PATH_SEPARATOR-separated list of full paths to phar archives to cache
at startup.  This caches the manifest, so that on first access to a phar archive, no file manifest parsing occurs.

This could use further tweaking.  For instance, the full copy of the manifest into the current process may be unnecessary if refcounting could be external
to the manifest.  This would be another significant gain.  With APC, I measure a slight perf increase to 19 req/sec up from 16 req/sec, without it approaches
regular PHP at 3.8 req/sec (regular is 4 req/sec).  This is benching phpMyAdmin
2008-06-12 18:56:23 +00:00
Greg Beaver
eb77b80b9d fix compile warnings if openssl is enabled statically. fix dangerous use of wrong length var in openssl signature verification 2008-06-09 16:07:18 +00:00
Greg Beaver
5fbeb235d2 add openssl signing support. This adds an extra parameter
for the contents of the exported private key to Phar->setSignatureAlgorithm, and expects the public key to be in
a file named blah.phar.pubkey in the same directory as the phar blah.phar.  This works with openssl static or
shared and fails gracefully if openssl is not present without adding a dependency. config.w32 needs updating to match config.m4 [DOC]
2008-06-01 04:21:26 +00:00
Greg Beaver
6db7baba99 MFB: fix corrupted zips, fix postprocess for compressed zip file 2008-05-30 22:49:46 +00:00
Greg Beaver
83e491b2c3 fix corrupted zips, fix postprocess for compressed zip file 2008-05-30 22:49:33 +00:00
Greg Beaver
ca6d36efb8 MFB: refactor function names for clarity. No functionality change 2008-05-30 22:39:33 +00:00
Greg Beaver
8b600a72dc refactor function names for clarity. No functionality change 2008-05-30 22:38:46 +00:00
Greg Beaver
195ee5ca73 MFB: fix PECL bug #13981: Third-party zips fail entry interrogation 2008-05-29 17:34:58 +00:00
Greg Beaver
4cc79b39b4 fix PECL bug #13981: Third-party zips fail entry interrogation 2008-05-29 17:34:50 +00:00
Stanislav Malyshev
f6af23d30e MF5: Fix code path in phar_open_compiled_file() that tries
to open not-yet-loaded phar and fails on compressed files
# By Gregory's request
# Sorry, can't find how to write test case for that - it reproduces
# for me only under bytecode-caching. Suggestions welcome.
2008-05-28 21:50:41 +00:00
Stanislav Malyshev
370aafc62b Fix code path in phar_open_compiled_file() that tries
to open not-yet-loaded phar and fails on compressed files
# By Gregory's request
# Sorry, can't find how to write test case for that - it reproduces
# for me only under bytecode-caching. Suggestions welcome.
2008-05-28 21:42:21 +00:00
Steph Fox
76a9ec377b - MFB major fixes
* found felipe's segfault in util.c and fixed the segfault (3 tests fail due to odd behavior of . and .. on this machine)
   * fixed serious flaws in the setting/resetting of is_data - now it works properly.  Assume
     all new PharData are tar-based, and allow passing Phar::ZIP to PharData constructor to override this
   * fix broken earlier commit, introduced segfault that broke 20 tests here
2008-05-24 14:18:31 +00:00
Steph Fox
bdca5a12b0 - MFB fix offset detection in tar files 2008-05-24 13:59:56 +00:00
Greg Beaver
4b035dae5f major fixes
* found felipe's segfault in util.c and fixed the segfault (3 tests fail due to odd behavior of . and .. on this machine)
 * fixed serious flaws in the setting/resetting of is_data - now it works properly.  Assume
   all new PharData are tar-based, and allow passing Phar::ZIP to PharData constructor to override this
 * fix broken earlier commit, introduced segfault that broke 20 tests here
2008-05-22 06:33:09 +00:00
Greg Beaver
1f661c81c4 fix offset detection in tar files 2008-05-21 22:00:43 +00:00
Greg Beaver
11fb7561f0 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
2008-05-17 20:07:38 +00:00
Greg Beaver
4aa4f1fabb 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
2008-05-17 20:07:22 +00:00
Steph Fox
6a0682d986 - MFH
- Make internal code forward-compatible. This included a binary cast in the default stub, hence test updates.
2008-05-14 21:29:51 +00:00
Steph Fox
c1ae13b985 - Make internal code back-compatible. This included a binary cast in the default stub, hence many test updates.
- Just over a third of tests pass. Test manifests are broken currently.
2008-05-14 21:27:31 +00:00
Steph Fox
ce586bf826 - MF53 dotted.path support 2008-05-13 18:43:18 +00:00
Steph Fox
247d91e780 - 'It builds on my box'.
- Don't expect any tests to pass.
2008-05-13 18:35:25 +00:00
Steph Fox
4d169ebcfc - Allow broken.dirnames to use phar too
- Add test
- Kill MSVC compiler warning
2008-05-13 14:11:24 +00:00
SVN Migration
16b4d8e0e1 This commit was manufactured by cvs2svn to create branch 'PHP_5_3'. 2008-05-12 21:03:49 +00:00
Greg Beaver
82dc03941a fix weird alias issues, add tests to check for new-found problems 2008-05-12 20:42:07 +00:00
Greg Beaver
e6558c56a3 increase code coverage to test mounting of phar URLs to internal file, and fix odd semi-race condition
where stream resources were not properly freed at script end
2008-05-12 00:16:59 +00:00
Greg Beaver
38d5943ee6 increase code coverage of funcinterceptors to 90%+, fix many bugs, fix errant wrong test condition in fgc_edgecases 2008-05-11 19:17:51 +00:00
Greg Beaver
25a6be6cde fix windows build 2008-05-08 03:10:18 +00:00
Greg Beaver
53e02373d0 fix handling of mounted entries when flushing in all phars, and of deleted entries with open references in tar-based phars, do not extract mounted entries, add to test 2008-05-08 02:58:45 +00:00
Greg Beaver
a919e2f858 fix serious logic error and potential security issue with phar_compiled_file and
phar_find_in_include_path.  We were allowing data-based phars to be executed, and actually marking phar-based phar archives
without '.phar' in the name as data-based phars, which would allow modifying them even if phar.readonly=0.  Add test for this sinister case
2008-05-08 00:49:37 +00:00
Greg Beaver
f134a909c3 optimize phar filename extension detection to first search through known phars. This eliminates several stat/realpath calls for archives with lots of files 2008-05-07 17:24:22 +00:00
Greg Beaver
549bf83bd1 [DOC]
remove phar.extract_list
remove Phar::getExtractList()
2008-05-07 05:38:31 +00:00
Greg Beaver
f8db86b008 remove APC fanciness - this was causing non-caching of some files include()d inside a phar archive 2008-05-07 05:13:41 +00:00
Greg Beaver
5ba8ca70a4 fix alias overloading handling for archives that are not in use 2008-05-06 21:14:53 +00:00
Steph Fox
8a970147ad - Allow setStub() to continue working
- Fix tests broken by earlier commit
2008-04-29 12:26:58 +00:00
Steph Fox
8559a2dbde - Prevent phars with empty manifests flushing to disk
- This would've fixed that test... removing clean section

@Greg: I commented out the call that breaks the Windows build, pending a decision about its future.
2008-04-29 12:06:54 +00:00
Greg Beaver
ee1273af7a remove hack introduced because of broken usage of php_resolve_path instead of zend_resolve_path 2008-04-28 22:41:20 +00:00
Greg Beaver
fbb2e8ce60 more fixes for PHAR_G(cwd) 2008-04-28 06:03:33 +00:00
Greg Beaver
fd9bf92ac6 fix out-of-bounds read potential by replacing strstr with a custom strnstr 2008-04-27 07:20:02 +00:00
Greg Beaver
5bf3d1d362 fix invalid free 2008-04-27 07:04:56 +00:00
Greg Beaver
94846549f5 fix APC compile hook interception, now APC actually caches files 2008-04-26 23:16:49 +00:00
Steph Fox
21584ed029 - kill a couple of (release build) MS compiler warnings 2008-04-24 16:59:23 +00:00
Greg Beaver
24d83fa7f8 fix break when uncompressed files are re-saved, fixes phar_copy.phpt test 2008-04-24 04:56:22 +00:00
Greg Beaver
3d890f09a8 fix extension detection for executable=2 2008-04-23 18:22:09 +00:00
Greg Beaver
c034683550 new test for Phar::isValidPharFilename. Fix Phar::isValidPharFilename. Fix extension detection for all cases 2008-04-23 18:11:20 +00:00
Greg Beaver
5a4a54f64b remove unused code 2008-04-21 16:51:26 +00:00
Greg Beaver
aaf6101928 another refactoring to combine an error and improve code coverage as a side effect 2008-04-21 16:50:18 +00:00
Greg Beaver
32f2eeea47 minor re-factoring reduces code lines for an error (and evilly increases code coverage at gcov ;) 2008-04-21 16:46:01 +00:00
Greg Beaver
69f74c5c80 minor re-factoring reduces code lines for an error (and evilly increases code coverage at gcov ;) 2008-04-21 16:42:53 +00:00
Greg Beaver
3d858f4aa9 implement symbolic link support within a tar-based phar archive
this also resulted in a major fix for mounted directories, which were recycling the 'link' field which
could cause stupid conflicts with actual links, so move that to new 'tmp' field.
2008-04-21 06:17:51 +00:00
Greg Beaver
027180d6ee new test for bad checksum, fix tar.c to catch tar archives with a corrupted first entry, fix memleak on bad checksum 2008-04-20 17:28:54 +00:00
Greg Beaver
ab45c16a61 fix all but 1 test on windows (yay) 2008-04-20 04:19:13 +00:00
Greg Beaver
54540385b8 fix a couple more tests on windows 2008-04-20 04:10:51 +00:00
Greg Beaver
95fc6451f0 fix 98 of 105 failing tests on windows (real progress now) 2008-04-20 00:24:01 +00:00
Greg Beaver
9035dc059a fix 3 failing tests out of 108 on windows (whoop-de-doo) 2008-04-19 17:57:24 +00:00
Greg Beaver
ef0139c866 fix ZTS build 2008-04-19 17:24:41 +00:00
Greg Beaver
c4f502fae0 COMPLETELY rework filename extension detection. Now the only requirements are:
1 - executable phars must contain '.phar' in the filename
2 - non-executable phars must not contain '.phar' and must have an extension of at least 1 character

In addition, phar filenames must exist if opened for read, and the directory containing the phar must exist if opened for creation
if opened for creation, the file must not already exist
[DOC]
2008-04-18 04:13:13 +00:00
Greg Beaver
8c4477cde5 fix segfault in meta-data parsing of zip archives 2008-04-16 04:15:08 +00:00
Greg Beaver
dc837b5f53 rename is_zip parameter of phar_parse_metadata to more accurately reflect what it is 2008-04-16 04:01:33 +00:00
Greg Beaver
6387155b3d add another test for alias overloading and make sure we disallow it when passed in constructor 2008-04-16 03:42:29 +00:00
Greg Beaver
6c0564c721 increase code coverage for phpinfo(), rework CLI phpinfo for phar.extract_list to be legible 2008-04-16 03:26:20 +00:00
Greg Beaver
77b6ed3861 further big-endian systems fixes for zip 2008-04-15 19:16:47 +00:00
Greg Beaver
1a2ac90cde truly enable APC in phar 2008-04-15 13:52:02 +00:00
Greg Beaver
9e33e0cc5b add support for proper APC caching 2008-04-15 04:56:34 +00:00
Greg Beaver
2277396fe3 fix edge case where a new phar is created via mkdir(), add to dir.phpt test 2008-04-14 15:21:41 +00:00
Greg Beaver
b8865a63ae another attempt at fixing mac OS X compile, remove unused obsolete code 2008-04-14 04:47:34 +00:00
Greg Beaver
1c3097fcbe make built-in SplFileInfo->isWriteable() work for PharFileInfo as well, by ensuring phar->is_writeable is set/reset when phar.readonly is changed 2008-04-10 03:12:08 +00:00
Marcus Boerger
5b3560f069 - Ifdef out code that has if(0) and doesn't compile anyway 2008-03-27 12:54:23 +00:00
Greg Beaver
a090d45251 fix build on PHP 5.2, prepare release of 2.0.0a2 2008-03-27 06:38:53 +00:00
Marcus Boerger
7202434956 - Add documentation 2008-03-24 12:53:28 +00:00
Greg Beaver
1bda8cf708 a subtle plea for help to Marcus... 2008-03-24 03:05:24 +00:00
Greg Beaver
2e9fca4f0b fix read/write for PharData object, update tests to current API 2008-03-24 03:01:31 +00:00
Marcus Boerger
69c71f703e - Add .cvsignore 2008-03-23 16:51:52 +00:00
Greg Beaver
27ca45f898 don't disallow opening .tar/.zip files as Phar object if readonly is disabled, the whole idea is to be able to
add crap including an automatic stub or explicit stub
2008-03-23 06:59:59 +00:00
Greg Beaver
eea82226c1 fix potential segfault by misuse of phar_find_in_include_path 2008-03-23 05:39:58 +00:00
Greg Beaver
6cef8da201 move all blah++ to ++blah where possible for those with crapass compilers 2008-03-22 22:11:49 +00:00
Greg Beaver
01e5bbbaf5 fix memleak in php 5.2, simplify code slightly 2008-03-22 21:54:55 +00:00
Steph Fox
c0619c6523 Make versioning more standard 2008-03-22 17:09:24 +00:00
Marcus Boerger
1b286e1475 - If multiple possible exts are found use the first one.
This fixes an issue with: phar.phar info -f install-pear-nozlib.phar
  because that archive contains a .tar file
2008-03-22 00:15:45 +00:00
Marcus Boerger
e08556eb2e - Constify 2008-03-22 00:11:43 +00:00
Greg Beaver
d02dff1363 save work - sandbox is completely f**ed up, have to rm -rf and start again
This *SHOULD* fix issues, but I can't get run-tests to work reliably to be absolutely sure
2008-03-20 23:59:07 +00:00
Marcus Boerger
a1cbab9142 - Rewrite scanner to be based on re2c instead of flex
The full patch is available as:
  http://php.net/~helly/php-re2c-5.3-20080316.diff.txt
  This is against php-re2c repository version 98
  An older patch against version 97 is available under:
  http://php.net/~helly/php-re2c-97-20080316.diff.txt
2008-03-16 21:06:54 +00:00
Antony Dovgal
983ff657ba fix zts build 2008-03-13 09:57:49 +00:00
Greg Beaver
0262e844c4 implement full support and usage of phar stream in include_path, for both 5.2 and 5.3.
5.3 code expects the proposed patch for stream wrapper in include_path to be committed
5.2 code only supports phar stream wrapper in include_path.
this is a 2-step process.  After this, more magic, particularly in funcinterceptors.c will be
converted to use phar_resolve_path, which is far safer than the current implementation.

this needs windows and 5.2 testing unix/windows
2008-03-12 03:55:12 +00:00
Steph Fox
8343d7c139 - A bit more work on PharData creation/conversion.
- If readonly=0, why not $phardata->convertToPhar()?
- Known issue with directories creating 'as-file' copies within the archive (all formats)
@Greg/Marcus/Tony: This passes all tests on my box, 5.2/5.3/release_ts/debug_ts, and I can't find any more memleaks. Obviously this is too good to be true, so if conversion is still messy elsewhere please feel free to fix, or bug and assign to me.
2008-03-03 08:41:15 +00:00
Steph Fox
001ffec19f Initial support for PharData object.
Note: two tests currently fail. IMHO we should be throwing E_ERROR on encountering a corrupted archive, not trying to throw a trail of exceptions...
New tests still to be written, not all functionality is in place yet.
2008-02-27 21:34:26 +00:00
Greg Beaver
ec7f89fe79 implement Phar::mount() for directories, add test
# opendir not yet implemented for mounted directories
2008-02-25 04:23:36 +00:00
Steph Fox
8513db73bb A bunch of stuff to do with filename conversion. Hopefully it won't sink the ship. 2008-02-24 22:29:06 +00:00
Greg Beaver
f6862d4a33 fix unfreed value found in tempmanifest1.phpt 2008-02-23 19:44:51 +00:00
Greg Beaver
b3a266fca8 fix double error (this fixes frontcontroller22.phpt) 2008-02-23 19:26:18 +00:00
Steph Fox
6cc2426ff1 A much better solution for setDefaultStub(). The convertTo*() fixes should be trivial now. 2008-02-21 00:24:38 +00:00
Steph Fox
d8bebd7259 Implement $phar->setDefaultStub()
Note that Phar::createDefaultStub() still exists at this point
2008-02-20 19:22:12 +00:00
Steph Fox
7bb00d024e Allow createDefaultStub() to accept 0, 1 or 2 parameters. Default for both CLI and web is 'index.php'.
@Greg: this breaks a handful of tests due to the change in stub.h - will fix in a bit. The only one that's interesting is you can't do strlen(Phar::createDefaultStub()) and expect anything other than an exception now.
2008-02-18 21:45:02 +00:00
Steph Fox
335e57e443 Fix ZTS build (again), kill unused var 2008-02-18 04:51:04 +00:00
Greg Beaver
ba9fcf62fc add initial support for hashing mounted directories. Actual matching of mounted directories is not yet supported. 2008-02-18 04:45:42 +00:00
Steph Fox
87626d56d2 Fix ZTS build *nicely* 2008-02-18 04:42:04 +00:00
Greg Beaver
6798dc44ed add Phar::mount() to manually mount a file or directory
# TODO: implement directory mounting.  Involves scanning paths that are not exact matches for a partial match.
# this also means maintaining a per-phar hash of mounted directories for quick matching
2008-02-18 04:32:50 +00:00
Greg Beaver
9c62ef1124 add externally parsed files to temporary manifest (this will be made
optional and must be explicitly enabled per-phar)
2008-02-18 03:37:51 +00:00
Greg Beaver
f72ce59e95 remove refcount hack to workaround zlib memleak fixed in zlib
intercepted file functions now fall through if the file is not found in the phar, this allows access to external libraries
actually use include_path for locating files for inclusion and in file_get_contents/fopen when include_path is requested.
This allows applications like Zend Framework MVC implementation to function properly
2008-02-13 15:00:31 +00:00
Greg Beaver
3234e78ca1 fix remaining broken tests broken by the addition of phar->fp closing 2008-02-12 05:28:06 +00:00
Greg Beaver
ba002c5b9c revert last commit to phar_object.c
fix open file pointers issue on windows
2008-02-11 17:13:18 +00:00
Greg Beaver
d659ce7a0c fix windows pathname issues 2008-02-11 07:33:20 +00:00
Greg Beaver
d388ec586f move creation of phar archive to the point at which it is committed to disk, instead of
at the moment it is attempted access. (making some real progress now, all tests pass on unix)
2008-02-11 06:53:56 +00:00
Greg Beaver
78e8eb3900 major refactoring of internal handling of aliases.
1) rename is_explicit_alias to is_temporary_alias for clarity and flip the value
2) fix setAlias so that it sets a permanent to-be-saved alias, and restores the old one on error
3) fix Phar constructor to work with sub-directories in RecursiveDirectoryIterator
2008-02-11 06:46:44 +00:00
Greg Beaver
3874e12ee5 fix 5.2 build 2008-02-11 04:48:58 +00:00
Greg Beaver
15410a4f66 make maximum manifest size 100MB for phar archives, simple apps are hitting the 1 MB limit quite easily. 2008-02-08 05:56:26 +00:00
Greg Beaver
5b5c86df9f better fix for double free - ensure that SEPARATE_ZVAL() inside
zlib_filter.c actually separates the zval, then we can zval_dtor() it
properly
2008-02-08 05:41:59 +00:00
Greg Beaver
fa7a1779a1 remove unnecessary INIT_ZVAL(filterparams) that causes unfreed value 2008-02-08 05:05:13 +00:00
Greg Beaver
e3c64bd53b fix memory leaks. There are some leaks in libz that I can't fix, but none triggered in the current tests 2008-02-08 04:26:41 +00:00
Antony Dovgal
a04bcdfcec remove old code leftover causing problems 2008-02-07 08:45:43 +00:00
Antony Dovgal
97c3dbaf56 this string should be freed later since path == free_path 2008-02-01 11:25:11 +00:00
Steph Fox
9fd5c0b438 - Moved phar_unixify_path_separators() to a single central point
- The last two VC 6 compiler warnings gone. Please test under *nix.
2008-01-28 14:39:17 +00:00
Greg Beaver
6cdabede4c remove ext/zip dependency entirely, write better native zip support
re-organize, create util.c, move entry_info/archive_data/entry_data access methods to this file
refactor entry->fp, now this is abstracted with phar_get_efp() and phar_seek_efp(), fixes all weird dependency issues
permanently solve the "millions of file pointers" issue for read access.  All compressed files are read into a single
temporary stream, and their constraints are controlled by the entry->fp abstraction

Improvements in this zip implementation over ext/zip:
 * full read/write support for bzip2 compressed files
 * much more efficient access for accessing only a few files within large zip files, as crc/header validation is
   done just-in-time
 * full stream support for opendir/rename/rmdir/mkdir as well as all of the other stream funcs
 * full support for setting file perms via Phar::chmod(), stored as zip-standard extra field
 * no problem with large zips and many open file pointers

# TODO: add big-endian system support for tar/zip file format headers, otherwise the implementation is complete
# TODO: test on windows and fix any windows-specific issues
# TODO: verify zips created work with unzip/winzip/windows explorer and so on
2008-01-28 08:52:08 +00:00
Greg Beaver
f51bf6118c fix tests to match CVS 2008-01-22 05:26:38 +00:00
Greg Beaver
117f5e2639 add web-based support for default stub, now phars written with webPhar() will work
out of the box regardless of server configuration with phar file format
split up stub.h strings into 2046 byte chunks because MS VC 6 is friggin stupid
2008-01-20 00:49:45 +00:00
Greg Beaver
a5358c0725 bump API version if the created phar has directories in it, so that it won't load with older phar versions 2008-01-19 18:30:30 +00:00
Greg Beaver
d583fae0cc add Phar::createDefaultStub(), which can take as an argument the filename
that should be loaded as a "bootstrap" for the phar archive
2008-01-19 04:26:22 +00:00
Greg Beaver
7540adf058 major improvement:
the new default stub allows creation of phars that run identically
1) with Phar extension
2) without Phar extension
3) extracted to disk from the phar
this makes the default phar format quite interesting as it eliminates the only drawback of the extension
2008-01-18 05:42:16 +00:00
Greg Beaver
109cbc9f50 add needed define back into config.w32, make zip required mod on win32, remove lib/.cvsignore 2008-01-18 00:11:37 +00:00
Greg Beaver
e4c02a6b96 do fancy-shmancy zip dependency validation because ZEND_MOD_OPTIONAL_EX doesn't do any version validation 2008-01-17 05:52:18 +00:00
Greg Beaver
9a59e60657 remove HAVE_ZIP defines just as we removed HAVE_BZ2 defines and for the same reason
update outdated description of phar in config.m4
make zip extension mandatory on windows for compiling purposes
2008-01-17 03:59:07 +00:00
Greg Beaver
a3718dcfa3 no need to use conditional defines for bz2, we don't call it except indirectly through stream wrappers.
After removing HAVE_BZ2 conditionals, phar works even if bz2 is not present on installation through pecl
2008-01-17 03:48:29 +00:00
Greg Beaver
535865e908 give up on gpg signing because of non-existent windows support for gpg signing lib 2008-01-17 03:19:44 +00:00
Greg Beaver
d1eda9c8ac add Phar::convertToTar(), Phar::convertToZip(), and Phar::convertToPhar() 2008-01-16 07:24:39 +00:00
Greg Beaver
34bb2d7e76 unixify path separators in tar-based phars, always use this value for duping alias
# found by delete.phpt unit test.  I love unit tests
2008-01-14 06:19:43 +00:00
Greg Beaver
3fd137c88f fix build on windows (Steph Fox) 2008-01-14 02:47:55 +00:00
Greg Beaver
64cb8c8111 fix conflict on win32 if phar compiled statically 2008-01-12 16:18:26 +00:00