Hi,
Reminder:
- PHP 5.5 have zip extension 1.11.x and bundles libzip version 0.10
- PHP 5.6 have zip extension 1.12.x and bundles libzip version 0.11
- PHP 7.x have zip extension 1.13.x and bundles libzip version 1.1.2
- PHP master have zip extension 1.14.x
We also maintain the pecl extension, mostly for downstrean (linux
distribution) which prefer to manage this extension according to system
libzip version, rather than using the bundled version.
Ex (in Fedora)
- F20, PHP 5.5, libzip 0.11, zip 1.12
- F21, PHP 5.6, libzip 0.11, zip 1.12
- F23, PHP 5.6, libzip 1.1 zip 1.13
- F25, PHP 7.0, libzip 1.1, zip 1.13
- F26, PHP 7.1, libzip 1.2, zip 1.14
The pecl extension is also used for new features development.
Today, we have released zip extension 1.14.0 with encryption support
from libzip 1.2.0.
The new version also drop support of bundled libzip, and only supports
build with system library as doesn't make sense to keep the bundled
copy, as maintained for downstream which prefer system lib.
Notices:
-
PHP master have zip 1.14 but with bundled libzip 1.1.2
(so some new features are missing) -
PHP master support system libzip on Linux and Windows
(thanks to Anatol) -
We dont carry any patch in bundled libzip (since 5.5)
-
We support all libzip versions >= 0.11
-
Updating bundled libzip is always a huge and messy job
DISCUSSION:
I think it is time to drop the bundled libzip from PHP master and only
support the use of the system library, as for most of libraries PHP uses
(openssl, libz, libbz2, curl...)
Comments ?
Remi
P.S. if needed, I can write a quick RFC
Hi,
-----Original Message-----
From: Remi Collet [mailto:remi@fedoraproject.org]
Sent: Wednesday, April 5, 2017 9:06 AM
To: internals@lists.php.net
Subject: [PHP-DEV] Discussion about zip extension and bundled libzipHi,
Reminder:
- PHP 5.5 have zip extension 1.11.x and bundles libzip version 0.10
- PHP 5.6 have zip extension 1.12.x and bundles libzip version 0.11
- PHP 7.x have zip extension 1.13.x and bundles libzip version 1.1.2
- PHP master have zip extension 1.14.x
We also maintain the pecl extension, mostly for downstrean (linux
distribution) which prefer to manage this extension according to system libzip
version, rather than using the bundled version.Ex (in Fedora)
- F20, PHP 5.5, libzip 0.11, zip 1.12
- F21, PHP 5.6, libzip 0.11, zip 1.12
- F23, PHP 5.6, libzip 1.1 zip 1.13
- F25, PHP 7.0, libzip 1.1, zip 1.13
- F26, PHP 7.1, libzip 1.2, zip 1.14
The pecl extension is also used for new features development.
Today, we have released zip extension 1.14.0 with encryption support from
libzip 1.2.0.The new version also drop support of bundled libzip, and only supports build with
system library as doesn't make sense to keep the bundled copy, as maintained
for downstream which prefer system lib.Notices:
PHP master have zip 1.14 but with bundled libzip 1.1.2
(so some new features are missing)PHP master support system libzip on Linux and Windows
(thanks to Anatol)We dont carry any patch in bundled libzip (since 5.5)
We support all libzip versions >= 0.11
Updating bundled libzip is always a huge and messy job
DISCUSSION:
I think it is time to drop the bundled libzip from PHP master and only support the
use of the system library, as for most of libraries PHP uses (openssl, libz, libbz2,
curl...)Comments ?
Principally, nothing holds on dropping the bundled libzip, as long as the external builds. For Windows, the cmake configs still need to be patched, as libzip demands as much as possible 64-bit functionality, even on 32-bit arch. It took some time to figure out these issues, but in the end they're easy to solve by passing correct CFLAGS. So either the bundled lib could be removed for 7.2, or kept without change and removed in 7.3, thus providing a migration buffer for anyone affected.
Regarding the PECL Windows builds - as starting with zip 1.14 the external lib is required, so the builds will be missing for lower PHP branches. In the end, it is probably not a big issue, as ext/zip in the core is shipped statically, thus the PECL builds cannot be used with the standard core build. However the new libzip 1.14 features are only available in master ATM, so they'll become available with 7.2 RTM anyway.
Regards
Anatol
Le 10/04/2017 à 17:35, Anatol Belski a écrit :
So either the bundled lib could be removed for 7.2, or kept without change and removed in 7.3, thus providing a migration buffer for anyone affected.
I just add a configure warning about bundled library being deprecated.
I plan to drop it after 7.2 will be branched (in master)
Remi.