Unbundle the imap, pspell, and oci8 extensions View as Markdown

Implemented (PHP 8.4)
Authors
Derick Rethans, derick@php.net
Date
2023-10-03 (Created 2023-09-27)
Version
0.9.1
Target
PHP 8.4
Implementation
see Implementation section
Source
wiki.php.net/rfc/unbundle_imap_pspell_oci8

Votes

Unbundle ext/imap closed
Yes
27
No
0
27 voters
alcaeus Yes 2023-11-02 15:12
ashnazg Yes 2023-11-08 15:32
beberlei Yes 2023-11-02 20:37
brzuchal Yes 2023-11-01 16:16
crell Yes 2023-11-02 12:56
cschneid Yes 2023-11-01 16:00
derick Yes 2023-11-01 15:43
devnexen Yes 2023-11-01 15:51
dharman Yes 2023-11-01 20:52
felipe Yes 2023-11-01 15:51
geekcom Yes 2023-11-06 13:11
girgias Yes 2023-11-01 16:04
heiglandreas Yes 2023-11-01 19:06
jhdxr Yes 2023-11-12 12:43
kalle Yes 2023-11-02 04:20
kguest Yes 2023-11-02 15:52
kocsismate Yes 2023-11-02 08:15
mbeccati Yes 2023-11-01 16:14
ocramius Yes 2023-11-01 15:50
petk Yes 2023-11-01 16:15
ramsey Yes 2023-11-02 20:25
remi Yes 2023-11-03 06:55
sebastian Yes 2023-11-02 06:08
sergey Yes 2023-11-02 11:46
theodorejb Yes 2023-11-01 18:08
tstarling Yes 2023-11-02 04:09
xatenev Yes 2023-11-06 23:32
Unbundle ext/pspell closed
Yes
27
No
0
27 voters
alcaeus Yes 2023-11-02 15:12
ashnazg Yes 2023-11-08 15:32
beberlei Yes 2023-11-02 20:38
brzuchal Yes 2023-11-01 16:16
crell Yes 2023-11-02 12:57
cschneid Yes 2023-11-01 16:00
derick Yes 2023-11-01 15:43
devnexen Yes 2023-11-01 15:52
dharman Yes 2023-11-01 20:52
felipe Yes 2023-11-01 15:51
geekcom Yes 2023-11-06 13:11
girgias Yes 2023-11-01 16:05
heiglandreas Yes 2023-11-01 19:06
jhdxr Yes 2023-11-12 12:45
kalle Yes 2023-11-02 04:20
kguest Yes 2023-11-02 15:52
kocsismate Yes 2023-11-02 08:15
mbeccati Yes 2023-11-01 16:14
ocramius Yes 2023-11-01 15:50
petk Yes 2023-11-01 16:15
ramsey Yes 2023-11-02 20:25
remi Yes 2023-11-03 06:55
sebastian Yes 2023-11-02 06:08
sergey Yes 2023-11-02 11:46
theodorejb Yes 2023-11-01 18:08
tstarling Yes 2023-11-02 04:09
xatenev Yes 2023-11-06 23:32
Unbundle ext/oci8 and ext/PDO_OCI closed
Yes
26
No
1
27 voters
alcaeus Yes 2023-11-02 15:12
ashnazg Yes 2023-11-08 15:32
beberlei Yes 2023-11-02 20:38
brzuchal Yes 2023-11-01 16:17
crell Yes 2023-11-02 12:57
cschneid Yes 2023-11-01 16:00
derick Yes 2023-11-01 15:43
devnexen Yes 2023-11-01 15:52
dharman Yes 2023-11-01 20:52
felipe Yes 2023-11-01 15:51
geekcom Yes 2023-11-06 13:11
girgias Yes 2023-11-01 16:05
heiglandreas Yes 2023-11-01 19:06
jhdxr Yes 2023-11-12 12:44
kalle Yes 2023-11-02 04:57
kguest Yes 2023-11-02 15:52
kocsismate Yes 2023-11-02 08:15
mbeccati Yes 2023-11-01 16:14
ocramius Yes 2023-11-01 15:50
petk Yes 2023-11-01 16:15
ramsey Yes 2023-11-02 20:25
sebastian Yes 2023-11-02 06:09
sergey Yes 2023-11-02 11:46
sixd No 2023-11-02 04:00
theodorejb Yes 2023-11-01 18:08
tstarling Yes 2023-11-02 04:09
xatenev Yes 2023-11-06 23:32

Discussions on the mailing list

[RFC] Unbundle ext/xmlrpc
by Christoph M. Becker · 8 messages
Proposal to unbundle imap/pspell/oci8 extensions for PHP 8.4
by Derick Rethans · 10 messages
[RFC} Unbundle ext/imap, ext/pspell, and ext/oci8
by Derick Rethans · 3 messages
[VOTE] [RFC] Unbundle ext/imap, ext/pspell, ext/oci8, and ext/PDO_OCI
by Derick Rethans · 4 messages
Updates needed to various RFCs
by Juliette Reinders Folmer · 11 messages

RFC text

Copied from wiki.php.net, last synchronized Oct 13, 2026 11:50 UTC

Introduction

PHP currently bundles the ext/imap, ext/pspell, ext/oci8, and ext/PDO_OCI extensions, which all suffer from issues with external dependencies.

Proposal

The proposal is to unbundle them: remove them from the PHP source distribution, move them to PECL, and create an initial release for them.

As unbundled extensions are not maintained by the PHP Core team, that would mean that, unless maintainers step up to maintain these extensions, they will stop being compatible with future versions of PHP.

ext/imap

The library that provides the functionality in this extension, c-client, is no longer updated. The last release from 2007 is no longer available on the original distributor's (University of Washington) website, but there is an unofficial GitHub repository that hasn't been updated for 5 years either (https://github.com/uw-imap/imap).

You can't also use this any more with G Suite due to authentication changes (https://github.com/uw-imap/imap/issues/4).

There are several user-land packages that are still maintained, and provide superior functionality:

ext/pspell

The original underlying library hasn't been updated since 2001 (https://en.wikipedia.org/wiki/Pspell) and it's replacement, aspell not since 2019 (https://ftp.gnu.org/gnu/aspell/).

There are other replacements, ispell, and hunspell, but they don't seem to be compatible API-wise.

The PECL extension “enchant” was bundled with PHP 5.3 (https://github.com/php/php-src/tree/master/ext/enchant), and uses the updated enchant2 library (https://github.com/AbiWord/enchant). The “enchant” extension still supports version 1 of the enchant library, which probably should be removed through a different process.

Again, there are several user land composer packages (https://packagist.org/?query=spell) that can be used instead.

ext/oci8 and ext/PDO_OCI

Requires a proprietary library from large commercial enterprise (https://www.oracle.com/database/technologies/instant-client.html) and has many outstanding bugs:

Most of the recent changes were all to skip tests.

The ext/oci8 extension is also one of the larger extensions left, that has not had its resource type converted to objects. This is a major effort, and probably something that should be done by the corporate sponsor of the Oracle extensions.

Backward Incompatible Changes

The functionality offered by the imap, pspell, and/or oci8 extension(s) will no longer be available without installing the extension from PECL.

Proposed PHP Version(s)

PHP 8.4

Voting

A simple yes/no vote for each extension about whether to unbundle it. Unbundling requires a 2/3 majority.

Voting started on November 1st, 2023, and will run for two weeks until November 15th, 24:00 GMT.

Vote: Unbundle ext/imap — Yes: 27 · No: 0 (closed)


Vote: Unbundle ext/pspell — Yes: 27 · No: 0 (closed)


Vote: Unbundle ext/oci8 and ext/PDO_OCI — Yes: 26 · No: 1 (closed)

Implementation

This section should contain links to updated documentation, and the link to the pdo_oci8 package.

Implementation:

PECl packages:

References

Changes

  • 0.9 — Initial Draft
  • 0.9.1 — Clarify maintenance of unbundled extensions, and include PDO_OCI.