Skip to content

PHP8 Support - #55

Merged
mdelillo merged 5 commits into
cloudfoundry:mainfrom
dmikusa:main
Dec 18, 2020
Merged

PHP8 Support#55
mdelillo merged 5 commits into
cloudfoundry:mainfrom
dmikusa:main

Conversation

@dmikusa

@dmikusa dmikusa commented Dec 10, 2020

Copy link
Copy Markdown

Adds support to build PHP8 and some other clean up.

Used the attached extensions file. Please see the extensions file as there are comments regarding extensions which do not yet support PHP8.

php8-extensions.zip

To execute, run: ./bin/binary-builder --name=php --version=8.0.0 --sha256=3ed7b48d64357d3e8fa9e828dbe7416228f84105b8290c2f9779cd66be31ea71 --php-extension-file=./php8-extensions.yml. This is slightly different from before as I've consolidated php and php7 into just php for all versions.

Daniel Mikusa added 5 commits December 9, 2020 13:54
- Renamed PHP recipe so it's not version specific
- Removed LibMaxMindRecipe as Ubuntu bionic has a recent enough version
- MaxMindRecipe now based off PeclRecipe as that extension is now available in PECL
- Added PkgConfigLibRecipe base class which can be used as a by recipes installing libraries that support pkg-config. The benefit is that it won't recompile the library if it already exists.
- Removed GeoipRecipe as this is no longer used
- HiredisRecipe, LibSodiumRecipe, LibRdKafkaRecipe, CassandraCppDriverRecipe, and RabbitMQRecipe have all been switched to base off of PkgConfigLibRecipe
- Removed LibmemcachedRecipe as this takes a very long time to compile & the version in Ubuntu bionic is now the most recent one.
- Removed UnixOdbcRecipe as we can now use the version of UnixODBC that ships with Ubuntu bionic
- OdbcRecipe & PdoOdbcRecipe have been switched to use version of UnixODBC bundled with Ubuntu bionic
- PsrRecipe & PhalconRecipe have been removed as these extension are available on PECL now so they can be build with the standard PeclRecipe
- Added EnchantFakePecl recipe as we need a patch to make enchant extension compile under PHP8. It is not needed for PHP7.x.
- Don't delete PHP build files when packaging up the archive
@dmikusa

dmikusa commented Dec 10, 2020

Copy link
Copy Markdown
Author

I hacked together a little example to try loading all of the extensions and it seems to work. The SNMP errors have always been present. Not sure what's up with YAF, that might be something that needs to be fixed with PHP8, but they seem to be just warnings. Otherwise, everything seems to load with is a good sign.

# php -c php/etc -m
MIB search path: /root/.snmp/mibs:/usr/share/snmp/mibs:/usr/share/snmp/mibs/iana:/usr/share/snmp/mibs/ietf:/usr/share/mibs/site:/usr/share/snmp/mibs:/usr/share/mibs/iana:/usr/share/mibs/ietf:/usr/share/mibs/netsnmp
Cannot find module (SNMPv2-MIB): At line 0 in (none)
Cannot find module (IF-MIB): At line 0 in (none)
Cannot find module (IP-MIB): At line 0 in (none)
Cannot find module (TCP-MIB): At line 0 in (none)
Cannot find module (UDP-MIB): At line 0 in (none)
Cannot find module (HOST-RESOURCES-MIB): At line 0 in (none)
Cannot find module (NOTIFICATION-LOG-MIB): At line 0 in (none)
Cannot find module (DISMAN-EVENT-MIB): At line 0 in (none)
Cannot find module (DISMAN-SCHEDULE-MIB): At line 0 in (none)
Cannot find module (HOST-RESOURCES-TYPES): At line 0 in (none)
Cannot find module (MTA-MIB): At line 0 in (none)
Cannot find module (NETWORK-SERVICES-MIB): At line 0 in (none)
Cannot find module (UCD-DISKIO-MIB): At line 0 in (none)
Cannot find module (UCD-DLMOD-MIB): At line 0 in (none)
Cannot find module (LM-SENSORS-MIB): At line 0 in (none)
Cannot find module (UCD-SNMP-MIB): At line 0 in (none)
Cannot find module (UCD-DEMO-MIB): At line 0 in (none)
Cannot find module (SNMP-TARGET-MIB): At line 0 in (none)
Cannot find module (NET-SNMP-AGENT-MIB): At line 0 in (none)
Cannot find module (SNMP-MPD-MIB): At line 0 in (none)
Cannot find module (SNMP-USER-BASED-SM-MIB): At line 0 in (none)
Cannot find module (SNMP-FRAMEWORK-MIB): At line 0 in (none)
Cannot find module (SNMP-VIEW-BASED-ACM-MIB): At line 0 in (none)
Cannot find module (SNMP-COMMUNITY-MIB): At line 0 in (none)
Cannot find module (IPV6-ICMP-MIB): At line 0 in (none)
Cannot find module (IPV6-MIB): At line 0 in (none)
Cannot find module (IPV6-TCP-MIB): At line 0 in (none)
Cannot find module (IPV6-UDP-MIB): At line 0 in (none)
Cannot find module (IP-FORWARD-MIB): At line 0 in (none)
Cannot find module (NET-SNMP-PASS-MIB): At line 0 in (none)
Cannot find module (NET-SNMP-EXTEND-MIB): At line 0 in (none)
Cannot find module (SNMP-NOTIFICATION-MIB): At line 0 in (none)
Cannot find module (SNMPv2-TM): At line 0 in (none)
Cannot find module (NET-SNMP-VACM-MIB): At line 0 in (none)
PHP Warning:  Missing arginfo for Yaf_Dispatcher::__construct() in Unknown on line 0
PHP Warning:  Missing arginfo for Yaf_Request_Http::__construct() in Unknown on line 0
PHP Warning:  Missing arginfo for Yaf_Request_Simple::__construct() in Unknown on line 0
PHP Warning:  Missing arginfo for Yaf_Request_Simple::isXmlHttpRequest() in Unknown on line 0
PHP Warning:  Missing arginfo for Yaf_Response_Abstract::__toString() in Unknown on line 0
PHP Warning:  Missing arginfo for Yaf_Action_Abstract::execute() in Unknown on line 0
PHP Warning:  Missing arginfo for Yaf_Action_Abstract::getController() in Unknown on line 0
PHP Warning:  Missing arginfo for Yaf_Action_Abstract::getControllerName() in Unknown on line 0
PHP Warning:  Missing arginfo for Yaf_Router::addRoute() in Unknown on line 0
PHP Warning:  Missing arginfo for Yaf_Router::addConfig() in Unknown on line 0
PHP Warning:  Missing arginfo for Yaf_Router::route() in Unknown on line 0
PHP Warning:  Missing arginfo for Yaf_Registry::__construct() in Unknown on line 0
PHP Warning:  Missing arginfo for Yaf_Session::__construct() in Unknown on line 0
[PHP Modules]
apcu
bcmath
bz2
calendar
Core
ctype
curl
date
dba
dom
enchant
exif
fileinfo
filter
ftp
gd
gettext
gmp
hash
iconv
igbinary
imap
intl
json
ldap
libxml
lzf
mailparse
maxminddb
mbstring
memcached
mongodb
msgpack
mysqli
mysqlnd
OAuth
odbc
openssl
pcntl
pcre
PDO
PDO_Firebird
pdo_mysql
PDO_ODBC
pdo_pgsql
pdo_sqlite
pdo_sqlsrv
pgsql
Phar
phpiredis
posix
pspell
psr
readline
redis
Reflection
session
shmop
SimpleXML
snmp
soap
sockets
sodium
solr
SPL
sqlite3
sqlsrv
standard
sysvmsg
sysvsem
sysvshm
tidy
tokenizer
xdebug
xml
xmlreader
xmlwriter
xsl
yaf
yaml
Zend OPcache
zip
zlib

[Zend Modules]
Xdebug
Zend OPcache

@dmikusa

dmikusa commented Dec 10, 2020

Copy link
Copy Markdown
Author

Test with PHP 7.4 went well. Here's the extensions YAML that worked for me.
php74-extensions.yml.zip

@mdelillo
mdelillo merged commit 67d5155 into cloudfoundry:main Dec 18, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants