From b1d4c97db4534da436aa1886290b01a41041b42d Mon Sep 17 00:00:00 2001 From: cytopia Date: Fri, 11 Jan 2019 00:21:13 +0100 Subject: [PATCH] Add Foreign Function Interface to PHP 7.4 --- Dockerfiles/mods/Dockerfile-7.4 | 18 ++++++++++++++++++ README.md | 2 +- build/ansible/group_vars/all.yml | 15 +++++++++++++++ 3 files changed, 34 insertions(+), 1 deletion(-) diff --git a/Dockerfiles/mods/Dockerfile-7.4 b/Dockerfiles/mods/Dockerfile-7.4 index cda3816c..89ac6a29 100644 --- a/Dockerfiles/mods/Dockerfile-7.4 +++ b/Dockerfiles/mods/Dockerfile-7.4 @@ -29,6 +29,7 @@ ENV BUILD_DEPS \ libenchant-dev \ libevent-dev \ libfbclient2 \ + libffi-dev \ libfreetype6-dev \ libgmp-dev \ libhiredis-dev \ @@ -65,6 +66,7 @@ ENV RUN_DEPS \ libc-client2007e \ libenchant1c2a \ libfbclient2 \ + libffi6 \ libfreetype6 \ libhiredis0.13 \ libicu57 \ @@ -126,6 +128,20 @@ RUN set -x \ && (rm -rf /usr/local/lib/php/test/exif || true) \ && (rm -rf /usr/local/lib/php/doc/exif || true) \ \ +# ---- Installing PHP Extension: ffi ---- + && git clone https://github.com/dstogov/php-ffi /tmp/ffi \ + && cd /tmp/ffi \ + && curl -sS -O https://github.com/fpoirotte/php-ffi/commit/734630fe3d2e3efd343d3f3636b58446abd9c941.diff \ +&& git apply 734630fe3d2e3efd343d3f3636b58446abd9c941.diff \ +&& phpize \ +&& ./configure --with-ffi \ +&& make -j$(getconf _NPROCESSORS_ONLN) \ +&& make install \ + \ + && docker-php-ext-enable ffi \ + && (rm -rf /usr/local/lib/php/test/ffi || true) \ + && (rm -rf /usr/local/lib/php/doc/ffi || true) \ + \ # ---- Installing PHP Extension: gd ---- && ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \ && /usr/local/bin/docker-php-ext-configure gd --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv \ @@ -444,6 +460,8 @@ RUN set -x \ && php-fpm -m | grep -oiE '^enchant$' \ && php -m | grep -oiE '^exif$' \ && php-fpm -m | grep -oiE '^exif$' \ + && php -m | grep -oiE '^ffi$' \ + && php-fpm -m | grep -oiE '^ffi$' \ && php -m | grep -oiE '^fileinfo$' \ && php-fpm -m | grep -oiE '^fileinfo$' \ && php -m | grep -oiE '^filter$' \ diff --git a/README.md b/README.md index f8743a60..d9f765c0 100644 --- a/README.md +++ b/README.md @@ -571,7 +571,7 @@ Check out this table to see which Docker image provides what PHP modules. 7.4 Core, ctype, curl, date, dom, fileinfo, filter, ftp, hash, iconv, json, libxml, mbstring, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, Reflection, session, SimpleXML, sodium, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib - bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imap, interbase, intl, json, ldap, libxml, mbstring, memcached, mongodb, mysqli, mysqlnd, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pgsql, Phar, posix, pspell, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib + bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, FFI, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imap, interbase, intl, json, ldap, libxml, mbstring, memcached, mongodb, mysqli, mysqlnd, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pgsql, Phar, posix, pspell, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib diff --git a/build/ansible/group_vars/all.yml b/build/ansible/group_vars/all.yml index 167ed34e..2aecb523 100644 --- a/build/ansible/group_vars/all.yml +++ b/build/ansible/group_vars/all.yml @@ -710,6 +710,7 @@ extensions_enabled: - dom - enchant - exif + - ffi - fileinfo - filter - ftp @@ -896,6 +897,20 @@ extensions_available: exif: all: type: builtin + ffi: + disabled: [5.2, 5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3] + all: + type: git + git_url: https://github.com/dstogov/php-ffi + command: | + curl -sS -O https://github.com/fpoirotte/php-ffi/commit/734630fe3d2e3efd343d3f3636b58446abd9c941.diff \ + && git apply 734630fe3d2e3efd343d3f3636b58446abd9c941.diff \ + && phpize \ + && ./configure --with-ffi \ + && make -j$(getconf _NPROCESSORS_ONLN) \ + && make install \ + build_dep: [libffi-dev] + run_dep: [libffi6] fileinfo: already_avail: [5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4] 5.2: