rfc:removal_of_dead_sapis_and_exts

PHP RFC: Removal of dead or not yet PHP7 ported SAPIs and extensions

Introduction

Currently PHP contains many SAPIs to the servers either completely unavailable or unsupported for a long time. The same can be said about several extensions which are for long deprecated or their dependency libraries are unsupported. Here's a short list:

Dead SAPIs:

  • aolserver
  • apache
  • apache_hooks
  • caudium
  • continuity
  • isapi
  • milter
  • phttpd
  • pi3web
  • roxen
  • thttpd
  • tux
  • webjames
  • apache2filter - not really dead, but currently broken
  • nsapi

Extensions with unmaintained dependencies

  • imap
  • mcrypt

Extensions not yet ported to PHP7

  • interbase
  • mssql
  • oci8
  • pdo_dblib
  • pdo_oci
  • sybase_ct

Deprecated extensions handled by https://wiki.php.net/rfc/remove_deprecated_functionality_in_php7 (not handled by this RFC)

  • mysql
  • ereg

This leads to the situation where the repository contains a lot of unmaintained code. The code which doesn't become any updates for years or relies on long unmaintained libraries. Besides that code being not maintained, it is also kind of security risk.


Research

sapi/aolserver

Voting

Remove sapi/aolserver from the core
Real name Yes No
ab (ab)  
aharvey (aharvey)  
andi (andi)  
auroraeosrose (auroraeosrose)  
dmitry (dmitry)  
francois (francois)  
guilhermeblanco (guilhermeblanco)  
hywan (hywan)  
irker (irker)  
jedibc (jedibc)  
jpauli (jpauli)  
kalle (kalle)  
klaussilveira (klaussilveira)  
krakjoe (krakjoe)  
lcobucci (lcobucci)  
leigh (leigh)  
lstrojny (lstrojny)  
mariuz (mariuz)  
mbeccati (mbeccati)  
pajoye (pajoye)  
pollita (pollita)  
ramsey (ramsey)  
rdlowrey (rdlowrey)  
reeze (reeze)  
remi (remi)  
santiagolizardo (santiagolizardo)  
sebastian (sebastian)  
thetaphi (thetaphi)  
treffynnon (treffynnon)  
yunosh (yunosh)  
zeev (zeev)  
Final result: 31 0
This poll has been closed.


sapi/apache

  • Server last release: 2010
  • Server debian supported: no

Apache 1.x branch not developed anymore since 2010. Also it supports no security updates anymore.

Voting

Remove sapi/apache from the core
Real name Yes No
ab (ab)  
aharvey (aharvey)  
andi (andi)  
auroraeosrose (auroraeosrose)  
derick (derick)  
francois (francois)  
guilhermeblanco (guilhermeblanco)  
hywan (hywan)  
irker (irker)  
jedibc (jedibc)  
jpauli (jpauli)  
kalle (kalle)  
klaussilveira (klaussilveira)  
krakjoe (krakjoe)  
lcobucci (lcobucci)  
leigh (leigh)  
lstrojny (lstrojny)  
mariuz (mariuz)  
mbeccati (mbeccati)  
pajoye (pajoye)  
pollita (pollita)  
ramsey (ramsey)  
rdlowrey (rdlowrey)  
reeze (reeze)  
remi (remi)  
santiagolizardo (santiagolizardo)  
sebastian (sebastian)  
stas (stas)  
thetaphi (thetaphi)  
treffynnon (treffynnon)  
yunosh (yunosh)  
zeev (zeev)  
Final result: 32 0
This poll has been closed.


sapi/apache_hooks

Same as sapi/apache.

Voting

Remove sapi/apache_hooks from the core
Real name Yes No
ab (ab)  
aharvey (aharvey)  
andi (andi)  
auroraeosrose (auroraeosrose)  
derick (derick)  
guilhermeblanco (guilhermeblanco)  
hywan (hywan)  
irker (irker)  
jedibc (jedibc)  
jpauli (jpauli)  
kalle (kalle)  
klaussilveira (klaussilveira)  
krakjoe (krakjoe)  
lcobucci (lcobucci)  
leigh (leigh)  
lstrojny (lstrojny)  
mariuz (mariuz)  
mbeccati (mbeccati)  
pajoye (pajoye)  
pollita (pollita)  
ramsey (ramsey)  
rdlowrey (rdlowrey)  
reeze (reeze)  
remi (remi)  
santiagolizardo (santiagolizardo)  
sebastian (sebastian)  
stas (stas)  
thetaphi (thetaphi)  
treffynnon (treffynnon)  
yunosh (yunosh)  
zeev (zeev)  
Final result: 31 0
This poll has been closed.


sapi/apache2filter

  • Server debian supported: yes

This Apache 2.x compatible module seems to have been supported in at least PHP5. In master, it will need to be ported.

Voting

Remove sapi/apache2filter from the core
Real name Yes No
ab (ab)  
andi (andi)  
auroraeosrose (auroraeosrose)  
guilhermeblanco (guilhermeblanco)  
irker (irker)  
jedibc (jedibc)  
jpauli (jpauli)  
kalle (kalle)  
klaussilveira (klaussilveira)  
krakjoe (krakjoe)  
lcobucci (lcobucci)  
lstrojny (lstrojny)  
mariuz (mariuz)  
mbeccati (mbeccati)  
pajoye (pajoye)  
pollita (pollita)  
ramsey (ramsey)  
rdlowrey (rdlowrey)  
santiagolizardo (santiagolizardo)  
sebastian (sebastian)  
stas (stas)  
thetaphi (thetaphi)  
treffynnon (treffynnon)  
zeev (zeev)  
Final result: 23 1
This poll has been closed.


sapi/caudium

  • Sevrer home: http://caudium.net/
  • Server last release: 2012
  • Server debian supported: not completely
  • SAPI status: unsupported

The official documentation of Caudium states that PHP can only run as CGI or FCGI http://www.caudium.net/space/documentation/PHP%20Setup . Running PHP as a module is not supported anymore.

Voting

Remove sapi/caudium from the core
Real name Yes No
ab (ab)  
aharvey (aharvey)  
andi (andi)  
auroraeosrose (auroraeosrose)  
derick (derick)  
dmitry (dmitry)  
guilhermeblanco (guilhermeblanco)  
hywan (hywan)  
irker (irker)  
jedibc (jedibc)  
jpauli (jpauli)  
kalle (kalle)  
klaussilveira (klaussilveira)  
krakjoe (krakjoe)  
lcobucci (lcobucci)  
lstrojny (lstrojny)  
mariuz (mariuz)  
mbeccati (mbeccati)  
pajoye (pajoye)  
pollita (pollita)  
ramsey (ramsey)  
rdlowrey (rdlowrey)  
remi (remi)  
santiagolizardo (santiagolizardo)  
sebastian (sebastian)  
stas (stas)  
thetaphi (thetaphi)  
treffynnon (treffynnon)  
yunosh (yunosh)  
zeev (zeev)  
Final result: 30 0
This poll has been closed.


sapi/continuity

No mortal remains of the corresponding server could be found on the internets.

Voting

Remove sapi/continuity from the core
Real name Yes No
ab (ab)  
aharvey (aharvey)  
andi (andi)  
auroraeosrose (auroraeosrose)  
derick (derick)  
dmitry (dmitry)  
guilhermeblanco (guilhermeblanco)  
hywan (hywan)  
jedibc (jedibc)  
kalle (kalle)  
klaussilveira (klaussilveira)  
krakjoe (krakjoe)  
lcobucci (lcobucci)  
lstrojny (lstrojny)  
mariuz (mariuz)  
mbeccati (mbeccati)  
pajoye (pajoye)  
pollita (pollita)  
ramsey (ramsey)  
rdlowrey (rdlowrey)  
remi (remi)  
santiagolizardo (santiagolizardo)  
sebastian (sebastian)  
stas (stas)  
thetaphi (thetaphi)  
treffynnon (treffynnon)  
yunosh (yunosh)  
zeev (zeev)  
Final result: 28 0
This poll has been closed.


sapi/isapi

The ISAPI support was announced to have been dropped already in the 5.3 migration guide. http://us2.php.net/manual/en/migration53.windows.php .

Voting

Remove sapi/isapi from the core
Real name Yes No
ab (ab)  
aharvey (aharvey)  
andi (andi)  
auroraeosrose (auroraeosrose)  
derick (derick)  
dmitry (dmitry)  
guilhermeblanco (guilhermeblanco)  
hywan (hywan)  
jedibc (jedibc)  
kalle (kalle)  
klaussilveira (klaussilveira)  
krakjoe (krakjoe)  
lcobucci (lcobucci)  
lstrojny (lstrojny)  
mariuz (mariuz)  
mbeccati (mbeccati)  
pajoye (pajoye)  
pollita (pollita)  
ramsey (ramsey)  
rdlowrey (rdlowrey)  
remi (remi)  
santiagolizardo (santiagolizardo)  
sebastian (sebastian)  
stas (stas)  
thetaphi (thetaphi)  
treffynnon (treffynnon)  
yunosh (yunosh)  
zeev (zeev)  
Final result: 28 0
This poll has been closed.


sapi/milter

Milter is not a web server but an API enabling to hook into different MTAs for mail filtering. PHP scripts running under this SAPI are not dedicated to web development, but would be invoked by the corresponding MTA. In this case also, the corresponding PHP program will need to implement whichever rules. An example of another binding to Milter, just to name one, is an interface to Amavis.

Voting

Remove sapi/milter from the core
Real name Yes No
ab (ab)  
andi (andi)  
auroraeosrose (auroraeosrose)  
derick (derick)  
guilhermeblanco (guilhermeblanco)  
hywan (hywan)  
kalle (kalle)  
klaussilveira (klaussilveira)  
lcobucci (lcobucci)  
lstrojny (lstrojny)  
mariuz (mariuz)  
mbeccati (mbeccati)  
pajoye (pajoye)  
pollita (pollita)  
ramsey (ramsey)  
santiagolizardo (santiagolizardo)  
sebastian (sebastian)  
treffynnon (treffynnon)  
zeev (zeev)  
Final result: 10 9
This poll has been closed.


sapi/phttpd

  • Server last release: not sure, development seems to have ended around 2000
  • Server debian supported: no
  • SAPI status: development incomplete

Comment from the README: THIS IS BY NO MEANS COMPLETE NOR USABLE RIGHT NOW!

Voting

Remove sapi/phttpd from the core
Real name Yes No
ab (ab)  
aharvey (aharvey)  
andi (andi)  
auroraeosrose (auroraeosrose)  
dmitry (dmitry)  
guilhermeblanco (guilhermeblanco)  
hywan (hywan)  
jedibc (jedibc)  
kalle (kalle)  
klaussilveira (klaussilveira)  
lcobucci (lcobucci)  
lstrojny (lstrojny)  
mariuz (mariuz)  
mbeccati (mbeccati)  
pajoye (pajoye)  
pollita (pollita)  
ramsey (ramsey)  
rdlowrey (rdlowrey)  
remi (remi)  
santiagolizardo (santiagolizardo)  
sebastian (sebastian)  
stas (stas)  
thetaphi (thetaphi)  
treffynnon (treffynnon)  
yunosh (yunosh)  
zeev (zeev)  
Final result: 26 0
This poll has been closed.


sapi/pi3web

Voting

Remove sapi/pi3web from the core
Real name Yes No
ab (ab)  
aharvey (aharvey)  
andi (andi)  
auroraeosrose (auroraeosrose)  
dmitry (dmitry)  
guilhermeblanco (guilhermeblanco)  
jedibc (jedibc)  
kalle (kalle)  
klaussilveira (klaussilveira)  
lcobucci (lcobucci)  
lstrojny (lstrojny)  
mariuz (mariuz)  
mbeccati (mbeccati)  
pajoye (pajoye)  
pollita (pollita)  
ramsey (ramsey)  
rdlowrey (rdlowrey)  
remi (remi)  
santiagolizardo (santiagolizardo)  
sebastian (sebastian)  
stas (stas)  
thetaphi (thetaphi)  
treffynnon (treffynnon)  
yunosh (yunosh)  
Final result: 24 0
This poll has been closed.


sapi/roxen

The official documentation http://docs.roxen.com/roxen/5.0/system_developer_manual/languages/php.xml call the only supported mode to be CGI. The SAPI module is called experimental there.

Voting

Remove sapi/roxen from the core
Real name Yes No
ab (ab)  
aharvey (aharvey)  
andi (andi)  
auroraeosrose (auroraeosrose)  
dmitry (dmitry)  
guilhermeblanco (guilhermeblanco)  
hywan (hywan)  
jedibc (jedibc)  
kalle (kalle)  
klaussilveira (klaussilveira)  
lcobucci (lcobucci)  
lstrojny (lstrojny)  
mariuz (mariuz)  
mbeccati (mbeccati)  
pajoye (pajoye)  
pollita (pollita)  
ramsey (ramsey)  
rdlowrey (rdlowrey)  
santiagolizardo (santiagolizardo)  
sebastian (sebastian)  
stas (stas)  
treffynnon (treffynnon)  
yunosh (yunosh)  
Final result: 23 0
This poll has been closed.


sapi/thttpd

The latest thttpd version is 2.26, which builds fine. But when building PHP, there's an error message

“This version only supports thttpd-2.21b and premium thttpd”

But thttpd-2.21b doesn't build anymore, at least at some recent distro i've used. The premium thttpd seems to be a commercial product which isn't available to test with.

Voting

Remove sapi/thttpd from the core
Real name Yes No
ab (ab)  
aharvey (aharvey)  
andi (andi)  
auroraeosrose (auroraeosrose)  
derick (derick)  
dmitry (dmitry)  
guilhermeblanco (guilhermeblanco)  
irker (irker)  
jedibc (jedibc)  
kalle (kalle)  
klaussilveira (klaussilveira)  
lcobucci (lcobucci)  
lstrojny (lstrojny)  
mariuz (mariuz)  
mbeccati (mbeccati)  
pajoye (pajoye)  
pollita (pollita)  
ramsey (ramsey)  
rdlowrey (rdlowrey)  
santiagolizardo (santiagolizardo)  
sebastian (sebastian)  
stas (stas)  
treffynnon (treffynnon)  
yunosh (yunosh)  
zeev (zeev)  
Final result: 25 0
This poll has been closed.


sapi/tux

Voting

Remove sapi/tux from the core
Real name Yes No
ab (ab)  
aharvey (aharvey)  
andi (andi)  
auroraeosrose (auroraeosrose)  
dmitry (dmitry)  
guilhermeblanco (guilhermeblanco)  
hywan (hywan)  
jedibc (jedibc)  
kalle (kalle)  
klaussilveira (klaussilveira)  
lcobucci (lcobucci)  
lstrojny (lstrojny)  
mariuz (mariuz)  
mbeccati (mbeccati)  
pajoye (pajoye)  
pollita (pollita)  
ramsey (ramsey)  
rdlowrey (rdlowrey)  
remi (remi)  
santiagolizardo (santiagolizardo)  
sebastian (sebastian)  
stas (stas)  
thetaphi (thetaphi)  
treffynnon (treffynnon)  
yunosh (yunosh)  
Final result: 25 0
This poll has been closed.


sapi/webjames

Voting

Remove sapi/webjames from the core
Real name Yes No
ab (ab)  
aharvey (aharvey)  
andi (andi)  
auroraeosrose (auroraeosrose)  
dmitry (dmitry)  
guilhermeblanco (guilhermeblanco)  
hywan (hywan)  
jedibc (jedibc)  
kalle (kalle)  
klaussilveira (klaussilveira)  
lcobucci (lcobucci)  
lstrojny (lstrojny)  
mariuz (mariuz)  
mbeccati (mbeccati)  
pajoye (pajoye)  
pollita (pollita)  
ramsey (ramsey)  
rdlowrey (rdlowrey)  
remi (remi)  
santiagolizardo (santiagolizardo)  
sebastian (sebastian)  
stas (stas)  
thetaphi (thetaphi)  
treffynnon (treffynnon)  
yunosh (yunosh)  
Final result: 25 0
This poll has been closed.


sapi/nsapi

The developers of iPlanet @Oracle wrote back, that they're not intended to support this SAPI starting from PHP7 onwards.

However Uwe Schindler wrote back, that he will port and maintaing this SAPI for PHP7.

NOTE: This SAPI was removed from the voting options, because per the current info it's going to be supported for PHP7 in the future.

ext/imap

* Dependency home: http://www.washington.edu/imap/
* Dependency debian supported: yes
* Dependency last release: 2007

Voting

Remove ext/imap from the core
Real name Yes No
ab (ab)  
aharvey (aharvey)  
andi (andi)  
auroraeosrose (auroraeosrose)  
bukka (bukka)  
bwoebi (bwoebi)  
derick (derick)  
dmitry (dmitry)  
fa (fa)  
francois (francois)  
guilhermeblanco (guilhermeblanco)  
hywan (hywan)  
kalle (kalle)  
klaussilveira (klaussilveira)  
krakjoe (krakjoe)  
lcobucci (lcobucci)  
lstrojny (lstrojny)  
mariuz (mariuz)  
mbeccati (mbeccati)  
nikic (nikic)  
olemarkus (olemarkus)  
pajoye (pajoye)  
pollita (pollita)  
ramsey (ramsey)  
remi (remi)  
salathe (salathe)  
santiagolizardo (santiagolizardo)  
sebastian (sebastian)  
stas (stas)  
treffynnon (treffynnon)  
yohgaki (yohgaki)  
yunosh (yunosh)  
zeev (zeev)  
Final result: 14 19
This poll has been closed.


ext/mcrypt

Voting

Remove ext/mcrypt from the core
Real name Yes No
ab (ab)  
aharvey (aharvey)  
andi (andi)  
auroraeosrose (auroraeosrose)  
bukka (bukka)  
derick (derick)  
dmitry (dmitry)  
fa (fa)  
francois (francois)  
guilhermeblanco (guilhermeblanco)  
hywan (hywan)  
ircmaxell (ircmaxell)  
jedibc (jedibc)  
kalle (kalle)  
klaussilveira (klaussilveira)  
krakjoe (krakjoe)  
lcobucci (lcobucci)  
lstrojny (lstrojny)  
mariuz (mariuz)  
mattwil (mattwil)  
mbeccati (mbeccati)  
nikic (nikic)  
olemarkus (olemarkus)  
pajoye (pajoye)  
ramsey (ramsey)  
rdlowrey (rdlowrey)  
remi (remi)  
santiagolizardo (santiagolizardo)  
stas (stas)  
treffynnon (treffynnon)  
yohgaki (yohgaki)  
yunosh (yunosh)  
zeev (zeev)  
Final result: 15 18
This poll has been closed.


ext/interbase

  • Dependency home: not available, firebird can be used
  • Dependency debian supported: yes
  • Dependency last release: 2014

Marius Adrian Popa wrote back about an intention to maintain this further in the core together with ext/pdo_firebird. Right now the ext/interbase is half ported to PHP7 (needs cleaning).

NOTE: This extension was removed from the voting options, because per the current info it's going to be supported for PHP7 in the future.

ext/pdo_oci and ext/oci8

  • Dependency home: oracle.com
  • Dependency debian supported: no
  • Dependency last release: 2014

Christopher Jones stated these extensions to be supported by Oracle. Oracle plans to maintains them further in the core.

NOTE: These extensions was removed from the voting options, because they per the current info are going to be supported for PHP7 in the future.

ext/mssql

  • Dependency home: microsoft.com
  • Dependency debian supported: no
  • Dependency last release: 2014

Voting

Remove ext/mssql from the core
Real name Yes No
ab (ab)  
aharvey (aharvey)  
auroraeosrose (auroraeosrose)  
guilhermeblanco (guilhermeblanco)  
jedibc (jedibc)  
kalle (kalle)  
klaussilveira (klaussilveira)  
krakjoe (krakjoe)  
lcobucci (lcobucci)  
lstrojny (lstrojny)  
mariuz (mariuz)  
mbeccati (mbeccati)  
pajoye (pajoye)  
pollita (pollita)  
ramsey (ramsey)  
rdlowrey (rdlowrey)  
remi (remi)  
santiagolizardo (santiagolizardo)  
stas (stas)  
treffynnon (treffynnon)  
Final result: 17 3
This poll has been closed.


ext/pdo_dblib

  • Dependency home: sybase.com, microsoft.com
  • Dependency debian supported: no
  • Dependency last release: 2014

Voting

Remove ext/pdo_dblib from the core
Real name Yes No
ab (ab)  
aharvey (aharvey)  
andi (andi)  
auroraeosrose (auroraeosrose)  
guilhermeblanco (guilhermeblanco)  
hywan (hywan)  
jedibc (jedibc)  
kalle (kalle)  
klaussilveira (klaussilveira)  
krakjoe (krakjoe)  
lcobucci (lcobucci)  
lstrojny (lstrojny)  
mariuz (mariuz)  
mbeccati (mbeccati)  
pajoye (pajoye)  
pollita (pollita)  
ramsey (ramsey)  
remi (remi)  
santiagolizardo (santiagolizardo)  
thetaphi (thetaphi)  
treffynnon (treffynnon)  
zeev (zeev)  
Final result: 4 18
This poll has been closed.


ext/sybase_ct

  • Dependency home: sybase.com
  • Dependency debian supported: no
  • Dependency last release: 2014

Voting

Remove ext/sybase_ct from the core
Real name Yes No
ab (ab)  
auroraeosrose (auroraeosrose)  
guilhermeblanco (guilhermeblanco)  
jedibc (jedibc)  
kalle (kalle)  
klaussilveira (klaussilveira)  
lcobucci (lcobucci)  
lstrojny (lstrojny)  
mariuz (mariuz)  
mbeccati (mbeccati)  
mrook (mrook)  
pajoye (pajoye)  
pollita (pollita)  
ramsey (ramsey)  
santiagolizardo (santiagolizardo)  
thetaphi (thetaphi)  
treffynnon (treffynnon)  
yohgaki (yohgaki)  
Final result: 17 1
This poll has been closed.


Proposal

The SAPIs listed above should be removed from the source tree. The extensions listed above should be removed from the source tree. Depending on the vote outcome and presence of the maintainers, they could be resurrected in PECL.

Backward Incompatible Changes

None.

Proposed PHP Version(s)

7

SAPIs Impacted

SAPI and extension list in the description.

Impact to Existing Extensions

Unsupported extensions list in the description.

php.ini Defaults

php.ini will have to be checked to remove the unavailable config options, if any.

Open Issues

None.

Future Scope

Should an SAPI or extension come back, the corresponding code is available in the git history.

Voting

The voting options are attached to the corresponding items. The voting starts on 2015-02-02 and ends on 2015-02-09 at 23:00 CET respectively. To be accepted/declined each vote requires 50%+1 acceptance.

Implementation

Implemented in PHP7, see PRE_NATIVE_TLS_MERGE and POST_NATIVE_TLS_MERGE tags.

rfc/removal_of_dead_sapis_and_exts.txt · Last modified: 2015/04/06 23:20 by ab