rar: Changelog

Version Message
4.2.0 - Support PHP 8.
- Merge unrar 6.0.2.
- RarArchive implements IteratorAggregate (PHP 8 only).
4.1.0 - Merge changes made to unrar up to version 5.5.6.
- Support PHP 7.2, PHP 7.3 and PHP 7.4.
- Update to unrar 5.9.4
- Fix bug #76592: streaming unpacking of uncompressed files incomplete
4.0.0 - Merge changes made to unrar up to version 5.5.6.
- Support PHP 7.0 and PHP 7.1.
- Added functions RarEntry::getRedirType(), RarEntry::isRedirectToDirectory() and RarEntry::getRedirTarget(), as well as the following constants on RarEntry: FSREDIR_UNIXSYMLINK, FSREDIR_WINSYMLINK, FSREDIR_JUNCTION, FSREDIR_HARDLINK and FSREDIR_FILECOPY.
- Changed stat handler to return UTC time for creation, modification and access time (does not work reliably on Windows).
- Fix cloning of RarArchive being allowed.
3.0.2 - Fixed build with PHP 5.5.
- Upgraded bundled unrar to version 4.2.4.
3.0.1 Changes in this version:
- Merge changes made to unrar up to version 4.2.2.
- Fix leak in PHP >= 5.3.11 (except 5.4.0) and compile error in master.
- Fix some tests failing if TZ != Europe/Lisbon.
- Fix bad pointer in an error message.
- Added test for bug #59939 (can't reproduce).
3.0.0 Changes in this version:
- Updated to unrar 4.0.7 (corresponds to WinRAR 4.0.0 stable).
- Support for PHP 5.4.
- Added url wrapper rar://.
- Added volume find callback to RarArchive::open/rar_open.
- Added support for stat, both static and to opened streams.
- Added rar_allow_broken_set/RarArchive::setAllowBroken and rar_broken_is/
RarArchive::isBroken, which control/query the behavior with archives with
missing volumes.
- Added option to RarEntry::extract() to allow from extraction of ACL (windows)
/owner (unix)/extended attributes (os/2).
- Added support for RAR archives that have several entries with the same name.
- Implemented count elements handler for RarArchive.
- Implemented dimensions handlers for RarArchive.
- Fixed packed sizes which were using high bits from unpacked sizes.
- Fixed PECL bug #20498 (RarEntry::extract not really accepting a password).
- Fixed PECL bug #18449 (Extraction of uncompressed and encrypted files fails).
- Many more tests.
2.0.0 Changes with respect to release 2.0.0RC1:
- Fixed infinite loop when opening RAR archive missing a volume (later report in bug #17177).
- Fixed bug #17025 (changed the name of method RarArchive::list into RarArchive::getEntries). If backwards compatibility with the release candidate is required, RarArchive::list can be reintroduced by defining RAR_ARCHIVE_LIST_ALIAS.
Incompatible changes with respect to release 1.0.0:
PHP Support:
- Support for PHP 4.3 dropped. PHP 5.2.x or 5.3.x is required.
API backwards incompatible changes:
- Handles unicode filenames (uses UTF-8 external encoding). The file names inside the RAR archives are always returned in UTF-8. This will probably break your scripts.
- Calling rar_close/RarArchive::close() invalidates RarEntry objects (actually, only extraction is forbidden, but don't rely on it).
For the other changes, see the changelog for version 2.0.0RC1.
2.0.0RC1 Changes in respect to release 1.0.0:
PHP SUPPORT:
- Support for PHP 4.3 dropped. PHP 5.2.x or 5.3.x is required.
API BACKWARDS INCOMPATIBLE CHANGES:
- Handles unicode filenames (uses UTF-8 external encoding). The file names inside the RAR archives are always returned in UTF-8. This will probably break your scripts.
- Calling rar_close/RarArchive::close() invalidates RarEntry objects (actually, only extraction is forbidden, but don't rely on it).
API backwards compatible changes:
- Supports streaming from RAR archives. See RarEntry::getStream() method.
- Added a bunch of constants to RarEntry.
- Added RarEntry::__toString() method.
- Added RarEntry::isDirectory() method.
- Added RarEntry::isEncrypted() method.
- Added OOP interface for rar_* functions with the RarArchive class.
- Added rar_comment_get/RarArchive::getComment().
- Added RarArchive::isSolid()/rar_solid_is().
- Added RarArchive::__toString() method.
- Added RarException class.
- Exception throwing for expectable errors can be turned on by calling RarException::setUsingExceptions(). To check whether exception throwing is turned on, RarException::isUsingExceptions() can be used.
Bug fixes:
- Fixed by PECL bug #8821 (relative paths not working).
- Fixed PECL bug #9470 (wrong CRC on multi-volume archives).
- Fixed PECL bug #9649 (rar_close() not closing file descriptors if there were undestroyed RarEntry objects)
- Fixed volumes opened with middle volumes showing files continued from previous volume with incorrect packed and unpacked sizes.
- Fixed bug in UnRAR library that could cause a read out of buffer bounds on some corrupted RAR files.
- Fixed RarEntry::getPackedSize() and RarEntry::getUnpackedSize() giving incorrect results for files > 2 GiB. Still, on platforms with 32-bit integers, MAX_INT will be returned for such files, othwerwise the correct value is given.
Other changes:
- Updated bundled UnRAR library to version 3.9.7 (RAR 3.9.1).
- Changed bundled UnRAR library to allow partial file extraction.
- All RarEntry properties are now private. This doesn't break the API because those properties were never part of the contract.
- rar_open gives more detailed error messages on failure.
- Extension now uses extended UnRAR library structures.
- Added arginfo.
- Added a bunch of tests.
- A lot of refactoring and compilation as C, not C++.
2.0.0b2 - Updated bundled UnRAR library to version 3.9.6.
- Added OOP interface for rar_* functions with the RarArchive class.
- Changed bundled UnRAR library to allow partial file extraction.
- Fixed bug in UnRAR library that could cause a read out of buffer bounds on some corrupted RAR files.
- Added a bunch of constants to RarEntry.
- Added RarEntry::__toString() and RarEntry::isDirectory methods.
- All RarEntry properties are now private. This doesn't change the API because those properties were never part of the contract.
- Supports streaming from RAR archives.
- Extensio now uses extended UnRAR library structures.
- rar_open gives more detailed error messages on failure.
- Fixed pecl bug #9470 (wrong CRC on multi-volume archives).
- Added rar_comment_get.
- Fixed by pecl bug #8821 (relative paths not working).
- Handles unicode filenames (uses UTF-8 external encoding).
- Fixed PECL bug #9649, resource is now destroyed regardless of the le->refcount.
- Fixed volumes opened with middle volumes showing files continued from previous volume with incorrect packed and unpacked sizes.
- Added arginfo.
- Added a bunch of tests.
- A lot of refactoring and compilation as C, not C++.
1.0.0 - Upgraded bundled UnRar to version 3.7.8.
- Updated source code to use new parameter parsing API.
- Fixed PECL bug #9002 (rar_list invalidates rar resource)
- Fixed PECL bug #11430 (rar_extract() doesn't close handles gracefully)
- rar_open() now throws an error when failed to open the specified file.