diff --git a/build/ansible/CONFIGURATIONS/php-fpm.conf.j2 b/.ansible/CONFIGURATIONS/php-fpm.conf.j2 similarity index 100% rename from build/ansible/CONFIGURATIONS/php-fpm.conf.j2 rename to .ansible/CONFIGURATIONS/php-fpm.conf.j2 diff --git a/build/ansible/CONFIGURATIONS/php.ini.j2 b/.ansible/CONFIGURATIONS/php.ini.j2 similarity index 100% rename from build/ansible/CONFIGURATIONS/php.ini.j2 rename to .ansible/CONFIGURATIONS/php.ini.j2 diff --git a/build/ansible/DOCKERFILES/Dockerfile-base.j2 b/.ansible/DOCKERFILES/Dockerfile-base.j2 similarity index 100% rename from build/ansible/DOCKERFILES/Dockerfile-base.j2 rename to .ansible/DOCKERFILES/Dockerfile-base.j2 diff --git a/build/ansible/DOCKERFILES/Dockerfile-mods.j2 b/.ansible/DOCKERFILES/Dockerfile-mods.j2 similarity index 100% rename from build/ansible/DOCKERFILES/Dockerfile-mods.j2 rename to .ansible/DOCKERFILES/Dockerfile-mods.j2 diff --git a/build/ansible/DOCKERFILES/Dockerfile-prod.j2 b/.ansible/DOCKERFILES/Dockerfile-prod.j2 similarity index 100% rename from build/ansible/DOCKERFILES/Dockerfile-prod.j2 rename to .ansible/DOCKERFILES/Dockerfile-prod.j2 diff --git a/build/ansible/DOCKERFILES/Dockerfile-work.j2 b/.ansible/DOCKERFILES/Dockerfile-work.j2 similarity index 100% rename from build/ansible/DOCKERFILES/Dockerfile-work.j2 rename to .ansible/DOCKERFILES/Dockerfile-work.j2 diff --git a/build/ansible/README.md b/.ansible/README.md similarity index 100% rename from build/ansible/README.md rename to .ansible/README.md diff --git a/build/ansible/ansible.cfg b/.ansible/ansible.cfg similarity index 55% rename from build/ansible/ansible.cfg rename to .ansible/ansible.cfg index 5831c61..23aad46 100644 --- a/build/ansible/ansible.cfg +++ b/.ansible/ansible.cfg @@ -1,3 +1,3 @@ [defaults] roles_path = ./roles -inventory = inventory +inventory = inventory.ini diff --git a/build/ansible/generate.yml b/.ansible/generate.yml similarity index 100% rename from build/ansible/generate.yml rename to .ansible/generate.yml diff --git a/build/ansible/group_vars/all/all-ansible.yml b/.ansible/group_vars/all/all-ansible.yml similarity index 68% rename from build/ansible/group_vars/all/all-ansible.yml rename to .ansible/group_vars/all/all-ansible.yml index 6ab6f73..69a7644 100644 --- a/build/ansible/group_vars/all/all-ansible.yml +++ b/.ansible/group_vars/all/all-ansible.yml @@ -3,10 +3,10 @@ # Ansible specific definitions ################################################################################################### -edit_comment_base: "# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead." -edit_comment_mods: "# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead." -edit_comment_prod: "# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead." -edit_comment_work: "# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead." +edit_comment_base: "# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead." +edit_comment_mods: "# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead." +edit_comment_prod: "# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-prod.j2 instead." +edit_comment_work: "# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-work.j2 instead." # ------------------------------------------------------------------------------------------------- @@ -42,13 +42,13 @@ php_all_versions: # ------------------------------------------------------------------------------------------------- template_dockerfiles: - src: DOCKERFILES/Dockerfile-base.j2 - dst: "../../Dockerfiles/base/Dockerfile-{{ php_version }}" + dst: "../Dockerfiles/base/Dockerfile-{{ php_version }}" - src: DOCKERFILES/Dockerfile-mods.j2 - dst: "../../Dockerfiles/mods/Dockerfile-{{ php_version }}" + dst: "../Dockerfiles/mods/Dockerfile-{{ php_version }}" - src: DOCKERFILES/Dockerfile-prod.j2 - dst: "../../Dockerfiles/prod/Dockerfile-{{ php_version }}" + dst: "../Dockerfiles/prod/Dockerfile-{{ php_version }}" - src: DOCKERFILES/Dockerfile-work.j2 - dst: "../../Dockerfiles/work/Dockerfile-{{ php_version }}" + dst: "../Dockerfiles/work/Dockerfile-{{ php_version }}" # ------------------------------------------------------------------------------------------------- @@ -57,23 +57,23 @@ template_dockerfiles: template_configurations: # php.ini - src: CONFIGURATIONS/php.ini.j2 - dst: "../../Dockerfiles/base/data/php-ini.d/php-{{ php_version }}.ini" + dst: "../Dockerfiles/base/data/php-ini.d/php-{{ php_version }}.ini" cfg: "{{ php_settings_ini }}" key: base alt: base - src: CONFIGURATIONS/php.ini.j2 - dst: "../../Dockerfiles/work/data/php-ini.d/php-{{ php_version }}.ini" + dst: "../Dockerfiles/work/data/php-ini.d/php-{{ php_version }}.ini" cfg: "{{ php_settings_ini }}" key: work alt: base # Alternative key to use when definition is not set in 'work' # php-fpm.conf - src: CONFIGURATIONS/php-fpm.conf.j2 - dst: "../../Dockerfiles/base/data/php-fpm.conf/php-fpm-{{ php_version }}.conf" + dst: "../Dockerfiles/base/data/php-fpm.conf/php-fpm-{{ php_version }}.conf" cfg: "{{ php_settings_fpm }}" key: base alt: base - src: CONFIGURATIONS/php-fpm.conf.j2 - dst: "../../Dockerfiles/work/data/php-fpm.conf/php-fpm-{{ php_version }}.conf" + dst: "../Dockerfiles/work/data/php-fpm.conf/php-fpm-{{ php_version }}.conf" cfg: "{{ php_settings_fpm }}" key: work alt: base diff --git a/build/ansible/group_vars/all/all-php-settings.yml b/.ansible/group_vars/all/all-php-settings.yml similarity index 100% rename from build/ansible/group_vars/all/all-php-settings.yml rename to .ansible/group_vars/all/all-php-settings.yml diff --git a/build/ansible/group_vars/all/mods.yml b/.ansible/group_vars/all/mods.yml similarity index 76% rename from build/ansible/group_vars/all/mods.yml rename to .ansible/group_vars/all/mods.yml index 0edf4a9..c132fd9 100644 --- a/build/ansible/group_vars/all/mods.yml +++ b/.ansible/group_vars/all/mods.yml @@ -1,20 +1,11 @@ --- -################################################################################################### -# Docker: mods -################################################################################################### -# -# This file holds definition for all devibox/php-fpm:x.y-mods images -# +# DO NOT ALTER THIS FILE - IT IS AUTOGENERATED. - -# ------------------------------------------------------------------------------------------------- -# Extensions to enable (in defined order) -# ------------------------------------------------------------------------------------------------- +# The following specifies the order in which modules are being built. extensions_enabled: - # ioncube must be loaded first - - ioncube - amqp + - apc - apcu - bcmath - blackfire @@ -22,9 +13,13 @@ extensions_enabled: - calendar - ctype - curl + - date - dba + - libxml - dom - enchant + - ereg + - mbstring - exif - ffi - fileinfo @@ -40,14 +35,14 @@ extensions_enabled: - imap - interbase - intl + - ioncube - json - ldap - - libxml - - mbstring + - lz4 + - lzf - mcrypt - - msgpack - memcache - # requires igbinary and msgpack to be installed + - msgpack - memcached - mhash - mongo @@ -55,13 +50,13 @@ extensions_enabled: - mysql - mysqli - mysqlnd + - pcre - oauth - oci8 - odbc - opcache - openssl - pcntl - - pcre - pdo - pdo_dblib - pdo_firebird @@ -73,16 +68,19 @@ extensions_enabled: - pdo_sqlsrv - pgsql - psr - # requires psr to be installed + - zstd + - redis + - sqlite3 + - sqlsrv - phalcon - phar - posix - pspell + - random + - rdkafka - readline - recode - - redis - reflection - - rdkafka - session - shmop - simplexml @@ -92,8 +90,11 @@ extensions_enabled: - sodium - solr - spl - - sqlsrv + - sqlite - ssh2 + - xml + - zip + - swoole - sysvmsg - sysvsem - sysvshm @@ -104,88 +105,61 @@ extensions_enabled: - vips - wddx - xdebug - - xml + - xlswriter - xmlreader - xmlrpc - xmlwriter - xsl - - xlswriter - yaml - - zip - # Swoole requires php-json, php-sockets, php-curl, php-mysql (and others) to be installed - # https://openswoole.com/docs/get-started/prerequisites#php-extensions - - swoole + - zlib -# ------------------------------------------------------------------------------------------------- -# Extension definition -# ------------------------------------------------------------------------------------------------- - -# all: is generic version of defines -# 7.2: is specific version of defines -# disabled: [optional] Array of PHP versions for which to disable this module -# already_avail: [optional] Array of PHP versions for which we don't install the module, but -# the dependencies, as it is already loaded by core -# -# all, 7.2, 7.1, 7.0, 5.6, 5.5, 5.4: -# pre: [optional] Run command before anything else -# post: [optional] Run command after anything else (builder and final image) -# build_dep: [optional] Array of build dependencies -# run_dep: [optional] Array of run-time dependencies -# type: [required] One of 'builtin', 'pecl' or 'git' -# -# type: builtin -# configure: [optional] Add './configure' arguments -# type: pecl -# version: [optional] Pecl packet version -# command: [optional] Overwrite pecl command (pecl install ext) -# type: git -# git_url: [required] Git repository URL -# git_ref: [optional] Tag, branch, commit to checkout -# configure: [optional] Add './configure' arguments -# command: [optional] Overwrite default command (phpize && ./configure && make && make install) -# type: custom -# command: [required] Custom command to install and enable a module +# The following specifies how modules are being built. extensions_available: amqp: - 5.2: - type: pecl - version: 1.6.1 - run_dep: [librabbitmq1] - 5.3: - type: pecl - version: 1.9.3 - run_dep: [librabbitmq1] - 5.4: - type: pecl - version: 1.9.3 - run_dep: [librabbitmq1] - 5.5: - type: pecl - version: 1.9.3 - run_dep: [librabbitmq1] + disabled: [] all: type: pecl command: echo "/usr" | pecl install amqp build_dep: [librabbitmq-dev] run_dep: [librabbitmq4] - apcu: - disabled: [5.2] + 5.5: + type: pecl + version: 1.9.3 + run_dep: [librabbitmq1] + 5.4: + type: pecl + version: 1.9.3 + run_dep: [librabbitmq1] 5.3: type: pecl - version: 4.0.11 - 5.4: + version: 1.9.3 + run_dep: [librabbitmq1] + 5.2: + type: pecl + version: 1.6.1 + run_dep: [librabbitmq1] + apc: + disabled: [5.2, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2] + already_avail: "{{ php_all_versions }}" + apcu: + disabled: [5.2] + all: + type: pecl + 5.6: type: pecl version: 4.0.11 5.5: type: pecl version: 4.0.11 - 5.6: + 5.4: type: pecl version: 4.0.11 - all: + 5.3: type: pecl + version: 4.0.11 bcmath: + disabled: [] all: type: builtin blackfire: @@ -200,78 +174,140 @@ extensions_available: && mv /tmp/blackfire/blackfire-*.so $(php -r "echo ini_get('extension_dir');")/blackfire.so \ && rm -rf /tmp/blackfire /tmp/blackfire-probe.tar.gz \ bz2: + disabled: [] all: type: builtin build_dep: [libbz2-dev] calendar: + disabled: [] all: type: builtin ctype: + disabled: [] already_avail: "{{ php_all_versions }}" curl: + disabled: [] + already_avail: "{{ php_all_versions }}" + date: + disabled: [] already_avail: "{{ php_all_versions }}" dba: + disabled: [] all: type: builtin + libxml: + disabled: [] + already_avail: "{{ php_all_versions }}" dom: + disabled: [] already_avail: "{{ php_all_versions }}" enchant: disabled: [7.3, 7.4] - 5.2: - type: pecl - command: echo "/usr" | pecl install enchant - build_dep: [libenchant-dev] - run_dep: [libenchant1c2a] - 5.3: - build_dep: [libenchant-dev] - run_dep: [libenchant1c2a] - 5.4: - build_dep: [libenchant-dev] - run_dep: [libenchant1c2a] - 5.5: - build_dep: [libenchant-dev] - run_dep: [libenchant1c2a] - 5.6: - build_dep: [libenchant-dev] - run_dep: [libenchant1c2a] - 7.0: + all: + type: builtin + build_dep: [libenchant-2-dev] + run_dep: [libenchant-2-2] + 7.2: build_dep: [libenchant-dev] run_dep: [libenchant1c2a] 7.1: build_dep: [libenchant-dev] run_dep: [libenchant1c2a] - 7.2: + 7.0: build_dep: [libenchant-dev] run_dep: [libenchant1c2a] - # https://www.php.net/manual/en/enchant.requirements.php - # 7.3: requires enchant 1, but not avail via apt install - # 7.4: requires enchant 1, but not avail via apt install - all: - type: builtin - build_dep: [libenchant-2-dev] - run_dep: [libenchant-2-2] + 5.6: + build_dep: [libenchant-dev] + run_dep: [libenchant1c2a] + 5.5: + build_dep: [libenchant-dev] + run_dep: [libenchant1c2a] + 5.4: + build_dep: [libenchant-dev] + run_dep: [libenchant1c2a] + 5.3: + build_dep: [libenchant-dev] + run_dep: [libenchant1c2a] + 5.2: + type: pecl + command: echo "/usr" | pecl install enchant + build_dep: [libenchant-dev] + run_dep: [libenchant1c2a] + ereg: + disabled: [5.2, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2] + already_avail: "{{ php_all_versions }}" + mbstring: + disabled: [] + already_avail: "{{ php_all_versions }}" # Available by default exif: + disabled: [] all: type: builtin ffi: - already_avail: [8.0, 8.1, 8.2] disabled: [5.2, 5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3] + already_avail: [8.0, 8.1, 8.2] all: type: builtin build_dep: [libffi-dev] run_dep: [libffi7] fileinfo: + disabled: [] already_avail: [5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2] 5.2: type: pecl build_dep: [libmagic-dev] run_dep: [libmagic1] filter: - already_avail: "{{ php_all_versions }}" # Available by default + disabled: [] + already_avail: "{{ php_all_versions }}" ftp: - already_avail: "{{ php_all_versions }}" # Available by default + disabled: [] + already_avail: "{{ php_all_versions }}" gd: - 5.2: + disabled: [] + all: + type: builtin + pre: ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ + configure: --with-gd --with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-native-ttf + build_dep: [libpng-dev, libjpeg-dev, libxpm-dev, libvpx-dev, zlib1g-dev, libfreetype6-dev, libwebp-dev] + run_dep: [libpng16-16, libjpeg62-turbo, libxpm4, libvpx6, libfreetype6, libwebp6] + 8.2: + type: builtin + configure: --enable-gd --with-webp --with-jpeg --with-xpm --with-freetype --with-avif + build_dep: [libpng-dev, libjpeg-dev, libxpm-dev, libvpx-dev, zlib1g-dev, libfreetype6-dev, libwebp-dev, libavif-dev] + run_dep: [libpng16-16, libjpeg62-turbo, libxpm4, libvpx6, libfreetype6, libwebp6, libavif9] + 8.1: + type: builtin + configure: --enable-gd --with-webp --with-jpeg --with-xpm --with-freetype --with-avif + build_dep: [libpng-dev, libjpeg-dev, libxpm-dev, libvpx-dev, zlib1g-dev, libfreetype6-dev, libwebp-dev, libavif-dev] + run_dep: [libpng16-16, libjpeg62-turbo, libxpm4, libvpx6, libfreetype6, libwebp6, libavif9] + 8.0: + type: builtin + configure: --enable-gd --with-webp --with-jpeg --with-xpm --with-freetype + 7.4: + type: builtin + configure: --enable-gd --with-webp --with-jpeg --with-xpm --with-freetype + 7.3: + type: builtin + configure: --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 + 7.2: + type: builtin + configure: --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 + run_dep: [libpng16-16, libjpeg62-turbo, libxpm4, libvpx5, libfreetype6, libwebp6] + 7.1: + type: builtin + configure: --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-native-ttf + run_dep: [libpng16-16, libjpeg62-turbo, libxpm4, libvpx5, libfreetype6, libwebp6] + 7.0: + type: builtin + configure: --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-native-ttf + run_dep: [libpng16-16, libjpeg62-turbo, libxpm4, libvpx4, libfreetype6, libwebp6] + 5.6: + type: builtin + pre: ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ + configure: --with-gd --with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-native-ttf + run_dep: [libpng16-16, libjpeg62-turbo, libxpm4, libvpx4, libfreetype6, libwebp6] + 5.5: type: builtin pre: | ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libjpeg.* /usr/lib/ && \ @@ -279,17 +315,7 @@ extensions_available: ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ && \ mkdir /usr/include/freetype2/freetype && \ ln -s /usr/include/freetype2/freetype.h /usr/include/freetype2/freetype/freetype.h \ - configure: --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-native-ttf - run_dep: [libpng12-0, libjpeg62-turbo, libxpm4, libvpx1, libfreetype6, libwebp5] - 5.3: - type: builtin - pre: | - ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libjpeg.* /usr/lib/ && \ - ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libpng.* /usr/lib/ && \ - ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ && \ - mkdir /usr/include/freetype2/freetype && \ - ln -s /usr/include/freetype2/freetype.h /usr/include/freetype2/freetype/freetype.h \ - configure: --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-native-ttf + configure: --with-gd --with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-native-ttf run_dep: [libpng12-0, libjpeg62-turbo, libxpm4, libvpx1, libfreetype6, libwebp5] 5.4: type: builtin @@ -301,7 +327,7 @@ extensions_available: ln -s /usr/include/freetype2/freetype.h /usr/include/freetype2/freetype/freetype.h \ configure: --with-gd --with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-native-ttf run_dep: [libpng12-0, libjpeg62-turbo, libxpm4, libvpx1, libfreetype6, libwebp5] - 5.5: + 5.3: type: builtin pre: | ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libjpeg.* /usr/lib/ && \ @@ -309,51 +335,20 @@ extensions_available: ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ && \ mkdir /usr/include/freetype2/freetype && \ ln -s /usr/include/freetype2/freetype.h /usr/include/freetype2/freetype/freetype.h \ - configure: --with-gd --with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-native-ttf + configure: --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-native-ttf run_dep: [libpng12-0, libjpeg62-turbo, libxpm4, libvpx1, libfreetype6, libwebp5] - 5.6: + 5.2: type: builtin - pre: ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ - configure: --with-gd --with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-native-ttf - run_dep: [libpng16-16, libjpeg62-turbo, libxpm4, libvpx4, libfreetype6, libwebp6] - 7.0: - type: builtin - configure: --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-native-ttf - run_dep: [libpng16-16, libjpeg62-turbo, libxpm4, libvpx4, libfreetype6, libwebp6] - 7.1: - type: builtin - configure: --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-native-ttf - run_dep: [libpng16-16, libjpeg62-turbo, libxpm4, libvpx5, libfreetype6, libwebp6] - 7.2: - type: builtin - configure: --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 - run_dep: [libpng16-16, libjpeg62-turbo, libxpm4, libvpx5, libfreetype6, libwebp6] - 7.3: - type: builtin - configure: --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 - 7.4: - type: builtin - configure: --enable-gd --with-webp --with-jpeg --with-xpm --with-freetype - 8.0: - type: builtin - configure: --enable-gd --with-webp --with-jpeg --with-xpm --with-freetype - 8.1: - type: builtin - configure: --enable-gd --with-webp --with-jpeg --with-xpm --with-freetype --with-avif - build_dep: [libpng-dev, libjpeg-dev, libxpm-dev, libvpx-dev, zlib1g-dev, libfreetype6-dev, libwebp-dev, libavif-dev] - run_dep: [libpng16-16, libjpeg62-turbo, libxpm4, libvpx6, libfreetype6, libwebp6, libavif9] - 8.2: - type: builtin - configure: --enable-gd --with-webp --with-jpeg --with-xpm --with-freetype --with-avif - build_dep: [libpng-dev, libjpeg-dev, libxpm-dev, libvpx-dev, zlib1g-dev, libfreetype6-dev, libwebp-dev, libavif-dev] - run_dep: [libpng16-16, libjpeg62-turbo, libxpm4, libvpx6, libfreetype6, libwebp6, libavif9] - all: - type: builtin - pre: ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ - configure: --with-gd --with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-native-ttf - build_dep: [libpng-dev, libjpeg-dev, libxpm-dev, libvpx-dev, zlib1g-dev, libfreetype6-dev, libwebp-dev] - run_dep: [libpng16-16, libjpeg62-turbo, libxpm4, libvpx6, libfreetype6, libwebp6] + pre: | + ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libjpeg.* /usr/lib/ && \ + ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libpng.* /usr/lib/ && \ + ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ && \ + mkdir /usr/include/freetype2/freetype && \ + ln -s /usr/include/freetype2/freetype.h /usr/include/freetype2/freetype/freetype.h \ + configure: --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-native-ttf + run_dep: [libpng12-0, libjpeg62-turbo, libxpm4, libvpx1, libfreetype6, libwebp5] gettext: + disabled: [] all: type: builtin gmp: @@ -362,39 +357,34 @@ extensions_available: type: builtin pre: ln /usr/include/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/gmp.h /usr/include/ build_dep: [libgmp-dev] + run_dep: [] # TODO: Ensure to add libgmp10 to each of the versions hash: + disabled: [] already_avail: "{{ php_all_versions }}" iconv: + disabled: [] already_avail: "{{ php_all_versions }}" igbinary: - 5.2: + disabled: [] + all: type: pecl - version: 2.0.7 - 5.3: + 5.6: + type: pecl + version: 2.0.8 + 5.5: type: pecl version: 2.0.8 5.4: type: pecl version: 2.0.8 - 5.5: + 5.3: type: pecl version: 2.0.8 - 5.6: - type: pecl - version: 2.0.8 - all: + 5.2: type: pecl + version: 2.0.7 imagick: - disabled: [5.2, 5.3, 5.4] # Only available since 5.3. 5.3 and 5.4 segfaults - 5.5: - type: pecl - run_dep: [libmagickwand-6.q16-2, libwebp5, ghostscript] - 5.6: - type: pecl - run_dep: [libmagickwand-6.q16-3, libwebp6, ghostscript] - 7.0: - type: pecl - run_dep: [libmagickwand-6.q16-3, libwebp6, ghostscript] + disabled: [5.2, 5.3, 5.4] all: type: pecl build_dep: [libmagickwand-dev, libwebp-dev, ghostscript] @@ -411,6 +401,15 @@ extensions_available: && sed -i'' 's|.*= 7.2.0, version <= 8.1.0, excluded versions: 8.1.0 - disabled: [8.1, 8.2] - 5.2: - type: builtin - 5.3: - type: builtin - 5.4: - type: builtin - 5.5: - type: builtin - 5.6: - type: builtin - 7.0: - type: builtin - 7.1: - type: builtin + lz4: + disabled: [5.2, 5.3, 5.4, 5.5, 5.6] + all: + type: git + git_url: https://github.com/kjdev/php-ext-lz4 + git_ref: $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) + configure: --enable-lz4 --with-lz4-includedir=/usr + build_dep: [liblz4-dev] + run_dep: [liblz4-1] + lzf: + disabled: [5.2, 5.3, 5.4, 5.5, 5.6] + all: + type: pecl + build_dep: [liblzf-dev] + run_dep: [liblzf1] 7.2: type: pecl - version: 1.0.1 - 7.3: + build_dep: [] + run_dep: [] + 7.1: type: pecl - version: 1.0.2 + version: 1.6.8 + build_dep: [] + run_dep: [] + 7.0: + type: pecl + version: 1.6.8 + build_dep: [] + run_dep: [] + mcrypt: + disabled: [8.1, 8.2] all: type: pecl run_dep: [libmcrypt4] build_dep: [libmcrypt-dev] - memcache: - 5.2: + 7.3: type: pecl - version: 2.2.7 - 5.3: - type: pecl - version: 2.2.7 - 5.4: - type: pecl - version: 2.2.7 - 5.5: - type: pecl - version: 2.2.7 - 5.6: - type: pecl - version: 2.2.7 - 7.0: - type: pecl - version: 4.0.5.2 - 7.1: - type: pecl - version: 4.0.5.2 + version: 1.0.2 7.2: + type: pecl + version: 1.0.1 + 7.1: + type: builtin + 7.0: + type: builtin + 5.6: + type: builtin + 5.5: + type: builtin + 5.4: + type: builtin + 5.3: + type: builtin + 5.2: + type: builtin + memcache: + disabled: [] + all: + type: pecl + build_dep: [zlib1g-dev] + 7.4: type: pecl version: 4.0.5.2 7.3: type: pecl version: 4.0.5.2 - 7.4: - type: pecl - version: 4.0.5.2 - all: - type: pecl - build_dep: [zlib1g-dev] - memcached: - 5.2: - type: pecl - version: 2.1.0 - run_dep: [libmemcachedutil2, libevent-2.0-5] - 5.3: - type: pecl - version: 2.2.0 - run_dep: [libmemcachedutil2, libevent-2.0-5] - 5.4: - type: pecl - version: 2.2.0 - run_dep: [libmemcachedutil2, libevent-2.0-5] - 5.5: - type: pecl - version: 2.2.0 - run_dep: [libmemcachedutil2, libevent-2.0-5] - 5.6: - type: pecl - version: 2.2.0 - run_dep: [libmemcachedutil2, libevent-2.0-5] - 7.0: - type: pecl - command: printf "\n\n\nyes\nyes\nyes\n" | pecl install memcached - run_dep: [libmemcachedutil2, libevent-2.0-5] - 7.1: - type: pecl - command: printf "\n\n\nyes\nyes\nyes\n" | pecl install memcached - run_dep: [libmemcachedutil2, libevent-2.1-6] 7.2: + type: pecl + version: 4.0.5.2 + 7.1: + type: pecl + version: 4.0.5.2 + 7.0: + type: pecl + version: 4.0.5.2 + 5.6: + type: pecl + version: 2.2.7 + 5.5: + type: pecl + version: 2.2.7 + 5.4: + type: pecl + version: 2.2.7 + 5.3: + type: pecl + version: 2.2.7 + 5.2: + type: pecl + version: 2.2.7 + msgpack: + disabled: [] + all: + type: pecl + 5.6: + type: pecl + version: 0.5.7 + 5.5: + type: pecl + version: 0.5.7 + 5.4: + type: pecl + version: 0.5.7 + 5.3: + type: pecl + version: 0.5.7 + 5.2: + type: pecl + version: 0.5.7 + memcached: + disabled: [] + all: type: pecl command: printf "\n\n\nyes\nyes\nyes\n" | pecl install memcached - run_dep: [libmemcachedutil2, libevent-2.1-6] + build_dep: [zlib1g-dev, libmemcached-dev, libevent-dev] + run_dep: [libmemcachedutil2, libevent-2.1-7] 8.2: type: git git_url: https://github.com/php-memcached-dev/php-memcached @@ -589,391 +606,643 @@ extensions_available: && ./configure --enable-memcached \ && make -j$(getconf _NPROCESSORS_ONLN) \ && make install \ - all: + 7.2: type: pecl command: printf "\n\n\nyes\nyes\nyes\n" | pecl install memcached - build_dep: [zlib1g-dev, libmemcached-dev, libevent-dev] - run_dep: [libmemcachedutil2, libevent-2.1-7] - mhash: - disabled: [7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2] # Deprecated - already_avail: [5.2, 5.3, 5.4, 5.5, 5.6] - mongo: - disabled: [7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2] # Deprecated + run_dep: [libmemcachedutil2, libevent-2.1-6] + 7.1: + type: pecl + command: printf "\n\n\nyes\nyes\nyes\n" | pecl install memcached + run_dep: [libmemcachedutil2, libevent-2.1-6] + 7.0: + type: pecl + command: printf "\n\n\nyes\nyes\nyes\n" | pecl install memcached + run_dep: [libmemcachedutil2, libevent-2.0-5] + 5.6: + type: pecl + version: 2.2.0 + run_dep: [libmemcachedutil2, libevent-2.0-5] + 5.5: + type: pecl + version: 2.2.0 + run_dep: [libmemcachedutil2, libevent-2.0-5] + 5.4: + type: pecl + version: 2.2.0 + run_dep: [libmemcachedutil2, libevent-2.0-5] + 5.3: + type: pecl + version: 2.2.0 + run_dep: [libmemcachedutil2, libevent-2.0-5] 5.2: type: pecl - command: yes yes | pecl install mongo-1.5.8 + version: 2.1.0 + run_dep: [libmemcachedutil2, libevent-2.0-5] + mhash: + disabled: [7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2] + already_avail: [5.2, 5.3, 5.4, 5.5, 5.6] + mongo: + disabled: [7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2] all: type: pecl command: yes yes | pecl install mongo build_dep: [libssl-dev, libsasl2-dev] + 5.2: + type: pecl + command: yes yes | pecl install mongo-1.5.8 mongodb: disabled: [5.2] - 5.3: - type: pecl - version: 0.6.3 - 5.4: - type: pecl - version: 1.2.11 - 5.5: - type: pecl - version: 1.5.5 - 5.6: - type: pecl - version: 1.7.5 - 7.0: - type: pecl - version: 1.9.2 - 7.1: - type: pecl - version: 1.11.1 all: type: pecl build_dep: [libssl-dev, libsasl2-dev] - msgpack: - 5.2: + 7.1: type: pecl - version: 0.5.7 - 5.3: + version: 1.11.1 + 7.0: type: pecl - version: 0.5.7 - 5.4: + version: 1.9.2 + 5.6: type: pecl - version: 0.5.7 + version: 1.7.5 5.5: type: pecl - version: 0.5.7 - 5.6: + version: 1.5.5 + 5.4: type: pecl - version: 0.5.7 - all: + version: 1.2.11 + 5.3: type: pecl + version: 0.6.3 mysql: - disabled: [7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2] # Deprecated in newer versions - 5.6: - type: builtin - run_dep: [libmariadbclient18] - build_dep: [libmariadbclient-dev] + disabled: [7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2] all: type: builtin configure: --with-mysql --with-mysql-sock --with-zlib-dir=/usr --with-libdir="/lib/$(dpkg-architecture --query DEB_BUILD_MULTIARCH)" run_dep: [libmysqlclient18] build_dep: [libmysqlclient-dev] - mysqli: - 5.2: - type: builtin - run_dep: [libmysqlclient18] - build_dep: [libmysqlclient-dev] - 5.3: - type: builtin - run_dep: [libmysqlclient18] - build_dep: [libmysqlclient-dev] - 5.4: - type: builtin - run_dep: [libmysqlclient18] - build_dep: [libmysqlclient-dev] - 5.5: - type: builtin - run_dep: [libmysqlclient18] - build_dep: [libmysqlclient-dev] 5.6: type: builtin run_dep: [libmariadbclient18] build_dep: [libmariadbclient-dev] - 7.0: - type: builtin - run_dep: [libmariadbclient18] - build_dep: [libmariadbclient-dev] + mysqli: + disabled: [] all: type: builtin run_dep: [libmariadbd19] build_dep: [libmariadb-dev] + 7.0: + type: builtin + run_dep: [libmariadbclient18] + build_dep: [libmariadbclient-dev] + 5.6: + type: builtin + run_dep: [libmariadbclient18] + build_dep: [libmariadbclient-dev] + 5.5: + type: builtin + run_dep: [libmysqlclient18] + build_dep: [libmysqlclient-dev] + 5.4: + type: builtin + run_dep: [libmysqlclient18] + build_dep: [libmysqlclient-dev] + 5.3: + type: builtin + run_dep: [libmysqlclient18] + build_dep: [libmysqlclient-dev] + 5.2: + type: builtin + run_dep: [libmysqlclient18] + build_dep: [libmysqlclient-dev] mysqlnd: disabled: [5.2] already_avail: [5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2] + pcre: + disabled: [] + already_avail: "{{ php_all_versions }}" oauth: - 5.2: + disabled: [] + all: type: pecl - version: 1.2.3 - 5.3: - type: pecl - version: 1.2.3 - 5.4: + build_dep: [libpcre3-dev, libcurl4-openssl-dev] + 5.6: type: pecl version: 1.2.3 5.5: type: pecl version: 1.2.3 - 5.6: + 5.4: type: pecl version: 1.2.3 - all: + 5.3: type: pecl - build_dep: [libpcre3-dev] + version: 1.2.3 + 5.2: + type: pecl + version: 1.2.3 oci8: disabled: [5.2] all: type: builtin configure: --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} pre: | - ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ + ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \ + && ORACLE_HREF="$( \ + curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \ + | tac \ + | tac \ + | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \ + | tail -1 \ + )" \ && ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ && ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ \ && rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \ - && curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ - https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ - && curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ - https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ + && curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ + https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ + && curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ + https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ && alien \ -v \ --target=$( dpkg --print-architecture ) \ - -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture \ - --query DEB_HOST_GNU_CPU).rpm \ + -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ && alien \ -v \ --target=$( dpkg --print-architecture ) \ - -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture \ - --query DEB_HOST_GNU_CPU).rpm \ - && rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ - && rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ + -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ + && rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ + && rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ build_dep: [alien, libaio-dev] run_dep: [libaio1] post: | - ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ + ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \ + && ORACLE_HREF="$( \ + curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \ + | tac \ + | tac \ + | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \ + | tail -1 \ + )" \ && ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ && ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ && (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ odbc: - disabled: "{{ php_all_versions }}" # TODO: sqlext.h' not found! + disabled: [5.2, 5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2] opcache: - 5.2: + disabled: [] + all: + type: builtin + 8.2: + type: builtin + pre: curl -sS https://raw.githubusercontent.com/php/php-src/php-8.0.6/ext/opcache/Optimizer/zend_dfg.h > /usr/local/include/php/Zend/Optimizer/zend_dfg.h + 8.1: + type: builtin + pre: curl -sS https://raw.githubusercontent.com/php/php-src/php-8.0.6/ext/opcache/Optimizer/zend_dfg.h > /usr/local/include/php/Zend/Optimizer/zend_dfg.h + 5.4: type: pecl command: pecl install zendopcache 5.3: type: pecl command: pecl install zendopcache - 5.4: + 5.2: type: pecl command: pecl install zendopcache - 8.1: - type: builtin - pre: curl -sS https://raw.githubusercontent.com/php/php-src/php-8.0.6/ext/opcache/Optimizer/zend_dfg.h > /usr/local/include/php/Zend/Optimizer/zend_dfg.h - 8.2: - type: builtin - pre: curl -sS https://raw.githubusercontent.com/php/php-src/php-8.0.6/ext/opcache/Optimizer/zend_dfg.h > /usr/local/include/php/Zend/Optimizer/zend_dfg.h - all: - type: builtin openssl: + disabled: [] already_avail: "{{ php_all_versions }}" pcntl: + disabled: [] all: type: builtin - pcre: - already_avail: "{{ php_all_versions }}" pdo: + disabled: [] already_avail: "{{ php_all_versions }}" pdo_dblib: + disabled: [] all: type: builtin pre: ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libsybdb.* /usr/lib/ build_dep: [freetds-dev] run_dep: [libsybdb5] pdo_firebird: + disabled: [] all: type: builtin build_dep: [libfbclient2, libib-util, firebird-dev] run_dep: [libfbclient2] pdo_mysql: - 5.2: - type: builtin - run_dep: [libmysqlclient18] - build_dep: [zlib1g-dev, libmysqlclient-dev] - 5.3: - type: builtin - run_dep: [libmysqlclient18] - build_dep: [zlib1g-dev, libmysqlclient-dev] - 5.4: - type: builtin - run_dep: [libmysqlclient18] - build_dep: [zlib1g-dev, libmysqlclient-dev] - 5.5: - type: builtin - run_dep: [libmysqlclient18] - build_dep: [zlib1g-dev, libmysqlclient-dev] - 5.6: - type: builtin - run_dep: [libmariadbclient18] - build_dep: [zlib1g-dev, libmariadbclient-dev] - 7.0: - type: builtin - run_dep: [libmariadbclient18] - build_dep: [zlib1g-dev, libmariadbclient-dev] + disabled: [] all: type: builtin configure: --with-zlib-dir=/usr run_dep: [libmariadbd19] build_dep: [zlib1g-dev, libmariadb-dev] + 7.0: + type: builtin + run_dep: [libmariadbclient18] + build_dep: [zlib1g-dev, libmariadbclient-dev] + 5.6: + type: builtin + run_dep: [libmariadbclient18] + build_dep: [zlib1g-dev, libmariadbclient-dev] + 5.5: + type: builtin + run_dep: [libmysqlclient18] + build_dep: [zlib1g-dev, libmysqlclient-dev] + 5.4: + type: builtin + run_dep: [libmysqlclient18] + build_dep: [zlib1g-dev, libmysqlclient-dev] + 5.3: + type: builtin + run_dep: [libmysqlclient18] + build_dep: [zlib1g-dev, libmysqlclient-dev] + 5.2: + type: builtin + run_dep: [libmysqlclient18] + build_dep: [zlib1g-dev, libmysqlclient-dev] pdo_oci: disabled: [5.2, 5.3, 5.4, 5.5, 5.6] - 7.2: + all: type: builtin - configure: --with-pdo-oci=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} - 7.3: - type: builtin - configure: --with-pdo-oci=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} - 7.4: - type: builtin - configure: --with-pdo-oci=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} - 8.0: + configure: --with-pdo-oci=instantclient,/usr,${ORACLE_VERSION_MAJOR} + pre: | + ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \ + && ORACLE_HREF="$( \ + curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \ + | tac \ + | tac \ + | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \ + | tail -1 \ + )" \ + && ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ + && ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ + \ + && rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \ + && curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ + https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ + && curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ + https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ + && alien \ + -v \ + --target=$( dpkg --print-architecture ) \ + -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ + && alien \ + -v \ + --target=$( dpkg --print-architecture ) \ + -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ + && rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ + && rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ + && (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ + build_dep: [alien] + 8.2: type: builtin configure: --with-pdo-oci=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} 8.1: type: builtin configure: --with-pdo-oci=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} - 8.2: + 8.0: type: builtin configure: --with-pdo-oci=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} - all: + 7.4: type: builtin - configure: --with-pdo-oci=instantclient,/usr,${ORACLE_VERSION_MAJOR} - pre: | - ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ - && ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ - && ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ - \ - && rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \ - && curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ - https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ - && curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ - https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ - && alien \ - -v \ - --target=$( dpkg --print-architecture ) \ - -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture \ - --query DEB_HOST_GNU_CPU).rpm \ - && alien \ - -v \ - --target=$( dpkg --print-architecture ) \ - -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture \ - --query DEB_HOST_GNU_CPU).rpm \ - && rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ - && rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ - && (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ - build_dep: [alien] + configure: --with-pdo-oci=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} + 7.3: + type: builtin + configure: --with-pdo-oci=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} + 7.2: + type: builtin + configure: --with-pdo-oci=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} pdo_odbc: - disabled: "{{ php_all_versions }}" # TODO: Build errors + disabled: [5.2, 5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2] pdo_pgsql: + disabled: [] all: type: builtin build_dep: [libpq-dev] run_dep: [libpq5] pdo_sqlite: + disabled: [] already_avail: "{{ php_all_versions }}" pdo_sqlsrv: disabled: [5.2, 5.3, 5.4, 5.5, 5.6] - 7.0: - type: pecl - version: 5.3.0 - 7.1: - type: pecl - version: 5.6.1 - 7.2: - type: pecl - version: 5.8.1 - 7.3: - type: pecl - version: 5.9.0 all: type: pecl build_dep: [unixodbc-dev] run_dep: [unixodbc] + 7.3: + type: pecl + version: 5.9.0 + 7.2: + type: pecl + version: 5.8.1 + 7.1: + type: pecl + version: 5.6.1 + 7.0: + type: pecl + version: 5.3.0 pgsql: + disabled: [] all: type: builtin build_dep: [libpq-dev] run_dep: [libpq5] psr: - disabled: [5.2, 5.3] # IMPORTANT: Required by PHP >= 7.2 by phalcon >=4.0 module - 5.4: + disabled: [5.2, 5.3] + all: type: pecl - version: 0.5.1 - 5.5: - type: pecl - version: 0.5.1 - 5.6: - type: pecl - version: 0.6.0 # NOTE: 0.6.1 fails with: Package "psr" Version "0.6.1" does not have REST xml available - 7.0: - type: pecl - version: 1.1.0 - 7.1: - type: pecl - version: 1.1.0 7.2: type: pecl version: 1.1.0 - all: + 7.1: type: pecl - phalcon: - disabled: [5.2, 8.2] # TODO: currently disabled for 7.4 as it breaks - 5.3: - type: git - git_url: https://github.com/phalcon/cphalcon - git_ref: phalcon-v2.0.9 - command: cd build && ./install - 5.4: - type: git - git_url: https://github.com/phalcon/cphalcon - git_ref: phalcon-v2.0.13 - command: cd build && ./install - 5.5: - type: git - git_url: https://github.com/phalcon/cphalcon - git_ref: v3.4.4 - command: cd build && ./install - 5.6: - type: git - git_url: https://github.com/phalcon/cphalcon - git_ref: v3.4.4 - command: cd build && ./install + version: 1.1.0 7.0: + type: pecl + version: 1.1.0 + 5.6: + type: pecl + version: 0.6.0 # NOTE: 0.6.1 fails with: Package "psr" Version "0.6.1" does not have REST xml available + 5.5: + type: pecl + version: 0.5.1 + 5.4: + type: pecl + version: 0.5.1 + zstd: + disabled: [5.2, 5.3, 5.4, 5.5, 5.6] + all: type: git - git_url: https://github.com/phalcon/cphalcon - git_ref: v3.4.4 - command: cd build && ./install + git_url: https://github.com/kjdev/php-ext-zstd + git_ref: $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) + configure: --enable-zstd --with-libzstd + build_dep: [libzstd-dev] + run_dep: [libzstd1] + 7.0: + type: pecl + build_dep: [libzstd-dev] + run_dep: [libzstd1] + redis: + disabled: [] + all: + type: git + git_url: https://github.com/phpredis/phpredis + git_ref: $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) + pre: | + if [ -f /usr/include/liblzf/lzf.h ]; then \ + ln -s /usr/include/liblzf/lzf.h /usr/include/; \ + fi \ + command: | + REDIS_ARGS=""; \ + if php -m | grep -q "igbinary"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \ + fi; \ + if php -m | grep -q "lz4"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-lz4 --with-liblz4=/usr"; \ + fi; \ + if php -m | grep -q "lzf"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-lzf --with-liblzf=/usr"; \ + fi; \ + if php -m | grep -q "msgpack"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \ + fi; \ + if php -m | grep -q "zstd"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-zstd"; \ + fi; \ + phpize \ + && ./configure --enable-redis ${REDIS_ARGS} \ + && make -j$(getconf _NPROCESSORS_ONLN) \ + && make install \ + build_dep: + - liblz4-dev + - liblzf-dev + - libzstd-dev + run_dep: + - liblz4-1 + - liblzf1 + - libzstd1 + 7.2: + type: git + git_url: https://github.com/phpredis/phpredis + git_ref: $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) + command: | + REDIS_ARGS=""; \ + if php -m | grep -q "igbinary"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \ + fi; \ + if php -m | grep -q "lz4"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-lz4 --with-liblz4=/usr"; \ + fi; \ + if php -m | grep -q "msgpack"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \ + fi; \ + if php -m | grep -q "zstd"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-zstd"; \ + fi; \ + phpize \ + && ./configure --enable-redis ${REDIS_ARGS} \ + && make -j$(getconf _NPROCESSORS_ONLN) \ + && make install \ + build_dep: + - liblz4-dev + - libzstd-dev + run_dep: + - liblz4-1 + - libzstd1 7.1: + type: git + git_url: https://github.com/phpredis/phpredis + git_ref: $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) + command: | + REDIS_ARGS=""; \ + if php -m | grep -q "igbinary"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \ + fi; \ + if php -m | grep -q "lz4"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-lz4 --with-liblz4=/usr"; \ + fi; \ + if php -m | grep -q "msgpack"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \ + fi; \ + if php -m | grep -q "zstd"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-zstd"; \ + fi; \ + phpize \ + && ./configure --enable-redis ${REDIS_ARGS} \ + && make -j$(getconf _NPROCESSORS_ONLN) \ + && make install \ + build_dep: + - liblz4-dev + - libzstd-dev + run_dep: + - liblz4-1 + - libzstd1 + 7.0: + type: git + git_url: https://github.com/phpredis/phpredis + git_ref: $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) + command: | + REDIS_ARGS=""; \ + if php -m | grep -q "igbinary"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \ + fi; \ + if php -m | grep -q "lz4"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-lz4 --with-liblz4=/usr"; \ + fi; \ + if php -m | grep -q "msgpack"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \ + fi; \ + phpize \ + && ./configure --enable-redis ${REDIS_ARGS} \ + && make -j$(getconf _NPROCESSORS_ONLN) \ + && make install \ + build_dep: + - liblz4-dev + run_dep: + - liblz4-1 + 5.6: + type: pecl + version: 4.3.0 + build_dep: [] + run_dep: [] + 5.5: + type: pecl + version: 4.3.0 + build_dep: [] + run_dep: [] + 5.4: + type: pecl + version: 4.3.0 + build_dep: [] + run_dep: [] + 5.3: + type: pecl + version: 4.3.0 + build_dep: [] + run_dep: [] + 5.2: + type: pecl + version: 2.2.7 + build_dep: [] + run_dep: [] + sqlite3: + disabled: [5.2] + already_avail: "{{ php_all_versions }}" + sqlsrv: + disabled: [5.2, 5.3, 5.4, 5.5, 5.6] + all: + type: pecl + build_dep: [unixodbc-dev] + run_dep: [unixodbc] + 7.3: + type: pecl + version: 5.9.0 + 7.2: + type: pecl + version: 5.8.1 + 7.1: + type: pecl + version: 5.6.1 + 7.0: + type: pecl + version: 5.3.0 + phalcon: + disabled: [5.2, 8.2] + all: type: git git_url: https://github.com/phalcon/cphalcon - git_ref: v3.4.4 + git_ref: | + $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags \ + | sort -V \ + | sed 's/^.*tags\///g' \ + | grep -E '^v[.0-9]+$' \ + | tail -1 \ + ) \ + command: cd build && ./install + build_dep: [libpcre3-dev, re2c] + run_dep: [] + 7.3: + type: git + git_url: https://github.com/phalcon/cphalcon + git_ref: v4.1.2 command: cd build && ./install 7.2: type: git git_url: https://github.com/phalcon/cphalcon git_ref: v4.1.1 command: cd build && ./install - 7.3: + 7.1: type: git git_url: https://github.com/phalcon/cphalcon - git_ref: v4.1.2 + git_ref: v3.4.4 command: cd build && ./install - all: + 7.0: type: git git_url: https://github.com/phalcon/cphalcon - git_ref: $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | sed 's/^.*tags\///g' | grep -E '^v[.0-9]+$' | tail -1) + git_ref: v3.4.4 + command: cd build && ./install + 5.6: + type: git + git_url: https://github.com/phalcon/cphalcon + git_ref: v3.4.4 + command: cd build && ./install + 5.5: + type: git + git_url: https://github.com/phalcon/cphalcon + git_ref: v3.4.4 + command: cd build && ./install + 5.4: + type: git + git_url: https://github.com/phalcon/cphalcon + git_ref: phalcon-v2.0.13 + command: cd build && ./install + 5.3: + type: git + git_url: https://github.com/phalcon/cphalcon + git_ref: phalcon-v2.0.9 command: cd build && ./install phar: + disabled: [] already_avail: [5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2] 5.2: type: pecl build_dep: [libssl-dev] posix: + disabled: [] already_avail: "{{ php_all_versions }}" pspell: + disabled: [] all: type: builtin build_dep: [libpspell-dev] run_dep: [libaspell15] + random: + disabled: [5.2, 5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2] + already_avail: "{{ php_all_versions }}" + rdkafka: + disabled: [5.2] + all: + type: pecl + build_dep: [librdkafka-dev] + run_dep: [librdkafka1] + 7.0: + type: pecl + version: 3.1.2 + 5.6: + type: pecl + version: 3.1.2 + 5.5: + type: pecl + version: 3.0.5 + 5.4: + type: pecl + version: 3.0.5 + 5.3: + type: pecl + version: 3.0.5 readline: + disabled: [] already_avail: "{{ php_all_versions }}" recode: disabled: [7.4, 8.0, 8.1, 8.2] @@ -982,141 +1251,50 @@ extensions_available: type: builtin build_dep: [librecode-dev] run_dep: [librecode0] - redis: - 5.2: - type: pecl - version: 2.2.7 - 5.3: - type: pecl - version: 4.3.0 - 5.4: - type: pecl - version: 4.3.0 - 5.5: - type: pecl - version: 4.3.0 - 5.6: - type: pecl - version: 4.3.0 - 8.1: - type: git - git_url: https://github.com/phpredis/phpredis - git_ref: $(git for-each-ref --format='%(refname)' refs/tags | grep -E 'tags/[.0-9]+$' | sed 's|.*tags/||g' | sort -V | tail -1) - command: | - REDIS_ARGS=""; \ - if [ -d "/usr/local/include/php/ext/igbinary" ]; then \ - REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \ - fi; \ - if [ -d "/usr/local/include/php/ext/msgpack" ]; then \ - REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \ - fi; \ - phpize \ - && ./configure --enable-redis ${REDIS_ARGS} \ - && sed -i'' 's/ops->hash_init(ctx);/ops->hash_init(ctx, NULL);/g' library.c \ - && sed -i'' 's/ops->hash_init(ctx);/ops->hash_init(ctx, NULL);/g' redis_array_impl.c \ - && make -j$(getconf _NPROCESSORS_ONLN) \ - && make install \ - 8.2: - type: git - git_url: https://github.com/phpredis/phpredis - git_ref: $(git for-each-ref --format='%(refname)' refs/tags | grep -E 'tags/[.0-9]+$' | sed 's|.*tags/||g' | sort -V | tail -1) - command: | - REDIS_ARGS=""; \ - if [ -d "/usr/local/include/php/ext/igbinary" ]; then \ - REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \ - fi; \ - if [ -d "/usr/local/include/php/ext/msgpack" ]; then \ - REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \ - fi; \ - phpize \ - && ./configure --enable-redis ${REDIS_ARGS} \ - && sed -i'' 's/ops->hash_init(ctx);/ops->hash_init(ctx, NULL);/g' library.c \ - && sed -i'' 's/ops->hash_init(ctx);/ops->hash_init(ctx, NULL);/g' redis_array_impl.c \ - && make -j$(getconf _NPROCESSORS_ONLN) \ - && make install \ - all: - type: git - git_url: https://github.com/phpredis/phpredis - git_ref: $(git for-each-ref --format='%(refname)' refs/tags | grep -E 'tags/[.0-9]+$' | sed 's|.*tags/||g' | sort -V | tail -1) - command: | - REDIS_ARGS=""; \ - if [ -d "/usr/local/include/php/ext/igbinary" ]; then \ - REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \ - fi; \ - if [ -d "/usr/local/include/php/ext/msgpack" ]; then \ - REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \ - fi; \ - phpize \ - && ./configure --enable-redis ${REDIS_ARGS} \ - && make -j$(getconf _NPROCESSORS_ONLN) \ - && make install \ reflection: - already_avail: [5.2, 5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2] - rdkafka: - disabled: [5.2] - 5.3: - type: pecl - version: 3.0.5 - 5.4: - type: pecl - version: 3.0.5 - 5.5: - type: pecl - version: 3.0.5 - 5.6: - type: pecl - version: 3.1.2 - 7.0: - type: pecl - version: 3.1.2 - all: - type: pecl - build_dep: [librdkafka-dev] - run_dep: [librdkafka1] + disabled: [] + already_avail: "{{ php_all_versions }}" session: + disabled: [] already_avail: "{{ php_all_versions }}" shmop: + disabled: [] all: type: builtin simplexml: + disabled: [] already_avail: "{{ php_all_versions }}" snmp: - 7.4: + disabled: [] + all: type: builtin configure: --with-snmp build_dep: [libssl-dev, libsnmp-dev, snmp] run_dep: [snmp] - all: - type: builtin - configure: --with-openssl-dir - build_dep: [libssl-dev, libsnmp-dev, snmp] - run_dep: [snmp] soap: - 7.4: - type: builtin - configure: --enable-soap + disabled: [] all: type: builtin - configure: --with-libxml-dir=/usr build_dep: [libxml2-dev] sockets: + disabled: [] + all: + type: builtin + 8.2: + # Remove ucred (currently breaks build) + pre: | + docker-php-ext-configure sockets \ + && sed -i'' 's/.*ucred.*//g' /usr/src/php/ext/sockets/sendrecvmsg.c \ + 8.1: + # Remove ucred (currently breaks build) + pre: | + docker-php-ext-configure sockets \ + && sed -i'' 's/.*ucred.*//g' /usr/src/php/ext/sockets/sendrecvmsg.c \ 8.0: # Remove ucred (currently breaks build) pre: | docker-php-ext-configure sockets \ && sed -i'' 's/.*ucred.*//g' /usr/src/php/ext/sockets/sendrecvmsg.c \ - 8.1: - # Remove ucred (currently breaks build) - pre: | - docker-php-ext-configure sockets \ - && sed -i'' 's/.*ucred.*//g' /usr/src/php/ext/sockets/sendrecvmsg.c \ - 8.2: - # Remove ucred (currently breaks build) - pre: | - docker-php-ext-configure sockets \ - && sed -i'' 's/.*ucred.*//g' /usr/src/php/ext/sockets/sendrecvmsg.c \ - all: - type: builtin sodium: disabled: [5.2, 5.3, 5.4, 5.5, 5.6, 7.0, 7.1] already_avail: [7.2, 7.3, 7.4] @@ -1124,31 +1302,16 @@ extensions_available: type: builtin build_dep: [libsodium-dev] solr: - # PHP 8.2: SolrParams::__toString() implemented without string return type in Unknown on line 0 disabled: [5.2, 5.3, 5.4, 5.5, 5.6, 7.0, 8.2] all: type: pecl build_dep: [libxml2-dev, libcurl4-openssl-dev] spl: + disabled: [] + already_avail: "{{ php_all_versions }}" + sqlite: + disabled: [5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2] already_avail: "{{ php_all_versions }}" - sqlsrv: - disabled: [5.2, 5.3, 5.4, 5.5, 5.6] - 7.0: - type: pecl - version: 5.3.0 - 7.1: - type: pecl - version: 5.6.1 - 7.2: - type: pecl - version: 5.8.1 - 7.3: - type: pecl - version: 5.9.0 - all: - type: pecl - build_dep: [unixodbc-dev] - run_dep: [unixodbc] ssh2: disabled: [5.2, 5.3, 5.4, 5.5, 5.6, 8.0, 8.1, 8.2] all: @@ -1156,126 +1319,183 @@ extensions_available: version: 1.2 build_dep: [libssh2-1-dev] run_dep: [libssh2-1] + xml: + disabled: [] + already_avail: "{{ php_all_versions }}" + zip: + disabled: [] + all: + type: builtin + configure: --with-zip + build_dep: [libzip-dev] + run_dep: [libzip4] + 7.3: + type: builtin + configure: --enable-zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip=/usr + build_dep: [libzip-dev, zlib1g-dev] + run_dep: [libzip4, zlib1g] + 7.2: + type: builtin + configure: --enable-zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip=/usr + build_dep: [libzip-dev, zlib1g-dev] + run_dep: [libzip4, zlib1g] + 7.1: + type: builtin + configure: --enable-zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip=/usr + build_dep: [libzip-dev, zlib1g-dev] + run_dep: [libzip4, zlib1g] + 7.0: + type: builtin + configure: --enable-zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip=/usr + build_dep: [libzip-dev, zlib1g-dev] + run_dep: [libzip4, zlib1g] + 5.6: + type: builtin + configure: --enable-zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip=/usr + build_dep: [libzip-dev, zlib1g-dev] + run_dep: [libzip4, zlib1g] + 5.5: + type: builtin + configure: --enable-zip --with-zlib-dir=/usr --with-pcre-dir=/usr + build_dep: [libzip-dev, zlib1g-dev] + run_dep: [libzip2, zlib1g] + 5.4: + type: builtin + configure: --enable-zip --with-zlib-dir=/usr --with-pcre-dir=/usr + build_dep: [libzip-dev, zlib1g-dev] + run_dep: [libzip2, zlib1g] + 5.3: + type: builtin + configure: --enable-zip --with-zlib-dir=/usr --with-pcre-dir=/usr + build_dep: [libzip-dev, zlib1g-dev] + run_dep: [libzip2, zlib1g] + 5.2: + type: builtin + configure: --enable-zip + build_dep: [libzip-dev] + run_dep: [libzip2] swoole: disabled: [5.2, 8.2] - 5.3: - type: pecl - version: 1.9.23 - run_dep: [libc-ares2, libnghttp2-5, libssl1.0.0] - 5.4: - type: pecl - version: 1.9.23 - run_dep: [libc-ares2, libnghttp2-5, libssl1.0.0] - 5.5: - type: pecl - version: 1.9.23 - run_dep: [libc-ares2, libnghttp2-5, libssl1.0.0] - 5.6: - type: pecl - version: 1.9.23 - 7.0: - type: pecl - version: 4.2.13 - 7.1: - type: pecl - version: 4.4.26 - 7.2: - type: pecl - version: 4.8.12 - 7.3: - type: pecl - version: 4.8.12 - 7.4: - type: pecl - version: 4.8.12 all: type: pecl # Note: -D is only supported from PHP 7.2+ command: pecl install -D 'enable-sockets="no" enable-openssl="yes" enable-http2="yes" enable-mysqlnd="yes" enable-swoole-json="no" enable-swoole-curl="yes" enable-cares="yes" with-postgres="yes"' swoole build_dep: [libc-ares-dev, libnghttp2-dev, libssl-dev, libcurl4-openssl-dev] run_dep: [libc-ares2, libnghttp2-14] + 7.4: + type: pecl + version: 4.8.12 + 7.3: + type: pecl + version: 4.8.12 + 7.2: + type: pecl + version: 4.8.12 + 7.1: + type: pecl + version: 4.4.26 + 7.0: + type: pecl + version: 4.2.13 + 5.6: + type: pecl + version: 1.9.23 + 5.5: + type: pecl + version: 1.9.23 + run_dep: [libc-ares2, libnghttp2-5, libssl1.0.0] + 5.4: + type: pecl + version: 1.9.23 + run_dep: [libc-ares2, libnghttp2-5, libssl1.0.0] + 5.3: + type: pecl + version: 1.9.23 + run_dep: [libc-ares2, libnghttp2-5, libssl1.0.0] sysvmsg: + disabled: [] all: type: builtin sysvsem: + disabled: [] all: type: builtin sysvshm: + disabled: [] all: type: builtin tidy: - 5.2: - type: builtin - run_dep: [libtidy-0.99-0] - 5.3: - type: builtin - run_dep: [libtidy-0.99-0] - 5.4: - type: builtin - run_dep: [libtidy-0.99-0] - 5.5: - type: builtin - run_dep: [libtidy-0.99-0] - 5.6: - type: builtin - run_dep: [libtidy5] - 7.0: - type: builtin - run_dep: [libtidy5] + disabled: [] all: type: builtin build_dep: [libtidy-dev] run_dep: [libtidy5deb1] + 7.0: + type: builtin + run_dep: [libtidy5] + 5.6: + type: builtin + run_dep: [libtidy5] + 5.5: + type: builtin + run_dep: [libtidy-0.99-0] + 5.4: + type: builtin + run_dep: [libtidy-0.99-0] + 5.3: + type: builtin + run_dep: [libtidy-0.99-0] + 5.2: + type: builtin + run_dep: [libtidy-0.99-0] tokenizer: + disabled: [] already_avail: "{{ php_all_versions }}" uploadprogress: - 5.2: + disabled: [] + all: type: pecl - version: 1.1.4 - 5.3: - type: pecl - version: 1.1.4 - 5.4: - type: pecl - version: 1.1.4 - 5.5: - type: pecl - version: 1.1.4 - 5.6: + 7.1: type: pecl version: 1.1.4 7.0: type: pecl version: 1.1.4 - 7.1: + 5.6: type: pecl version: 1.1.4 - all: + 5.5: type: pecl - uuid: - disabled: [5.2] + version: 1.1.4 + 5.4: + type: pecl + version: 1.1.4 5.3: type: pecl - version: 1.0.5 - 5.4: + version: 1.1.4 + 5.2: + type: pecl + version: 1.1.4 + uuid: + disabled: [5.2] + all: + type: pecl + run_dep: [uuid] + build_dep: [uuid-dev] + 5.6: type: pecl version: 1.0.5 5.5: type: pecl version: 1.0.5 - 5.6: + 5.4: type: pecl version: 1.0.5 - all: + 5.3: type: pecl - run_dep: [uuid] - build_dep: [uuid-dev] + version: 1.0.5 vips: - # vips requires PHP > 5.6 disabled: [5.2, 5.3, 5.4, 5.5, 5.6, 8.2] - 5.6: - type: pecl - version: 1.0.0 all: type: pecl build_dep: @@ -1283,121 +1503,101 @@ extensions_available: - libvips42 run_dep: - libvips42 + 5.6: + type: pecl + version: 1.0.0 wddx: - # https://wiki.php.net/rfc/deprecate-and-remove-ext-wddx disabled: [7.4, 8.0, 8.1, 8.2] all: type: builtin configure: --with-libxml-dir=/usr build_dep: [libxml2-dev] + # TODO: requires run_dep libxml xdebug: - 5.2: + disabled: [] + all: type: pecl - version: 2.2.7 - 5.3: + 8.2: + type: git + git_url: https://github.com/xdebug/xdebug + # FIXME: revert to latest tag once PHP 8.2 support is out of alpha/beta + git_ref: 3.2.0RC2 + configure: --enable-xdebug + 8.1: + type: git + git_url: https://github.com/xdebug/xdebug + git_ref: $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) + configure: --enable-xdebug + 7.1: type: pecl - version: 2.2.7 - 5.4: + version: 2.9.8 + 7.0: + type: pecl + version: 2.9.0 + 5.6: type: pecl version: 2.4.1 5.5: type: pecl version: 2.4.1 - 5.6: + 5.4: type: pecl version: 2.4.1 - 7.0: + 5.3: type: pecl - version: 2.9.0 - 7.1: - type: pecl - version: 2.9.8 - 8.1: - type: git - git_url: https://github.com/xdebug/xdebug - git_ref: $(git for-each-ref --format='%(refname)' refs/tags | grep -E 'tags/[.0-9]+$' | sed 's|.*tags/||g' | sort -V | tail -1) - configure: --enable-xdebug - # FIXME: Switch back to official xdebug after changes have been merged - 8.2: - type: git - git_url: https://github.com/shivammathur/xdebug - git_ref: fix-jmpznz - configure: --enable-xdebug - all: + version: 2.2.7 + 5.2: type: pecl + version: 2.2.7 xlswriter: disabled: [5.2, 5.3, 5.4, 5.5, 5.6] all: type: pecl build_dep: [zlib1g-dev] run_dep: [] - xml: - already_avail: "{{ php_all_versions }}" xmlreader: + disabled: [] already_avail: "{{ php_all_versions }}" xmlrpc: disabled: [8.0, 8.1, 8.2] - 7.4: - type: builtin - configure: --with-iconv-dir=/usr all: type: builtin configure: --with-libxml-dir=/usr --with-iconv-dir=/usr build_dep: [libxml2-dev] + # TODO: requires run_dep libxml + 7.4: + type: builtin + configure: --with-iconv-dir=/usr xmlwriter: + disabled: [] already_avail: "{{ php_all_versions }}" xsl: + disabled: [] all: type: builtin build_dep: [libxslt-dev] run_dep: [libxslt1.1] yaml: disabled: [5.2] - 5.3: - type: pecl - version: 1.3.2 - 5.4: - type: pecl - version: 1.3.2 - 5.5: - type: pecl - version: 1.3.2 - 5.6: - type: pecl - version: 1.3.2 - 7.0: - type: pecl - version: 2.0.4 all: type: pecl build_dep: [libyaml-dev] run_dep: [libyaml-0-2] - zip: - 5.2: - type: builtin - configure: --with-zlib-dir=/usr --with-pcre-dir=/usr - build_dep: [zlib1g-dev] - run_dep: [zlib1g] - 5.3: - type: builtin - configure: --with-zlib-dir=/usr --with-pcre-dir=/usr - build_dep: [zlib1g-dev] - run_dep: [zlib1g] - 5.4: - type: builtin - configure: --with-zlib-dir=/usr --with-pcre-dir=/usr - build_dep: [zlib1g-dev] - run_dep: [zlib1g] + 7.0: + type: pecl + version: 2.0.4 + 5.6: + type: pecl + version: 1.3.2 5.5: - type: builtin - configure: --with-zlib-dir=/usr --with-pcre-dir=/usr - build_dep: [zlib1g-dev] - run_dep: [zlib1g] - 7.4: - type: builtin - configure: --with-zip - all: - type: builtin - configure: --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip - build_dep: [zlib1g-dev, libzip-dev] - run_dep: [libzip4] + type: pecl + version: 1.3.2 + 5.4: + type: pecl + version: 1.3.2 + 5.3: + type: pecl + version: 1.3.2 + zlib: + disabled: [] + already_avail: "{{ php_all_versions }}" diff --git a/build/ansible/group_vars/all/work.yml b/.ansible/group_vars/all/work.yml similarity index 100% rename from build/ansible/group_vars/all/work.yml rename to .ansible/group_vars/all/work.yml diff --git a/build/ansible/inventory b/.ansible/inventory.ini similarity index 100% rename from build/ansible/inventory rename to .ansible/inventory.ini diff --git a/build/ansible/roles/template/defaults/main.yml b/.ansible/roles/template/defaults/main.yml similarity index 100% rename from build/ansible/roles/template/defaults/main.yml rename to .ansible/roles/template/defaults/main.yml diff --git a/build/ansible/roles/template/tasks/main.yml b/.ansible/roles/template/tasks/main.yml similarity index 100% rename from build/ansible/roles/template/tasks/main.yml rename to .ansible/roles/template/tasks/main.yml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index b343095..5e3d9ca 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,2 +1,3 @@ +--- github: [cytopia] patreon: devilbox diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 0816266..8007a14 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -31,6 +31,16 @@ jobs: with: fetch-depth: 0 + - name: Install Python 3.9 + uses: actions/setup-python@v4 + with: + python-version: '3.9' + + - name: Install required Python packages + run: | + pip install yamllib + pip install typing + # ------------------------------------------------------------ # Lint repository # ------------------------------------------------------------ @@ -46,6 +56,11 @@ jobs: run: | make lint-changelog + - name: Diff generated PHP modules + run: | + make gen-modules + git diff --quiet || { echo "Build Changes"; git diff; git status; false; } + - name: Diff generated Docker files run: | make gen-dockerfiles diff --git a/.gitignore b/.gitignore index 0aaabdf..371b014 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ -build/ansible/*.retry +.ansible/*.retry + Makefile.docker Makefile.lint +Makefile.python diff --git a/CHANGELOG.md b/CHANGELOG.md index 91fa580..ea0d2ec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,9 +4,28 @@ ## Unreleased -## Release 0.143 +## Release 0.144 + +This is a massive restructuring release, which adds another layer on top of Ansible to easily manage/edit/add PHP extensions and to configure their respective order of building and loading. + +### Added +- Added PHP extension: `lz4` +- Added PHP extension: `lzf` +- Added PHP extension: `zstd` +- Added mechanism to easily build custom images with custom set of PHP extensions +- Added automated PHP extension dependency resolver (order of built is always correct) +- Added tons of documentation +- Added Credit to contributors ### Changed +- Added serializer for Redis extension: `lz4`, `lzf` and `zstd` +- Restructured Documentation +- Split out PHP extensions into separate directories + + +## Release 0.143 + +### Added - Added `phalcon` 5.x to PHP 8.0 and PHP 8.1 diff --git a/Dockerfiles/base/Dockerfile-5.2 b/Dockerfiles/base/Dockerfile-5.2 index 03947e5..cbc7894 100644 --- a/Dockerfiles/base/Dockerfile-5.2 +++ b/Dockerfiles/base/Dockerfile-5.2 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead. FROM devilbox/php-fpm-5.2 MAINTAINER "cytopia" diff --git a/Dockerfiles/base/Dockerfile-5.3 b/Dockerfiles/base/Dockerfile-5.3 index a7bb472..3cc5f3a 100644 --- a/Dockerfiles/base/Dockerfile-5.3 +++ b/Dockerfiles/base/Dockerfile-5.3 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead. FROM devilbox/php-fpm-5.3 MAINTAINER "cytopia" diff --git a/Dockerfiles/base/Dockerfile-5.4 b/Dockerfiles/base/Dockerfile-5.4 index c7334d8..418c0aa 100644 --- a/Dockerfiles/base/Dockerfile-5.4 +++ b/Dockerfiles/base/Dockerfile-5.4 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead. FROM devilbox/php-fpm-5.4 MAINTAINER "cytopia" diff --git a/Dockerfiles/base/Dockerfile-5.5 b/Dockerfiles/base/Dockerfile-5.5 index 2cd2301..40a14c1 100644 --- a/Dockerfiles/base/Dockerfile-5.5 +++ b/Dockerfiles/base/Dockerfile-5.5 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead. FROM devilbox/php-fpm-5.5 MAINTAINER "cytopia" diff --git a/Dockerfiles/base/Dockerfile-5.6 b/Dockerfiles/base/Dockerfile-5.6 index 4826ff0..d99785e 100644 --- a/Dockerfiles/base/Dockerfile-5.6 +++ b/Dockerfiles/base/Dockerfile-5.6 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead. FROM php:5.6-fpm MAINTAINER "cytopia" diff --git a/Dockerfiles/base/Dockerfile-7.0 b/Dockerfiles/base/Dockerfile-7.0 index d550dc5..133cce5 100644 --- a/Dockerfiles/base/Dockerfile-7.0 +++ b/Dockerfiles/base/Dockerfile-7.0 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead. FROM php:7.0-fpm MAINTAINER "cytopia" diff --git a/Dockerfiles/base/Dockerfile-7.1 b/Dockerfiles/base/Dockerfile-7.1 index 69ad40b..ba3ac83 100644 --- a/Dockerfiles/base/Dockerfile-7.1 +++ b/Dockerfiles/base/Dockerfile-7.1 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead. FROM php:7.1-fpm MAINTAINER "cytopia" diff --git a/Dockerfiles/base/Dockerfile-7.2 b/Dockerfiles/base/Dockerfile-7.2 index 220242f..210d7c4 100644 --- a/Dockerfiles/base/Dockerfile-7.2 +++ b/Dockerfiles/base/Dockerfile-7.2 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead. FROM php:7.2-fpm MAINTAINER "cytopia" diff --git a/Dockerfiles/base/Dockerfile-7.3 b/Dockerfiles/base/Dockerfile-7.3 index 4a83d6b..35146a3 100644 --- a/Dockerfiles/base/Dockerfile-7.3 +++ b/Dockerfiles/base/Dockerfile-7.3 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead. FROM php:7.3-fpm MAINTAINER "cytopia" diff --git a/Dockerfiles/base/Dockerfile-7.4 b/Dockerfiles/base/Dockerfile-7.4 index eda04c1..1612e70 100644 --- a/Dockerfiles/base/Dockerfile-7.4 +++ b/Dockerfiles/base/Dockerfile-7.4 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead. FROM php:7.4-fpm MAINTAINER "cytopia" diff --git a/Dockerfiles/base/Dockerfile-8.0 b/Dockerfiles/base/Dockerfile-8.0 index ddd65b3..07ce20e 100644 --- a/Dockerfiles/base/Dockerfile-8.0 +++ b/Dockerfiles/base/Dockerfile-8.0 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead. FROM devilbox/php-fpm-8.0 MAINTAINER "cytopia" diff --git a/Dockerfiles/base/Dockerfile-8.1 b/Dockerfiles/base/Dockerfile-8.1 index 7c7c649..007692f 100644 --- a/Dockerfiles/base/Dockerfile-8.1 +++ b/Dockerfiles/base/Dockerfile-8.1 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead. FROM devilbox/php-fpm-8.1 MAINTAINER "cytopia" diff --git a/Dockerfiles/base/Dockerfile-8.2 b/Dockerfiles/base/Dockerfile-8.2 index c9951b6..ebd91c7 100644 --- a/Dockerfiles/base/Dockerfile-8.2 +++ b/Dockerfiles/base/Dockerfile-8.2 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead. FROM devilbox/php-fpm-8.2 MAINTAINER "cytopia" diff --git a/Dockerfiles/mods/Dockerfile-5.2 b/Dockerfiles/mods/Dockerfile-5.2 index d894e3d..26465c2 100644 --- a/Dockerfiles/mods/Dockerfile-5.2 +++ b/Dockerfiles/mods/Dockerfile-5.2 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead. FROM devilbox/php-fpm:5.2-base as builder @@ -40,6 +40,7 @@ RUN set -eux \ libxml2-dev \ libxpm-dev \ libxslt-dev \ + libzip-dev \ snmp \ zlib1g-dev \ # Build tools @@ -243,17 +244,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: msgpack -------------------- -RUN set -eux \ - # Installation: Version specific - # Type: PECL extension - # Default: Pecl command - && pecl install msgpack-0.5.7 \ - # Enabling - && docker-php-ext-enable msgpack \ - && true - - # -------------------- Installing PHP Extension: memcache -------------------- RUN set -eux \ # Installation: Version specific @@ -265,6 +255,17 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: msgpack -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install msgpack-0.5.7 \ + # Enabling + && docker-php-ext-enable msgpack \ + && true + + # -------------------- Installing PHP Extension: memcached -------------------- RUN set -eux \ # Installation: Version specific @@ -381,6 +382,22 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: redis -------------------- +RUN set -eux \ + # Generic pre-command + && if [ -f /usr/include/liblzf/lzf.h ]; then \ + ln -s /usr/include/liblzf/lzf.h /usr/include/; \ +fi \ + \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install redis-2.2.7 \ + # Enabling + && docker-php-ext-enable redis \ + && true + + # -------------------- Installing PHP Extension: phar -------------------- RUN set -eux \ # Installation: Version specific @@ -400,17 +417,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: redis -------------------- -RUN set -eux \ - # Installation: Version specific - # Type: PECL extension - # Default: Pecl command - && pecl install redis-2.2.7 \ - # Enabling - && docker-php-ext-enable redis \ - && true - - # -------------------- Installing PHP Extension: shmop -------------------- RUN set -eux \ # Installation: Generic @@ -424,7 +430,7 @@ RUN set -eux \ # Installation: Generic # Type: Built-in extension # Custom: configure command - && docker-php-ext-configure snmp --with-openssl-dir \ + && docker-php-ext-configure snmp --with-snmp \ && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \ && true @@ -433,8 +439,6 @@ RUN set -eux \ RUN set -eux \ # Installation: Generic # Type: Built-in extension - # Custom: configure command - && docker-php-ext-configure soap --with-libxml-dir=/usr \ && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \ && true @@ -447,6 +451,17 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: zip -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure zip --enable-zip \ + # Installation + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ + && true + + # -------------------- Installing PHP Extension: sysvmsg -------------------- RUN set -eux \ # Installation: Generic @@ -530,17 +545,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: zip -------------------- -RUN set -eux \ - # Installation: Version specific - # Type: Built-in extension - # Custom: configure command - && docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr \ - # Installation - && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ - && true - - # Fix php.ini settings for enabled extensions @@ -559,7 +563,7 @@ RUN set -eux \ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead. FROM devilbox/php-fpm:5.2-base as final MAINTAINER "cytopia" @@ -610,8 +614,8 @@ RUN set -eux \ libwebp5 \ libxpm4 \ libxslt1.1 \ + libzip2 \ snmp \ - zlib1g \ ca-certificates \ && rm -rf /var/lib/apt/lists/* \ \ @@ -663,12 +667,18 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^ctype$' \ && php -m | grep -oiE '^curl$' \ && php-fpm -m | grep -oiE '^curl$' \ + && php -m | grep -oiE '^date$' \ + && php-fpm -m | grep -oiE '^date$' \ && php -m | grep -oiE '^dba$' \ && php-fpm -m | grep -oiE '^dba$' \ + && php -m | grep -oiE '^libxml$' \ + && php-fpm -m | grep -oiE '^libxml$' \ && php -m | grep -oiE '^dom$' \ && php-fpm -m | grep -oiE '^dom$' \ && php -m | grep -oiE '^enchant$' \ && php-fpm -m | grep -oiE '^enchant$' \ + && php -m | grep -oiE '^mbstring$' \ + && php-fpm -m | grep -oiE '^mbstring$' \ && php -m | grep -oiE '^exif$' \ && php-fpm -m | grep -oiE '^exif$' \ && php -m | grep -oiE '^fileinfo$' \ @@ -697,16 +707,12 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^json$' \ && php -m | grep -oiE '^ldap$' \ && php-fpm -m | grep -oiE '^ldap$' \ - && php -m | grep -oiE '^libxml$' \ - && php-fpm -m | grep -oiE '^libxml$' \ - && php -m | grep -oiE '^mbstring$' \ - && php-fpm -m | grep -oiE '^mbstring$' \ && php -m | grep -oiE '^mcrypt$' \ && php-fpm -m | grep -oiE '^mcrypt$' \ - && php -m | grep -oiE '^msgpack$' \ - && php-fpm -m | grep -oiE '^msgpack$' \ && php -m | grep -oiE '^memcache$' \ && php-fpm -m | grep -oiE '^memcache$' \ + && php -m | grep -oiE '^msgpack$' \ + && php-fpm -m | grep -oiE '^msgpack$' \ && php -m | grep -oiE '^memcached$' \ && php-fpm -m | grep -oiE '^memcached$' \ && php -m | grep -oiE '^mhash$' \ @@ -717,6 +723,8 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^mysql$' \ && php -m | grep -oiE '^mysqli$' \ && php-fpm -m | grep -oiE '^mysqli$' \ + && php -m | grep -oiE '^pcre$' \ + && php-fpm -m | grep -oiE '^pcre$' \ && php -m | grep -oiE '^oauth$' \ && php-fpm -m | grep -oiE '^oauth$' \ && php -m | grep -oiE '^Zend Opcache$' \ @@ -725,8 +733,6 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^openssl$' \ && php -m | grep -oiE '^pcntl$' \ && php-fpm -m | grep -oiE '^pcntl$' \ - && php -m | grep -oiE '^pcre$' \ - && php-fpm -m | grep -oiE '^pcre$' \ && php -m | grep -oiE '^pdo$' \ && php-fpm -m | grep -oiE '^pdo$' \ && php -m | grep -oiE '^pdo_dblib$' \ @@ -741,6 +747,8 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^pdo_sqlite$' \ && php -m | grep -oiE '^pgsql$' \ && php-fpm -m | grep -oiE '^pgsql$' \ + && php -m | grep -oiE '^redis$' \ + && php-fpm -m | grep -oiE '^redis$' \ && php -m | grep -oiE '^phar$' \ && php-fpm -m | grep -oiE '^phar$' \ && php -m | grep -oiE '^posix$' \ @@ -750,8 +758,6 @@ RUN set -eux \ && php -m | grep -oiE '^readline$' \ && php -m | grep -oiE '^recode$' \ && php-fpm -m | grep -oiE '^recode$' \ - && php -m | grep -oiE '^redis$' \ - && php-fpm -m | grep -oiE '^redis$' \ && php -m | grep -oiE '^reflection$' \ && php-fpm -m | grep -oiE '^reflection$' \ && php -m | grep -oiE '^session$' \ @@ -768,6 +774,12 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^sockets$' \ && php -m | grep -oiE '^spl$' \ && php-fpm -m | grep -oiE '^spl$' \ + && php -m | grep -oiE '^sqlite$' \ + && php-fpm -m | grep -oiE '^sqlite$' \ + && php -m | grep -oiE '^xml$' \ + && php-fpm -m | grep -oiE '^xml$' \ + && php -m | grep -oiE '^zip$' \ + && php-fpm -m | grep -oiE '^zip$' \ && php -m | grep -oiE '^sysvmsg$' \ && php-fpm -m | grep -oiE '^sysvmsg$' \ && php -m | grep -oiE '^sysvsem$' \ @@ -784,8 +796,6 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^wddx$' \ && php -m | grep -oiE '^xdebug$' \ && php-fpm -m | grep -oiE '^xdebug$' \ - && php -m | grep -oiE '^xml$' \ - && php-fpm -m | grep -oiE '^xml$' \ && php -m | grep -oiE '^xmlreader$' \ && php-fpm -m | grep -oiE '^xmlreader$' \ && php -m | grep -oiE '^xmlrpc$' \ @@ -794,8 +804,8 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^xmlwriter$' \ && php -m | grep -oiE '^xsl$' \ && php-fpm -m | grep -oiE '^xsl$' \ - && php -m | grep -oiE '^zip$' \ - && php-fpm -m | grep -oiE '^zip$' \ + && php -m | grep -oiE '^zlib$' \ + && php-fpm -m | grep -oiE '^zlib$' \ && true diff --git a/Dockerfiles/mods/Dockerfile-5.3 b/Dockerfiles/mods/Dockerfile-5.3 index 5f0c230..9d4c187 100644 --- a/Dockerfiles/mods/Dockerfile-5.3 +++ b/Dockerfiles/mods/Dockerfile-5.3 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead. FROM devilbox/php-fpm:5.3-base as builder @@ -46,6 +46,8 @@ RUN set -eux \ libxpm-dev \ libxslt-dev \ libyaml-dev \ + libzip-dev \ + re2c \ snmp \ uuid-dev \ zlib1g-dev \ @@ -255,17 +257,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: msgpack -------------------- -RUN set -eux \ - # Installation: Version specific - # Type: PECL extension - # Default: Pecl command - && pecl install msgpack-0.5.7 \ - # Enabling - && docker-php-ext-enable msgpack \ - && true - - # -------------------- Installing PHP Extension: memcache -------------------- RUN set -eux \ # Installation: Version specific @@ -277,6 +268,17 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: msgpack -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install msgpack-0.5.7 \ + # Enabling + && docker-php-ext-enable msgpack \ + && true + + # -------------------- Installing PHP Extension: memcached -------------------- RUN set -eux \ # Installation: Version specific @@ -343,27 +345,32 @@ RUN set -eux \ # -------------------- Installing PHP Extension: oci8 -------------------- RUN set -eux \ # Generic pre-command - && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ + && ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \ +&& ORACLE_HREF="$( \ + curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \ + | tac \ + | tac \ + | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \ + | tail -1 \ +)" \ && ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ && ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ \ && rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \ -&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ +&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ && alien \ -v \ --target=$( dpkg --print-architecture ) \ - -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture \ - --query DEB_HOST_GNU_CPU).rpm \ + -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ && alien \ -v \ --target=$( dpkg --print-architecture ) \ - -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture \ - --query DEB_HOST_GNU_CPU).rpm \ -&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ + -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ \ # Installation: Generic # Type: Built-in extension @@ -371,7 +378,14 @@ https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architec && docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \ && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \ # Generic post-command - && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ + && ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \ +&& ORACLE_HREF="$( \ + curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \ + | tac \ + | tac \ + | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \ + | tail -1 \ +)" \ && ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ && ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ && (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ @@ -443,6 +457,22 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: redis -------------------- +RUN set -eux \ + # Generic pre-command + && if [ -f /usr/include/liblzf/lzf.h ]; then \ + ln -s /usr/include/liblzf/lzf.h /usr/include/; \ +fi \ + \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install redis-4.3.0 \ + # Enabling + && docker-php-ext-enable redis \ + && true + + # -------------------- Installing PHP Extension: phalcon -------------------- RUN set -eux \ # Installation: Version specific @@ -466,17 +496,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: redis -------------------- -RUN set -eux \ - # Installation: Version specific - # Type: PECL extension - # Default: Pecl command - && pecl install redis-4.3.0 \ - # Enabling - && docker-php-ext-enable redis \ - && true - - # -------------------- Installing PHP Extension: rdkafka -------------------- RUN set -eux \ # Installation: Version specific @@ -501,7 +520,7 @@ RUN set -eux \ # Installation: Generic # Type: Built-in extension # Custom: configure command - && docker-php-ext-configure snmp --with-openssl-dir \ + && docker-php-ext-configure snmp --with-snmp \ && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \ && true @@ -510,8 +529,6 @@ RUN set -eux \ RUN set -eux \ # Installation: Generic # Type: Built-in extension - # Custom: configure command - && docker-php-ext-configure soap --with-libxml-dir=/usr \ && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \ && true @@ -524,6 +541,28 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: zip -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure zip --enable-zip --with-zlib-dir=/usr --with-pcre-dir=/usr \ + # Installation + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ + && true + + +# -------------------- Installing PHP Extension: swoole -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install swoole-1.9.23 \ + # Enabling + && docker-php-ext-enable swoole \ + && true + + # -------------------- Installing PHP Extension: sysvmsg -------------------- RUN set -eux \ # Installation: Generic @@ -629,28 +668,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: zip -------------------- -RUN set -eux \ - # Installation: Version specific - # Type: Built-in extension - # Custom: configure command - && docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr \ - # Installation - && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ - && true - - -# -------------------- Installing PHP Extension: swoole -------------------- -RUN set -eux \ - # Installation: Version specific - # Type: PECL extension - # Default: Pecl command - && pecl install swoole-1.9.23 \ - # Enabling - && docker-php-ext-enable swoole \ - && true - - # Fix php.ini settings for enabled extensions @@ -669,7 +686,7 @@ RUN set -eux \ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead. FROM devilbox/php-fpm:5.3-base as final MAINTAINER "cytopia" @@ -725,6 +742,7 @@ RUN set -eux \ libxpm4 \ libxslt1.1 \ libyaml-0-2 \ + libzip2 \ snmp \ uuid \ zlib1g \ @@ -750,7 +768,14 @@ COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/ ### RUN set -eux \ # ---------- oci8 ---------- - && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ + && ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \ +&& ORACLE_HREF="$( \ + curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \ + | tac \ + | tac \ + | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \ + | tail -1 \ +)" \ && ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ && ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ && (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ @@ -779,6 +804,8 @@ RUN set -eux \ \ && php -m | grep -oiE '^amqp$' \ && php-fpm -m | grep -oiE '^amqp$' \ + && php -m | grep -oiE '^apc$' \ + && php-fpm -m | grep -oiE '^apc$' \ && php -m | grep -oiE '^apcu$' \ && php-fpm -m | grep -oiE '^apcu$' \ && php -m | grep -oiE '^bcmath$' \ @@ -791,12 +818,20 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^ctype$' \ && php -m | grep -oiE '^curl$' \ && php-fpm -m | grep -oiE '^curl$' \ + && php -m | grep -oiE '^date$' \ + && php-fpm -m | grep -oiE '^date$' \ && php -m | grep -oiE '^dba$' \ && php-fpm -m | grep -oiE '^dba$' \ + && php -m | grep -oiE '^libxml$' \ + && php-fpm -m | grep -oiE '^libxml$' \ && php -m | grep -oiE '^dom$' \ && php-fpm -m | grep -oiE '^dom$' \ && php -m | grep -oiE '^enchant$' \ && php-fpm -m | grep -oiE '^enchant$' \ + && php -m | grep -oiE '^ereg$' \ + && php-fpm -m | grep -oiE '^ereg$' \ + && php -m | grep -oiE '^mbstring$' \ + && php-fpm -m | grep -oiE '^mbstring$' \ && php -m | grep -oiE '^exif$' \ && php-fpm -m | grep -oiE '^exif$' \ && php -m | grep -oiE '^fileinfo$' \ @@ -827,16 +862,12 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^json$' \ && php -m | grep -oiE '^ldap$' \ && php-fpm -m | grep -oiE '^ldap$' \ - && php -m | grep -oiE '^libxml$' \ - && php-fpm -m | grep -oiE '^libxml$' \ - && php -m | grep -oiE '^mbstring$' \ - && php-fpm -m | grep -oiE '^mbstring$' \ && php -m | grep -oiE '^mcrypt$' \ && php-fpm -m | grep -oiE '^mcrypt$' \ - && php -m | grep -oiE '^msgpack$' \ - && php-fpm -m | grep -oiE '^msgpack$' \ && php -m | grep -oiE '^memcache$' \ && php-fpm -m | grep -oiE '^memcache$' \ + && php -m | grep -oiE '^msgpack$' \ + && php-fpm -m | grep -oiE '^msgpack$' \ && php -m | grep -oiE '^memcached$' \ && php-fpm -m | grep -oiE '^memcached$' \ && php -m | grep -oiE '^mhash$' \ @@ -851,6 +882,8 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^mysqli$' \ && php -m | grep -oiE '^mysqlnd$' \ && php-fpm -m | grep -oiE '^mysqlnd$' \ + && php -m | grep -oiE '^pcre$' \ + && php-fpm -m | grep -oiE '^pcre$' \ && php -m | grep -oiE '^oauth$' \ && php-fpm -m | grep -oiE '^oauth$' \ && php -m | grep -oiE '^oci8$' \ @@ -861,8 +894,6 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^openssl$' \ && php -m | grep -oiE '^pcntl$' \ && php-fpm -m | grep -oiE '^pcntl$' \ - && php -m | grep -oiE '^pcre$' \ - && php-fpm -m | grep -oiE '^pcre$' \ && php -m | grep -oiE '^pdo$' \ && php-fpm -m | grep -oiE '^pdo$' \ && php -m | grep -oiE '^pdo_dblib$' \ @@ -877,6 +908,10 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^pdo_sqlite$' \ && php -m | grep -oiE '^pgsql$' \ && php-fpm -m | grep -oiE '^pgsql$' \ + && php -m | grep -oiE '^redis$' \ + && php-fpm -m | grep -oiE '^redis$' \ + && php -m | grep -oiE '^sqlite3$' \ + && php-fpm -m | grep -oiE '^sqlite3$' \ && php -m | grep -oiE '^phalcon$' \ && php-fpm -m | grep -oiE '^phalcon$' \ && php -m | grep -oiE '^phar$' \ @@ -885,15 +920,13 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^posix$' \ && php -m | grep -oiE '^pspell$' \ && php-fpm -m | grep -oiE '^pspell$' \ + && php -m | grep -oiE '^rdkafka$' \ + && php-fpm -m | grep -oiE '^rdkafka$' \ && php -m | grep -oiE '^readline$' \ && php -m | grep -oiE '^recode$' \ && php-fpm -m | grep -oiE '^recode$' \ - && php -m | grep -oiE '^redis$' \ - && php-fpm -m | grep -oiE '^redis$' \ && php -m | grep -oiE '^reflection$' \ && php-fpm -m | grep -oiE '^reflection$' \ - && php -m | grep -oiE '^rdkafka$' \ - && php-fpm -m | grep -oiE '^rdkafka$' \ && php -m | grep -oiE '^session$' \ && php-fpm -m | grep -oiE '^session$' \ && php -m | grep -oiE '^shmop$' \ @@ -908,6 +941,14 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^sockets$' \ && php -m | grep -oiE '^spl$' \ && php-fpm -m | grep -oiE '^spl$' \ + && php -m | grep -oiE '^sqlite$' \ + && php-fpm -m | grep -oiE '^sqlite$' \ + && php -m | grep -oiE '^xml$' \ + && php-fpm -m | grep -oiE '^xml$' \ + && php -m | grep -oiE '^zip$' \ + && php-fpm -m | grep -oiE '^zip$' \ + && php -m | grep -oiE '^swoole$' \ + && php-fpm -m | grep -oiE '^swoole$' \ && php -m | grep -oiE '^sysvmsg$' \ && php-fpm -m | grep -oiE '^sysvmsg$' \ && php -m | grep -oiE '^sysvsem$' \ @@ -926,8 +967,6 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^wddx$' \ && php -m | grep -oiE '^xdebug$' \ && php-fpm -m | grep -oiE '^xdebug$' \ - && php -m | grep -oiE '^xml$' \ - && php-fpm -m | grep -oiE '^xml$' \ && php -m | grep -oiE '^xmlreader$' \ && php-fpm -m | grep -oiE '^xmlreader$' \ && php -m | grep -oiE '^xmlrpc$' \ @@ -938,10 +977,8 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^xsl$' \ && php -m | grep -oiE '^yaml$' \ && php-fpm -m | grep -oiE '^yaml$' \ - && php -m | grep -oiE '^zip$' \ - && php-fpm -m | grep -oiE '^zip$' \ - && php -m | grep -oiE '^swoole$' \ - && php-fpm -m | grep -oiE '^swoole$' \ + && php -m | grep -oiE '^zlib$' \ + && php-fpm -m | grep -oiE '^zlib$' \ && true diff --git a/Dockerfiles/mods/Dockerfile-5.4 b/Dockerfiles/mods/Dockerfile-5.4 index 77ffb18..f5122df 100644 --- a/Dockerfiles/mods/Dockerfile-5.4 +++ b/Dockerfiles/mods/Dockerfile-5.4 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead. FROM devilbox/php-fpm:5.4-base as builder @@ -46,6 +46,8 @@ RUN set -eux \ libxpm-dev \ libxslt-dev \ libyaml-dev \ + libzip-dev \ + re2c \ snmp \ uuid-dev \ zlib1g-dev \ @@ -255,17 +257,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: msgpack -------------------- -RUN set -eux \ - # Installation: Version specific - # Type: PECL extension - # Default: Pecl command - && pecl install msgpack-0.5.7 \ - # Enabling - && docker-php-ext-enable msgpack \ - && true - - # -------------------- Installing PHP Extension: memcache -------------------- RUN set -eux \ # Installation: Version specific @@ -277,6 +268,17 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: msgpack -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install msgpack-0.5.7 \ + # Enabling + && docker-php-ext-enable msgpack \ + && true + + # -------------------- Installing PHP Extension: memcached -------------------- RUN set -eux \ # Installation: Version specific @@ -343,27 +345,32 @@ RUN set -eux \ # -------------------- Installing PHP Extension: oci8 -------------------- RUN set -eux \ # Generic pre-command - && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ + && ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \ +&& ORACLE_HREF="$( \ + curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \ + | tac \ + | tac \ + | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \ + | tail -1 \ +)" \ && ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ && ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ \ && rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \ -&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ +&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ && alien \ -v \ --target=$( dpkg --print-architecture ) \ - -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture \ - --query DEB_HOST_GNU_CPU).rpm \ + -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ && alien \ -v \ --target=$( dpkg --print-architecture ) \ - -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture \ - --query DEB_HOST_GNU_CPU).rpm \ -&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ + -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ \ # Installation: Generic # Type: Built-in extension @@ -371,7 +378,14 @@ https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architec && docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \ && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \ # Generic post-command - && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ + && ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \ +&& ORACLE_HREF="$( \ + curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \ + | tac \ + | tac \ + | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \ + | tail -1 \ +)" \ && ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ && ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ && (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ @@ -454,6 +468,22 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: redis -------------------- +RUN set -eux \ + # Generic pre-command + && if [ -f /usr/include/liblzf/lzf.h ]; then \ + ln -s /usr/include/liblzf/lzf.h /usr/include/; \ +fi \ + \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install redis-4.3.0 \ + # Enabling + && docker-php-ext-enable redis \ + && true + + # -------------------- Installing PHP Extension: phalcon -------------------- RUN set -eux \ # Installation: Version specific @@ -477,17 +507,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: redis -------------------- -RUN set -eux \ - # Installation: Version specific - # Type: PECL extension - # Default: Pecl command - && pecl install redis-4.3.0 \ - # Enabling - && docker-php-ext-enable redis \ - && true - - # -------------------- Installing PHP Extension: rdkafka -------------------- RUN set -eux \ # Installation: Version specific @@ -512,7 +531,7 @@ RUN set -eux \ # Installation: Generic # Type: Built-in extension # Custom: configure command - && docker-php-ext-configure snmp --with-openssl-dir \ + && docker-php-ext-configure snmp --with-snmp \ && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \ && true @@ -521,8 +540,6 @@ RUN set -eux \ RUN set -eux \ # Installation: Generic # Type: Built-in extension - # Custom: configure command - && docker-php-ext-configure soap --with-libxml-dir=/usr \ && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \ && true @@ -535,6 +552,28 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: zip -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure zip --enable-zip --with-zlib-dir=/usr --with-pcre-dir=/usr \ + # Installation + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ + && true + + +# -------------------- Installing PHP Extension: swoole -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install swoole-1.9.23 \ + # Enabling + && docker-php-ext-enable swoole \ + && true + + # -------------------- Installing PHP Extension: sysvmsg -------------------- RUN set -eux \ # Installation: Generic @@ -640,28 +679,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: zip -------------------- -RUN set -eux \ - # Installation: Version specific - # Type: Built-in extension - # Custom: configure command - && docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr \ - # Installation - && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ - && true - - -# -------------------- Installing PHP Extension: swoole -------------------- -RUN set -eux \ - # Installation: Version specific - # Type: PECL extension - # Default: Pecl command - && pecl install swoole-1.9.23 \ - # Enabling - && docker-php-ext-enable swoole \ - && true - - # Fix php.ini settings for enabled extensions @@ -680,7 +697,7 @@ RUN set -eux \ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead. FROM devilbox/php-fpm:5.4-base as final MAINTAINER "cytopia" @@ -736,6 +753,7 @@ RUN set -eux \ libxpm4 \ libxslt1.1 \ libyaml-0-2 \ + libzip2 \ snmp \ uuid \ zlib1g \ @@ -761,7 +779,14 @@ COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/ ### RUN set -eux \ # ---------- oci8 ---------- - && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ + && ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \ +&& ORACLE_HREF="$( \ + curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \ + | tac \ + | tac \ + | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \ + | tail -1 \ +)" \ && ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ && ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ && (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ @@ -790,6 +815,8 @@ RUN set -eux \ \ && php -m | grep -oiE '^amqp$' \ && php-fpm -m | grep -oiE '^amqp$' \ + && php -m | grep -oiE '^apc$' \ + && php-fpm -m | grep -oiE '^apc$' \ && php -m | grep -oiE '^apcu$' \ && php-fpm -m | grep -oiE '^apcu$' \ && php -m | grep -oiE '^bcmath$' \ @@ -802,12 +829,20 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^ctype$' \ && php -m | grep -oiE '^curl$' \ && php-fpm -m | grep -oiE '^curl$' \ + && php -m | grep -oiE '^date$' \ + && php-fpm -m | grep -oiE '^date$' \ && php -m | grep -oiE '^dba$' \ && php-fpm -m | grep -oiE '^dba$' \ + && php -m | grep -oiE '^libxml$' \ + && php-fpm -m | grep -oiE '^libxml$' \ && php -m | grep -oiE '^dom$' \ && php-fpm -m | grep -oiE '^dom$' \ && php -m | grep -oiE '^enchant$' \ && php-fpm -m | grep -oiE '^enchant$' \ + && php -m | grep -oiE '^ereg$' \ + && php-fpm -m | grep -oiE '^ereg$' \ + && php -m | grep -oiE '^mbstring$' \ + && php-fpm -m | grep -oiE '^mbstring$' \ && php -m | grep -oiE '^exif$' \ && php-fpm -m | grep -oiE '^exif$' \ && php -m | grep -oiE '^fileinfo$' \ @@ -838,16 +873,12 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^json$' \ && php -m | grep -oiE '^ldap$' \ && php-fpm -m | grep -oiE '^ldap$' \ - && php -m | grep -oiE '^libxml$' \ - && php-fpm -m | grep -oiE '^libxml$' \ - && php -m | grep -oiE '^mbstring$' \ - && php-fpm -m | grep -oiE '^mbstring$' \ && php -m | grep -oiE '^mcrypt$' \ && php-fpm -m | grep -oiE '^mcrypt$' \ - && php -m | grep -oiE '^msgpack$' \ - && php-fpm -m | grep -oiE '^msgpack$' \ && php -m | grep -oiE '^memcache$' \ && php-fpm -m | grep -oiE '^memcache$' \ + && php -m | grep -oiE '^msgpack$' \ + && php-fpm -m | grep -oiE '^msgpack$' \ && php -m | grep -oiE '^memcached$' \ && php-fpm -m | grep -oiE '^memcached$' \ && php -m | grep -oiE '^mhash$' \ @@ -862,6 +893,8 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^mysqli$' \ && php -m | grep -oiE '^mysqlnd$' \ && php-fpm -m | grep -oiE '^mysqlnd$' \ + && php -m | grep -oiE '^pcre$' \ + && php-fpm -m | grep -oiE '^pcre$' \ && php -m | grep -oiE '^oauth$' \ && php-fpm -m | grep -oiE '^oauth$' \ && php -m | grep -oiE '^oci8$' \ @@ -872,8 +905,6 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^openssl$' \ && php -m | grep -oiE '^pcntl$' \ && php-fpm -m | grep -oiE '^pcntl$' \ - && php -m | grep -oiE '^pcre$' \ - && php-fpm -m | grep -oiE '^pcre$' \ && php -m | grep -oiE '^pdo$' \ && php-fpm -m | grep -oiE '^pdo$' \ && php -m | grep -oiE '^pdo_dblib$' \ @@ -890,6 +921,10 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^pgsql$' \ && php -m | grep -oiE '^psr$' \ && php-fpm -m | grep -oiE '^psr$' \ + && php -m | grep -oiE '^redis$' \ + && php-fpm -m | grep -oiE '^redis$' \ + && php -m | grep -oiE '^sqlite3$' \ + && php-fpm -m | grep -oiE '^sqlite3$' \ && php -m | grep -oiE '^phalcon$' \ && php-fpm -m | grep -oiE '^phalcon$' \ && php -m | grep -oiE '^phar$' \ @@ -898,15 +933,13 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^posix$' \ && php -m | grep -oiE '^pspell$' \ && php-fpm -m | grep -oiE '^pspell$' \ + && php -m | grep -oiE '^rdkafka$' \ + && php-fpm -m | grep -oiE '^rdkafka$' \ && php -m | grep -oiE '^readline$' \ && php -m | grep -oiE '^recode$' \ && php-fpm -m | grep -oiE '^recode$' \ - && php -m | grep -oiE '^redis$' \ - && php-fpm -m | grep -oiE '^redis$' \ && php -m | grep -oiE '^reflection$' \ && php-fpm -m | grep -oiE '^reflection$' \ - && php -m | grep -oiE '^rdkafka$' \ - && php-fpm -m | grep -oiE '^rdkafka$' \ && php -m | grep -oiE '^session$' \ && php-fpm -m | grep -oiE '^session$' \ && php -m | grep -oiE '^shmop$' \ @@ -921,6 +954,12 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^sockets$' \ && php -m | grep -oiE '^spl$' \ && php-fpm -m | grep -oiE '^spl$' \ + && php -m | grep -oiE '^xml$' \ + && php-fpm -m | grep -oiE '^xml$' \ + && php -m | grep -oiE '^zip$' \ + && php-fpm -m | grep -oiE '^zip$' \ + && php -m | grep -oiE '^swoole$' \ + && php-fpm -m | grep -oiE '^swoole$' \ && php -m | grep -oiE '^sysvmsg$' \ && php-fpm -m | grep -oiE '^sysvmsg$' \ && php -m | grep -oiE '^sysvsem$' \ @@ -939,8 +978,6 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^wddx$' \ && php -m | grep -oiE '^xdebug$' \ && php-fpm -m | grep -oiE '^xdebug$' \ - && php -m | grep -oiE '^xml$' \ - && php-fpm -m | grep -oiE '^xml$' \ && php -m | grep -oiE '^xmlreader$' \ && php-fpm -m | grep -oiE '^xmlreader$' \ && php -m | grep -oiE '^xmlrpc$' \ @@ -951,10 +988,8 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^xsl$' \ && php -m | grep -oiE '^yaml$' \ && php-fpm -m | grep -oiE '^yaml$' \ - && php -m | grep -oiE '^zip$' \ - && php-fpm -m | grep -oiE '^zip$' \ - && php -m | grep -oiE '^swoole$' \ - && php-fpm -m | grep -oiE '^swoole$' \ + && php -m | grep -oiE '^zlib$' \ + && php-fpm -m | grep -oiE '^zlib$' \ && true diff --git a/Dockerfiles/mods/Dockerfile-5.5 b/Dockerfiles/mods/Dockerfile-5.5 index 29d0506..03b2f74 100644 --- a/Dockerfiles/mods/Dockerfile-5.5 +++ b/Dockerfiles/mods/Dockerfile-5.5 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead. FROM devilbox/php-fpm:5.5-base as builder @@ -48,6 +48,8 @@ RUN set -eux \ libxpm-dev \ libxslt-dev \ libyaml-dev \ + libzip-dev \ + re2c \ snmp \ uuid-dev \ zlib1g-dev \ @@ -90,23 +92,6 @@ RUN set -eux \ echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \ fi -# -------------------- Installing PHP Extension: ioncube -------------------- -RUN set -eux \ - # Installation: Generic - # Type: Custom extension - && EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \ -&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \ -&& curl -sS --fail -k https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_$(dpkg-architecture --query DEB_HOST_GNU_CPU | sed 's/_/-/g').tar.gz -L -o ioncube.tar.gz \ -&& tar xvfz ioncube.tar.gz \ -&& cd ioncube \ -&& cp "ioncube_loader_lin_5.5.so" "${EXTENSION_DIR}/ioncube.so" \ -&& cd ../ \ -&& rm -rf ioncube \ -&& rm -rf ioncube.tar.gz \ - \ - && true - - # -------------------- Installing PHP Extension: amqp -------------------- RUN set -eux \ # Installation: Version specific @@ -275,6 +260,23 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: ioncube -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Custom extension + && EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \ +&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \ +&& curl -sS --fail -k https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_$(dpkg-architecture --query DEB_HOST_GNU_CPU | sed 's/_/-/g').tar.gz -L -o ioncube.tar.gz \ +&& tar xvfz ioncube.tar.gz \ +&& cd ioncube \ +&& cp "ioncube_loader_lin_5.5.so" "${EXTENSION_DIR}/ioncube.so" \ +&& cd ../ \ +&& rm -rf ioncube \ +&& rm -rf ioncube.tar.gz \ + \ + && true + + # -------------------- Installing PHP Extension: ldap -------------------- RUN set -eux \ # Generic pre-command @@ -296,17 +298,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: msgpack -------------------- -RUN set -eux \ - # Installation: Version specific - # Type: PECL extension - # Default: Pecl command - && pecl install msgpack-0.5.7 \ - # Enabling - && docker-php-ext-enable msgpack \ - && true - - # -------------------- Installing PHP Extension: memcache -------------------- RUN set -eux \ # Installation: Version specific @@ -318,6 +309,17 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: msgpack -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install msgpack-0.5.7 \ + # Enabling + && docker-php-ext-enable msgpack \ + && true + + # -------------------- Installing PHP Extension: memcached -------------------- RUN set -eux \ # Installation: Version specific @@ -384,27 +386,32 @@ RUN set -eux \ # -------------------- Installing PHP Extension: oci8 -------------------- RUN set -eux \ # Generic pre-command - && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ + && ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \ +&& ORACLE_HREF="$( \ + curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \ + | tac \ + | tac \ + | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \ + | tail -1 \ +)" \ && ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ && ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ \ && rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \ -&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ +&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ && alien \ -v \ --target=$( dpkg --print-architecture ) \ - -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture \ - --query DEB_HOST_GNU_CPU).rpm \ + -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ && alien \ -v \ --target=$( dpkg --print-architecture ) \ - -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture \ - --query DEB_HOST_GNU_CPU).rpm \ -&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ + -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ \ # Installation: Generic # Type: Built-in extension @@ -412,7 +419,14 @@ https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architec && docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \ && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \ # Generic post-command - && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ + && ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \ +&& ORACLE_HREF="$( \ + curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \ + | tac \ + | tac \ + | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \ + | tail -1 \ +)" \ && ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ && ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ && (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ @@ -492,6 +506,22 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: redis -------------------- +RUN set -eux \ + # Generic pre-command + && if [ -f /usr/include/liblzf/lzf.h ]; then \ + ln -s /usr/include/liblzf/lzf.h /usr/include/; \ +fi \ + \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install redis-4.3.0 \ + # Enabling + && docker-php-ext-enable redis \ + && true + + # -------------------- Installing PHP Extension: phalcon -------------------- RUN set -eux \ # Installation: Version specific @@ -515,17 +545,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: redis -------------------- -RUN set -eux \ - # Installation: Version specific - # Type: PECL extension - # Default: Pecl command - && pecl install redis-4.3.0 \ - # Enabling - && docker-php-ext-enable redis \ - && true - - # -------------------- Installing PHP Extension: rdkafka -------------------- RUN set -eux \ # Installation: Version specific @@ -550,7 +569,7 @@ RUN set -eux \ # Installation: Generic # Type: Built-in extension # Custom: configure command - && docker-php-ext-configure snmp --with-openssl-dir \ + && docker-php-ext-configure snmp --with-snmp \ && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \ && true @@ -559,8 +578,6 @@ RUN set -eux \ RUN set -eux \ # Installation: Generic # Type: Built-in extension - # Custom: configure command - && docker-php-ext-configure soap --with-libxml-dir=/usr \ && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \ && true @@ -573,6 +590,28 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: zip -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure zip --enable-zip --with-zlib-dir=/usr --with-pcre-dir=/usr \ + # Installation + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ + && true + + +# -------------------- Installing PHP Extension: swoole -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install swoole-1.9.23 \ + # Enabling + && docker-php-ext-enable swoole \ + && true + + # -------------------- Installing PHP Extension: sysvmsg -------------------- RUN set -eux \ # Installation: Generic @@ -678,28 +717,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: zip -------------------- -RUN set -eux \ - # Installation: Version specific - # Type: Built-in extension - # Custom: configure command - && docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr \ - # Installation - && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ - && true - - -# -------------------- Installing PHP Extension: swoole -------------------- -RUN set -eux \ - # Installation: Version specific - # Type: PECL extension - # Default: Pecl command - && pecl install swoole-1.9.23 \ - # Enabling - && docker-php-ext-enable swoole \ - && true - - # Fix php.ini settings for enabled extensions @@ -718,7 +735,7 @@ RUN set -eux \ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead. FROM devilbox/php-fpm:5.5-base as final MAINTAINER "cytopia" @@ -776,6 +793,7 @@ RUN set -eux \ libxpm4 \ libxslt1.1 \ libyaml-0-2 \ + libzip2 \ snmp \ uuid \ zlib1g \ @@ -812,7 +830,14 @@ RUN set -eux \ && sed -i'' 's|.*> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \ fi -# -------------------- Installing PHP Extension: ioncube -------------------- -RUN set -eux \ - # Installation: Generic - # Type: Custom extension - && EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \ -&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \ -&& curl -sS --fail -k https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_$(dpkg-architecture --query DEB_HOST_GNU_CPU | sed 's/_/-/g').tar.gz -L -o ioncube.tar.gz \ -&& tar xvfz ioncube.tar.gz \ -&& cd ioncube \ -&& cp "ioncube_loader_lin_5.6.so" "${EXTENSION_DIR}/ioncube.so" \ -&& cd ../ \ -&& rm -rf ioncube \ -&& rm -rf ioncube.tar.gz \ - \ - && true - - # -------------------- Installing PHP Extension: amqp -------------------- RUN set -eux \ # Installation: Generic @@ -286,6 +270,23 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: ioncube -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Custom extension + && EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \ +&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \ +&& curl -sS --fail -k https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_$(dpkg-architecture --query DEB_HOST_GNU_CPU | sed 's/_/-/g').tar.gz -L -o ioncube.tar.gz \ +&& tar xvfz ioncube.tar.gz \ +&& cd ioncube \ +&& cp "ioncube_loader_lin_5.6.so" "${EXTENSION_DIR}/ioncube.so" \ +&& cd ../ \ +&& rm -rf ioncube \ +&& rm -rf ioncube.tar.gz \ + \ + && true + + # -------------------- Installing PHP Extension: ldap -------------------- RUN set -eux \ # Generic pre-command @@ -307,17 +308,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: msgpack -------------------- -RUN set -eux \ - # Installation: Version specific - # Type: PECL extension - # Default: Pecl command - && pecl install msgpack-0.5.7 \ - # Enabling - && docker-php-ext-enable msgpack \ - && true - - # -------------------- Installing PHP Extension: memcache -------------------- RUN set -eux \ # Installation: Version specific @@ -329,6 +319,17 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: msgpack -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install msgpack-0.5.7 \ + # Enabling + && docker-php-ext-enable msgpack \ + && true + + # -------------------- Installing PHP Extension: memcached -------------------- RUN set -eux \ # Installation: Version specific @@ -396,27 +397,32 @@ RUN set -eux \ # -------------------- Installing PHP Extension: oci8 -------------------- RUN set -eux \ # Generic pre-command - && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ + && ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \ +&& ORACLE_HREF="$( \ + curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \ + | tac \ + | tac \ + | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \ + | tail -1 \ +)" \ && ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ && ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ \ && rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \ -&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ +&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ && alien \ -v \ --target=$( dpkg --print-architecture ) \ - -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture \ - --query DEB_HOST_GNU_CPU).rpm \ + -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ && alien \ -v \ --target=$( dpkg --print-architecture ) \ - -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture \ - --query DEB_HOST_GNU_CPU).rpm \ -&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ + -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ \ # Installation: Generic # Type: Built-in extension @@ -424,7 +430,14 @@ https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architec && docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \ && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \ # Generic post-command - && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ + && ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \ +&& ORACLE_HREF="$( \ + curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \ + | tac \ + | tac \ + | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \ + | tail -1 \ +)" \ && ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ && ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ && (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ @@ -504,6 +517,22 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: redis -------------------- +RUN set -eux \ + # Generic pre-command + && if [ -f /usr/include/liblzf/lzf.h ]; then \ + ln -s /usr/include/liblzf/lzf.h /usr/include/; \ +fi \ + \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install redis-4.3.0 \ + # Enabling + && docker-php-ext-enable redis \ + && true + + # -------------------- Installing PHP Extension: phalcon -------------------- RUN set -eux \ # Installation: Version specific @@ -527,25 +556,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: recode -------------------- -RUN set -eux \ - # Installation: Generic - # Type: Built-in extension - && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ - && true - - -# -------------------- Installing PHP Extension: redis -------------------- -RUN set -eux \ - # Installation: Version specific - # Type: PECL extension - # Default: Pecl command - && pecl install redis-4.3.0 \ - # Enabling - && docker-php-ext-enable redis \ - && true - - # -------------------- Installing PHP Extension: rdkafka -------------------- RUN set -eux \ # Installation: Version specific @@ -557,6 +567,14 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: recode -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ + && true + + # -------------------- Installing PHP Extension: shmop -------------------- RUN set -eux \ # Installation: Generic @@ -570,7 +588,7 @@ RUN set -eux \ # Installation: Generic # Type: Built-in extension # Custom: configure command - && docker-php-ext-configure snmp --with-openssl-dir \ + && docker-php-ext-configure snmp --with-snmp \ && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \ && true @@ -579,8 +597,6 @@ RUN set -eux \ RUN set -eux \ # Installation: Generic # Type: Built-in extension - # Custom: configure command - && docker-php-ext-configure soap --with-libxml-dir=/usr \ && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \ && true @@ -593,6 +609,28 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: zip -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure zip --enable-zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip=/usr \ + # Installation + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ + && true + + +# -------------------- Installing PHP Extension: swoole -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install swoole-1.9.23 \ + # Enabling + && docker-php-ext-enable swoole \ + && true + + # -------------------- Installing PHP Extension: sysvmsg -------------------- RUN set -eux \ # Installation: Generic @@ -698,27 +736,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: zip -------------------- -RUN set -eux \ - # Installation: Generic - # Type: Built-in extension - # Custom: configure command - && docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \ - && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ - && true - - -# -------------------- Installing PHP Extension: swoole -------------------- -RUN set -eux \ - # Installation: Version specific - # Type: PECL extension - # Default: Pecl command - && pecl install swoole-1.9.23 \ - # Enabling - && docker-php-ext-enable swoole \ - && true - - # Fix php.ini settings for enabled extensions @@ -737,7 +754,7 @@ RUN set -eux \ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead. FROM devilbox/php-fpm:5.6-base as final MAINTAINER "cytopia" @@ -797,6 +814,7 @@ RUN set -eux \ libzip4 \ snmp \ uuid \ + zlib1g \ ca-certificates \ && rm -rf /var/lib/apt/lists/* \ \ @@ -830,7 +848,14 @@ RUN set -eux \ && sed -i'' 's|.*> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \ fi -# -------------------- Installing PHP Extension: ioncube -------------------- -RUN set -eux \ - # Installation: Generic - # Type: Custom extension - && EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \ -&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \ -&& curl -sS --fail -k https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_$(dpkg-architecture --query DEB_HOST_GNU_CPU | sed 's/_/-/g').tar.gz -L -o ioncube.tar.gz \ -&& tar xvfz ioncube.tar.gz \ -&& cd ioncube \ -&& cp "ioncube_loader_lin_7.0.so" "${EXTENSION_DIR}/ioncube.so" \ -&& cd ../ \ -&& rm -rf ioncube \ -&& rm -rf ioncube.tar.gz \ - \ - && true - - # -------------------- Installing PHP Extension: amqp -------------------- RUN set -eux \ # Installation: Generic @@ -290,6 +276,23 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: ioncube -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Custom extension + && EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \ +&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \ +&& curl -sS --fail -k https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_$(dpkg-architecture --query DEB_HOST_GNU_CPU | sed 's/_/-/g').tar.gz -L -o ioncube.tar.gz \ +&& tar xvfz ioncube.tar.gz \ +&& cd ioncube \ +&& cp "ioncube_loader_lin_7.0.so" "${EXTENSION_DIR}/ioncube.so" \ +&& cd ../ \ +&& rm -rf ioncube \ +&& rm -rf ioncube.tar.gz \ + \ + && true + + # -------------------- Installing PHP Extension: ldap -------------------- RUN set -eux \ # Generic pre-command @@ -302,6 +305,35 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: lz4 -------------------- +RUN set -eux \ + # Installation: Generic + # Type: GIT extension + && git clone https://github.com/kjdev/php-ext-lz4 /tmp/lz4 \ + && cd /tmp/lz4 \ + # Custom: Branch + && git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \ + # Default: Install command + && phpize \ + && ./configure --enable-lz4 --with-lz4-includedir=/usr \ + && make -j$(getconf _NPROCESSORS_ONLN) \ + && make install \ + # Enabling + && docker-php-ext-enable lz4 \ + && true + + +# -------------------- Installing PHP Extension: lzf -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install lzf-1.6.8 \ + # Enabling + && docker-php-ext-enable lzf \ + && true + + # -------------------- Installing PHP Extension: mcrypt -------------------- RUN set -eux \ # Installation: Version specific @@ -311,17 +343,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: msgpack -------------------- -RUN set -eux \ - # Installation: Generic - # Type: PECL extension - # Default: Pecl command - && pecl install msgpack \ - # Enabling - && docker-php-ext-enable msgpack \ - && true - - # -------------------- Installing PHP Extension: memcache -------------------- RUN set -eux \ # Installation: Version specific @@ -333,6 +354,17 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: msgpack -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command + && pecl install msgpack \ + # Enabling + && docker-php-ext-enable msgpack \ + && true + + # -------------------- Installing PHP Extension: memcached -------------------- RUN set -eux \ # Installation: Version specific @@ -378,27 +410,32 @@ RUN set -eux \ # -------------------- Installing PHP Extension: oci8 -------------------- RUN set -eux \ # Generic pre-command - && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ + && ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \ +&& ORACLE_HREF="$( \ + curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \ + | tac \ + | tac \ + | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \ + | tail -1 \ +)" \ && ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ && ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ \ && rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \ -&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ +&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ && alien \ -v \ --target=$( dpkg --print-architecture ) \ - -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture \ - --query DEB_HOST_GNU_CPU).rpm \ + -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ && alien \ -v \ --target=$( dpkg --print-architecture ) \ - -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture \ - --query DEB_HOST_GNU_CPU).rpm \ -&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ + -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ \ # Installation: Generic # Type: Built-in extension @@ -406,7 +443,14 @@ https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architec && docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \ && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \ # Generic post-command - && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ + && ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \ +&& ORACLE_HREF="$( \ + curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \ + | tac \ + | tac \ + | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \ + | tail -1 \ +)" \ && ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ && ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ && (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ @@ -462,27 +506,32 @@ RUN set -eux \ # -------------------- Installing PHP Extension: pdo_oci -------------------- RUN set -eux \ # Generic pre-command - && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ + && ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \ +&& ORACLE_HREF="$( \ + curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \ + | tac \ + | tac \ + | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \ + | tail -1 \ +)" \ && ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ && ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ \ && rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \ -&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ +&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ && alien \ -v \ --target=$( dpkg --print-architecture ) \ - -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture \ - --query DEB_HOST_GNU_CPU).rpm \ + -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ && alien \ -v \ --target=$( dpkg --print-architecture ) \ - -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture \ - --query DEB_HOST_GNU_CPU).rpm \ -&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ + -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ && (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ \ # Installation: Generic @@ -531,6 +580,62 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: zstd -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install zstd \ + # Enabling + && docker-php-ext-enable zstd \ + && true + + +# -------------------- Installing PHP Extension: redis -------------------- +RUN set -eux \ + # Generic pre-command + && if [ -f /usr/include/liblzf/lzf.h ]; then \ + ln -s /usr/include/liblzf/lzf.h /usr/include/; \ +fi \ + \ + # Installation: Version specific + # Type: GIT extension + && git clone https://github.com/phpredis/phpredis /tmp/redis \ + && cd /tmp/redis \ + # Custom: Branch + && git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \ + # Custom: Install command + && REDIS_ARGS=""; \ +if php -m | grep -q "igbinary"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \ +fi; \ +if php -m | grep -q "lz4"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-lz4 --with-liblz4=/usr"; \ +fi; \ +if php -m | grep -q "msgpack"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \ +fi; \ +phpize \ +&& ./configure --enable-redis ${REDIS_ARGS} \ +&& make -j$(getconf _NPROCESSORS_ONLN) \ +&& make install \ + \ + # Enabling + && docker-php-ext-enable redis \ + && true + + +# -------------------- Installing PHP Extension: sqlsrv -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install sqlsrv-5.3.0 \ + # Enabling + && docker-php-ext-enable sqlsrv \ + && true + + # -------------------- Installing PHP Extension: phalcon -------------------- RUN set -eux \ # Installation: Version specific @@ -554,40 +659,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: recode -------------------- -RUN set -eux \ - # Installation: Generic - # Type: Built-in extension - && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ - && true - - -# -------------------- Installing PHP Extension: redis -------------------- -RUN set -eux \ - # Installation: Generic - # Type: GIT extension - && git clone https://github.com/phpredis/phpredis /tmp/redis \ - && cd /tmp/redis \ - # Custom: Branch - && git checkout $(git for-each-ref --format='%(refname)' refs/tags | grep -E 'tags/[.0-9]+$' | sed 's|.*tags/||g' | sort -V | tail -1) \ - # Custom: Install command - && REDIS_ARGS=""; \ -if [ -d "/usr/local/include/php/ext/igbinary" ]; then \ - REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \ -fi; \ -if [ -d "/usr/local/include/php/ext/msgpack" ]; then \ - REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \ -fi; \ -phpize \ -&& ./configure --enable-redis ${REDIS_ARGS} \ -&& make -j$(getconf _NPROCESSORS_ONLN) \ -&& make install \ - \ - # Enabling - && docker-php-ext-enable redis \ - && true - - # -------------------- Installing PHP Extension: rdkafka -------------------- RUN set -eux \ # Installation: Version specific @@ -599,6 +670,14 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: recode -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ + && true + + # -------------------- Installing PHP Extension: shmop -------------------- RUN set -eux \ # Installation: Generic @@ -612,7 +691,7 @@ RUN set -eux \ # Installation: Generic # Type: Built-in extension # Custom: configure command - && docker-php-ext-configure snmp --with-openssl-dir \ + && docker-php-ext-configure snmp --with-snmp \ && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \ && true @@ -621,8 +700,6 @@ RUN set -eux \ RUN set -eux \ # Installation: Generic # Type: Built-in extension - # Custom: configure command - && docker-php-ext-configure soap --with-libxml-dir=/usr \ && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \ && true @@ -635,17 +712,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: sqlsrv -------------------- -RUN set -eux \ - # Installation: Version specific - # Type: PECL extension - # Default: Pecl command - && pecl install sqlsrv-5.3.0 \ - # Enabling - && docker-php-ext-enable sqlsrv \ - && true - - # -------------------- Installing PHP Extension: ssh2 -------------------- RUN set -eux \ # Installation: Generic @@ -657,6 +723,28 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: zip -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure zip --enable-zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip=/usr \ + # Installation + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ + && true + + +# -------------------- Installing PHP Extension: swoole -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install swoole-4.2.13 \ + # Enabling + && docker-php-ext-enable swoole \ + && true + + # -------------------- Installing PHP Extension: sysvmsg -------------------- RUN set -eux \ # Installation: Generic @@ -744,6 +832,17 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: xlswriter -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command + && pecl install xlswriter \ + # Enabling + && docker-php-ext-enable xlswriter \ + && true + + # -------------------- Installing PHP Extension: xmlrpc -------------------- RUN set -eux \ # Installation: Generic @@ -762,17 +861,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: xlswriter -------------------- -RUN set -eux \ - # Installation: Generic - # Type: PECL extension - # Default: Pecl command - && pecl install xlswriter \ - # Enabling - && docker-php-ext-enable xlswriter \ - && true - - # -------------------- Installing PHP Extension: yaml -------------------- RUN set -eux \ # Installation: Version specific @@ -784,27 +872,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: zip -------------------- -RUN set -eux \ - # Installation: Generic - # Type: Built-in extension - # Custom: configure command - && docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \ - && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ - && true - - -# -------------------- Installing PHP Extension: swoole -------------------- -RUN set -eux \ - # Installation: Version specific - # Type: PECL extension - # Default: Pecl command - && pecl install swoole-4.2.13 \ - # Enabling - && docker-php-ext-enable swoole \ - && true - - # Fix php.ini settings for enabled extensions @@ -823,7 +890,7 @@ RUN set -eux \ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead. FROM devilbox/php-fpm:7.0-base as final MAINTAINER "cytopia" @@ -863,6 +930,7 @@ RUN set -eux \ libfreetype6 \ libicu57 \ libjpeg62-turbo \ + liblz4-1 \ libmagickwand-6.q16-3 \ libmariadbclient18 \ libmcrypt4 \ @@ -883,9 +951,11 @@ RUN set -eux \ libxslt1.1 \ libyaml-0-2 \ libzip4 \ + libzstd1 \ snmp \ unixodbc \ uuid \ + zlib1g \ ca-certificates \ && rm -rf /var/lib/apt/lists/* \ \ @@ -919,7 +989,14 @@ RUN set -eux \ && sed -i'' 's|.*> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \ fi -# -------------------- Installing PHP Extension: ioncube -------------------- -RUN set -eux \ - # Installation: Generic - # Type: Custom extension - && EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \ -&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \ -&& curl -sS --fail -k https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_$(dpkg-architecture --query DEB_HOST_GNU_CPU | sed 's/_/-/g').tar.gz -L -o ioncube.tar.gz \ -&& tar xvfz ioncube.tar.gz \ -&& cd ioncube \ -&& cp "ioncube_loader_lin_7.1.so" "${EXTENSION_DIR}/ioncube.so" \ -&& cd ../ \ -&& rm -rf ioncube \ -&& rm -rf ioncube.tar.gz \ - \ - && true - - # -------------------- Installing PHP Extension: amqp -------------------- RUN set -eux \ # Installation: Generic @@ -290,6 +276,23 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: ioncube -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Custom extension + && EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \ +&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \ +&& curl -sS --fail -k https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_$(dpkg-architecture --query DEB_HOST_GNU_CPU | sed 's/_/-/g').tar.gz -L -o ioncube.tar.gz \ +&& tar xvfz ioncube.tar.gz \ +&& cd ioncube \ +&& cp "ioncube_loader_lin_7.1.so" "${EXTENSION_DIR}/ioncube.so" \ +&& cd ../ \ +&& rm -rf ioncube \ +&& rm -rf ioncube.tar.gz \ + \ + && true + + # -------------------- Installing PHP Extension: ldap -------------------- RUN set -eux \ # Generic pre-command @@ -302,6 +305,35 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: lz4 -------------------- +RUN set -eux \ + # Installation: Generic + # Type: GIT extension + && git clone https://github.com/kjdev/php-ext-lz4 /tmp/lz4 \ + && cd /tmp/lz4 \ + # Custom: Branch + && git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \ + # Default: Install command + && phpize \ + && ./configure --enable-lz4 --with-lz4-includedir=/usr \ + && make -j$(getconf _NPROCESSORS_ONLN) \ + && make install \ + # Enabling + && docker-php-ext-enable lz4 \ + && true + + +# -------------------- Installing PHP Extension: lzf -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install lzf-1.6.8 \ + # Enabling + && docker-php-ext-enable lzf \ + && true + + # -------------------- Installing PHP Extension: mcrypt -------------------- RUN set -eux \ # Installation: Version specific @@ -311,17 +343,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: msgpack -------------------- -RUN set -eux \ - # Installation: Generic - # Type: PECL extension - # Default: Pecl command - && pecl install msgpack \ - # Enabling - && docker-php-ext-enable msgpack \ - && true - - # -------------------- Installing PHP Extension: memcache -------------------- RUN set -eux \ # Installation: Version specific @@ -333,6 +354,17 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: msgpack -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command + && pecl install msgpack \ + # Enabling + && docker-php-ext-enable msgpack \ + && true + + # -------------------- Installing PHP Extension: memcached -------------------- RUN set -eux \ # Installation: Version specific @@ -377,27 +409,32 @@ RUN set -eux \ # -------------------- Installing PHP Extension: oci8 -------------------- RUN set -eux \ # Generic pre-command - && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ + && ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \ +&& ORACLE_HREF="$( \ + curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \ + | tac \ + | tac \ + | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \ + | tail -1 \ +)" \ && ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ && ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ \ && rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \ -&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ +&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ && alien \ -v \ --target=$( dpkg --print-architecture ) \ - -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture \ - --query DEB_HOST_GNU_CPU).rpm \ + -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ && alien \ -v \ --target=$( dpkg --print-architecture ) \ - -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture \ - --query DEB_HOST_GNU_CPU).rpm \ -&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ + -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ \ # Installation: Generic # Type: Built-in extension @@ -405,7 +442,14 @@ https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architec && docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \ && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \ # Generic post-command - && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ + && ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \ +&& ORACLE_HREF="$( \ + curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \ + | tac \ + | tac \ + | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \ + | tail -1 \ +)" \ && ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ && ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ && (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ @@ -460,27 +504,32 @@ RUN set -eux \ # -------------------- Installing PHP Extension: pdo_oci -------------------- RUN set -eux \ # Generic pre-command - && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ + && ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \ +&& ORACLE_HREF="$( \ + curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \ + | tac \ + | tac \ + | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \ + | tail -1 \ +)" \ && ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ && ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ \ && rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \ -&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ +&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ && alien \ -v \ --target=$( dpkg --print-architecture ) \ - -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture \ - --query DEB_HOST_GNU_CPU).rpm \ + -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ && alien \ -v \ --target=$( dpkg --print-architecture ) \ - -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture \ - --query DEB_HOST_GNU_CPU).rpm \ -&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ + -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ && (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ \ # Installation: Generic @@ -529,6 +578,72 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: zstd -------------------- +RUN set -eux \ + # Installation: Generic + # Type: GIT extension + && git clone https://github.com/kjdev/php-ext-zstd /tmp/zstd \ + && cd /tmp/zstd \ + # Custom: Branch + && git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \ + # Default: Install command + && phpize \ + && ./configure --enable-zstd --with-libzstd \ + && make -j$(getconf _NPROCESSORS_ONLN) \ + && make install \ + # Enabling + && docker-php-ext-enable zstd \ + && true + + +# -------------------- Installing PHP Extension: redis -------------------- +RUN set -eux \ + # Generic pre-command + && if [ -f /usr/include/liblzf/lzf.h ]; then \ + ln -s /usr/include/liblzf/lzf.h /usr/include/; \ +fi \ + \ + # Installation: Version specific + # Type: GIT extension + && git clone https://github.com/phpredis/phpredis /tmp/redis \ + && cd /tmp/redis \ + # Custom: Branch + && git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \ + # Custom: Install command + && REDIS_ARGS=""; \ +if php -m | grep -q "igbinary"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \ +fi; \ +if php -m | grep -q "lz4"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-lz4 --with-liblz4=/usr"; \ +fi; \ +if php -m | grep -q "msgpack"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \ +fi; \ +if php -m | grep -q "zstd"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-zstd"; \ +fi; \ +phpize \ +&& ./configure --enable-redis ${REDIS_ARGS} \ +&& make -j$(getconf _NPROCESSORS_ONLN) \ +&& make install \ + \ + # Enabling + && docker-php-ext-enable redis \ + && true + + +# -------------------- Installing PHP Extension: sqlsrv -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install sqlsrv-5.6.1 \ + # Enabling + && docker-php-ext-enable sqlsrv \ + && true + + # -------------------- Installing PHP Extension: phalcon -------------------- RUN set -eux \ # Installation: Version specific @@ -552,40 +667,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: recode -------------------- -RUN set -eux \ - # Installation: Generic - # Type: Built-in extension - && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ - && true - - -# -------------------- Installing PHP Extension: redis -------------------- -RUN set -eux \ - # Installation: Generic - # Type: GIT extension - && git clone https://github.com/phpredis/phpredis /tmp/redis \ - && cd /tmp/redis \ - # Custom: Branch - && git checkout $(git for-each-ref --format='%(refname)' refs/tags | grep -E 'tags/[.0-9]+$' | sed 's|.*tags/||g' | sort -V | tail -1) \ - # Custom: Install command - && REDIS_ARGS=""; \ -if [ -d "/usr/local/include/php/ext/igbinary" ]; then \ - REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \ -fi; \ -if [ -d "/usr/local/include/php/ext/msgpack" ]; then \ - REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \ -fi; \ -phpize \ -&& ./configure --enable-redis ${REDIS_ARGS} \ -&& make -j$(getconf _NPROCESSORS_ONLN) \ -&& make install \ - \ - # Enabling - && docker-php-ext-enable redis \ - && true - - # -------------------- Installing PHP Extension: rdkafka -------------------- RUN set -eux \ # Installation: Generic @@ -597,6 +678,14 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: recode -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ + && true + + # -------------------- Installing PHP Extension: shmop -------------------- RUN set -eux \ # Installation: Generic @@ -610,7 +699,7 @@ RUN set -eux \ # Installation: Generic # Type: Built-in extension # Custom: configure command - && docker-php-ext-configure snmp --with-openssl-dir \ + && docker-php-ext-configure snmp --with-snmp \ && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \ && true @@ -619,8 +708,6 @@ RUN set -eux \ RUN set -eux \ # Installation: Generic # Type: Built-in extension - # Custom: configure command - && docker-php-ext-configure soap --with-libxml-dir=/usr \ && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \ && true @@ -644,17 +731,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: sqlsrv -------------------- -RUN set -eux \ - # Installation: Version specific - # Type: PECL extension - # Default: Pecl command - && pecl install sqlsrv-5.6.1 \ - # Enabling - && docker-php-ext-enable sqlsrv \ - && true - - # -------------------- Installing PHP Extension: ssh2 -------------------- RUN set -eux \ # Installation: Generic @@ -666,6 +742,28 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: zip -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure zip --enable-zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip=/usr \ + # Installation + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ + && true + + +# -------------------- Installing PHP Extension: swoole -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install swoole-4.4.26 \ + # Enabling + && docker-php-ext-enable swoole \ + && true + + # -------------------- Installing PHP Extension: sysvmsg -------------------- RUN set -eux \ # Installation: Generic @@ -752,6 +850,17 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: xlswriter -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command + && pecl install xlswriter \ + # Enabling + && docker-php-ext-enable xlswriter \ + && true + + # -------------------- Installing PHP Extension: xmlrpc -------------------- RUN set -eux \ # Installation: Generic @@ -770,17 +879,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: xlswriter -------------------- -RUN set -eux \ - # Installation: Generic - # Type: PECL extension - # Default: Pecl command - && pecl install xlswriter \ - # Enabling - && docker-php-ext-enable xlswriter \ - && true - - # -------------------- Installing PHP Extension: yaml -------------------- RUN set -eux \ # Installation: Generic @@ -792,27 +890,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: zip -------------------- -RUN set -eux \ - # Installation: Generic - # Type: Built-in extension - # Custom: configure command - && docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \ - && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ - && true - - -# -------------------- Installing PHP Extension: swoole -------------------- -RUN set -eux \ - # Installation: Version specific - # Type: PECL extension - # Default: Pecl command - && pecl install swoole-4.4.26 \ - # Enabling - && docker-php-ext-enable swoole \ - && true - - # Fix php.ini settings for enabled extensions @@ -831,7 +908,7 @@ RUN set -eux \ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead. FROM devilbox/php-fpm:7.1-base as final MAINTAINER "cytopia" @@ -871,6 +948,7 @@ RUN set -eux \ libfreetype6 \ libicu63 \ libjpeg62-turbo \ + liblz4-1 \ libmagickwand-6.q16-6 \ libmariadbd19 \ libmcrypt4 \ @@ -891,9 +969,11 @@ RUN set -eux \ libxslt1.1 \ libyaml-0-2 \ libzip4 \ + libzstd1 \ snmp \ unixodbc \ uuid \ + zlib1g \ ca-certificates \ && rm -rf /var/lib/apt/lists/* \ \ @@ -927,7 +1007,14 @@ RUN set -eux \ && sed -i'' 's|.*> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \ fi -# -------------------- Installing PHP Extension: ioncube -------------------- -RUN set -eux \ - # Installation: Generic - # Type: Custom extension - && EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \ -&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \ -&& curl -sS --fail -k https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_$(dpkg-architecture --query DEB_HOST_GNU_CPU | sed 's/_/-/g').tar.gz -L -o ioncube.tar.gz \ -&& tar xvfz ioncube.tar.gz \ -&& cd ioncube \ -&& cp "ioncube_loader_lin_7.2.so" "${EXTENSION_DIR}/ioncube.so" \ -&& cd ../ \ -&& rm -rf ioncube \ -&& rm -rf ioncube.tar.gz \ - \ - && true - - # -------------------- Installing PHP Extension: amqp -------------------- RUN set -eux \ # Installation: Generic @@ -290,6 +276,23 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: ioncube -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Custom extension + && EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \ +&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \ +&& curl -sS --fail -k https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_$(dpkg-architecture --query DEB_HOST_GNU_CPU | sed 's/_/-/g').tar.gz -L -o ioncube.tar.gz \ +&& tar xvfz ioncube.tar.gz \ +&& cd ioncube \ +&& cp "ioncube_loader_lin_7.2.so" "${EXTENSION_DIR}/ioncube.so" \ +&& cd ../ \ +&& rm -rf ioncube \ +&& rm -rf ioncube.tar.gz \ + \ + && true + + # -------------------- Installing PHP Extension: ldap -------------------- RUN set -eux \ # Generic pre-command @@ -302,6 +305,35 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: lz4 -------------------- +RUN set -eux \ + # Installation: Generic + # Type: GIT extension + && git clone https://github.com/kjdev/php-ext-lz4 /tmp/lz4 \ + && cd /tmp/lz4 \ + # Custom: Branch + && git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \ + # Default: Install command + && phpize \ + && ./configure --enable-lz4 --with-lz4-includedir=/usr \ + && make -j$(getconf _NPROCESSORS_ONLN) \ + && make install \ + # Enabling + && docker-php-ext-enable lz4 \ + && true + + +# -------------------- Installing PHP Extension: lzf -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install lzf \ + # Enabling + && docker-php-ext-enable lzf \ + && true + + # -------------------- Installing PHP Extension: mcrypt -------------------- RUN set -eux \ # Installation: Version specific @@ -313,17 +345,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: msgpack -------------------- -RUN set -eux \ - # Installation: Generic - # Type: PECL extension - # Default: Pecl command - && pecl install msgpack \ - # Enabling - && docker-php-ext-enable msgpack \ - && true - - # -------------------- Installing PHP Extension: memcache -------------------- RUN set -eux \ # Installation: Version specific @@ -335,6 +356,17 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: msgpack -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command + && pecl install msgpack \ + # Enabling + && docker-php-ext-enable msgpack \ + && true + + # -------------------- Installing PHP Extension: memcached -------------------- RUN set -eux \ # Installation: Version specific @@ -379,27 +411,32 @@ RUN set -eux \ # -------------------- Installing PHP Extension: oci8 -------------------- RUN set -eux \ # Generic pre-command - && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ + && ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \ +&& ORACLE_HREF="$( \ + curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \ + | tac \ + | tac \ + | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \ + | tail -1 \ +)" \ && ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ && ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ \ && rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \ -&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ +&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ && alien \ -v \ --target=$( dpkg --print-architecture ) \ - -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture \ - --query DEB_HOST_GNU_CPU).rpm \ + -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ && alien \ -v \ --target=$( dpkg --print-architecture ) \ - -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture \ - --query DEB_HOST_GNU_CPU).rpm \ -&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ + -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ \ # Installation: Generic # Type: Built-in extension @@ -407,7 +444,14 @@ https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architec && docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \ && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \ # Generic post-command - && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ + && ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \ +&& ORACLE_HREF="$( \ + curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \ + | tac \ + | tac \ + | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \ + | tail -1 \ +)" \ && ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ && ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ && (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ @@ -462,27 +506,32 @@ RUN set -eux \ # -------------------- Installing PHP Extension: pdo_oci -------------------- RUN set -eux \ # Generic pre-command - && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ + && ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \ +&& ORACLE_HREF="$( \ + curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \ + | tac \ + | tac \ + | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \ + | tail -1 \ +)" \ && ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ && ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ \ && rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \ -&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ +&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ && alien \ -v \ --target=$( dpkg --print-architecture ) \ - -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture \ - --query DEB_HOST_GNU_CPU).rpm \ + -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ && alien \ -v \ --target=$( dpkg --print-architecture ) \ - -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture \ - --query DEB_HOST_GNU_CPU).rpm \ -&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ + -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ && (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ \ # Installation: Version specific @@ -532,6 +581,72 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: zstd -------------------- +RUN set -eux \ + # Installation: Generic + # Type: GIT extension + && git clone https://github.com/kjdev/php-ext-zstd /tmp/zstd \ + && cd /tmp/zstd \ + # Custom: Branch + && git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \ + # Default: Install command + && phpize \ + && ./configure --enable-zstd --with-libzstd \ + && make -j$(getconf _NPROCESSORS_ONLN) \ + && make install \ + # Enabling + && docker-php-ext-enable zstd \ + && true + + +# -------------------- Installing PHP Extension: redis -------------------- +RUN set -eux \ + # Generic pre-command + && if [ -f /usr/include/liblzf/lzf.h ]; then \ + ln -s /usr/include/liblzf/lzf.h /usr/include/; \ +fi \ + \ + # Installation: Version specific + # Type: GIT extension + && git clone https://github.com/phpredis/phpredis /tmp/redis \ + && cd /tmp/redis \ + # Custom: Branch + && git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \ + # Custom: Install command + && REDIS_ARGS=""; \ +if php -m | grep -q "igbinary"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \ +fi; \ +if php -m | grep -q "lz4"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-lz4 --with-liblz4=/usr"; \ +fi; \ +if php -m | grep -q "msgpack"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \ +fi; \ +if php -m | grep -q "zstd"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-zstd"; \ +fi; \ +phpize \ +&& ./configure --enable-redis ${REDIS_ARGS} \ +&& make -j$(getconf _NPROCESSORS_ONLN) \ +&& make install \ + \ + # Enabling + && docker-php-ext-enable redis \ + && true + + +# -------------------- Installing PHP Extension: sqlsrv -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install sqlsrv-5.8.1 \ + # Enabling + && docker-php-ext-enable sqlsrv \ + && true + + # -------------------- Installing PHP Extension: phalcon -------------------- RUN set -eux \ # Installation: Version specific @@ -555,40 +670,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: recode -------------------- -RUN set -eux \ - # Installation: Generic - # Type: Built-in extension - && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ - && true - - -# -------------------- Installing PHP Extension: redis -------------------- -RUN set -eux \ - # Installation: Generic - # Type: GIT extension - && git clone https://github.com/phpredis/phpredis /tmp/redis \ - && cd /tmp/redis \ - # Custom: Branch - && git checkout $(git for-each-ref --format='%(refname)' refs/tags | grep -E 'tags/[.0-9]+$' | sed 's|.*tags/||g' | sort -V | tail -1) \ - # Custom: Install command - && REDIS_ARGS=""; \ -if [ -d "/usr/local/include/php/ext/igbinary" ]; then \ - REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \ -fi; \ -if [ -d "/usr/local/include/php/ext/msgpack" ]; then \ - REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \ -fi; \ -phpize \ -&& ./configure --enable-redis ${REDIS_ARGS} \ -&& make -j$(getconf _NPROCESSORS_ONLN) \ -&& make install \ - \ - # Enabling - && docker-php-ext-enable redis \ - && true - - # -------------------- Installing PHP Extension: rdkafka -------------------- RUN set -eux \ # Installation: Generic @@ -600,6 +681,14 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: recode -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ + && true + + # -------------------- Installing PHP Extension: shmop -------------------- RUN set -eux \ # Installation: Generic @@ -613,7 +702,7 @@ RUN set -eux \ # Installation: Generic # Type: Built-in extension # Custom: configure command - && docker-php-ext-configure snmp --with-openssl-dir \ + && docker-php-ext-configure snmp --with-snmp \ && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \ && true @@ -622,8 +711,6 @@ RUN set -eux \ RUN set -eux \ # Installation: Generic # Type: Built-in extension - # Custom: configure command - && docker-php-ext-configure soap --with-libxml-dir=/usr \ && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \ && true @@ -647,17 +734,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: sqlsrv -------------------- -RUN set -eux \ - # Installation: Version specific - # Type: PECL extension - # Default: Pecl command - && pecl install sqlsrv-5.8.1 \ - # Enabling - && docker-php-ext-enable sqlsrv \ - && true - - # -------------------- Installing PHP Extension: ssh2 -------------------- RUN set -eux \ # Installation: Generic @@ -669,6 +745,28 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: zip -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure zip --enable-zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip=/usr \ + # Installation + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ + && true + + +# -------------------- Installing PHP Extension: swoole -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install swoole-4.8.12 \ + # Enabling + && docker-php-ext-enable swoole \ + && true + + # -------------------- Installing PHP Extension: sysvmsg -------------------- RUN set -eux \ # Installation: Generic @@ -755,6 +853,17 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: xlswriter -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command + && pecl install xlswriter \ + # Enabling + && docker-php-ext-enable xlswriter \ + && true + + # -------------------- Installing PHP Extension: xmlrpc -------------------- RUN set -eux \ # Installation: Generic @@ -773,17 +882,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: xlswriter -------------------- -RUN set -eux \ - # Installation: Generic - # Type: PECL extension - # Default: Pecl command - && pecl install xlswriter \ - # Enabling - && docker-php-ext-enable xlswriter \ - && true - - # -------------------- Installing PHP Extension: yaml -------------------- RUN set -eux \ # Installation: Generic @@ -795,27 +893,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: zip -------------------- -RUN set -eux \ - # Installation: Generic - # Type: Built-in extension - # Custom: configure command - && docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \ - && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ - && true - - -# -------------------- Installing PHP Extension: swoole -------------------- -RUN set -eux \ - # Installation: Version specific - # Type: PECL extension - # Default: Pecl command - && pecl install swoole-4.8.12 \ - # Enabling - && docker-php-ext-enable swoole \ - && true - - # Fix php.ini settings for enabled extensions @@ -834,7 +911,7 @@ RUN set -eux \ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead. FROM devilbox/php-fpm:7.2-base as final MAINTAINER "cytopia" @@ -874,6 +951,7 @@ RUN set -eux \ libfreetype6 \ libicu63 \ libjpeg62-turbo \ + liblz4-1 \ libmagickwand-6.q16-6 \ libmariadbd19 \ libmcrypt4 \ @@ -894,9 +972,11 @@ RUN set -eux \ libxslt1.1 \ libyaml-0-2 \ libzip4 \ + libzstd1 \ snmp \ unixodbc \ uuid \ + zlib1g \ ca-certificates \ && rm -rf /var/lib/apt/lists/* \ \ @@ -930,7 +1010,14 @@ RUN set -eux \ && sed -i'' 's|.*> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \ fi -# -------------------- Installing PHP Extension: ioncube -------------------- -RUN set -eux \ - # Installation: Generic - # Type: Custom extension - && EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \ -&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \ -&& curl -sS --fail -k https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_$(dpkg-architecture --query DEB_HOST_GNU_CPU | sed 's/_/-/g').tar.gz -L -o ioncube.tar.gz \ -&& tar xvfz ioncube.tar.gz \ -&& cd ioncube \ -&& cp "ioncube_loader_lin_7.3.so" "${EXTENSION_DIR}/ioncube.so" \ -&& cd ../ \ -&& rm -rf ioncube \ -&& rm -rf ioncube.tar.gz \ - \ - && true - - # -------------------- Installing PHP Extension: amqp -------------------- RUN set -eux \ # Installation: Generic @@ -280,6 +267,23 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: ioncube -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Custom extension + && EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \ +&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \ +&& curl -sS --fail -k https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_$(dpkg-architecture --query DEB_HOST_GNU_CPU | sed 's/_/-/g').tar.gz -L -o ioncube.tar.gz \ +&& tar xvfz ioncube.tar.gz \ +&& cd ioncube \ +&& cp "ioncube_loader_lin_7.3.so" "${EXTENSION_DIR}/ioncube.so" \ +&& cd ../ \ +&& rm -rf ioncube \ +&& rm -rf ioncube.tar.gz \ + \ + && true + + # -------------------- Installing PHP Extension: ldap -------------------- RUN set -eux \ # Generic pre-command @@ -292,6 +296,35 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: lz4 -------------------- +RUN set -eux \ + # Installation: Generic + # Type: GIT extension + && git clone https://github.com/kjdev/php-ext-lz4 /tmp/lz4 \ + && cd /tmp/lz4 \ + # Custom: Branch + && git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \ + # Default: Install command + && phpize \ + && ./configure --enable-lz4 --with-lz4-includedir=/usr \ + && make -j$(getconf _NPROCESSORS_ONLN) \ + && make install \ + # Enabling + && docker-php-ext-enable lz4 \ + && true + + +# -------------------- Installing PHP Extension: lzf -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command + && pecl install lzf \ + # Enabling + && docker-php-ext-enable lzf \ + && true + + # -------------------- Installing PHP Extension: mcrypt -------------------- RUN set -eux \ # Installation: Version specific @@ -303,17 +336,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: msgpack -------------------- -RUN set -eux \ - # Installation: Generic - # Type: PECL extension - # Default: Pecl command - && pecl install msgpack \ - # Enabling - && docker-php-ext-enable msgpack \ - && true - - # -------------------- Installing PHP Extension: memcache -------------------- RUN set -eux \ # Installation: Version specific @@ -325,6 +347,17 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: msgpack -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command + && pecl install msgpack \ + # Enabling + && docker-php-ext-enable msgpack \ + && true + + # -------------------- Installing PHP Extension: memcached -------------------- RUN set -eux \ # Installation: Generic @@ -369,27 +402,32 @@ RUN set -eux \ # -------------------- Installing PHP Extension: oci8 -------------------- RUN set -eux \ # Generic pre-command - && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ + && ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \ +&& ORACLE_HREF="$( \ + curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \ + | tac \ + | tac \ + | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \ + | tail -1 \ +)" \ && ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ && ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ \ && rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \ -&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ +&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ && alien \ -v \ --target=$( dpkg --print-architecture ) \ - -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture \ - --query DEB_HOST_GNU_CPU).rpm \ + -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ && alien \ -v \ --target=$( dpkg --print-architecture ) \ - -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture \ - --query DEB_HOST_GNU_CPU).rpm \ -&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ + -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ \ # Installation: Generic # Type: Built-in extension @@ -397,7 +435,14 @@ https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architec && docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \ && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \ # Generic post-command - && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ + && ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \ +&& ORACLE_HREF="$( \ + curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \ + | tac \ + | tac \ + | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \ + | tail -1 \ +)" \ && ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ && ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ && (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ @@ -452,27 +497,32 @@ RUN set -eux \ # -------------------- Installing PHP Extension: pdo_oci -------------------- RUN set -eux \ # Generic pre-command - && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ + && ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \ +&& ORACLE_HREF="$( \ + curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \ + | tac \ + | tac \ + | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \ + | tail -1 \ +)" \ && ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ && ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ \ && rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \ -&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ +&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ && alien \ -v \ --target=$( dpkg --print-architecture ) \ - -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture \ - --query DEB_HOST_GNU_CPU).rpm \ + -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ && alien \ -v \ --target=$( dpkg --print-architecture ) \ - -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture \ - --query DEB_HOST_GNU_CPU).rpm \ -&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ + -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ && (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ \ # Installation: Version specific @@ -522,6 +572,75 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: zstd -------------------- +RUN set -eux \ + # Installation: Generic + # Type: GIT extension + && git clone https://github.com/kjdev/php-ext-zstd /tmp/zstd \ + && cd /tmp/zstd \ + # Custom: Branch + && git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \ + # Default: Install command + && phpize \ + && ./configure --enable-zstd --with-libzstd \ + && make -j$(getconf _NPROCESSORS_ONLN) \ + && make install \ + # Enabling + && docker-php-ext-enable zstd \ + && true + + +# -------------------- Installing PHP Extension: redis -------------------- +RUN set -eux \ + # Generic pre-command + && if [ -f /usr/include/liblzf/lzf.h ]; then \ + ln -s /usr/include/liblzf/lzf.h /usr/include/; \ +fi \ + \ + # Installation: Generic + # Type: GIT extension + && git clone https://github.com/phpredis/phpredis /tmp/redis \ + && cd /tmp/redis \ + # Custom: Branch + && git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \ + # Custom: Install command + && REDIS_ARGS=""; \ +if php -m | grep -q "igbinary"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \ +fi; \ +if php -m | grep -q "lz4"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-lz4 --with-liblz4=/usr"; \ +fi; \ +if php -m | grep -q "lzf"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-lzf --with-liblzf=/usr"; \ +fi; \ +if php -m | grep -q "msgpack"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \ +fi; \ +if php -m | grep -q "zstd"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-zstd"; \ +fi; \ +phpize \ +&& ./configure --enable-redis ${REDIS_ARGS} \ +&& make -j$(getconf _NPROCESSORS_ONLN) \ +&& make install \ + \ + # Enabling + && docker-php-ext-enable redis \ + && true + + +# -------------------- Installing PHP Extension: sqlsrv -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install sqlsrv-5.9.0 \ + # Enabling + && docker-php-ext-enable sqlsrv \ + && true + + # -------------------- Installing PHP Extension: phalcon -------------------- RUN set -eux \ # Installation: Version specific @@ -545,40 +664,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: recode -------------------- -RUN set -eux \ - # Installation: Generic - # Type: Built-in extension - && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ - && true - - -# -------------------- Installing PHP Extension: redis -------------------- -RUN set -eux \ - # Installation: Generic - # Type: GIT extension - && git clone https://github.com/phpredis/phpredis /tmp/redis \ - && cd /tmp/redis \ - # Custom: Branch - && git checkout $(git for-each-ref --format='%(refname)' refs/tags | grep -E 'tags/[.0-9]+$' | sed 's|.*tags/||g' | sort -V | tail -1) \ - # Custom: Install command - && REDIS_ARGS=""; \ -if [ -d "/usr/local/include/php/ext/igbinary" ]; then \ - REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \ -fi; \ -if [ -d "/usr/local/include/php/ext/msgpack" ]; then \ - REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \ -fi; \ -phpize \ -&& ./configure --enable-redis ${REDIS_ARGS} \ -&& make -j$(getconf _NPROCESSORS_ONLN) \ -&& make install \ - \ - # Enabling - && docker-php-ext-enable redis \ - && true - - # -------------------- Installing PHP Extension: rdkafka -------------------- RUN set -eux \ # Installation: Generic @@ -590,6 +675,14 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: recode -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ + && true + + # -------------------- Installing PHP Extension: shmop -------------------- RUN set -eux \ # Installation: Generic @@ -603,7 +696,7 @@ RUN set -eux \ # Installation: Generic # Type: Built-in extension # Custom: configure command - && docker-php-ext-configure snmp --with-openssl-dir \ + && docker-php-ext-configure snmp --with-snmp \ && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \ && true @@ -612,8 +705,6 @@ RUN set -eux \ RUN set -eux \ # Installation: Generic # Type: Built-in extension - # Custom: configure command - && docker-php-ext-configure soap --with-libxml-dir=/usr \ && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \ && true @@ -637,17 +728,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: sqlsrv -------------------- -RUN set -eux \ - # Installation: Version specific - # Type: PECL extension - # Default: Pecl command - && pecl install sqlsrv-5.9.0 \ - # Enabling - && docker-php-ext-enable sqlsrv \ - && true - - # -------------------- Installing PHP Extension: ssh2 -------------------- RUN set -eux \ # Installation: Generic @@ -659,6 +739,28 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: zip -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure zip --enable-zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip=/usr \ + # Installation + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ + && true + + +# -------------------- Installing PHP Extension: swoole -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install swoole-4.8.12 \ + # Enabling + && docker-php-ext-enable swoole \ + && true + + # -------------------- Installing PHP Extension: sysvmsg -------------------- RUN set -eux \ # Installation: Generic @@ -745,6 +847,17 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: xlswriter -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command + && pecl install xlswriter \ + # Enabling + && docker-php-ext-enable xlswriter \ + && true + + # -------------------- Installing PHP Extension: xmlrpc -------------------- RUN set -eux \ # Installation: Generic @@ -763,17 +876,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: xlswriter -------------------- -RUN set -eux \ - # Installation: Generic - # Type: PECL extension - # Default: Pecl command - && pecl install xlswriter \ - # Enabling - && docker-php-ext-enable xlswriter \ - && true - - # -------------------- Installing PHP Extension: yaml -------------------- RUN set -eux \ # Installation: Generic @@ -785,27 +887,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: zip -------------------- -RUN set -eux \ - # Installation: Generic - # Type: Built-in extension - # Custom: configure command - && docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \ - && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ - && true - - -# -------------------- Installing PHP Extension: swoole -------------------- -RUN set -eux \ - # Installation: Version specific - # Type: PECL extension - # Default: Pecl command - && pecl install swoole-4.8.12 \ - # Enabling - && docker-php-ext-enable swoole \ - && true - - # Fix php.ini settings for enabled extensions @@ -824,7 +905,7 @@ RUN set -eux \ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead. FROM devilbox/php-fpm:7.3-base as final MAINTAINER "cytopia" @@ -863,6 +944,8 @@ RUN set -eux \ libfreetype6 \ libicu67 \ libjpeg62-turbo \ + liblz4-1 \ + liblzf1 \ libmagickwand-6.q16-6 \ libmariadbd19 \ libmcrypt4 \ @@ -883,9 +966,11 @@ RUN set -eux \ libxslt1.1 \ libyaml-0-2 \ libzip4 \ + libzstd1 \ snmp \ unixodbc \ uuid \ + zlib1g \ ca-certificates \ && rm -rf /var/lib/apt/lists/* \ \ @@ -919,7 +1004,14 @@ RUN set -eux \ && sed -i'' 's|.*> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \ fi -# -------------------- Installing PHP Extension: ioncube -------------------- -RUN set -eux \ - # Installation: Generic - # Type: Custom extension - && EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \ -&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \ -&& curl -sS --fail -k https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_$(dpkg-architecture --query DEB_HOST_GNU_CPU | sed 's/_/-/g').tar.gz -L -o ioncube.tar.gz \ -&& tar xvfz ioncube.tar.gz \ -&& cd ioncube \ -&& cp "ioncube_loader_lin_7.4.so" "${EXTENSION_DIR}/ioncube.so" \ -&& cd ../ \ -&& rm -rf ioncube \ -&& rm -rf ioncube.tar.gz \ - \ - && true - - # -------------------- Installing PHP Extension: amqp -------------------- RUN set -eux \ # Installation: Generic @@ -280,6 +267,23 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: ioncube -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Custom extension + && EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \ +&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \ +&& curl -sS --fail -k https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_$(dpkg-architecture --query DEB_HOST_GNU_CPU | sed 's/_/-/g').tar.gz -L -o ioncube.tar.gz \ +&& tar xvfz ioncube.tar.gz \ +&& cd ioncube \ +&& cp "ioncube_loader_lin_7.4.so" "${EXTENSION_DIR}/ioncube.so" \ +&& cd ../ \ +&& rm -rf ioncube \ +&& rm -rf ioncube.tar.gz \ + \ + && true + + # -------------------- Installing PHP Extension: ldap -------------------- RUN set -eux \ # Generic pre-command @@ -292,6 +296,35 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: lz4 -------------------- +RUN set -eux \ + # Installation: Generic + # Type: GIT extension + && git clone https://github.com/kjdev/php-ext-lz4 /tmp/lz4 \ + && cd /tmp/lz4 \ + # Custom: Branch + && git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \ + # Default: Install command + && phpize \ + && ./configure --enable-lz4 --with-lz4-includedir=/usr \ + && make -j$(getconf _NPROCESSORS_ONLN) \ + && make install \ + # Enabling + && docker-php-ext-enable lz4 \ + && true + + +# -------------------- Installing PHP Extension: lzf -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command + && pecl install lzf \ + # Enabling + && docker-php-ext-enable lzf \ + && true + + # -------------------- Installing PHP Extension: mcrypt -------------------- RUN set -eux \ # Installation: Generic @@ -303,17 +336,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: msgpack -------------------- -RUN set -eux \ - # Installation: Generic - # Type: PECL extension - # Default: Pecl command - && pecl install msgpack \ - # Enabling - && docker-php-ext-enable msgpack \ - && true - - # -------------------- Installing PHP Extension: memcache -------------------- RUN set -eux \ # Installation: Version specific @@ -325,6 +347,17 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: msgpack -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command + && pecl install msgpack \ + # Enabling + && docker-php-ext-enable msgpack \ + && true + + # -------------------- Installing PHP Extension: memcached -------------------- RUN set -eux \ # Installation: Generic @@ -369,27 +402,32 @@ RUN set -eux \ # -------------------- Installing PHP Extension: oci8 -------------------- RUN set -eux \ # Generic pre-command - && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ + && ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \ +&& ORACLE_HREF="$( \ + curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \ + | tac \ + | tac \ + | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \ + | tail -1 \ +)" \ && ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ && ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ \ && rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \ -&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ +&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ && alien \ -v \ --target=$( dpkg --print-architecture ) \ - -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture \ - --query DEB_HOST_GNU_CPU).rpm \ + -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ && alien \ -v \ --target=$( dpkg --print-architecture ) \ - -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture \ - --query DEB_HOST_GNU_CPU).rpm \ -&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ + -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ \ # Installation: Generic # Type: Built-in extension @@ -397,7 +435,14 @@ https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architec && docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \ && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \ # Generic post-command - && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ + && ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \ +&& ORACLE_HREF="$( \ + curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \ + | tac \ + | tac \ + | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \ + | tail -1 \ +)" \ && ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ && ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ && (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ @@ -452,27 +497,32 @@ RUN set -eux \ # -------------------- Installing PHP Extension: pdo_oci -------------------- RUN set -eux \ # Generic pre-command - && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ + && ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \ +&& ORACLE_HREF="$( \ + curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \ + | tac \ + | tac \ + | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \ + | tail -1 \ +)" \ && ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ && ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ \ && rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \ -&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ +&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ && alien \ -v \ --target=$( dpkg --print-architecture ) \ - -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture \ - --query DEB_HOST_GNU_CPU).rpm \ + -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ && alien \ -v \ --target=$( dpkg --print-architecture ) \ - -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture \ - --query DEB_HOST_GNU_CPU).rpm \ -&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ -&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \ + -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ +&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ && (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ \ # Installation: Version specific @@ -522,6 +572,75 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: zstd -------------------- +RUN set -eux \ + # Installation: Generic + # Type: GIT extension + && git clone https://github.com/kjdev/php-ext-zstd /tmp/zstd \ + && cd /tmp/zstd \ + # Custom: Branch + && git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \ + # Default: Install command + && phpize \ + && ./configure --enable-zstd --with-libzstd \ + && make -j$(getconf _NPROCESSORS_ONLN) \ + && make install \ + # Enabling + && docker-php-ext-enable zstd \ + && true + + +# -------------------- Installing PHP Extension: redis -------------------- +RUN set -eux \ + # Generic pre-command + && if [ -f /usr/include/liblzf/lzf.h ]; then \ + ln -s /usr/include/liblzf/lzf.h /usr/include/; \ +fi \ + \ + # Installation: Generic + # Type: GIT extension + && git clone https://github.com/phpredis/phpredis /tmp/redis \ + && cd /tmp/redis \ + # Custom: Branch + && git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \ + # Custom: Install command + && REDIS_ARGS=""; \ +if php -m | grep -q "igbinary"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \ +fi; \ +if php -m | grep -q "lz4"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-lz4 --with-liblz4=/usr"; \ +fi; \ +if php -m | grep -q "lzf"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-lzf --with-liblzf=/usr"; \ +fi; \ +if php -m | grep -q "msgpack"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \ +fi; \ +if php -m | grep -q "zstd"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-zstd"; \ +fi; \ +phpize \ +&& ./configure --enable-redis ${REDIS_ARGS} \ +&& make -j$(getconf _NPROCESSORS_ONLN) \ +&& make install \ + \ + # Enabling + && docker-php-ext-enable redis \ + && true + + +# -------------------- Installing PHP Extension: sqlsrv -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command + && pecl install sqlsrv \ + # Enabling + && docker-php-ext-enable sqlsrv \ + && true + + # -------------------- Installing PHP Extension: phalcon -------------------- RUN set -eux \ # Installation: Generic @@ -529,7 +648,13 @@ RUN set -eux \ && git clone https://github.com/phalcon/cphalcon /tmp/phalcon \ && cd /tmp/phalcon \ # Custom: Branch - && git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | sed 's/^.*tags\///g' | grep -E '^v[.0-9]+$' | tail -1) \ + && git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags \ + | sort -V \ + | sed 's/^.*tags\///g' \ + | grep -E '^v[.0-9]+$' \ + | tail -1 \ +) \ + \ # Custom: Install command && cd build && ./install \ # Enabling @@ -545,32 +670,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: redis -------------------- -RUN set -eux \ - # Installation: Generic - # Type: GIT extension - && git clone https://github.com/phpredis/phpredis /tmp/redis \ - && cd /tmp/redis \ - # Custom: Branch - && git checkout $(git for-each-ref --format='%(refname)' refs/tags | grep -E 'tags/[.0-9]+$' | sed 's|.*tags/||g' | sort -V | tail -1) \ - # Custom: Install command - && REDIS_ARGS=""; \ -if [ -d "/usr/local/include/php/ext/igbinary" ]; then \ - REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \ -fi; \ -if [ -d "/usr/local/include/php/ext/msgpack" ]; then \ - REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \ -fi; \ -phpize \ -&& ./configure --enable-redis ${REDIS_ARGS} \ -&& make -j$(getconf _NPROCESSORS_ONLN) \ -&& make install \ - \ - # Enabling - && docker-php-ext-enable redis \ - && true - - # -------------------- Installing PHP Extension: rdkafka -------------------- RUN set -eux \ # Installation: Generic @@ -592,22 +691,18 @@ RUN set -eux \ # -------------------- Installing PHP Extension: snmp -------------------- RUN set -eux \ - # Installation: Version specific + # Installation: Generic # Type: Built-in extension # Custom: configure command && docker-php-ext-configure snmp --with-snmp \ - # Installation && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \ && true # -------------------- Installing PHP Extension: soap -------------------- RUN set -eux \ - # Installation: Version specific + # Installation: Generic # Type: Built-in extension - # Custom: configure command - && docker-php-ext-configure soap --enable-soap \ - # Installation && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \ && true @@ -631,17 +726,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: sqlsrv -------------------- -RUN set -eux \ - # Installation: Generic - # Type: PECL extension - # Default: Pecl command - && pecl install sqlsrv \ - # Enabling - && docker-php-ext-enable sqlsrv \ - && true - - # -------------------- Installing PHP Extension: ssh2 -------------------- RUN set -eux \ # Installation: Generic @@ -653,6 +737,27 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: zip -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure zip --with-zip \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ + && true + + +# -------------------- Installing PHP Extension: swoole -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install swoole-4.8.12 \ + # Enabling + && docker-php-ext-enable swoole \ + && true + + # -------------------- Installing PHP Extension: sysvmsg -------------------- RUN set -eux \ # Installation: Generic @@ -729,6 +834,17 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: xlswriter -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command + && pecl install xlswriter \ + # Enabling + && docker-php-ext-enable xlswriter \ + && true + + # -------------------- Installing PHP Extension: xmlrpc -------------------- RUN set -eux \ # Installation: Version specific @@ -748,17 +864,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: xlswriter -------------------- -RUN set -eux \ - # Installation: Generic - # Type: PECL extension - # Default: Pecl command - && pecl install xlswriter \ - # Enabling - && docker-php-ext-enable xlswriter \ - && true - - # -------------------- Installing PHP Extension: yaml -------------------- RUN set -eux \ # Installation: Generic @@ -770,28 +875,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: zip -------------------- -RUN set -eux \ - # Installation: Version specific - # Type: Built-in extension - # Custom: configure command - && docker-php-ext-configure zip --with-zip \ - # Installation - && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ - && true - - -# -------------------- Installing PHP Extension: swoole -------------------- -RUN set -eux \ - # Installation: Version specific - # Type: PECL extension - # Default: Pecl command - && pecl install swoole-4.8.12 \ - # Enabling - && docker-php-ext-enable swoole \ - && true - - # Fix php.ini settings for enabled extensions @@ -810,7 +893,7 @@ RUN set -eux \ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead. FROM devilbox/php-fpm:7.4-base as final MAINTAINER "cytopia" @@ -850,6 +933,8 @@ RUN set -eux \ libfreetype6 \ libicu67 \ libjpeg62-turbo \ + liblz4-1 \ + liblzf1 \ libmagickwand-6.q16-6 \ libmariadbd19 \ libmcrypt4 \ @@ -869,6 +954,7 @@ RUN set -eux \ libxslt1.1 \ libyaml-0-2 \ libzip4 \ + libzstd1 \ snmp \ unixodbc \ uuid \ @@ -905,7 +991,14 @@ RUN set -eux \ && sed -i'' 's|.* @@ -821,6 +907,8 @@ RUN set -eux \ libfreetype6 \ libicu67 \ libjpeg62-turbo \ + liblz4-1 \ + liblzf1 \ libmagickwand-6.q16-6 \ libmariadbd19 \ libmcrypt4 \ @@ -839,6 +927,7 @@ RUN set -eux \ libxslt1.1 \ libyaml-0-2 \ libzip4 \ + libzstd1 \ snmp \ unixodbc \ uuid \ @@ -875,7 +964,14 @@ RUN set -eux \ && sed -i'' 's|.*hash_init(ctx);/ops->hash_init(ctx, NULL);/g' library.c \ -&& sed -i'' 's/ops->hash_init(ctx);/ops->hash_init(ctx, NULL);/g' redis_array_impl.c \ -&& make -j$(getconf _NPROCESSORS_ONLN) \ -&& make install \ - \ - # Enabling - && docker-php-ext-enable redis \ - && true - - # -------------------- Installing PHP Extension: rdkafka -------------------- RUN set -eux \ # Installation: Generic @@ -558,7 +655,7 @@ RUN set -eux \ # Installation: Generic # Type: Built-in extension # Custom: configure command - && docker-php-ext-configure snmp --with-openssl-dir \ + && docker-php-ext-configure snmp --with-snmp \ && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \ && true @@ -567,8 +664,6 @@ RUN set -eux \ RUN set -eux \ # Installation: Generic # Type: Built-in extension - # Custom: configure command - && docker-php-ext-configure soap --with-libxml-dir=/usr \ && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \ && true @@ -604,14 +699,24 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: sqlsrv -------------------- +# -------------------- Installing PHP Extension: zip -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure zip --with-zip \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ + && true + + +# -------------------- Installing PHP Extension: swoole -------------------- RUN set -eux \ # Installation: Generic # Type: PECL extension - # Default: Pecl command - && pecl install sqlsrv \ + # Custom: Pecl command + && pecl install -D 'enable-sockets="no" enable-openssl="yes" enable-http2="yes" enable-mysqlnd="yes" enable-swoole-json="no" enable-swoole-curl="yes" enable-cares="yes" with-postgres="yes"' swoole \ # Enabling - && docker-php-ext-enable sqlsrv \ + && docker-php-ext-enable swoole \ && true @@ -687,7 +792,7 @@ RUN set -eux \ && git clone https://github.com/xdebug/xdebug /tmp/xdebug \ && cd /tmp/xdebug \ # Custom: Branch - && git checkout $(git for-each-ref --format='%(refname)' refs/tags | grep -E 'tags/[.0-9]+$' | sed 's|.*tags/||g' | sort -V | tail -1) \ + && git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \ # Default: Install command && phpize \ && ./configure --enable-xdebug \ @@ -698,14 +803,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: xsl -------------------- -RUN set -eux \ - # Installation: Generic - # Type: Built-in extension - && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ - && true - - # -------------------- Installing PHP Extension: xlswriter -------------------- RUN set -eux \ # Installation: Generic @@ -717,6 +814,14 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: xsl -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ + && true + + # -------------------- Installing PHP Extension: yaml -------------------- RUN set -eux \ # Installation: Generic @@ -728,27 +833,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: zip -------------------- -RUN set -eux \ - # Installation: Generic - # Type: Built-in extension - # Custom: configure command - && docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \ - && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ - && true - - -# -------------------- Installing PHP Extension: swoole -------------------- -RUN set -eux \ - # Installation: Generic - # Type: PECL extension - # Custom: Pecl command - && pecl install -D 'enable-sockets="no" enable-openssl="yes" enable-http2="yes" enable-mysqlnd="yes" enable-swoole-json="no" enable-swoole-curl="yes" enable-cares="yes" with-postgres="yes"' swoole \ - # Enabling - && docker-php-ext-enable swoole \ - && true - - # Fix php.ini settings for enabled extensions @@ -767,7 +851,7 @@ RUN set -eux \ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead. FROM devilbox/php-fpm:8.1-base as final MAINTAINER "cytopia" @@ -809,6 +893,8 @@ RUN set -eux \ libfreetype6 \ libicu67 \ libjpeg62-turbo \ + liblz4-1 \ + liblzf1 \ libmagickwand-6.q16-6 \ libmariadbd19 \ libmemcachedutil2 \ @@ -826,6 +912,7 @@ RUN set -eux \ libxslt1.1 \ libyaml-0-2 \ libzip4 \ + libzstd1 \ snmp \ unixodbc \ uuid \ @@ -862,7 +949,14 @@ RUN set -eux \ && sed -i'' 's|.*hash_init(ctx);/ops->hash_init(ctx, NULL);/g' library.c \ -&& sed -i'' 's/ops->hash_init(ctx);/ops->hash_init(ctx, NULL);/g' redis_array_impl.c \ && make -j$(getconf _NPROCESSORS_ONLN) \ && make install \ \ @@ -526,6 +597,25 @@ phpize \ && true +# -------------------- Installing PHP Extension: sqlsrv -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command + && pecl install sqlsrv \ + # Enabling + && docker-php-ext-enable sqlsrv \ + && true + + +# -------------------- Installing PHP Extension: pspell -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ + && true + + # -------------------- Installing PHP Extension: rdkafka -------------------- RUN set -eux \ # Installation: Generic @@ -550,7 +640,7 @@ RUN set -eux \ # Installation: Generic # Type: Built-in extension # Custom: configure command - && docker-php-ext-configure snmp --with-openssl-dir \ + && docker-php-ext-configure snmp --with-snmp \ && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \ && true @@ -559,8 +649,6 @@ RUN set -eux \ RUN set -eux \ # Installation: Generic # Type: Built-in extension - # Custom: configure command - && docker-php-ext-configure soap --with-libxml-dir=/usr \ && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \ && true @@ -585,14 +673,13 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: sqlsrv -------------------- +# -------------------- Installing PHP Extension: zip -------------------- RUN set -eux \ # Installation: Generic - # Type: PECL extension - # Default: Pecl command - && pecl install sqlsrv \ - # Enabling - && docker-php-ext-enable sqlsrv \ + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure zip --with-zip \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ && true @@ -654,10 +741,10 @@ RUN set -eux \ RUN set -eux \ # Installation: Version specific # Type: GIT extension - && git clone https://github.com/shivammathur/xdebug /tmp/xdebug \ + && git clone https://github.com/xdebug/xdebug /tmp/xdebug \ && cd /tmp/xdebug \ # Custom: Branch - && git checkout fix-jmpznz \ + && git checkout 3.2.0RC2 \ # Default: Install command && phpize \ && ./configure --enable-xdebug \ @@ -668,14 +755,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: xsl -------------------- -RUN set -eux \ - # Installation: Generic - # Type: Built-in extension - && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ - && true - - # -------------------- Installing PHP Extension: xlswriter -------------------- RUN set -eux \ # Installation: Generic @@ -687,6 +766,14 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: xsl -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ + && true + + # -------------------- Installing PHP Extension: yaml -------------------- RUN set -eux \ # Installation: Generic @@ -698,16 +785,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: zip -------------------- -RUN set -eux \ - # Installation: Generic - # Type: Built-in extension - # Custom: configure command - && docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \ - && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ - && true - - # Fix php.ini settings for enabled extensions @@ -726,7 +803,7 @@ RUN set -eux \ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead. FROM devilbox/php-fpm:8.2-base as final MAINTAINER "cytopia" @@ -767,6 +844,8 @@ RUN set -eux \ libfreetype6 \ libicu67 \ libjpeg62-turbo \ + liblz4-1 \ + liblzf1 \ libmagickwand-6.q16-6 \ libmariadbd19 \ libmemcachedutil2 \ @@ -782,6 +861,7 @@ RUN set -eux \ libxslt1.1 \ libyaml-0-2 \ libzip4 \ + libzstd1 \ snmp \ unixodbc \ uuid \ @@ -818,7 +898,14 @@ RUN set -eux \ && sed -i'' 's|.* diff --git a/Dockerfiles/prod/Dockerfile-5.3 b/Dockerfiles/prod/Dockerfile-5.3 index 4975c3d..c426ceb 100644 --- a/Dockerfiles/prod/Dockerfile-5.3 +++ b/Dockerfiles/prod/Dockerfile-5.3 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-prod.j2 instead. FROM devilbox/php-fpm:5.3-mods MAINTAINER "cytopia" diff --git a/Dockerfiles/prod/Dockerfile-5.4 b/Dockerfiles/prod/Dockerfile-5.4 index bff4671..aebd697 100644 --- a/Dockerfiles/prod/Dockerfile-5.4 +++ b/Dockerfiles/prod/Dockerfile-5.4 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-prod.j2 instead. FROM devilbox/php-fpm:5.4-mods MAINTAINER "cytopia" diff --git a/Dockerfiles/prod/Dockerfile-5.5 b/Dockerfiles/prod/Dockerfile-5.5 index 00eef34..a41dfe6 100644 --- a/Dockerfiles/prod/Dockerfile-5.5 +++ b/Dockerfiles/prod/Dockerfile-5.5 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-prod.j2 instead. FROM devilbox/php-fpm:5.5-mods MAINTAINER "cytopia" diff --git a/Dockerfiles/prod/Dockerfile-5.6 b/Dockerfiles/prod/Dockerfile-5.6 index b61faed..e4e7dab 100644 --- a/Dockerfiles/prod/Dockerfile-5.6 +++ b/Dockerfiles/prod/Dockerfile-5.6 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-prod.j2 instead. FROM devilbox/php-fpm:5.6-mods MAINTAINER "cytopia" diff --git a/Dockerfiles/prod/Dockerfile-7.0 b/Dockerfiles/prod/Dockerfile-7.0 index 57591ea..72e7da4 100644 --- a/Dockerfiles/prod/Dockerfile-7.0 +++ b/Dockerfiles/prod/Dockerfile-7.0 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-prod.j2 instead. FROM devilbox/php-fpm:7.0-mods MAINTAINER "cytopia" diff --git a/Dockerfiles/prod/Dockerfile-7.1 b/Dockerfiles/prod/Dockerfile-7.1 index 0e0fe39..e124c91 100644 --- a/Dockerfiles/prod/Dockerfile-7.1 +++ b/Dockerfiles/prod/Dockerfile-7.1 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-prod.j2 instead. FROM devilbox/php-fpm:7.1-mods MAINTAINER "cytopia" diff --git a/Dockerfiles/prod/Dockerfile-7.2 b/Dockerfiles/prod/Dockerfile-7.2 index 9cd8e4a..14ba9a6 100644 --- a/Dockerfiles/prod/Dockerfile-7.2 +++ b/Dockerfiles/prod/Dockerfile-7.2 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-prod.j2 instead. FROM devilbox/php-fpm:7.2-mods MAINTAINER "cytopia" diff --git a/Dockerfiles/prod/Dockerfile-7.3 b/Dockerfiles/prod/Dockerfile-7.3 index 57481cc..d2ec62b 100644 --- a/Dockerfiles/prod/Dockerfile-7.3 +++ b/Dockerfiles/prod/Dockerfile-7.3 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-prod.j2 instead. FROM devilbox/php-fpm:7.3-mods MAINTAINER "cytopia" diff --git a/Dockerfiles/prod/Dockerfile-7.4 b/Dockerfiles/prod/Dockerfile-7.4 index 6ecf1bc..006148d 100644 --- a/Dockerfiles/prod/Dockerfile-7.4 +++ b/Dockerfiles/prod/Dockerfile-7.4 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-prod.j2 instead. FROM devilbox/php-fpm:7.4-mods MAINTAINER "cytopia" diff --git a/Dockerfiles/prod/Dockerfile-8.0 b/Dockerfiles/prod/Dockerfile-8.0 index 5061343..ac9757b 100644 --- a/Dockerfiles/prod/Dockerfile-8.0 +++ b/Dockerfiles/prod/Dockerfile-8.0 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-prod.j2 instead. FROM devilbox/php-fpm:8.0-mods MAINTAINER "cytopia" diff --git a/Dockerfiles/prod/Dockerfile-8.1 b/Dockerfiles/prod/Dockerfile-8.1 index 60c0e03..ab6b2bd 100644 --- a/Dockerfiles/prod/Dockerfile-8.1 +++ b/Dockerfiles/prod/Dockerfile-8.1 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-prod.j2 instead. FROM devilbox/php-fpm:8.1-mods MAINTAINER "cytopia" diff --git a/Dockerfiles/prod/Dockerfile-8.2 b/Dockerfiles/prod/Dockerfile-8.2 index c9c46e9..88478f8 100644 --- a/Dockerfiles/prod/Dockerfile-8.2 +++ b/Dockerfiles/prod/Dockerfile-8.2 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-prod.j2 instead. FROM devilbox/php-fpm:8.2-mods MAINTAINER "cytopia" diff --git a/Dockerfiles/work/Dockerfile-5.2 b/Dockerfiles/work/Dockerfile-5.2 index d40e93d..e9a73d2 100644 --- a/Dockerfiles/work/Dockerfile-5.2 +++ b/Dockerfiles/work/Dockerfile-5.2 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-work.j2 instead. FROM devilbox/php-fpm:5.2-prod MAINTAINER "cytopia" diff --git a/Dockerfiles/work/Dockerfile-5.3 b/Dockerfiles/work/Dockerfile-5.3 index 1e8bed7..63f4684 100644 --- a/Dockerfiles/work/Dockerfile-5.3 +++ b/Dockerfiles/work/Dockerfile-5.3 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-work.j2 instead. FROM devilbox/php-fpm:5.3-prod MAINTAINER "cytopia" diff --git a/Dockerfiles/work/Dockerfile-5.4 b/Dockerfiles/work/Dockerfile-5.4 index 0a615ed..42546e1 100644 --- a/Dockerfiles/work/Dockerfile-5.4 +++ b/Dockerfiles/work/Dockerfile-5.4 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-work.j2 instead. FROM devilbox/php-fpm:5.4-prod MAINTAINER "cytopia" diff --git a/Dockerfiles/work/Dockerfile-5.5 b/Dockerfiles/work/Dockerfile-5.5 index 01255c3..b59759f 100644 --- a/Dockerfiles/work/Dockerfile-5.5 +++ b/Dockerfiles/work/Dockerfile-5.5 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-work.j2 instead. FROM devilbox/php-fpm:5.5-prod MAINTAINER "cytopia" diff --git a/Dockerfiles/work/Dockerfile-5.6 b/Dockerfiles/work/Dockerfile-5.6 index e1e3c7b..7b814d4 100644 --- a/Dockerfiles/work/Dockerfile-5.6 +++ b/Dockerfiles/work/Dockerfile-5.6 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-work.j2 instead. FROM devilbox/php-fpm:5.6-prod MAINTAINER "cytopia" diff --git a/Dockerfiles/work/Dockerfile-7.0 b/Dockerfiles/work/Dockerfile-7.0 index 658bfe8..cca09c9 100644 --- a/Dockerfiles/work/Dockerfile-7.0 +++ b/Dockerfiles/work/Dockerfile-7.0 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-work.j2 instead. FROM devilbox/php-fpm:7.0-prod MAINTAINER "cytopia" diff --git a/Dockerfiles/work/Dockerfile-7.1 b/Dockerfiles/work/Dockerfile-7.1 index 6853049..151c7e3 100644 --- a/Dockerfiles/work/Dockerfile-7.1 +++ b/Dockerfiles/work/Dockerfile-7.1 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-work.j2 instead. FROM devilbox/php-fpm:7.1-prod MAINTAINER "cytopia" diff --git a/Dockerfiles/work/Dockerfile-7.2 b/Dockerfiles/work/Dockerfile-7.2 index c3315a3..6baffbf 100644 --- a/Dockerfiles/work/Dockerfile-7.2 +++ b/Dockerfiles/work/Dockerfile-7.2 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-work.j2 instead. FROM devilbox/php-fpm:7.2-prod MAINTAINER "cytopia" diff --git a/Dockerfiles/work/Dockerfile-7.3 b/Dockerfiles/work/Dockerfile-7.3 index 269dc66..19efe7c 100644 --- a/Dockerfiles/work/Dockerfile-7.3 +++ b/Dockerfiles/work/Dockerfile-7.3 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-work.j2 instead. FROM devilbox/php-fpm:7.3-prod MAINTAINER "cytopia" diff --git a/Dockerfiles/work/Dockerfile-7.4 b/Dockerfiles/work/Dockerfile-7.4 index 4ac666d..e121f33 100644 --- a/Dockerfiles/work/Dockerfile-7.4 +++ b/Dockerfiles/work/Dockerfile-7.4 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-work.j2 instead. FROM devilbox/php-fpm:7.4-prod MAINTAINER "cytopia" diff --git a/Dockerfiles/work/Dockerfile-8.0 b/Dockerfiles/work/Dockerfile-8.0 index 0c4c411..b390436 100644 --- a/Dockerfiles/work/Dockerfile-8.0 +++ b/Dockerfiles/work/Dockerfile-8.0 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-work.j2 instead. FROM devilbox/php-fpm:8.0-prod MAINTAINER "cytopia" diff --git a/Dockerfiles/work/Dockerfile-8.1 b/Dockerfiles/work/Dockerfile-8.1 index ce4d8be..518b713 100644 --- a/Dockerfiles/work/Dockerfile-8.1 +++ b/Dockerfiles/work/Dockerfile-8.1 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-work.j2 instead. FROM devilbox/php-fpm:8.1-prod MAINTAINER "cytopia" diff --git a/Dockerfiles/work/Dockerfile-8.2 b/Dockerfiles/work/Dockerfile-8.2 index 11e3921..9e94aba 100644 --- a/Dockerfiles/work/Dockerfile-8.2 +++ b/Dockerfiles/work/Dockerfile-8.2 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead. +# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-work.j2 instead. FROM devilbox/php-fpm:8.2-prod MAINTAINER "cytopia" diff --git a/Makefile b/Makefile index 24b9d08..0697568 100644 --- a/Makefile +++ b/Makefile @@ -49,8 +49,9 @@ ARCH = linux/amd64 # Makefile.lint overwrites -FL_IGNORES = .git/,.github/,tests/ +FL_IGNORES = .git/,.github/,tests/,*.mypy_cache/ SC_IGNORES = .git/,.github/,tests/ +JL_IGNORES = .git/,.github/,*.mypy_cache* # ------------------------------------------------------------------------------------------------- @@ -124,7 +125,7 @@ EXT_DIR=$$( docker run --rm --platform $(ARCH) --entrypoint=php $(IMAGE):$(BASE_ endif # Use Buldkit for building -export DOCKER_BUILDKIT=1 +#export DOCKER_BUILDKIT=1 .PHONY: build build: check-stage-is-set @@ -183,6 +184,7 @@ manifest-push: docker-manifest-push .PHONY: test test: check-stage-is-set test: check-current-image-exists +test: gen-readme test: test-integration .PHONY: test-integration @@ -199,12 +201,42 @@ test-integration: ### .PHONY: gen-readme gen-readme: check-version-is-set -gen-readme: +gen-readme: check-stage-is-set +gen-readme: _gen-readme-docs +gen-readme: _gen-readme-main + +.PHONY: _gen-readme-docs +_gen-readme-docs: @echo "################################################################################" - @echo "# Generate README.md for PHP $(VERSION) ($(IMAGE):$(DOCKER_TAG)) on $(ARCH)" + @echo "# Generate doc/php-modules.md for PHP $(VERSION) ($(IMAGE):$(DOCKER_TAG)) on $(ARCH)" @echo "################################################################################" - ./build/gen-readme.sh $(IMAGE) $(ARCH) $(BASE_TAG) $(MODS_TAG) $(VERSION) + ./bin/gen-readme.sh $(IMAGE) $(ARCH) $(STAGE) $(VERSION) || bash -x ./bin/gen-readme.sh $(IMAGE) $(ARCH) $(STAGE) $(VERSION) git diff --quiet || { echo "Build Changes"; git diff; git status; false; } + @echo + +.PHONY: _gen-readme-main +_gen-readme-main: + @echo "################################################################################" + @echo "# Generate README.md" + @echo "################################################################################" + MODULES="$$( cat doc/php-modules.md \ + | grep href \ + | sed -e 's|||g' \ + | sort -fu \ + | xargs -n1 sh -c 'echo "[\`$$1\`](php_modules/$$(echo "$${1}" | tr "[:upper:]" "[:lower:]")/)"' -- )"; \ + cat "README.md" \ + | perl -0 -pe "s#.*#\n$${MODULES}\n#s" \ + > "README.md.tmp" + yes | mv -f "README.md.tmp" "README.md" + git diff --quiet || { echo "Build Changes"; git diff; git status; false; } + @echo + +### +### Generate Modules +### +.PHONY: gen-modules +gen-modules: + ./bin/modules-generate.py $(ARGS) ### ### Generate Dockerfiles @@ -217,9 +249,9 @@ gen-dockerfiles: -e MY_UID=$$(id -u) \ -e MY_GID=$$(id -g) \ -v ${PWD}:/data \ - -w /data/build/ansible \ - cytopia/ansible:2.8-tools ansible-playbook generate.yml \ - -e ANSIBLE_STRATEGY_PLUGINS=/usr/lib/python3.8/site-packages/ansible_mitogen/plugins/strategy \ + -w /data/.ansible \ + cytopia/ansible:2.13-tools ansible-playbook generate.yml \ + -e ANSIBLE_STRATEGY_PLUGINS=/usr/lib/python3.10/site-packages/ansible_mitogen/plugins/strategy \ -e ANSIBLE_STRATEGY=mitogen_linear \ -e ansible_python_interpreter=/usr/bin/python3 \ -e \"{build_fail_fast: $(FAIL_FAST)}\" \ diff --git a/README.md b/README.md index fb0f611..81f6baa 100644 --- a/README.md +++ b/README.md @@ -9,181 +9,49 @@ [![License](https://img.shields.io/badge/license-MIT-%233DA639.svg)](https://opensource.org/licenses/MIT) +| Upstream Project | +|------------------| +| | + +[![](https://img.shields.io/docker/pulls/devilbox/php-fpm.svg)](https://hub.docker.com/r/devilbox/php-fpm) + **Available Architectures:** `amd64`, `arm64` + This repository will provide you fully functional PHP-FPM Docker images in different flavours, -versions and packed with different types of integrated PHP modules. It also solves the problem of **[syncronizing file permissions](#unsynchronized-permissions)** of mounted volumes between the host and the container. +versions and packed with different types of integrated PHP modules. It also solves the problem of **[syncronizing file permissions](doc/syncronize-file-permissions.md)** of mounted volumes between the host and the container. -| Docker Hub | Upstream Project | -|------------|------------------| -| | | +:information_source: For details see **[Documentation: Syncronize File Permissions](doc/syncronize-file-permissions.md)** -#### Base Images - -Have a look at the following Devilbox base images for which no official versions exist yet, but are required to serve as a foundation for this repository: - -* [PHP-FPM 5.2](https://github.com/devilbox/docker-php-fpm-5.2) -* [PHP-FPM 5.3](https://github.com/devilbox/docker-php-fpm-5.3) -* [PHP-FPM 7.4](https://github.com/devilbox/docker-php-fpm-7.4) -* [PHP-FPM 8.0](https://github.com/devilbox/docker-php-fpm-8.0) -* [PHP-FPM 8.1](https://github.com/devilbox/docker-php-fpm-8.1) -* [PHP-FPM 8.2](https://github.com/devilbox/docker-php-fpm-8.2) - -#### Documentation - -In case you seek help, go and visit the community pages. - - - - - - - - - - - - - - - - - - - - - -

Documentation

Chat

Forum

- - - - - - - - - - - -
devilbox.readthedocs.iogitter.im/devilboxdevilbox.discourse.group
+This repository also allows you to quickly generate and **build your own custom PHP-FPM Docker image** with whatever PHP extension your desire for whatever PHP version you want and for any platform you're on (`amd64` or `arm64`). Jump to **[#Build your own image](#build-your-own-image)**. -#### Table of Contents +

Docker Tags

-1. **[Motivation](#motivation)** - 1. [Unsynchronized permissions](#unsynchronized-permissions) - 2. [It gets even worse](#it-gets-even-worse) - 3. [The solution](#the-solution) -2. **[PHP-FPM Flavours](#php-fpm-flavours)** - 1. [Assembly](#assembly) - 2. [Available Images](#available-images) - 3. [Tagging](#tagging) - 4. [PHP Modules](#php-modules) -3. **[PHP-FPM Features](#php-fpm-features)** - 1. [Image: base](#image-base) - 2. [Image: mods](#image-mods) - 3. [Image: prod](#image-prod) - 4. [Image: work](#image-work) -4. **[PHP-FPM Options](#php-fpm-options)** - 1. [Environment variables](#environment-variables) - 2. [Volumes](#volumes) - 3. [Ports](#ports) -5. **[PHP Default Configuration](#php-default-configuration)** -6. **[Integrated Development Environment](#integrated-development-environment)** - 1. [What toos can you expect](#what-tools-can-you-expect) - 2. [What else is available](#what-else-is-available) -7. **[Examples](#examples)** - 1. [Provide PHP-FPM port to host](#provide-php-fpm-port-to-host) - 2. [Alter PHP-FPM and system timezone](#alter-php-fpm-and-system-timezone) - 3. [Load custom PHP configuration](#load-custom-php-configuration) - 4. [Load custom PHP modules](#load-custom-php-modules) - 5. [MySQL connect via 127.0.0.1 (via port-forward)](#mysql-connect-via-127-0-0-1-via-port-forward-) - 6. [MySQL and Redis connect via 127.0.0.1 (via port-forward)](#mysql-and-redis-connect-via-127-0-0-1-via-port-forward-) - 7. [Launch Postfix for mail-catching](#launch-postfix-for-mail-catching) - 8. [Webserver and PHP-FPM](#webserver-and-php-fpm) - 9. [Create MySQL Backups](#create-mysql-backups) -8. **[Automated builds](#automated-builds)** -9. **[Contributing](#contributing)** -10. **[Credits](#credits)** -11. **[License](#license)** +* [`5.2-base`](Dockerfiles/base/Dockerfile-5.2), [`5.3-base`](Dockerfiles/base/Dockerfile-5.3), [`5.4-base`](Dockerfiles/base/Dockerfile-5.4), [`5.5-base`](Dockerfiles/base/Dockerfile-5.5), [`5.6-base`](Dockerfiles/base/Dockerfile-5.6), [`7.0-base`](Dockerfiles/base/Dockerfile-7.0), [`7.1-base`](Dockerfiles/base/Dockerfile-7.1), [`7.2-base`](Dockerfiles/base/Dockerfile-7.2), [`7.3-base`](Dockerfiles/base/Dockerfile-7.3), [`7.4-base`](Dockerfiles/base/Dockerfile-7.4), [`8.0-base`](Dockerfiles/base/Dockerfile-8.0), [`8.1-base`](Dockerfiles/base/Dockerfile-8.1), [`8.2-base`](Dockerfiles/base/Dockerfile-8.2) +* [`5.2-mods`](Dockerfiles/mods/Dockerfile-5.2), [`5.3-mods`](Dockerfiles/mods/Dockerfile-5.3), [`5.4-mods`](Dockerfiles/mods/Dockerfile-5.4), [`5.5-mods`](Dockerfiles/mods/Dockerfile-5.5), [`5.6-mods`](Dockerfiles/mods/Dockerfile-5.6), [`7.0-mods`](Dockerfiles/mods/Dockerfile-7.0), [`7.1-mods`](Dockerfiles/mods/Dockerfile-7.1), [`7.2-mods`](Dockerfiles/mods/Dockerfile-7.2), [`7.3-mods`](Dockerfiles/mods/Dockerfile-7.3), [`7.4-mods`](Dockerfiles/mods/Dockerfile-7.4), [`8.0-mods`](Dockerfiles/mods/Dockerfile-8.0), [`8.1-mods`](Dockerfiles/mods/Dockerfile-8.1), [`8.2-mods`](Dockerfiles/mods/Dockerfile-8.2) +* [`5.2-prod`](Dockerfiles/prod/Dockerfile-5.2), [`5.3-prod`](Dockerfiles/prod/Dockerfile-5.3), [`5.4-prod`](Dockerfiles/prod/Dockerfile-5.4), [`5.5-prod`](Dockerfiles/prod/Dockerfile-5.5), [`5.6-prod`](Dockerfiles/prod/Dockerfile-5.6), [`7.0-prod`](Dockerfiles/prod/Dockerfile-7.0), [`7.1-prod`](Dockerfiles/prod/Dockerfile-7.1), [`7.2-prod`](Dockerfiles/prod/Dockerfile-7.2), [`7.3-prod`](Dockerfiles/prod/Dockerfile-7.3), [`7.4-prod`](Dockerfiles/prod/Dockerfile-7.4), [`8.0-prod`](Dockerfiles/prod/Dockerfile-8.0), [`8.1-prod`](Dockerfiles/prod/Dockerfile-8.1), [`8.2-prod`](Dockerfiles/prod/Dockerfile-8.2) +* [`5.2-work`](Dockerfiles/work/Dockerfile-5.2), [`5.3-work`](Dockerfiles/work/Dockerfile-5.3), [`5.4-work`](Dockerfiles/work/Dockerfile-5.4), [`5.5-work`](Dockerfiles/work/Dockerfile-5.5), [`5.6-work`](Dockerfiles/work/Dockerfile-5.6), [`7.0-work`](Dockerfiles/work/Dockerfile-7.0), [`7.1-work`](Dockerfiles/work/Dockerfile-7.1), [`7.2-work`](Dockerfiles/work/Dockerfile-7.2), [`7.3-work`](Dockerfiles/work/Dockerfile-7.3), [`7.4-work`](Dockerfiles/work/Dockerfile-7.4), [`8.0-work`](Dockerfiles/work/Dockerfile-8.0), [`8.1-work`](Dockerfiles/work/Dockerfile-8.1), [`8.2-work`](Dockerfiles/work/Dockerfile-8.2) ----- - -

Motivation

- -One main problem with a running Docker container is to **synchronize the ownership of files in a mounted volume** in order to preserve security (Not having to use `chmod 0777`). +:information_source: For details see **[Documentation: Docker Tags](doc/docker-tags.md)**
+:information_source: For details see **[Documentation: Supported Architectures](doc/supported-architectures.md)** -#### Unsynchronized permissions +

PHP Versions

-Consider the following directory structure of a mounted volume. Your hosts computer uid/gid are `1000` which does not have a corresponding user/group within the container. Fortunately the `tmp/` directory allows everybody to create new files in it. +The following PHP versions are provided by this repository. -```shell - [Host] | [Container] ------------------------------------------------------------------------------------------- - $ ls -l | $ ls -l - -rw-r--r-- user group index.php | -rw-r--r-- 1000 1000 index.php - drwxrwxrwx user group tmp/ | drwxrwxrwx 1000 1000 tmp/ -``` +* `PHP 5.2`, `PHP 5.3`, `PHP 5.4`, `PHP 5.5`, `PHP 5.6` +* `PHP 7.0`, `PHP 7.1`, `PHP 7.2`, `PHP 7.3`, `PHP 7.4` +* `PHP 8.0`, `PHP 8.1`, `PHP 8.2` -Your web application might now have created some temporary files (via the PHP-FPM process) inside the `tmp/` directory: +> **Note:** Unreleased PHP versions are built from custom base images. -```shell - [Host] | [Container] ------------------------------------------------------------------------------------------- - $ ls -l tmp/ | $ ls -l tmp/ - -rw-r--r-- 96 96 _tmp_cache01.php | -rw-r--r-- www www _tmp_cache01.php - -rw-r--r-- 96 96 _tmp_cache02.php | -rw-r--r-- www www _tmp_cache01.php -``` - -On the Docker container side everything is still fine, but on your host computers side, those files now show a user id and group id of `96`, which is in fact the uid/gid of the PHP-FPM process running inside the container. On the host side you will now have to use `sudo` in order to delete/edit those files. - -#### It gets even worse - -Consider your had created the `tmp/` directory on your host only with `0775` permissions: - -```shell - [Host] | [Container] ------------------------------------------------------------------------------------------- - $ ls -l | $ ls -l - -rw-r--r-- user group index.php | -rw-r--r-- 1000 1000 index.php - drwxrwxr-x user group tmp/ | drwxrwxr-x 1000 1000 tmp/ -``` - -If your web application now wants to create some temporary files (via the PHP-FPM process) inside the `tmp/` directory, it will fail due to lacking permissions. - -#### The solution - -To overcome this problem, it must be made sure that the PHP-FPM process inside the container runs under the same uid/gid as your local user that mouns the volumes and also wants to work on those files locally. However, you never know during Image build time what user id this would be. Therefore it must be something that can be changed during startup of the container. - -This is achieved by two environment variables that can be provided during startup in order to change the uid/gid of the PHP-FPM user prior starting up PHP-FPM. - -```shell -$ docker run -e NEW_UID=1000 -e NEW_GID=1000 -it devilbox/php-fpm:7.2-base -[INFO] Changing user 'devilbox' uid to: 1000 -root $ usermod -u 1000 devilbox -[INFO] Changing group 'devilbox' gid to: 1000 -root $ groupmod -g 1000 devilbox -[INFO] Starting PHP 7.2.0 (fpm-fcgi) (built: Oct 30 2017 12:05:19) -``` - -When **`NEW_UID`** and **`NEW_GID`** are provided to the startup command, the container will do a `usermod` and `groupmod` prior starting up in order to assign new uid/gid to the PHP-FPM user. When the PHP-FPM process finally starts up it actually runs with your local system user and making sure permissions will be in sync from now on. - -At a minimum those two environment variables are offered by all flavours and types of the here provided PHP-FPM images. - -**Note:** - -To tackle this on the PHP-FPM side is only half a solution to the problem. The same applies to a web server Docker container when you offer **file uploads**. They will be uploaded and created by the web servers uid/gid. Therefore the web server itself must also provide the same kind of solution. See the following Web server Docker images for how this is done: - -**[Apache 2.2](https://github.com/devilbox/docker-apache-2.2)** | -**[Apache 2.4](https://github.com/devilbox/docker-apache-2.4)** | -**[Nginx stable](https://github.com/devilbox/docker-nginx-stable)** | -**[Nginx mainline](https://github.com/devilbox/docker-nginx-mainline)** +:information_source: For details see **[Documentation: PHP Versions](doc/php-versions.md)**
+:information_source: For details see **[Documentation: Base Images](doc/base-images.md)** -

PHP-FPM Flavours

- -#### Assembly +

Flavours

The provided Docker images heavily rely on inheritance to guarantee smallest possible image size. Each of them provide a working PHP-FPM server and you must decide what version works best for you. Look at the sketch below to get an overview about the two provided flavours and each of their different types. @@ -202,786 +70,201 @@ The provided Docker images heavily rely on inheritance to guarantee smallest pos | # [prod] # Devilbox flavour for production ^ # (locales, postifx, socat and injectables) - | # (custom modules and *.ini files) + | # (custom *.ini files) | # [work] # Devilbox flavour for local development # (includes backup and development tools) # (sudo, custom bash and tool configs) ``` -#### Available Images - -The following table shows a more complete overview about the offered Docker images and what they should be used for. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDocker ImageDescription
basedevilbox/php-fpm:5.2-base - - -
devilbox/php-fpm:5.3-base - - -
devilbox/php-fpm:5.4-base - - -
devilbox/php-fpm:5.5-base - - -
devilbox/php-fpm:5.6-base - - -
devilbox/php-fpm:7.0-base - - -
devilbox/php-fpm:7.1-base - - -
devilbox/php-fpm:7.2-base - - -
devilbox/php-fpm:7.3-base - - -
devilbox/php-fpm:7.4-base - - -
devilbox/php-fpm:8.0-base - - -
devilbox/php-fpm:8.1-base - - -
devilbox/php-fpm:8.2-base - - -
modsdevilbox/php-fpm:5.2-mods - - -
devilbox/php-fpm:5.3-mods - - -
devilbox/php-fpm:5.4-mods - - -
devilbox/php-fpm:5.5-mods - - -
devilbox/php-fpm:5.6-mods - - -
devilbox/php-fpm:7.0-mods - - -
devilbox/php-fpm:7.1-mods - - -
devilbox/php-fpm:7.2-mods - - -
devilbox/php-fpm:7.3-mods - - -
devilbox/php-fpm:7.4-mods - - -
devilbox/php-fpm:8.0-mods - - -
devilbox/php-fpm:8.1-mods - - -
devilbox/php-fpm:8.2-mods - - -
proddevilbox/php-fpm:5.2-prod - - -
devilbox/php-fpm:5.3-prod - - -
devilbox/php-fpm:5.4-prod - - -
devilbox/php-fpm:5.5-prod - - -
devilbox/php-fpm:5.6-prod - - -
devilbox/php-fpm:7.0-prod - - -
devilbox/php-fpm:7.1-prod - - -
devilbox/php-fpm:7.2-prod - - -
devilbox/php-fpm:7.3-prod - - -
devilbox/php-fpm:7.4-prod - - -
devilbox/php-fpm:8.0-prod - - -
devilbox/php-fpm:8.1-prod - - -
devilbox/php-fpm:8.2-prod - - -
workdevilbox/php-fpm:5.2-work - - -
devilbox/php-fpm:5.3-work - - -
devilbox/php-fpm:5.4-work - - -
devilbox/php-fpm:5.5-work - - -
devilbox/php-fpm:5.6-work - - -
devilbox/php-fpm:7.0-work - - -
devilbox/php-fpm:7.1-work - - -
devilbox/php-fpm:7.2-work - - -
devilbox/php-fpm:7.3-work - - -
devilbox/php-fpm:7.4-work - - -
devilbox/php-fpm:8.0-work - - -
devilbox/php-fpm:8.1-work - - -
devilbox/php-fpm:8.2-work - - -
+:information_source: For details see **[Documentation: Flavours](doc/flavours.md)**
+:information_source: For details see **[Documentation: Base Images](doc/base-images.md)** -#### Tagging +

Available PHP extensions

-This repository uses Docker tags to refer to different flavours and types of the PHP-FPM Docker image. Therefore `:latest` and `:` as well as `:` must be presented differently. Refer to the following table to see how tagged Docker images are produced at Docker hub: +> Click below listed extensions for details: - - - - - - - - - - - - - - - - - - - - - - - - - -
Meant TagActual TagComment
:latest - :X.Y-base
- :X.Y-mods
- :X.Y-prod
- :X.Y-work
-
Stable
(rolling)

These tags are produced by the master branch of this repository.
:<git-tag-name> - :X.Y-base-<git-tag-name>
- :X.Y-mods-<git-tag-name>
- :X.Y-prod-<git-tag-name>
- :X.Y-work-<git-tag-name>
-
Stable
(fixed)

Every git tag will produce and preserve these Docker tags.
:<git-branch-name> - :X.Y-base-<git-branch-name>
- :X.Y-mods-<git-branch-name>
- :X.Y-prod-<git-branch-name>
- :X.Y-work-<git-branch-name>
-
Feature
(for testing)

Tags produced by unmerged branches. Do not rely on them as they might come and go.
+ +[`amqp`](php_modules/amqp/) +[`apc`](php_modules/apc/) +[`apcu`](php_modules/apcu/) +[`bcmath`](php_modules/bcmath/) +[`blackfire`](php_modules/blackfire/) +[`bz2`](php_modules/bz2/) +[`calendar`](php_modules/calendar/) +[`ctype`](php_modules/ctype/) +[`curl`](php_modules/curl/) +[`date`](php_modules/date/) +[`dba`](php_modules/dba/) +[`dom`](php_modules/dom/) +[`enchant`](php_modules/enchant/) +[`ereg`](php_modules/ereg/) +[`exif`](php_modules/exif/) +[`FFI`](php_modules/ffi/) +[`fileinfo`](php_modules/fileinfo/) +[`filter`](php_modules/filter/) +[`ftp`](php_modules/ftp/) +[`gd`](php_modules/gd/) +[`gettext`](php_modules/gettext/) +[`gmp`](php_modules/gmp/) +[`hash`](php_modules/hash/) +[`iconv`](php_modules/iconv/) +[`igbinary`](php_modules/igbinary/) +[`imagick`](php_modules/imagick/) +[`imap`](php_modules/imap/) +[`interbase`](php_modules/interbase/) +[`intl`](php_modules/intl/) +[`ioncube`](php_modules/ioncube/) +[`json`](php_modules/json/) +[`ldap`](php_modules/ldap/) +[`libxml`](php_modules/libxml/) +[`lz4`](php_modules/lz4/) +[`lzf`](php_modules/lzf/) +[`mbstring`](php_modules/mbstring/) +[`mcrypt`](php_modules/mcrypt/) +[`memcache`](php_modules/memcache/) +[`memcached`](php_modules/memcached/) +[`mhash`](php_modules/mhash/) +[`mongo`](php_modules/mongo/) +[`mongodb`](php_modules/mongodb/) +[`msgpack`](php_modules/msgpack/) +[`mysql`](php_modules/mysql/) +[`mysqli`](php_modules/mysqli/) +[`mysqlnd`](php_modules/mysqlnd/) +[`OAuth`](php_modules/oauth/) +[`oci8`](php_modules/oci8/) +[`OPcache`](php_modules/opcache/) +[`openssl`](php_modules/openssl/) +[`pcntl`](php_modules/pcntl/) +[`pcre`](php_modules/pcre/) +[`PDO`](php_modules/pdo/) +[`pdo_dblib`](php_modules/pdo_dblib/) +[`PDO_Firebird`](php_modules/pdo_firebird/) +[`pdo_mysql`](php_modules/pdo_mysql/) +[`PDO_OCI`](php_modules/pdo_oci/) +[`pdo_pgsql`](php_modules/pdo_pgsql/) +[`pdo_sqlite`](php_modules/pdo_sqlite/) +[`pdo_sqlsrv`](php_modules/pdo_sqlsrv/) +[`pgsql`](php_modules/pgsql/) +[`phalcon`](php_modules/phalcon/) +[`Phar`](php_modules/phar/) +[`posix`](php_modules/posix/) +[`pspell`](php_modules/pspell/) +[`psr`](php_modules/psr/) +[`random`](php_modules/random/) +[`rdkafka`](php_modules/rdkafka/) +[`readline`](php_modules/readline/) +[`recode`](php_modules/recode/) +[`redis`](php_modules/redis/) +[`Reflection`](php_modules/reflection/) +[`session`](php_modules/session/) +[`shmop`](php_modules/shmop/) +[`SimpleXML`](php_modules/simplexml/) +[`snmp`](php_modules/snmp/) +[`soap`](php_modules/soap/) +[`sockets`](php_modules/sockets/) +[`sodium`](php_modules/sodium/) +[`solr`](php_modules/solr/) +[`SPL`](php_modules/spl/) +[`sqlite`](php_modules/sqlite/) +[`sqlite3`](php_modules/sqlite3/) +[`sqlsrv`](php_modules/sqlsrv/) +[`ssh2`](php_modules/ssh2/) +[`swoole`](php_modules/swoole/) +[`sysvmsg`](php_modules/sysvmsg/) +[`sysvsem`](php_modules/sysvsem/) +[`sysvshm`](php_modules/sysvshm/) +[`tidy`](php_modules/tidy/) +[`tokenizer`](php_modules/tokenizer/) +[`uploadprogress`](php_modules/uploadprogress/) +[`uuid`](php_modules/uuid/) +[`vips`](php_modules/vips/) +[`wddx`](php_modules/wddx/) +[`Xdebug`](php_modules/xdebug/) +[`xlswriter`](php_modules/xlswriter/) +[`xml`](php_modules/xml/) +[`xmlreader`](php_modules/xmlreader/) +[`xmlrpc`](php_modules/xmlrpc/) +[`xmlwriter`](php_modules/xmlwriter/) +[`xsl`](php_modules/xsl/) +[`yaml`](php_modules/yaml/) +[`zip`](php_modules/zip/) +[`zlib`](php_modules/zlib/) +[`zstd`](php_modules/zstd/) + - -#### PHP Modules - -Check out this table to see which Docker image provides what PHP modules. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
basemods, prod and work
5.2ctype, curl, date, dom, filter, ftp, hash, iconv, json, libxml, mbstring, mhash, openssl, pcre, PDO, pdo_sqlite, posix, readline, recode, Reflection, session, SimpleXML, SPL, SQLite, standard, tokenizer, xml, xmlreader, xmlwriter, zlibamqp, bcmath, bz2, calendar, ctype, curl, date, dba, dom, enchant, exif, fileinfo, filter, ftp, gd, gettext, hash, iconv, igbinary, imap, interbase, intl, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mhash, mongo, msgpack, mysql, mysqli, OAuth, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, Phar, posix, pspell, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, SQLite, standard, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib
5.3Core, ctype, curl, date, dom, ereg, fileinfo, filter, ftp, hash, iconv, json, libxml, mbstring, mhash, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, recode, Reflection, session, SimpleXML, SPL, SQLite, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlibamqp, apc, apcu, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, ereg, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imap, interbase, intl, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mhash, mongo, mongodb, msgpack, mysql, mysqli, mysqlnd, OAuth, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, SQLite, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, uuid, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, yaml, Zend OPcache, zip, zlib
5.4Core, ctype, curl, date, dom, ereg, fileinfo, filter, ftp, hash, iconv, json, libxml, mbstring, mhash, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, recode, Reflection, session, SimpleXML, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlibamqp, apc, apcu, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, ereg, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imap, interbase, intl, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mhash, mongo, mongodb, msgpack, mysql, mysqli, mysqlnd, OAuth, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, psr, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, uuid, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, yaml, Zend OPcache, zip, zlib
5.5Core, ctype, curl, date, dom, ereg, fileinfo, filter, ftp, hash, iconv, json, libxml, mbstring, mhash, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, recode, Reflection, session, SimpleXML, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlibamqp, apc, apcu, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, ereg, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, ioncube, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mhash, mongo, mongodb, msgpack, mysql, mysqli, mysqlnd, OAuth, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, psr, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, uuid, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, yaml, Zend OPcache, zip, zlib
5.6Core, ctype, curl, date, dom, ereg, fileinfo, filter, ftp, hash, iconv, json, libxml, mbstring, mhash, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, Reflection, session, SimpleXML, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlibamqp, apc, apcu, bcmath, blackfire, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, ereg, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, ioncube, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mhash, mongo, mongodb, msgpack, mysql, mysqli, mysqlnd, OAuth, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, psr, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, uuid, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, yaml, Zend OPcache, zip, zlib
7.0Core, ctype, curl, date, dom, fileinfo, filter, ftp, hash, iconv, json, libxml, mbstring, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, Reflection, session, SimpleXML, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlibamqp, apcu, bcmath, blackfire, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, ioncube, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, OAuth, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pdo_sqlsrv, pgsql, phalcon, Phar, posix, pspell, psr, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, sqlsrv, ssh2, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, uuid, vips, wddx, xdebug, xlswriter, xml, xmlreader, xmlrpc, xmlwriter, xsl, yaml, Zend OPcache, zip, zlib
7.1Core, ctype, curl, date, dom, fileinfo, filter, ftp, hash, iconv, json, libxml, mbstring, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, Reflection, session, SimpleXML, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlibamqp, apcu, bcmath, blackfire, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, ioncube, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, OAuth, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pdo_sqlsrv, pgsql, phalcon, Phar, posix, pspell, psr, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, solr, SPL, sqlite3, sqlsrv, ssh2, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, uuid, vips, wddx, xdebug, xlswriter, xml, xmlreader, xmlrpc, xmlwriter, xsl, yaml, Zend OPcache, zip, zlib
7.2Core, 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, zlibamqp, apcu, bcmath, blackfire, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, ioncube, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, OAuth, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pdo_sqlsrv, pgsql, phalcon, Phar, posix, pspell, psr, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, solr, SPL, sqlite3, sqlsrv, ssh2, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, uuid, vips, wddx, xdebug, xlswriter, xml, xmlreader, xmlrpc, xmlwriter, xsl, yaml, Zend OPcache, zip, zlib
7.3Core, 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, zlibamqp, apcu, bcmath, blackfire, bz2, calendar, Core, ctype, curl, date, dba, dom, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, ioncube, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, OAuth, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pdo_sqlsrv, pgsql, phalcon, Phar, posix, pspell, psr, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, solr, SPL, sqlite3, sqlsrv, ssh2, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, uuid, vips, wddx, xdebug, xlswriter, xml, xmlreader, xmlrpc, xmlwriter, xsl, yaml, Zend OPcache, zip, zlib
7.4Core, 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, zlibamqp, apcu, bcmath, blackfire, bz2, calendar, Core, ctype, curl, date, dba, dom, exif, FFI, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, intl, ioncube, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, OAuth, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pdo_sqlsrv, pgsql, phalcon, Phar, posix, pspell, psr, rdkafka, readline, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, solr, SPL, sqlite3, sqlsrv, ssh2, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, uuid, vips, xdebug, xlswriter, xml, xmlreader, xmlrpc, xmlwriter, xsl, yaml, Zend OPcache, zip, zlib
8.0Core, ctype, curl, date, dom, FFI, 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, zlibamqp, apcu, bcmath, blackfire, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, FFI, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, intl, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, OAuth, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pdo_sqlsrv, pgsql, phalcon, Phar, posix, pspell, psr, rdkafka, readline, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, solr, SPL, sqlite3, sqlsrv, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, uuid, vips, xdebug, xlswriter, xml, xmlreader, xmlwriter, xsl, yaml, Zend OPcache, zip, zlib
8.1Core, ctype, curl, date, dom, FFI, 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, zlibamqp, apcu, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, FFI, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, intl, json, ldap, libxml, mbstring, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, OAuth, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pdo_sqlsrv, pgsql, phalcon, Phar, posix, pspell, psr, rdkafka, readline, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, solr, SPL, sqlite3, sqlsrv, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, uuid, vips, xdebug, xlswriter, xml, xmlreader, xmlwriter, xsl, yaml, Zend OPcache, zip, zlib
8.2Core, ctype, curl, date, dom, FFI, 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, zlibamqp, apcu, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, FFI, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, intl, json, ldap, libxml, mbstring, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, OAuth, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pdo_sqlsrv, pgsql, Phar, posix, pspell, psr, rdkafka, readline, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, SPL, sqlite3, sqlsrv, standard, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, uuid, xdebug, xlswriter, xml, xmlreader, xmlwriter, xsl, yaml, Zend OPcache, zip, zlib
+:information_source: For details see **[Documentation: PHP Modules](doc/php-modules.md)**
+:information_source: For details see **[Contributor Documentation: PHP Modules](php_modules/README.md)** -

PHP-FPM Features

+

Environment Variables

-#### Image: base -```shell -docker pull devilbox/php-fpm:5.2-base -docker pull devilbox/php-fpm:5.3-base -docker pull devilbox/php-fpm:5.4-base -docker pull devilbox/php-fpm:5.5-base -docker pull devilbox/php-fpm:5.6-base -docker pull devilbox/php-fpm:7.0-base -docker pull devilbox/php-fpm:7.1-base -docker pull devilbox/php-fpm:7.2-base -docker pull devilbox/php-fpm:7.3-base -docker pull devilbox/php-fpm:7.4-base -docker pull devilbox/php-fpm:8.0-base -docker pull devilbox/php-fpm:8.1-base -docker pull devilbox/php-fpm:8.2-base -``` +The provided Docker images offer environment variables to alter their startup behaviour. -Generic PHP-FPM base image. Use it to derive your own php-fpm docker image from it and add more extensions, tools and injectables.

(Does not offer any environment variables except for `NEW_UID` and `NEW_GID`) +:information_source: For details see **[Documentation: Flavours](doc/flavours.md)**
+:information_source: For details see **[Documentation: Environment Variables](doc/docker-env-variables.md)**
-#### Image: mods -```shell -docker pull devilbox/php-fpm:5.2-mods -docker pull devilbox/php-fpm:5.3-mods -docker pull devilbox/php-fpm:5.4-mods -docker pull devilbox/php-fpm:5.5-mods -docker pull devilbox/php-fpm:5.6-mods -docker pull devilbox/php-fpm:7.0-mods -docker pull devilbox/php-fpm:7.1-mods -docker pull devilbox/php-fpm:7.2-mods -docker pull devilbox/php-fpm:7.3-mods -docker pull devilbox/php-fpm:7.4-mods -docker pull devilbox/php-fpm:8.0-mods -docker pull devilbox/php-fpm:8.1-mods -docker pull devilbox/php-fpm:8.2-mods -``` +#### Flavour: base -Generic PHP-FPM image with fully loaded extensions. Use it to derive your own php-fpm docker image from it and add more extensions, tools and injectables.

(Does not offer any environment variables except for `NEW_UID` and `NEW_GID`) +`DEBUG_ENTRYPOINT`, `NEW_UID`, `NEW_GID` -#### Image: prod -```shell -docker pull devilbox/php-fpm:5.2-prod -docker pull devilbox/php-fpm:5.3-prod -docker pull devilbox/php-fpm:5.4-prod -docker pull devilbox/php-fpm:5.5-prod -docker pull devilbox/php-fpm:5.6-prod -docker pull devilbox/php-fpm:7.0-prod -docker pull devilbox/php-fpm:7.1-prod -docker pull devilbox/php-fpm:7.2-prod -docker pull devilbox/php-fpm:7.3-prod -docker pull devilbox/php-fpm:7.4-prod -docker pull devilbox/php-fpm:8.0-prod -docker pull devilbox/php-fpm:8.1-prod -docker pull devilbox/php-fpm:8.2-prod -``` +#### Flavour: mods -Devilbox production image. This Docker image comes with many injectables, port-forwardings, mail-catch-all and user/group rewriting. +`DEBUG_ENTRYPOINT`, `NEW_UID`, `NEW_GID` -#### Image: work -```shell -docker pull devilbox/php-fpm:5.2-work -docker pull devilbox/php-fpm:5.3-work -docker pull devilbox/php-fpm:5.4-work -docker pull devilbox/php-fpm:5.5-work -docker pull devilbox/php-fpm:5.6-work -docker pull devilbox/php-fpm:7.0-work -docker pull devilbox/php-fpm:7.1-work -docker pull devilbox/php-fpm:7.2-work -docker pull devilbox/php-fpm:7.3-work -docker pull devilbox/php-fpm:7.4-work -docker pull devilbox/php-fpm:8.0-work -docker pull devilbox/php-fpm:8.1-work -docker pull devilbox/php-fpm:8.2-work -``` +#### Flavour: prod -Devilbox development image. Same as prod, but comes with lots of locally installed tools to make development inside the container as convenient as possible. See [Integrated Development Environment](#integrated-development-environment) for more information about this. +`DEBUG_ENTRYPOINT`, `NEW_UID`, `NEW_GID`, `TIMEZONE`, `DOCKER_LOGS`, `ENABLE_MODULES`, `DISABLE_MODULES`, `ENABLE_MAIL`, `FORWARD_PORTS_TO_LOCALHOST` + +#### Flavour: work + +`DEBUG_ENTRYPOINT`, `NEW_UID`, `NEW_GID`, `TIMEZONE`, `DOCKER_LOGS`, `ENABLE_MODULES`, `DISABLE_MODULES`, `ENABLE_MAIL`, `FORWARD_PORTS_TO_LOCALHOST`,` MYSQL_BACKUP_USER`, `MYSQL_BACKUP_PASS`, `MYSQL_BACKUP_HOST` -

PHP-FPM Options

+

Volumes

-#### Environment variables +The provided Docker images offer different volumes to be mounted -Have a look at the following table to see all supported environment variables for each Docker image flavour. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ImageEnv VariableTypeDefaultDescription
base

mods

prod

work
DEBUG_ENTRYPOINTint0Set debug level for startup.
0 Only warnings and errors are shown.
1 All log messages are shown
2 All log messages and executed commands are shown.
NEW_UIDint1000Assign the PHP-FPM user a new uid in order to syncronize file system permissions with your host computer and the Docker container. You should use a value that matches your host systems local user.
(Type id -u for your uid).
NEW_GIDint1000Assign the PHP-FPM group a new gid in order to syncronize file system permissions with your host computer and the Docker container. You should use a value that matches your host systems local group.
(Type id -g for your gid).
prod

work
TIMEZONEstringUTCSet docker OS timezone as well as PHP timezone.
(Example: Europe/Berlin)
DOCKER_LOGSbool1By default all Docker images are configured to output their PHP-FPM access and error logs to stdout and stderr. Those which support it can change the behaviour to log into files inside the container. Their respective directories are available as volumes that can be mounted to the host computer. This feature might help developer who are more comfortable with tailing or searching through actual files instead of using docker logs.

Set this variable to 0 in order to enable logging to files. Log files are avilable under /var/log/php/ which is also a docker volume that can be mounted locally.
ENABLE_MODULESstring''Comma separated list of PHP modules to enable, which are not enabled by default.
Example:
ENABLE_MODULES=blackfire, ioncube, psr, phalcon
DISABLE_MODULESstring''Comma separated list of PHP modules to disable.
Example:
DISABLE_MODULES=swoole,imagick
ENABLE_MAILbool0Start local postfix with or without email catch-all.
0: Postfix service disabled.
1: Postfix service started normally.
2: Postfix service started configured for local delivery and all mails sent (even to real domains) will be catched locally. No email will ever go out. They will all be stored in a local devilbox account.
Value: 0, 1 or 2
FORWARD_PORTS_TO_LOCALHOSTstringList of remote ports to forward to 127.0.0.1.
Format:
<local-port>:<remote-host>:<remote-port>
You can separate multiple entries by comma.
Example:
3306:mysqlhost:3306, 6379:192.0.1.1:6379
workMYSQL_BACKUP_USERstring''Username for mysql backups used for bundled mysqldump-secure
MYSQL_BACKUP_PASSstring''Password for mysql backups used for bundled mysqldump-secure
MYSQL_BACKUP_HOSTstring''Hostname for mysql backups used for bundled mysqldump-secure
+:information_source: For details see **[Documentation: Flavours](doc/flavours.md)**
+:information_source: For details see **[Documentation: Volumes](doc/docker-volumes.md)**
-#### Volumes +#### Flavour: base -Have a look at the following table to see all offered volumes for each Docker image flavour. +* None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ImageVolumesDescription
prod

work
/etc/php-custom.dMount this directory into your host computer and add custom \*.ini files in order to alter php behaviour.
/etc/php-fpm-custom.dMount this directory into your host computer and add custom PHP-FPM \*.conf files in order to alter PHP-FPM behaviour.
/etc/php-modules.dMount this directory into your host computer and add custo \*.so files in order to add your php modules.

Note:Your should then also provide a custom \*.ini file in order to actually load your custom provided module.
/startup.1.dAny executable scripts ending by \*.sh found in this directory will be executed during startup. This is useful to supply additional commands (such as installing custom software) when the container starts up. (will run before /startup.2.d)
/startup.2.dAny executable scripts ending by \*.sh found in this directory will be executed during startup. This is useful to supply additional commands (such as installing custom software) when the container starts up. (will run after /startup.1.d)
/var/log/phpWhen setting environment variable DOCKER_LOGS to 0, log files will be available under this directory.
/var/mailEmails caught be the postfix catch-all (ENABLE_MAIL=2) will be available in this directory.
/etc/supervisor/custom.dMount this directory into your host computer and add your own `*.conf` supervisor start-up files.

**Note:** Directory and file permission will be recursively set to this of `NEW_UID` and `NEW_GID`.
work/etc/bashrc-devilbox.dMount this directory into your host computer and add custom configuration files for bash and other tools.
/shared/backupsMount this directory into your host computer to access MySQL backups created by mysqldump-secure.
/caMount this directory into your host computer to bake any *.crt file that is located in there as a trusted SSL entity.
+#### Flavour: mods + +* None + +#### Flavour: prod + +* **[`/etc/php-custom.d`]()**, **[`/etc/php-fpm-custom.d`]()** - *custom PHP/PHP-FPM config files* +* **[`/startup.1.d`]()**, **[`/startup.2.d`]()** - *custom startup scripts* +* **[`/var/log/php`]()**, **[`/var/mail`]()** - *logs and mail data* +* **[`/etc/supervisor/custom.d`]()** - *custom supervisord config files* + +#### Flavour: work + +* **[`/etc/php-custom.d`]()**, **[`/etc/php-fpm-custom.d`]()** - *custom PHP/PHP-FPM config files* +* **[`/startup.1.d`]()**, **[`/startup.2.d`]()** - *custom startup scripts* +* **[`/var/log/php`]()**, **[`/var/mail`]()** - *logs and mail data* +* **[`/etc/supervisor/custom.d`]()** - *custom supervisord config files* +* **[`/etc/bashrc-devilbox.d`]()** - *custom bashrc config files* +* **[`/shared/backups`]()** - *backup data* +* **[`/ca`]()** - *trusted Certificate Authorities* -#### Ports +

Ports

Have a look at the following table to see all offered exposed ports for each Docker image flavour. - + @@ -1019,172 +302,7 @@ The **work** Docker image has many common tools already installed which on one h You want to use tools such as `git`, `drush`, `composer`, `npm`, `eslint`, `phpcs` as well as many others, simply do it directly inside the container. As all Docker images are auto-built every night by GitHub Actions it is assured that you are always at the latest version of your favorite dev tool. - -#### What tools can you expect - -
ImageFlavour Port Description
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ToolDescription
AnsibleAutomation tool.
asgardcmsAsgardCMS cli installer.
awesome-ciVarious linting and source code analyzing tools.
codeceptionElegant and efficient testing for PHP.
composerDependency Manager for PHP.
deployerDeployment tool for PHP.
drupal-consoleThe Drupal CLI. A tool to generate boilerplate code, interact with and debug Drupal.
drushDrush is a computer software shell-based application used to control, manipulate, and administer Drupal websites.
eslintThe pluggable linting utility for JavaScript and JSX.
gitGit is a version control system for tracking changes in source files.
git-flowGit-flow tools.
gulpGulp command line JS tool.
gruntGrunt command line JS tool.
HomebrewThe Missing Package Manager for macOS (or Linux).
jsonlintJson command line linter.
jqCommand-line JSON processor.
laravel installerA CLI tool to easily install and manage the laravel framework.
linkcheckSearch for URLs in files (optionally limited by extension) and validate their HTTP status code.
mdlMarkdown command line linter.
mdlintMarkdown command line linter.
mysqldump-secureSecury MySQL database backup tool with encryption.
nodejsNode.js is an open-source, cross-platform JavaScript run-time environment for executing JavaScript code server-side.
npmnpm is a package manager for the JavaScript programming language.
phalcon-devtoolsCLI tool to generate code helping to develop faster and easy applications that use with Phalcon framework.
phpcsPHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.
phpcbfPHP Code Beautifier and Fixer.
php-cs-fixerA tool to automatically fix PHP Coding Standards issues.
phpmdPHP Mess Detector.
photonPhoton CMS cli.
sassSass CSS compiler.
stylelintSass/CSS command line linter.
sshOpenSSH command line client.
symfony installerThis is the official installer to start new projects based on the Symfony full-stack framework.
tigText-mode Interface for Git.
webpackA bundler for javascript and friends.
wp-cliWP-CLI is the command-line interface for WordPress.
yamllintYaml command line linter.
yarnFast, reliable and secure dependency management.
- +:information_source: For details see **[Documentation: Available Tools](doc/available-tools.md)** #### What else is available @@ -1193,7 +311,6 @@ Apart from the provided tools, you will also be able to use the container simila * Mount custom bash configuration files so your config persists between restarts * Use password-less `sudo` to become root and do whatever you need to do -If there is anything else you'd like to be able to do, drop me an issue.

Examples

@@ -1231,27 +348,6 @@ $ docker run -d \ -t devilbox/php-fpm:7.2-prod ``` -#### Load custom PHP modules - -`modules/` is a local directory that will hold the PHP modules you want to mount into the Docker container. `config/` is a local directory that will hold the PHP *.ini files you want to load into the Docker container. - -```shell -# Create module directory and place module into it -$ mkdir modules -$ cp /my/module/phalcon.so modules/ - -# Custom php config to load this module -$ mkdir config -$ echo "extension=/etc/php-modules.d/phalcon.so" > config/phalcon.ini - -# Run container and mount it -$ docker run -d \ - -p 127.0.0.1:9000:9000 \ - -v config:/etc/php-custom.d \ - -v modules:/etc/php-modules.d \ - -t devilbox/php-fpm:7.2-prod -``` - #### MySQL connect via 127.0.0.1 (via port-forward) Forward MySQL Port from `172.168.0.30` (or any other IP address/hostname) and Port `3306` to the PHP docker on `127.0.0.1:3306`. By this, your PHP files inside the docker can use `127.0.0.1` to connect to a MySQL database. @@ -1324,19 +420,119 @@ $ docker run -d \ $ docker exec -it php mysqldump-secure ``` +#### Docker Compose reference implementation + +If you want a fully functional Docker Compose setup, which allows to switch PHP versions easily, comes with web servers, database servers and much more, then head over to the rerefence implementation: + +| Reference Implementation | +|--------------------------| +| | + + +

Automated builds

[![nightly](https://github.com/devilbox/docker-php-fpm/workflows/nightly/badge.svg)](https://github.com/devilbox/docker-php-fpm/actions?workflow=nightly) Docker images are built and tested every night by **[GitHub Actions](https://github.com/devilbox/docker-php-fpm/actions?workflow=nightly)** and pushed to **[Docker hub](https://hub.docker.com/r/devilbox/php-fpm/)** on success. This is all done automatically to ensure that sources as well as base images are always fresh and in case of security updates always have the latest patches. + +

Build your own image

+ +You are not interested in the provided Docker images and want to (ab)use this repository purely to generate your own custom images? +You can do so with four easy commands: +```bash +# Generate Ansible group_vars for the following PHP extensions +make gen-modules ARGS="msgpack memcached pdo_mysql rdkafka" + +# Generate Dockerfiles +make gen-dockerfiles + +# Pull base image for PHP 8.1 (if you don't have it locally already) +make docker-pull-base-image STAGE=mods VERSION=8.1 ARCH=linux/arm64 + +# Build PHP 8.1 for arm64 with above specified extensions +make build STAGE=mods VERSION=8.1 ARCH=linux/arm64 +``` + +:information_source: For details see **[Abuser Documentation: Build your own image](doc/abuser/README.md)** + +

Contributing

Contributors are welcome. Feel free to star and clone this repository and submit issues and pull-requests. Add examples and show what you have created with the provided images. If you see any errors or ways to improve this repository in any way, please do so. +:information_source: For details see **[Contributor Documentation: PHP Modules](php_modules/README.md)** + + +

Related Project

+ +If you want to add custom modules, tools or apply any other changes, but don't think it fits in here, you can do so over at the **[PHP-FPM Community Images](https://github.com/devilbox/docker-php-fpm-community)**. + +See the reference implementation below: + + +| Project | Author | build | Architecture | Docker Tag | +|---------------------------------------|-------------------------------------------------|-----------------------------------------------|---------------------------------------|------------------------------| +| :file_folder: [devilbox/] | :octocat: [cytopia] (cytopia) | [![devilbox_build]](https://github.com/devilbox/docker-php-fpm-community/actions/workflows/devilbox_action.yml)
[![devilbox_nightly]](https://github.com/devilbox/docker-php-fpm-community/actions/workflows/devilbox_action_schedule.yml)| :computer: amd64
:computer: arm64 | `-devilbox` | + +[devilbox/]: https://github.com/devilbox/docker-php-fpm-community/tree/master/Dockerfiles/devilbox +[cytopia]: https://github.com/cytopia +[devilbox_build]: https://github.com/devilbox/docker-php-fpm-community/workflows/devilbox_build/badge.svg +[devilbox_nightly]: https://github.com/devilbox/docker-php-fpm-community/workflows/devilbox_nightly/badge.svg +> :information_source: `` in the Docker tag above stands for the PHP version. E.g.: `5.4` or `8.1`, etc + + + +

Community

+ +In case you seek help, go and visit the community pages. + + + + + + + + + + + + + + + + + + + + + +

Documentation

Chat

Forum

+ + + + + + + + + + + +
devilbox.readthedocs.iogitter.im/devilboxdevilbox.discourse.group
+ +

Credits

-* **[cytopia](https://github.com/cytopia)** +- **[@cytopia](https://github.com/cytopia)** +- **[@mrLexx](https://github.com/mrLexx)** +- **[@fibis](https://github.com/fibis)** +- **[@llaville](https://github.com/llaville)** +- **[@anatolinicolae](https://github.com/anatolinicolae)** +- **[@fschndr](https://github.com/fschndr)** +- **[@Tuurlijk](https://github.com/Tuurlijk)** +

License

diff --git a/bin/Makefile b/bin/Makefile new file mode 100644 index 0000000..68cb445 --- /dev/null +++ b/bin/Makefile @@ -0,0 +1,38 @@ +ifneq (,) +.error This Makefile requires GNU Make. +endif + +default: help + +# Ensure additional Makefiles are present +MAKEFILES = Makefile.python +$(MAKEFILES): URL=https://raw.githubusercontent.com/devilbox/makefiles/master/$(@) +$(MAKEFILES): + @if ! (curl --fail -sS -o $(@) $(URL) || wget -O $(@) $(URL)); then \ + echo "Error, curl or wget required."; \ + echo "Exiting."; \ + false; \ + fi +include $(MAKEFILES) + + +# ------------------------------------------------------------------------------------------------- +# Default configuration +# ------------------------------------------------------------------------------------------------- +MYPY_ARGS = --strict --disable-error-code no-any-return + +PYLINT_DIR = *.py +PYLINT_PIP_PKGS = yamllint +PYLINT_ARGS = --disable=invalid-name + +PYCODE_ARGS = --max-line-length=100 + +BLACK_LINT_ARGS = -l 100 --check --diff +BLACK_FIX_ARGS = -l 100 + + +# ------------------------------------------------------------------------------------------------- +# Default Target +# ------------------------------------------------------------------------------------------------- +help: + @echo "make lint # Lint Python sources" diff --git a/bin/gen-readme.sh b/bin/gen-readme.sh new file mode 100755 index 0000000..2e2b4ab --- /dev/null +++ b/bin/gen-readme.sh @@ -0,0 +1,268 @@ +#!/usr/bin/env bash + +# Be very strict +set -e +set -u +set -o pipefail + +# Get absolute directory of this script +SCRIPT_PATH="$(cd -P -- "$(dirname -- "$0")" && pwd -P)" +SCRIPT_NAME="$(basename "${SCRIPT_PATH}")" +REPO_PATH="${SCRIPT_PATH}/.." +README="${REPO_PATH}/doc/php-modules.md" + + +#-------------------------------------------------------------------------------------------------- +# Evaluate given cli arguments +#-------------------------------------------------------------------------------------------------- + +### +### Show Usage +### +print_usage() { + echo "Usage: ${SCRIPT_NAME} []" +} + +if [ "${#}" -lt "3" ]; then + print_usage + exit 1 +fi + +IMAGE="${1}" +ARCH="${2}" +STAGE="${3}" +VERSION="${4:-}" + +if [ "${STAGE}" != "base" ] && [ "${STAGE}" != "mods" ]; then + echo "[SKIP]: Skipping for STAGE: ${STAGE} (only 'base' and 'mods' supported" + exit 0 +fi + + +#-------------------------------------------------------------------------------------------------- +# Module functions +#-------------------------------------------------------------------------------------------------- + +### +### Get all modules defined in README +### +get_modules_from_readme() { + local php_version="${1}" # PHP version + local modules + modules="$( \ + grep -Eo "ext_${STAGE}_.+_${php_version}" "${README}" \ + | sed "s/^ext_${STAGE}_//g" \ + | sed "s/_${php_version}//g" \ + )" + echo "${modules}" | sort -fu +} + + +### +### Get modules available in PHP image +### +get_modules_from_image() { + local php_version="${1}" + local img_tag="${2}" + local modules + + modules="$( \ + docker run --rm --platform "${ARCH}" --entrypoint=php "${IMAGE}:${img_tag}" -m \ + | sed 's/Zend //g' \ + | sed 's/xdebug/Xdebug/g' \ + | sed 's/Core//g' \ + | sed 's/standard//g' \ + | grep -E '^[a-zA-Z]' \ + | sort -fu \ + )" + + # Get modules which might be disabled + if docker run --rm --platform "${ARCH}" --entrypoint=find "${IMAGE}:${img_tag}" /usr/local/lib/php/extensions -name 'ioncube.so' | grep -q ioncube.so; then + modules="$( printf "%s\n%s\n" "${modules}" "ioncube" )"; + fi + + if docker run --rm --platform "${ARCH}" --entrypoint=find "${IMAGE}:${img_tag}" /usr/local/lib/php/extensions -name 'blackfire.so' | grep -q blackfire.so; then + modules="$( printf "%s\n%s\n" "${modules}" "blackfire" )"; + fi + + if docker run --rm --platform "${ARCH}" --entrypoint=find "${IMAGE}:${img_tag}" /usr/local/lib/php/extensions -name 'psr.so' | grep -q psr.so; then + modules="$( printf "%s\n%s\n" "${modules}" "psr" )"; + fi + + if docker run --rm --platform "${ARCH}" --entrypoint=find "${IMAGE}:${img_tag}" /usr/local/lib/php/extensions -name 'phalcon.so' | grep -q phalcon.so; then + modules="$( printf "%s\n%s\n" "${modules}" "phalcon" )"; + fi + + # Sort alphabetically + modules="$( echo "${modules}" | sort -fu )" + + # Remove weired line endings + while read -r line; do + echo "${line}" | tr -d '\r' | tr -d '\n' + echo + done < <(echo "${modules}") +} + + +### +### Validate that README.md has all modules defined that are found in the PHP docker image +### +validate_readme() { + local php_version="${1}" + local modules_img="${2}" # Modules found in the PHP docker image + local stage="${3}" # base or mods + + # Check if README.md contains all modules we have retrieved from the PHP image + while read -r line; do + module="$( echo "${line}" | tr '[:upper:]' '[:lower:]' )" + search="ext_${stage}_${module}_${php_version}" + if ! grep -q "${search}" "${README}"; then + echo "[ERROR] Module: '${module}' not present in ${README} for PHP ${php_version}, STAGE: ${stage}" + echo "grep -q \"${search}\" \"${README}\"" + exit 1 + fi + done < <(echo "${modules_img}") +} + + +### +### Update README.md for a specific PHP version +### +update_readme() { + local php_version="${1}" + local modules_image="${2}" + local modules_avail="${3}" + local stage="${4}" # base or mods + + while read -r line_avail; do + module_avail="$( echo "${line_avail}" | tr '[:upper:]' '[:lower:]' )" + + avail=0 + while read -r line_image; do + module_image="$( echo "${line_image}" | tr '[:upper:]' '[:lower:]' )" + if [ "${module_image}" = "${module_avail}" ]; then + avail=1 + break + fi + done < <(echo "${modules_image}") + + if [ "${avail}" = "1" ]; then + sed -i "s|\(\)\(.*\)\(<\/td>\)|\1🗸\3|g" "${README}" + echo "[YES] [${stage}] PHP ${php_version}, mod: '${module_avail}'" + else + sed -i "s|\(\)\(.*\)\(<\/td>\)|\1\3|g" "${README}" + echo "[NO] [${stage}] PHP ${php_version}, mod: '${module_avail}'" + fi + done < <(echo "${modules_avail}") +} + + +# The following commented code is used to generate the README initially +#echo "" +#echo " " +#echo " " +#echo " " +#echo " " +#echo " " +#echo " " +#echo " " +#echo " " +#echo " " +#echo " " +#echo " " +#echo " " +#echo " " +#echo " " +#echo " " +#echo " " +# +#while read -r line; do +# MOD_NAME="$( echo "${line}" )" +# MOD_LOWER="$( echo "${MOD_NAME}" | tr '[:upper:]' '[:lower:]' )" +# echo " " +# echo " " +# echo " " +# echo " " +# echo " " +# echo " " +# echo " " +# echo " " +# echo " " +# echo " " +# echo " " +# echo " " +# echo " " +# echo " " +# echo " " +# echo " " +#done < <(echo "${MODS_IMAGE}") +#echo "
ExtPHP 5.2PHP 5.3PHP 5.4PHP 5.5PHP 5.6PHP 7.0PHP 7.1PHP 7.2PHP 7.3PHP 7.4PHP 8.0PHP 8.1PHP 8.2
${MOD_NAME}🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
" +#exit + + +#-------------------------------------------------------------------------------------------------- +# Main functions +#-------------------------------------------------------------------------------------------------- + +### +### Replace module available in README for a specific PHP version +### +update() { + local php_version="${1}" + local mods_in_readme + local mods_in_image + + mods_in_readme="$( get_modules_from_readme "${php_version}" )" + + mods_in_image="$( get_modules_from_image "${php_version}" "${php_version}-${STAGE}" )" + + validate_readme "${php_version}" "${mods_in_image}" "${STAGE}" + update_readme "${php_version}" "${mods_in_image}" "${mods_in_readme}" "${STAGE}" +} + + +#-------------------------------------------------------------------------------------------------- +# Entrypoint +#-------------------------------------------------------------------------------------------------- + +### +### Entrypoint +### +if [ "${VERSION}" = "" ]; then + # Update PHP modules for all versions at once + update "5.2" + update "5.3" + update "5.4" + update "5.5" + update "5.6" + update "7.0" + update "7.1" + update "7.2" + update "7.3" + update "7.4" + update "8.0" + update "8.1" + update "8.2" +else + if [ "${VERSION}" != "5.2" ] \ + && [ "${VERSION}" != "5.3" ] \ + && [ "${VERSION}" != "5.4" ] \ + && [ "${VERSION}" != "5.5" ] \ + && [ "${VERSION}" != "5.6" ] \ + && [ "${VERSION}" != "7.0" ] \ + && [ "${VERSION}" != "7.1" ] \ + && [ "${VERSION}" != "7.2" ] \ + && [ "${VERSION}" != "7.3" ] \ + && [ "${VERSION}" != "7.4" ] \ + && [ "${VERSION}" != "8.0" ] \ + && [ "${VERSION}" != "8.1" ] \ + && [ "${VERSION}" != "8.2" ]; then + # Argument does not match any of the PHP versions + echo "Error, invalid argument." + print_usage + exit 1 + else + # Update PHP modules for one specific PHP version + update "${VERSION}" + fi +fi diff --git a/bin/modules-generate.py b/bin/modules-generate.py new file mode 100755 index 0000000..c4c0207 --- /dev/null +++ b/bin/modules-generate.py @@ -0,0 +1,281 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +"""Generate Ansible group_vars from module definition.""" +import os +import sys +from collections import OrderedDict +from typing import Dict, List, Any +import yaml + + +# -------------------------------------------------------------------------------------------------- +# GLOBALS +# -------------------------------------------------------------------------------------------------- + +SCRIPT_PATH = str(os.path.dirname(os.path.realpath(__file__))) +REPOSITORY_PATH = str(os.path.dirname(SCRIPT_PATH)) +PHP_MODULE_PATH = str(os.path.join(REPOSITORY_PATH, "php_modules")) +GROUP_VARS_PATH = str(os.path.join(REPOSITORY_PATH, ".ansible", "group_vars", "all")) + + +# -------------------------------------------------------------------------------------------------- +# HELPER FUNCTIONS +# -------------------------------------------------------------------------------------------------- + + +def get_el_by_name(items: List[Dict[str, Any]], name: str) -> Dict[str, Any]: + """Returns an element from a dict list by its 'name' key with given value.""" + for item in items: + if item["name"] == name: + return item + print("error, key name not found by value", name, "in list: ", items) + sys.exit(1) + + +def load_yaml(path: str) -> Dict[str, Any]: + """Load yaml file and return its dict().""" + with open(path, "r", encoding="utf8") as fp: + data = yaml.safe_load(fp) + return data + + +def load_yaml_raw(path: str, indent: int = 0) -> str: + """Load and returns yaml file as str.""" + lines = [] + with open(path, "r", encoding="utf8") as fp: + for line in fp: + # Remove: empty lines and --- + if line in ("---\n", "---\r\n", "\n", "\r\n"): + continue + # Remove: comments + if line.startswith("#"): + continue + lines.append(" " * indent + line) + return "".join(lines) + + +# -------------------------------------------------------------------------------------------------- +# MODULE FUNCTIONS +# -------------------------------------------------------------------------------------------------- + + +def get_module_options(module_dirname: str) -> Dict[str, Any]: + """Returns yaml dict options of a PHP module given by its absolute file path.""" + return load_yaml(os.path.join(PHP_MODULE_PATH, module_dirname, "options.yml")) + + +def get_module_build(module_dirname: str) -> Dict[str, Any]: + """Returns yaml dict build configuration of a PHP module given by its absolute file path.""" + return load_yaml(os.path.join(PHP_MODULE_PATH, module_dirname, "build.yml")) + + +def get_module_test(module_dirname: str) -> Dict[str, Any]: + """Returns yaml dict test configuration of a PHP module given by its absolute file path.""" + return load_yaml(os.path.join(PHP_MODULE_PATH, module_dirname, "test.yml")) + + +def get_modules(selected_modules: List[str], ignore_dependencies: bool) -> List[Dict[str, Any]]: + """Returns a list of PHP module directory names. + + Args: + selected_modules: If not empty, only gather specified modules (and its dependencies). + ignore_dependencies: If true, all dependent extensions will be ignored. + """ + modules = [] + with os.scandir(PHP_MODULE_PATH) as it: + for item in it: + if not item.name.startswith(".") and item.is_dir(): + data = get_module_options(item.name) + modules.append( + {"dir": item.name, "name": data["name"], "deps": data["depends_build"]} + ) + # Convert list of deps into dict(dir, name, deps) + items = [] + for module in modules: + if module["deps"] and not ignore_dependencies: + deps = [] + for dep in module["deps"]: + deps.append(get_el_by_name(modules, dep)) + module["deps"] = deps + items.append(module) + else: + module["deps"] = [] + items.append(module) + # Check if we only want to read a single module + if selected_modules: + return [get_el_by_name(items, mod_name) for mod_name in selected_modules] + return sorted(items, key=lambda item: item["dir"]) + + +def get_module_dependency_tree(modules: List[Dict[str, Any]]) -> OrderedDict[str, Any]: + """Returns dictionary of module dependency tree.""" + module_tree = OrderedDict() # type: OrderedDict[str, Any] + + for module in modules: + mod_name = module["name"] + mod_deps = module["deps"] + + module_tree[mod_name] = {} + + # Do we have module requirements? + if len(mod_deps) > 0: + module_tree[mod_name] = get_module_dependency_tree(mod_deps) + return module_tree + + +def resolve_module_dependency_tree(tree: OrderedDict[str, Any]) -> List[str]: + """Returns sorted list of resolved dependencies.""" + resolved = [] + for key, _ in tree.items(): + # Has dependenies + if tree[key]: + childs = resolve_module_dependency_tree(tree[key]) + for child in childs: + if child not in resolved: + resolved.append(child) + # Add current node, if not already available + if key not in resolved: + resolved.append(key) + return resolved + + +# -------------------------------------------------------------------------------------------------- +# PRINT FUNCTIONS +# -------------------------------------------------------------------------------------------------- + + +def print_modules(modules: List[Dict[str, Any]]) -> None: + """Print directory modules.""" + for module in modules: + print(module["dir"] + "/") + print(" name:", module["name"]) + print(" deps:", end=" ") + for dep in module["deps"]: + print(dep["name"], end=", ") + print() + + +def print_dependency_tree(tree: Dict[str, Any], lvl: int = 0) -> None: + """Print dependency tree of modules.""" + for key, value in tree.items(): + print(" " * lvl, "-", key) + if value: + print_dependency_tree(tree[key], lvl + 2) + + +# -------------------------------------------------------------------------------------------------- +# WRITE ANSIBLE GROUP_VARS FUNCTIONS +# -------------------------------------------------------------------------------------------------- + + +def write_group_vars(modules: List[str]) -> None: + """Write mods.yml group_vars for ansible.""" + group_vars = os.path.join(GROUP_VARS_PATH, "mods.yml") + + with open(group_vars, "w", encoding="utf8") as fp: + fp.write("---\n\n") + fp.write("# DO NOT ALTER THIS FILE - IT IS AUTOGENERATED.\n\n") + + # Enabled modules + fp.write("# The following specifies the order in which modules are being built.\n") + fp.write("extensions_enabled:\n") + for module in modules: + fp.write(" - " + module + "\n") + fp.write("\n\n") + + # Build defines modules + fp.write("# The following specifies how modules are being built.\n") + fp.write("extensions_available:\n") + for module in modules: + opts = get_module_options(module) + fp.write(" " + module + ":\n") + fp.write(" disabled: [" + ", ".join(str(x) for x in opts["exclude"]) + "]\n") + fp.write(load_yaml_raw(os.path.join(PHP_MODULE_PATH, module, "build.yml"), 4)) + + +# -------------------------------------------------------------------------------------------------- +# MAIN FUNCTION +# -------------------------------------------------------------------------------------------------- +def print_help() -> None: + """Show help screen.""" + print("Usage:", os.path.basename(__file__), "[options] [PHP-EXT]...") + print(" ", os.path.basename(__file__), "-h, --help") + print() + print("This script will generate the Ansible group_vars file: .ansible/group_vars/all/mods.yml") + print("based on all the modules found in php_modules/ directory.") + print() + print("Positional arguments:") + print(" [PHP-EXT] Specify None, one or more PHP extensions to generate group_vars for.") + print(" When no PHP extension is specified (argument is omitted), group_vars") + print(" for all extensions will be genrated.") + print(" When one or more PHP extension are specified, only group_vars for") + print(" these extensions will be created.") + print(" only be generated for this single module (and its dependencies).") + print(" This is useful if you want to test new modules and not build all") + print(" previous modules in the Dockerfile.") + print() + print(" Note: You still need to generate the Dockerfiles via Ansible for") + print(" the changes to take effect, before building the image.") + print("Optional arguments:") + print(" -i Ignore dependent modules.") + print(" By default each exentions is checked for build dependencies of other") + print(" extensions. For example many extensions build against libxml ext.") + print(" By specifying -i, those dependencies are not beeing added to") + print(" ansible group_vars. Use at your own risk.") + + +def main(argv: List[str]) -> None: + """Main entrypoint.""" + ignore_dependencies = False + selected_modules = [] + if len(argv): + for arg in argv: + if arg in ("-h", "--help"): + print_help() + sys.exit(0) + for arg in argv: + if arg.startswith("-") and arg != "-i": + print("Invalid argument:", arg) + print("Use -h or --help for help") + sys.exit(1) + if arg == "-i": + ignore_dependencies = True + else: + selected_modules.append(arg) + + # Get modules in order of dependencies + modules = get_modules(selected_modules, ignore_dependencies) + module_tree = get_module_dependency_tree(modules) + names = resolve_module_dependency_tree(module_tree) + + print("#", "-" * 78) + print("# Paths") + print("#", "-" * 78) + print("Repository: ", REPOSITORY_PATH) + print("PHP Module: ", PHP_MODULE_PATH) + print("Group Vars: ", GROUP_VARS_PATH) + print() + + print("#", "-" * 78) + print("# Module directories") + print("#", "-" * 78) + print_modules(modules) + print() + + print("#", "-" * 78) + print("# Build Dependency Tree") + print("#", "-" * 78) + print_dependency_tree(module_tree) + print() + + print("#", "-" * 78) + print("# Build order") + print("#", "-" * 78) + print("\n".join(names)) + + # Create group_vars file mods.yml + write_group_vars(names) + + +if __name__ == "__main__": + main(sys.argv[1:]) diff --git a/bin/modules-validate.py b/bin/modules-validate.py new file mode 100755 index 0000000..9fbcc43 --- /dev/null +++ b/bin/modules-validate.py @@ -0,0 +1,6 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +"""Validate defined modules.""" +print("Not yet implemented *///*") +print() +print("Run modules-generate.py instead, as it also kind of validates.") diff --git a/build/README.md b/build/README.md deleted file mode 100644 index c5f7409..0000000 --- a/build/README.md +++ /dev/null @@ -1,51 +0,0 @@ -# Build helper - -This directory contains all tools for building. - -## `ansible/` - -The `ansible/` directory contains a setup to generate all Dockerfiles. Once generated, they will be placed or updated into [../Dockerfiles](../Dockerfiles). - -**How to generate via ansible command** -```bash -# From inside ansible directory -cd ansible -ansible-playbook generate.yml --diff -``` - -**How to generate via Makefile** -```bash -# From inside root git directory -cd .. -make generate -``` - -**Requirements** - -In order to generate Dockerfiles, you will have to have ansible installed: -``` -pip install ansible -``` - -## `gen-readme.sh` - -`gen-readme.sh` will update the README.md with currently enabled PHP modules for each Docker image. - -**How to update the README.md** - -```bash -# Update for all Docker images -./gen-readme.sh - -# Update for specific Docker image -./gen-readme.sh 5.4 -./gen-readme.sh 5.5 -./gen-readme.sh 5.6 -./gen-readme.sh 7.0 -./gen-readme.sh 7.1 -./gen-readme.sh 7.2 -``` - -**Requirements** - -If you want to update the README.md for a specific Docker image, you must have built this image prior running `gen-readme.sh`. diff --git a/build/gen-readme.sh b/build/gen-readme.sh deleted file mode 100755 index 29abd81..0000000 --- a/build/gen-readme.sh +++ /dev/null @@ -1,123 +0,0 @@ -#!/usr/bin/env bash - -# Be very strict -set -e -set -u -set -o pipefail - -# Get absolute directory of this script -CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)" - -IMAGE="${1}" -ARCH="${2}" -TAG_BASE="${3}" -TAG_MODS="${4}" -VERSION="${5:-}" - - -### -### Show Usage -### -print_usage() { - echo "Usage: gen-readme.sh []" -} - - -### -### Extract PHP modules in alphabetical order and comma separated in one line -### -get_modules() { - current_tag="${1}" - # Retrieve all modules - PHP_MODULES="$( docker run --rm --platform "${ARCH}" "$(tty -s && echo '-it' || echo)" --entrypoint=php "${IMAGE}:${current_tag}" -m )" - ALL_MODULES= - - if docker run --rm --platform "${ARCH}" "$(tty -s && echo '-it' || echo)" --entrypoint=find "${IMAGE}:${current_tag}" /usr/local/lib/php/extensions -name 'ioncube.so' | grep -q ioncube.so; then - ALL_MODULES="${ALL_MODULES},ioncube"; - fi - - if docker run --rm --platform "${ARCH}" "$(tty -s && echo '-it' || echo)" --entrypoint=find "${IMAGE}:${current_tag}" /usr/local/lib/php/extensions -name 'blackfire.so' | grep -q blackfire.so; then - ALL_MODULES="${ALL_MODULES},blackfire"; - fi - - if docker run --rm --platform "${ARCH}" "$(tty -s && echo '-it' || echo)" --entrypoint=find "${IMAGE}:${current_tag}" /usr/local/lib/php/extensions -name 'psr.so' | grep -q psr.so; then - ALL_MODULES="${ALL_MODULES},psr"; - fi - - if docker run --rm --platform "${ARCH}" "$(tty -s && echo '-it' || echo)" --entrypoint=find "${IMAGE}:${current_tag}" /usr/local/lib/php/extensions -name 'phalcon.so' | grep -q phalcon.so; then - ALL_MODULES="${ALL_MODULES},phalcon"; - fi - - # Process module string into correct format for README.md - PHP_MODULES="$( echo "${PHP_MODULES}" | sed 's/^\[.*//g' )" # Remove PHP Modules headlines - PHP_MODULES="${ALL_MODULES}${PHP_MODULES}" # Append all available modules - PHP_MODULES="$( echo "${PHP_MODULES}" | sort -fu )" # Unique - PHP_MODULES="$( echo "${PHP_MODULES}" | sed '/^\s*$/d' )" # Remove empty lines - PHP_MODULES="$( echo "${PHP_MODULES}" | tr '\r\n' ',' )" # Newlines to commas - PHP_MODULES="$( echo "${PHP_MODULES}" | tr '\n' ',' )" # Newlines to commas - PHP_MODULES="$( echo "${PHP_MODULES}" | tr '\r' ',' )" # Newlines to commas - PHP_MODULES="$( echo "${PHP_MODULES}" | sed 's/^M/,/g' )" # Newlines to commas - PHP_MODULES="$( echo "${PHP_MODULES}" | sed 's/,,/,/g' )" # Remove PHP Modules headlines - PHP_MODULES="$( echo "${PHP_MODULES}" | sed 's/,/\n/g' )" # Back to newlines - PHP_MODULES="$( echo "${PHP_MODULES}" | sort -fu )" # Unique - PHP_MODULES="$( echo "${PHP_MODULES}" | sed '/^\s*$/d' )" # Remove empty lines - PHP_MODULES="$( echo "${PHP_MODULES}" | tr '\n' ',' )" # Newlines to commas - PHP_MODULES="$( echo "${PHP_MODULES}" | sed 's/,$//g' )" # Remove trailing comma - PHP_MODULES="$( echo "${PHP_MODULES}" | sed 's/,/, /g' )" # Add space to comma - - echo "${PHP_MODULES}" -} - - -### -### Replace modules in Readme for specified PHP version -### -update_readme() { - v="${1}" - # Those sections must exist in README.md, otherwise this script will exit with errors - sed -i'' "s|
.*<\/td>|$( get_modules "${TAG_BASE}" )<\/td>|g" "${CWD}/../README.md" - sed -i'' "s|.*<\/td>|$( get_modules "${TAG_MODS}" )<\/td>|g" "${CWD}/../README.md" -} - - -### -### Entrypoint -### -if [ "${VERSION}" = "" ]; then - # Update PHP modules for all versions at once - update_readme "5.2" - update_readme "5.3" - update_readme "5.4" - update_readme "5.5" - update_readme "5.6" - update_readme "7.0" - update_readme "7.1" - update_readme "7.2" - update_readme "7.3" - update_readme "7.4" - update_readme "8.0" - update_readme "8.1" - update_readme "8.2" -else - if [ "${VERSION}" != "5.2" ] \ - && [ "${VERSION}" != "5.3" ] \ - && [ "${VERSION}" != "5.4" ] \ - && [ "${VERSION}" != "5.5" ] \ - && [ "${VERSION}" != "5.6" ] \ - && [ "${VERSION}" != "7.0" ] \ - && [ "${VERSION}" != "7.1" ] \ - && [ "${VERSION}" != "7.2" ] \ - && [ "${VERSION}" != "7.3" ] \ - && [ "${VERSION}" != "7.4" ] \ - && [ "${VERSION}" != "8.0" ] \ - && [ "${VERSION}" != "8.1" ] \ - && [ "${VERSION}" != "8.2" ]; then - # Argument does not match any of the PHP versions - echo "Error, invalid argument." - print_usage - exit 1 - else - # Update PHP modules for one specific PHP version - update_readme "${VERSION}" - fi -fi diff --git a/doc/abuser/README.md b/doc/abuser/README.md new file mode 100644 index 0000000..6afb250 --- /dev/null +++ b/doc/abuser/README.md @@ -0,0 +1,116 @@ +Build your own image + +--- + +

Abuser Documentation

+ + + +### Build your own image + +#### Software Requirements + +You must have the following tools installed locally: +* Python3 +* `PyYAML` Python package (either via pip or OS packet manager) +* `make` +* `docker` + + +#### Other Requirements +You should have a brief understanding about the different flavours available in this repository. + +:information_source: For details see **[README.md#flavours](../../README.md#php-fpm-flavours)**
+:information_source: For details see **[Documentation: Flavours](../flavours.md)** + + +#### How does it work? + +This repository already has all the automation in place. + +1. For each PHP version a `base` image is built to streamline settings across all PHP versions. +2. Based on the `base` image, a `mods` image is built, which only adds a whole bunch of PHP extensions. +3. Based on the `mods` image, a `prod` image is built, which adds features to alter the startup behaviour. +4. Based on the `prod` image, a `work` image is built, which acts as an integrated development environment in which you can actually work (adds a whole bunch of tools). + +What you need to do, is to: + +1. Ensure the `base` image is available locally on your system (either by building it or by pulling it). +2. Decide on the PHP extensions that you want to add +3. Decide on the PHP version you want to build +4. Decide on the architecture/platform you want to build the Docker image for (`amd64` or `arm64`). +5. Build the `mods` image (or just create the Dockerfile for it). + +With this you will be all set, you can however decide to build the `prod` flavour on top of your custom `mods` image as it adds a lot of configurable environment variables to dynamically alter the startup behaviour. + +In case you plan to use your custom image for the **[Devilbox](https://github.com/cytopia/devilbox)**, you must also go ahead and built the `work` flavour on top of the `prod` flavour. + + +#### Generate your custom Dockerfile + +> **Note:** All commands are executed in the root of this repository + +1. Generate PHP extensions in Ansible group_vars + ```bash + # Generate Ansible group_vars for all available extensions + make gen-modules + ``` + ```bash + # Generate Ansible group_vars for selected extensions + # Note: that also all dependent extensions will be added + make gen-modules ARGS="msgpack xsl" + ``` + ```bash + # Generate Ansible group_vars for selected extensions + # and ignore dependencies + make gen-modules ARGS="-i msgpack xsl" + ``` + ```bash + # Show help + make gen-modules ARGS="--help" + ``` +2. Generate Dockerfiles from Ansible group_vars + ```bash + make gen-dockerfiles + ``` + + +#### Build your custom Dockerfile + +> **Note:** All commands are executed in the root of this repository + +1. Ensure you have the `base` image locally for your desired version and architecture + ```bash + ARCH=linux/amd64 + VERSION=8.1 + make docker-pull-base-image STAGE=mods VERSION=${VERSION} ARCH=${ARCH} + ``` +2. Build the `mods` image + ```bash + ARCH=linux/amd64 + VERSION=8.1 + make build STAGE=mods VERSION=${VERSION} ARCH=${ARCH} + ``` +3. (Optional) Build the `prod` image + ```bash + ARCH=linux/amd64 + VERSION=8.1 + make build STAGE=prod VERSION=${VERSION} ARCH=${ARCH} + ``` +4. (Optional) Build the `work` image + ```bash + ARCH=linux/amd64 + VERSION=8.1 + make build STAGE=work VERSION=${VERSION} ARCH=${ARCH} + ``` + + +#### FAQ + +1. Where do I find the generated Dockerfile? +2. How can I omit dependent PHP extensions when generating the Dockerfile? +3. How do I ensure that dependent PHP extensions are automatically added to the Dockerfile? +4. Where do I see what PHP extensions are available in this repository? +5. How do I know what each of the provided PHP extensions is for? +6. How can I add PHP extensions that are not provided here? +7. Switching architectures fails with errors, what should I do? diff --git a/doc/available-tools.md b/doc/available-tools.md new file mode 100644 index 0000000..3a4771f --- /dev/null +++ b/doc/available-tools.md @@ -0,0 +1,183 @@ +[Permissions](syncronize-file-permissions.md) | +[Tags](docker-tags.md) | +[Architectures](supported-architectures.md) | +[Versions](php-versions.md) | +[Flavours](flavours.md) | +[Extensions](php-modules.md) | +Tools | +[Env Vars](docker-env-variables.md) | +[Volumes](docker-volumes.md) | +[Base Images](base-images.md) + +--- + +

Documentation

+ + + +### Available Tools + +> **Disclaimer:** It is currently not clear what tools are available in which PHP image (version-dependent). This documentation was done by hand and work has currently started to automate this and keep exact tools up-to-date for each of the provided PHP version. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ToolDescription
AnsibleAutomation tool.
asgardcmsAsgardCMS cli installer.
awesome-ciVarious linting and source code analyzing tools.
codeceptionElegant and efficient testing for PHP.
composerDependency Manager for PHP.
deployerDeployment tool for PHP.
drupal-consoleThe Drupal CLI. A tool to generate boilerplate code, interact with and debug Drupal.
drushDrush is a computer software shell-based application used to control, manipulate, and administer Drupal websites.
eslintThe pluggable linting utility for JavaScript and JSX.
gitGit is a version control system for tracking changes in source files.
git-flowGit-flow tools.
gulpGulp command line JS tool.
gruntGrunt command line JS tool.
HomebrewThe Missing Package Manager for macOS (or Linux).
jsonlintJson command line linter.
jqCommand-line JSON processor.
laravel installerA CLI tool to easily install and manage the laravel framework.
linkcheckSearch for URLs in files (optionally limited by extension) and validate their HTTP status code.
mdlMarkdown command line linter.
mdlintMarkdown command line linter.
mysqldump-secureSecury MySQL database backup tool with encryption.
nodejsNode.js is an open-source, cross-platform JavaScript run-time environment for executing JavaScript code server-side.
npmnpm is a package manager for the JavaScript programming language.
phalcon-devtoolsCLI tool to generate code helping to develop faster and easy applications that use with Phalcon framework.
phpcsPHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.
phpcbfPHP Code Beautifier and Fixer.
php-cs-fixerA tool to automatically fix PHP Coding Standards issues.
phpmdPHP Mess Detector.
photonPhoton CMS cli.
sassSass CSS compiler.
stylelintSass/CSS command line linter.
sshOpenSSH command line client.
symfony installerThis is the official installer to start new projects based on the Symfony full-stack framework.
tigText-mode Interface for Git.
webpackA bundler for javascript and friends.
wp-cliWP-CLI is the command-line interface for WordPress.
yamllintYaml command line linter.
yarnFast, reliable and secure dependency management.
diff --git a/doc/base-images.md b/doc/base-images.md new file mode 100644 index 0000000..26bf9e1 --- /dev/null +++ b/doc/base-images.md @@ -0,0 +1,27 @@ +[Permissions](syncronize-file-permissions.md) | +[Tags](docker-tags.md) | +[Architectures](supported-architectures.md) | +[Versions](php-versions.md) | +[Flavours](flavours.md) | +[Extensions](php-modules.md) | +[Tools](available-tools.md) | +[Env Vars](docker-env-variables.md) | +[Volumes](docker-volumes.md) | +Base Images + +--- + +

Documentation

+ + + +### Base Images + +Have a look at the following Devilbox base images for which no official versions exist yet, but are required to serve as a foundation for this repository: + +* [PHP-FPM 5.2](https://github.com/devilbox/docker-php-fpm-5.2) +* [PHP-FPM 5.3](https://github.com/devilbox/docker-php-fpm-5.3) +* [PHP-FPM 7.4](https://github.com/devilbox/docker-php-fpm-7.4) +* [PHP-FPM 8.0](https://github.com/devilbox/docker-php-fpm-8.0) +* [PHP-FPM 8.1](https://github.com/devilbox/docker-php-fpm-8.1) +* [PHP-FPM 8.2](https://github.com/devilbox/docker-php-fpm-8.2) diff --git a/doc/contributor/PHP-EXT-build.yml.md b/doc/contributor/PHP-EXT-build.yml.md new file mode 100644 index 0000000..83def9b --- /dev/null +++ b/doc/contributor/PHP-EXT-build.yml.md @@ -0,0 +1,206 @@ +[PHP Mods: Overview](../../php_modules/README.md) | +[PHP Mods: `options.yml`](PHP-EXT-options.yml.md) | +PHP Mods: `build.yml` | +[PHP Mods: `test.yml`](PHP-EXT-test.yml.md) + +--- + +

Contributor Documentation: PHP Modules

+ + + +# Extension definition: `build.yml` + + +## Top level defines + +| Yaml key | Description | +|-----------------|-------------| +| `already_avail` | Array of PHP versions for which we don't have to install the module as it is already present via its FROM image. | +| `all` | Is generic for all PHP versions and will be used whenever no specific version is defined. | +| `7.2` | A version specific block for PHP 7.2. Its child keys will overwrite what has been defined in `all`. | + +**Example:** Using `already_avail` +```yaml +# "{{ php_all_versions }}" Jinja2 variable is available and +# translates to an array of all available PHP versions. +already_avail: "{{ php_all_versions }}" +``` + +**Example:** Overwriting `git_ref` for a specific version +```yaml +already_avail: [5.2] +all: + type: git + git_url: https://github.com/phalcon/cphalcon + git_ref: master +# PHP 8.1 is using a different git_ref +8.1: + git_ref: v1.0.0 +# PHP 8.0 is using a different git_ref dynamically with latest tag found +# See the usage of supported shell code +8.0: + git_ref: $( git tag | sort -V | tail -1 ) +``` + + +## Second level defines + +The following keys can be added below: `all`, `8.2`, `8.1`, `8.0`, `7.4`, ... + +| Yaml key | Required | Supports
Shell code | Description | +|-------------|----------|-------------------------|-------------| +| `pre` | No | Yes | Specify a shell command to be run before module installation. | +| `post` | No | Yes | Specify a shell command to be run after module installation. | +| `build_dep` | No | No | Array Debian packages required to build the module (they won't be present in the final image - only used to built the module) If you don't need any, assign it an empty array: `build_dep: []`. | +| `run_dep` | No | No | Array Debian packages required for the module run-time (they won't be present during the build stage - only in the final image). If you don't need any, assign it an empty array: `run_dep: []`. | +| `type` | **Yes** | No | On of the following types to build the module: `builtin`, `pecl`, `git`, `custom`. | + +**Example:** +```yaml +all: + type: builtin + pre: | + ARCH="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE))" \ + post: | + rm -f /tmp/file.txt \ + build_dep: [libmcrypt-dev] + run_dep: [libmcrypt4] +8.1: + type: builtin + build_dep: [] + run_dep: [] +``` + + +## Second level defines for `type: builtin` + +| Yaml key | Required | Supports
Shell code | Description | +|-------------|----------|-------------------------|-------------| +| `configure` | No | Yes | Add `./configure` arguments. E.g.:
`configure: --with-jpeg --with-png` | + +**Example:** +```yaml +all: + type: builtin +8.1: + type: builtin + configure: --with-jpeg --with-png +8.0: + type: builtin + configure: --with-jpeg +``` + + +## Second level defines for `type: pecl` + +| Yaml key | Required | Supports
Shell code | Description | +|-------------|----------|-------------------------|-------------| +| `version` | No | Yes | Pecl packet version | +| `command` | No | Yes | Overwrite pecl command (default: `pecl install `) | + +**Example:** +```yaml +all: + type: pecl + command: echo "/usr" | pecl install amqp + build_dep: [librabbitmq-dev] + run_dep: [librabbitmq4] +5.5: + type: pecl + version: 1.9.3 + run_dep: [librabbitmq1] +``` + + +## Second level defines for `type: git` + +| Yaml key | Required | Supports
Shell code | Description | +|-------------|----------|-------------------------|-------------| +| `git_url` | **Yes** | Yes | Git repository URL | +| `git_ref` | No | Yes | Tag, branch, commit to check out (shell code supported to dynamically checkout) | +| `configure` | No | Yes | Add `./configure` arguments. | +| `command` | No | Yes | Overwrite default command (default: `phpize && ./configure && make && make install`) | + +**Example:** +```yaml +already_avail: [5.2] +all: + type: git + git_url: https://github.com/phalcon/cphalcon + git_ref: master +# PHP 8.1 is using a different git_ref +8.1: + git_ref: v1.0.0 +# PHP 8.0 is using a different git_ref dynamically with latest tag found +# See the usage of supported shell code +8.0: + git_ref: $( git tag | sort -V | tail -1 ) +``` + + +## Second level defines for `type: custom` + +| Yaml key | Required | Supports
Shell code | Description | +|-------------|----------|-------------------------|-------------| +| `command` | **Yes** | Yes | Custom command to install and enable a module | + +**Example:** +```yaml +all: + type: custom + command: | + wget http://url/file.tar.gz \ + && tar xvfz file.tar.gz \ + && cd file \ + && phpize \ + && ./configure \ + && make \ + && make install \ +``` + + +## Usage of shell code + +### Single-line vs Multi-line + +**Note:** All keys that support shell code can be written as a single line yaml definition or as a multi line yaml definition. Multi-line yaml definitions need a trailing `\` at the end of each line, including the last line.
+**Single-line:** +```bash +all: + pre: VERSION="$( curl http://url | grep -Eo '[0-9.]+' )" +``` +**Multi-line:** +```bash +all: + pre: | + VERSION="$( \ + curl http://url \ + | grep -Eo '[0-9.]+' \ + )" \ +``` + +### Single-command vs Multi-command + +**Note:** All keys that support shell code also support to write multiple shell commands. If you use multiple shell commands, you need to separate them with `&&`.
+**Single-command:** +```bash +all: + pre: | + VERSION="$( \ + curl http://url \ + | grep -Eo '[0-9.]+' \ + )" \ +``` +**Multi-command:** +```bash +all: + pre: | + URL="http://url" \ + && VERSION="$( \ + curl "${URL} \ + | grep -Eo '[0-9.]+' \ + )" \ + && echo "${VERSION}" \ + +``` diff --git a/doc/contributor/PHP-EXT-options.yml.md b/doc/contributor/PHP-EXT-options.yml.md new file mode 100644 index 0000000..ad190b0 --- /dev/null +++ b/doc/contributor/PHP-EXT-options.yml.md @@ -0,0 +1,132 @@ +[PHP Mods: Overview](../../php_modules/README.md) | +PHP Mods: `options.yml` | +[PHP Mods: `build.yml`](PHP-EXT-build.yml.md) | +[PHP Mods: `test.yml`](PHP-EXT-test.yml.md) + +--- + +

Contributor Documentation: PHP Modules

+ + + +# Extension definition: `options.yml` + +These options are purely for the module generator to decide whether or not to build the module, in what order to build it (order of dependencies) and when to enable it for PHP cli and PHP-FPM. + + +### `name` + +* Required: Yes +* Type: `str` + +The lower-case name of the extension as it is shown by `php -m`. + + +### `exclude` + +* Required: Yes +* Type: `list[str]` +* Empty: `[]` + +Add PHP versions to exclude from building/installing this extension. This could be due to build errors or deprecations. + +Example: +```yaml +# Exclude PHP 5.2 and PHP 5.3 +exclude: [5.2, 5.3] +``` + +**Note:** If this extension is already present, do not exclude it in here, but rather use `already_avail` in `build.yml`. + + +### `depends_build` + +* Required: Yes +* Type: `list[str]` +* Empty: `[]` + +If this PHP module requires another PHP module to be present prior building, you have to specify them in this list. The module generator will then ensure to build all available modules in order of dependencies. + +Example: +```yaml +# Before building the current extension, it will be ensured that +# igbinary and msgpack are build and installed beforehand. +depends_build: + - igbinary + - msgpack +``` + + +### `depends_load` + +* Required: Yes +* Type: `list[str]` +* Empty: `[]` + +If this PHP module requires another PHP module to be loaded beforehand in order to function correctly, you have to specify them in this list. The PHP docker image will then respect the order of loading modules as per specification in here. + +Example: +```yaml +# Before loading the current module, ensure to load +# igbinary and msgpack first. +depends_load: + - igbinary + - msgpack +``` + +**Note:** This is the opposite of `loads_before` + + + +### `loads_before` + +* Required: No +* Type: `list[str]` +* Empty: `[]` + +If this PHP module requires to be loaded before certain other PHP modules, specify them in this list. The PHP docker image will then respect the order of loading modules as per specification in here. + +Example: +```yaml +# Before loading igbinary and msgpack, ensure to load +# the current module. +depends_load: + - igbinary + - msgpack +``` + +**Note:** This is the opposite of `depends_load` + + + +### `conflicts_load` + +* Required: Yes +* Type: `list[str]` +* Empty: `[]` + +Specify any PHP modules that cause the current module to malfunction when loaded. + +Example: +```yaml +# Make igbinary and msgpack as incompatible to load with this module. +conflicts_load: + - igbinary + - msgpack +``` + + +### `enabled_php_cli` + +* Required: Yes +* Type: `bool` + +Specify if this module should be loaded and made available to the PHP cli (does not affect PHP-FPM). + + +### `enabled_php_fpm` + +* Required: Yes +* Type: `bool` + +Specify if this module should be loaded and made available to the PHP-FPM process (does not affect PHP cli). diff --git a/doc/contributor/PHP-EXT-test.yml.md b/doc/contributor/PHP-EXT-test.yml.md new file mode 100644 index 0000000..7946282 --- /dev/null +++ b/doc/contributor/PHP-EXT-test.yml.md @@ -0,0 +1,27 @@ +[PHP Mods: Overview](../../php_modules/README.md) | +[PHP Mods: `options.yml`](PHP-EXT-options.yml.md) | +[PHP Mods: `build.yml`](PHP-EXT-build.yml.md) | +PHP Mods: `test.yml` + +--- + +

Contributor Documentation: PHP Modules

+ + + +# Extension definition: `test.yml` + +### Goal +The goal of these tests will be to ensure that each compiled module works as expected: +* Required system libraries are present +* Module has been loaded in correct order +* Module works properly + +This will be accomplished by providing example PHP code, which makes calls to functions of the respective module. The tests will then check PHP error logs, stderr, unforseen exits and segfaults for potential errors. + +Currently some basic tests already exist or a few modules **[here](../../tests/mods/modules)**. + + +### Configuration + +This is not yet implemented and thus no documentation exists. diff --git a/doc/docker-env-variables.md b/doc/docker-env-variables.md new file mode 100644 index 0000000..dc040fc --- /dev/null +++ b/doc/docker-env-variables.md @@ -0,0 +1,114 @@ +[Permissions](syncronize-file-permissions.md) | +[Tags](docker-tags.md) | +[Architectures](supported-architectures.md) | +[Versions](php-versions.md) | +[Flavours](flavours.md) | +[Extensions](php-modules.md) | +[Tools](available-tools.md) | +Env Vars | +[Volumes](docker-volumes.md) | +[Base Images](base-images.md) + +--- + +

Documentation

+ + + +### Environment Variables + +Have a look at the following table to see all supported environment variables for each Docker image flavour. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ImageEnv VariableTypeDefaultDescription
base

mods

prod

work
DEBUG_ENTRYPOINTint0Set debug level for startup.
0 Only warnings and errors are shown.
1 All log messages are shown
2 All log messages and executed commands are shown.
NEW_UIDint1000Assign the PHP-FPM user a new uid in order to syncronize file system permissions with your host computer and the Docker container. You should use a value that matches your host systems local user.
(Type id -u for your uid).
NEW_GIDint1000Assign the PHP-FPM group a new gid in order to syncronize file system permissions with your host computer and the Docker container. You should use a value that matches your host systems local group.
(Type id -g for your gid).
prod

work
TIMEZONEstringUTCSet docker OS timezone as well as PHP timezone.
(Example: Europe/Berlin)
DOCKER_LOGSbool1By default all Docker images are configured to output their PHP-FPM access and error logs to stdout and stderr. Those which support it can change the behaviour to log into files inside the container. Their respective directories are available as volumes that can be mounted to the host computer. This feature might help developer who are more comfortable with tailing or searching through actual files instead of using docker logs.

Set this variable to 0 in order to enable logging to files. Log files are avilable under /var/log/php/ which is also a docker volume that can be mounted locally.
ENABLE_MODULESstring''Comma separated list of PHP modules to enable, which are not enabled by default.
Example:
ENABLE_MODULES=blackfire, ioncube, psr, phalcon
DISABLE_MODULESstring''Comma separated list of PHP modules to disable.
Example:
DISABLE_MODULES=swoole,imagick
ENABLE_MAILbool0Start local postfix with or without email catch-all.
0: Postfix service disabled.
1: Postfix service started normally.
2: Postfix service started configured for local delivery and all mails sent (even to real domains) will be catched locally. No email will ever go out. They will all be stored in a local devilbox account.
Value: 0, 1 or 2
FORWARD_PORTS_TO_LOCALHOSTstringList of remote ports to forward to 127.0.0.1.
Format:
<local-port>:<remote-host>:<remote-port>
You can separate multiple entries by comma.
Example:
3306:mysqlhost:3306, 6379:192.0.1.1:6379
workMYSQL_BACKUP_USERstring''Username for mysql backups used for bundled mysqldump-secure
MYSQL_BACKUP_PASSstring''Password for mysql backups used for bundled mysqldump-secure
MYSQL_BACKUP_HOSTstring''Hostname for mysql backups used for bundled mysqldump-secure
diff --git a/doc/docker-tags.md b/doc/docker-tags.md new file mode 100644 index 0000000..2d08ed0 --- /dev/null +++ b/doc/docker-tags.md @@ -0,0 +1,300 @@ +[Permissions](syncronize-file-permissions.md) | +Tags | +[Architectures](supported-architectures.md) | +[Versions](php-versions.md) | +[Flavours](flavours.md) | +[Extensions](php-modules.md) | +[Tools](available-tools.md) | +[Env Vars](docker-env-variables.md) | +[Volumes](docker-volumes.md) | +[Base Images](base-images.md) + +--- + +

Documentation

+ + + +### Docker Tags + +[![](https://img.shields.io/docker/pulls/devilbox/php-fpm.svg)](https://hub.docker.com/r/devilbox/php-fpm) + +#### Tagging Idea + +This repository uses Docker tags to refer to different flavours and types of the PHP-FPM Docker image. Therefore `:latest` and `:` as well as `:` must be presented differently. Refer to the following table to see how tagged Docker images are produced at Docker hub: + + + + + + + + + + + + + + + + + + + + + + + + + + +
Meant TagActual TagComment
:latest + :X.Y-base
+ :X.Y-mods
+ :X.Y-prod
+ :X.Y-work
+
Stable
(rolling)

These tags are produced by the master branch of this repository.
:<git-tag-name> + :X.Y-base-<git-tag-name>
+ :X.Y-mods-<git-tag-name>
+ :X.Y-prod-<git-tag-name>
+ :X.Y-work-<git-tag-name>
+
Stable
(fixed)

Every git tag will produce and preserve these Docker tags.
:<git-branch-name> + :X.Y-base-<git-branch-name>
+ :X.Y-mods-<git-branch-name>
+ :X.Y-prod-<git-branch-name>
+ :X.Y-work-<git-branch-name>
+
Feature
(for testing)

Tags produced by unmerged branches. Do not rely on them as they might come and go.
+ + +#### Available Docker Tags + +The following table shows a more complete overview about the offered Docker image tags. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FlavourMaster BranchGit Tag
basedevilbox/php-fpm:5.2-basedevilbox/php-fpm:5.2-base-<git-tag>
devilbox/php-fpm:5.3-basedevilbox/php-fpm:5.3-base-<git-tag>
devilbox/php-fpm:5.4-basedevilbox/php-fpm:5.4-base-<git-tag>
devilbox/php-fpm:5.5-basedevilbox/php-fpm:5.5-base-<git-tag>
devilbox/php-fpm:5.6-basedevilbox/php-fpm:5.6-base-<git-tag>
devilbox/php-fpm:7.0-basedevilbox/php-fpm:7.0-base-<git-tag>
devilbox/php-fpm:7.1-basedevilbox/php-fpm:7.1-base-<git-tag>
devilbox/php-fpm:7.2-basedevilbox/php-fpm:7.2-base-<git-tag>
devilbox/php-fpm:7.3-basedevilbox/php-fpm:7.3-base-<git-tag>
devilbox/php-fpm:7.4-basedevilbox/php-fpm:7.4-base-<git-tag>
devilbox/php-fpm:8.0-basedevilbox/php-fpm:8.0-base-<git-tag>
devilbox/php-fpm:8.1-basedevilbox/php-fpm:8.1-base-<git-tag>
devilbox/php-fpm:8.2-basedevilbox/php-fpm:8.2-base-<git-tag>
modsdevilbox/php-fpm:5.2-modsdevilbox/php-fpm:5.2-mods-<git-tag>
devilbox/php-fpm:5.3-modsdevilbox/php-fpm:5.3-mods-<git-tag>
devilbox/php-fpm:5.4-modsdevilbox/php-fpm:5.4-mods-<git-tag>
devilbox/php-fpm:5.5-modsdevilbox/php-fpm:5.5-mods-<git-tag>
devilbox/php-fpm:5.6-modsdevilbox/php-fpm:5.6-mods-<git-tag>
devilbox/php-fpm:7.0-modsdevilbox/php-fpm:7.0-mods-<git-tag>
devilbox/php-fpm:7.1-modsdevilbox/php-fpm:7.1-mods-<git-tag>
devilbox/php-fpm:7.2-modsdevilbox/php-fpm:7.2-mods-<git-tag>
devilbox/php-fpm:7.3-modsdevilbox/php-fpm:7.3-mods-<git-tag>
devilbox/php-fpm:7.4-modsdevilbox/php-fpm:7.4-mods-<git-tag>
devilbox/php-fpm:8.0-modsdevilbox/php-fpm:8.0-mods-<git-tag>
devilbox/php-fpm:8.1-modsdevilbox/php-fpm:8.1-mods-<git-tag>
devilbox/php-fpm:8.2-modsdevilbox/php-fpm:8.2-mods-<git-tag>
proddevilbox/php-fpm:5.2-proddevilbox/php-fpm:5.2-prod-<git-tag>
devilbox/php-fpm:5.3-proddevilbox/php-fpm:5.3-prod-<git-tag>
devilbox/php-fpm:5.4-proddevilbox/php-fpm:5.4-prod-<git-tag>
devilbox/php-fpm:5.5-proddevilbox/php-fpm:5.5-prod-<git-tag>
devilbox/php-fpm:5.6-proddevilbox/php-fpm:5.6-prod-<git-tag>
devilbox/php-fpm:7.0-proddevilbox/php-fpm:7.0-prod-<git-tag>
devilbox/php-fpm:7.1-proddevilbox/php-fpm:7.1-prod-<git-tag>
devilbox/php-fpm:7.2-proddevilbox/php-fpm:7.2-prod-<git-tag>
devilbox/php-fpm:7.3-proddevilbox/php-fpm:7.3-prod-<git-tag>
devilbox/php-fpm:7.4-proddevilbox/php-fpm:7.4-prod-<git-tag>
devilbox/php-fpm:8.0-proddevilbox/php-fpm:8.0-prod-<git-tag>
devilbox/php-fpm:8.1-proddevilbox/php-fpm:8.1-prod-<git-tag>
devilbox/php-fpm:8.2-proddevilbox/php-fpm:8.2-prod-<git-tag>
workdevilbox/php-fpm:5.2-workdevilbox/php-fpm:5.2-work-<git-tag>
devilbox/php-fpm:5.3-workdevilbox/php-fpm:5.3-work-<git-tag>
devilbox/php-fpm:5.4-workdevilbox/php-fpm:5.4-work-<git-tag>
devilbox/php-fpm:5.5-workdevilbox/php-fpm:5.5-work-<git-tag>
devilbox/php-fpm:5.6-workdevilbox/php-fpm:5.6-work-<git-tag>
devilbox/php-fpm:7.0-workdevilbox/php-fpm:7.0-work-<git-tag>
devilbox/php-fpm:7.1-workdevilbox/php-fpm:7.1-work-<git-tag>
devilbox/php-fpm:7.2-workdevilbox/php-fpm:7.2-work-<git-tag>
devilbox/php-fpm:7.3-workdevilbox/php-fpm:7.3-work-<git-tag>
devilbox/php-fpm:7.4-workdevilbox/php-fpm:7.4-work-<git-tag>
devilbox/php-fpm:8.0-workdevilbox/php-fpm:8.0-work-<git-tag>
devilbox/php-fpm:8.1-workdevilbox/php-fpm:8.1-work-<git-tag>
devilbox/php-fpm:8.2-workdevilbox/php-fpm:8.2-work-<git-tag>
diff --git a/doc/docker-volumes.md b/doc/docker-volumes.md new file mode 100644 index 0000000..6d9b3fb --- /dev/null +++ b/doc/docker-volumes.md @@ -0,0 +1,81 @@ +[Permissions](syncronize-file-permissions.md) | +[Tags](docker-tags.md) | +[Architectures](supported-architectures.md) | +[Versions](php-versions.md) | +[Flavours](flavours.md) | +[Extensions](php-modules.md) | +[Tools](available-tools.md) | +[Env Vars](docker-env-variables.md) | +Volumes | +[Base Images](base-images.md) + +--- + +

Documentation

+ + + +### Docker Volumes + +Have a look at the following table to see all offered volumes for each Docker image flavour. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ImageVolumesDescription
prod

work
/etc/php-custom.dMount this directory into your host computer and add custom \*.ini files in order to alter php behaviour.
/etc/php-fpm-custom.dMount this directory into your host computer and add custom PHP-FPM \*.conf files in order to alter PHP-FPM behaviour.
/etc/php-modules.dMount this directory into your host computer and add custo \*.so files in order to add your php modules.

Note:Your should then also provide a custom \*.ini file in order to actually load your custom provided module.
/startup.1.dAny executable scripts ending by \*.sh found in this directory will be executed during startup. This is useful to supply additional commands (such as installing custom software) when the container starts up. (will run before /startup.2.d)
/startup.2.dAny executable scripts ending by \*.sh found in this directory will be executed during startup. This is useful to supply additional commands (such as installing custom software) when the container starts up. (will run after /startup.1.d)
/var/log/phpWhen setting environment variable DOCKER_LOGS to 0, log files will be available under this directory.
/var/mailEmails caught be the postfix catch-all (ENABLE_MAIL=2) will be available in this directory.
/etc/supervisor/custom.dMount this directory into your host computer and add your own `*.conf` supervisor start-up files.

**Note:** Directory and file permission will be recursively set to this of `NEW_UID` and `NEW_GID`.
work/etc/bashrc-devilbox.dMount this directory into your host computer and add custom configuration files for bash and other tools.
/shared/backupsMount this directory into your host computer to access MySQL backups created by mysqldump-secure.
/caMount this directory into your host computer to bake any *.crt file that is located in there as a trusted SSL entity.
diff --git a/doc/flavours.md b/doc/flavours.md new file mode 100644 index 0000000..d7c3364 --- /dev/null +++ b/doc/flavours.md @@ -0,0 +1,34 @@ +[Permissions](syncronize-file-permissions.md) | +[Tags](docker-tags.md) | +[Architectures](supported-architectures.md) | +[Versions](php-versions.md) | +Flavours | +[Extensions](php-modules.md) | +[Tools](available-tools.md) | +[Env Vars](docker-env-variables.md) | +[Volumes](docker-volumes.md) | +[Base Images](base-images.md) + +--- + +

Documentation

+ + + +### Flavours + +#### Image: base + +Generic PHP-FPM base image. Use it to derive your own php-fpm docker image from it and add more extensions, tools and injectables.
(Does not offer any environment variables except for `NEW_UID` and `NEW_GID`) + +#### Image: mods + +Generic PHP-FPM image with fully loaded extensions. Use it to derive your own php-fpm docker image from it and add more extensions, tools and injectables.
(Does not offer any environment variables except for `NEW_UID` and `NEW_GID`) + +#### Image: prod + +Devilbox production image. This Docker image comes with many injectables, port-forwardings, mail-catch-all and user/group rewriting. + +#### Image: work + +Devilbox development image. Same as prod, but comes with lots of locally installed tools to make development inside the container as convenient as possible. See [Integrated Development Environment](../README.md#integrated-development-environment) for more information about this. diff --git a/doc/php-modules.md b/doc/php-modules.md new file mode 100644 index 0000000..5145d07 --- /dev/null +++ b/doc/php-modules.md @@ -0,0 +1,2359 @@ +[Permissions](syncronize-file-permissions.md) | +[Tags](docker-tags.md) | +[Architectures](supported-architectures.md) | +[Versions](php-versions.md) | +[Flavours](flavours.md) | +Extensions | +[Tools](available-tools.md) | +[Env Vars](docker-env-variables.md) | +[Volumes](docker-volumes.md) | +[Base Images](base-images.md) + +--- + +

Documentation

+ + +:information_source: For details on how to generate modules see **[Abuser Documentation: Build your own image](../doc/abuser/README.md)**
+:information_source: For details on how to add/edit modules see **[Contributor Documentation: PHP Modules](../php_modules/README.md)** + + +#### PHP Modules (`base`) + +The following PHP modules are available on the `base` flavour: + +> :information_source: Click on any extension name to find out what they are + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ExtPHP 5.2PHP 5.3PHP 5.4PHP 5.5PHP 5.6PHP 7.0PHP 7.1PHP 7.2PHP 7.3PHP 7.4PHP 8.0PHP 8.1PHP 8.2
ctype🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
curl🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
date🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
dom🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
ereg🗸🗸🗸🗸
FFI🗸🗸🗸
fileinfo🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
filter🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
ftp🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
hash🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
iconv🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
json🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
libxml🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
mbstring🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
mhash🗸🗸🗸🗸🗸
mysqlnd🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
openssl🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
pcre🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
PDO🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
pdo_sqlite🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
Phar🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
posix🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
random🗸
readline🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
recode🗸🗸🗸🗸
Reflection🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
session🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
SimpleXML🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
sodium🗸🗸🗸🗸🗸🗸
SPL🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
sqlite🗸🗸
sqlite3🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
tokenizer🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
xml🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
xmlreader🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
xmlwriter🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
zlib🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
+ + + +#### PHP Modules (`mods`, `prod` and `work`) + +The following PHP modules are available on the `mods`, `prod` and `work` flavour: + +> :information_source: Click on any extension name to find out what they are + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ExtPHP 5.2PHP 5.3PHP 5.4PHP 5.5PHP 5.6PHP 7.0PHP 7.1PHP 7.2PHP 7.3PHP 7.4PHP 8.0PHP 8.1PHP 8.2
amqp🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
apc🗸🗸🗸🗸
apcu🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
bcmath🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
blackfire🗸🗸🗸🗸🗸🗸🗸
bz2🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
calendar🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
ctype🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
curl🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
date🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
dba🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
dom🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
enchant🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
ereg🗸🗸🗸🗸
exif🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
FFI🗸🗸🗸🗸
fileinfo🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
filter🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
ftp🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
gd🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
gettext🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
gmp🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
hash🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
iconv🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
igbinary🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
imagick🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
imap🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
interbase🗸🗸🗸🗸🗸🗸🗸🗸🗸
intl🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
ioncube🗸🗸🗸🗸🗸🗸🗸
json🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
ldap🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
libxml🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
lz4🗸🗸🗸🗸🗸🗸🗸🗸
lzf🗸🗸🗸🗸🗸🗸🗸🗸
mbstring🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
mcrypt🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
memcache🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
memcached🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
mhash🗸🗸🗸🗸🗸
mongo🗸🗸🗸🗸🗸
mongodb🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
msgpack🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
mysql🗸🗸🗸🗸🗸
mysqli🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
mysqlnd🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
OAuth🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
oci8🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
OPcache🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
openssl🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
pcntl🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
pcre🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
PDO🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
pdo_dblib🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
PDO_Firebird🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
pdo_mysql🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
PDO_OCI🗸🗸🗸🗸🗸🗸🗸🗸
pdo_pgsql🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
pdo_sqlite🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
pdo_sqlsrv🗸🗸🗸🗸🗸🗸🗸🗸
pgsql🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
phalcon🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
Phar🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
posix🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
pspell🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
psr🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
random🗸
rdkafka🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
readline🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
recode🗸🗸🗸🗸🗸🗸🗸🗸🗸
redis🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
Reflection🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
session🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
shmop🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
SimpleXML🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
snmp🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
soap🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
sockets🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
sodium🗸🗸🗸🗸🗸🗸
solr🗸🗸🗸🗸🗸🗸
SPL🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
sqlite🗸🗸
sqlite3🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
sqlsrv🗸🗸🗸🗸🗸🗸🗸🗸
ssh2🗸🗸🗸🗸🗸
swoole🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
sysvmsg🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
sysvsem🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
sysvshm🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
tidy🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
tokenizer🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
uploadprogress🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
uuid🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
wddx🗸🗸🗸🗸🗸🗸🗸🗸🗸
vips🗸🗸🗸🗸🗸🗸🗸
Xdebug🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
xlswriter🗸🗸🗸🗸🗸🗸🗸🗸
xml🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
xmlreader🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
xmlrpc🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
xmlwriter🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
xsl🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
yaml🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
zip🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
zlib🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸🗸
zstd🗸🗸🗸🗸🗸🗸🗸🗸
diff --git a/doc/php-versions.md b/doc/php-versions.md new file mode 100644 index 0000000..f47c9b9 --- /dev/null +++ b/doc/php-versions.md @@ -0,0 +1,34 @@ +[Permissions](syncronize-file-permissions.md) | +[Tags](docker-tags.md) | +[Architectures](supported-architectures.md) | +Versions | +[Flavours](flavours.md) | +[Extensions](php-modules.md) | +[Tools](available-tools.md) | +[Env Vars](docker-env-variables.md) | +[Volumes](docker-volumes.md) | +[Base Images](base-images.md) + +--- + +

Documentation

+ + + +### Available PHP versions + +| Version | Architecture | Flavours | +|--------------------------|-------------------------|----------| +| :elephant: **`PHP 5.2`** | :computer: amd64 | :file_folder: [base](../Dockerfiles/base/Dockerfile-5.2), :file_folder: [mods](../Dockerfiles/mods/Dockerfile-5.2), :file_folder: [prod](../Dockerfiles/prod/Dockerfile-5.2), :file_folder: [work](../Dockerfiles/work/Dockerfile-5.2) | +| :elephant: **`PHP 5.3`** | :computer: amd64, arm64 | :file_folder: [base](../Dockerfiles/base/Dockerfile-5.3), :file_folder: [mods](../Dockerfiles/mods/Dockerfile-5.3), :file_folder: [prod](../Dockerfiles/prod/Dockerfile-5.3), :file_folder: [work](../Dockerfiles/work/Dockerfile-5.3) | +| :elephant: **`PHP 5.4`** | :computer: amd64, arm64 | :file_folder: [base](../Dockerfiles/base/Dockerfile-5.4), :file_folder: [mods](../Dockerfiles/mods/Dockerfile-5.4), :file_folder: [prod](../Dockerfiles/prod/Dockerfile-5.4), :file_folder: [work](../Dockerfiles/work/Dockerfile-5.4) | +| :elephant: **`PHP 5.5`** | :computer: amd64, arm64 | :file_folder: [base](../Dockerfiles/base/Dockerfile-5.5), :file_folder: [mods](../Dockerfiles/mods/Dockerfile-5.5), :file_folder: [prod](../Dockerfiles/prod/Dockerfile-5.5), :file_folder: [work](../Dockerfiles/work/Dockerfile-5.5) | +| :elephant: **`PHP 5.6`** | :computer: amd64, arm64 | :file_folder: [base](../Dockerfiles/base/Dockerfile-5.6), :file_folder: [mods](../Dockerfiles/mods/Dockerfile-5.6), :file_folder: [prod](../Dockerfiles/prod/Dockerfile-5.6), :file_folder: [work](../Dockerfiles/work/Dockerfile-5.6) | +| :elephant: **`PHP 7.0`** | :computer: amd64, arm64 | :file_folder: [base](../Dockerfiles/base/Dockerfile-7.0), :file_folder: [mods](../Dockerfiles/mods/Dockerfile-7.0), :file_folder: [prod](../Dockerfiles/prod/Dockerfile-7.0), :file_folder: [work](../Dockerfiles/work/Dockerfile-7.0) | +| :elephant: **`PHP 7.1`** | :computer: amd64, arm64 | :file_folder: [base](../Dockerfiles/base/Dockerfile-7.1), :file_folder: [mods](../Dockerfiles/mods/Dockerfile-7.1), :file_folder: [prod](../Dockerfiles/prod/Dockerfile-7.1), :file_folder: [work](../Dockerfiles/work/Dockerfile-7.1) | +| :elephant: **`PHP 7.2`** | :computer: amd64, arm64 | :file_folder: [base](../Dockerfiles/base/Dockerfile-7.2), :file_folder: [mods](../Dockerfiles/mods/Dockerfile-7.2), :file_folder: [prod](../Dockerfiles/prod/Dockerfile-7.2), :file_folder: [work](../Dockerfiles/work/Dockerfile-7.2) | +| :elephant: **`PHP 7.3`** | :computer: amd64, arm64 | :file_folder: [base](../Dockerfiles/base/Dockerfile-7.3), :file_folder: [mods](../Dockerfiles/mods/Dockerfile-7.3), :file_folder: [prod](../Dockerfiles/prod/Dockerfile-7.3), :file_folder: [work](../Dockerfiles/work/Dockerfile-7.3) | +| :elephant: **`PHP 7.4`** | :computer: amd64, arm64 | :file_folder: [base](../Dockerfiles/base/Dockerfile-7.4), :file_folder: [mods](../Dockerfiles/mods/Dockerfile-7.4), :file_folder: [prod](../Dockerfiles/prod/Dockerfile-7.4), :file_folder: [work](../Dockerfiles/work/Dockerfile-7.4) | +| :elephant: **`PHP 8.0`** | :computer: amd64, arm64 | :file_folder: [base](../Dockerfiles/base/Dockerfile-8.0), :file_folder: [mods](../Dockerfiles/mods/Dockerfile-8.0), :file_folder: [prod](../Dockerfiles/prod/Dockerfile-8.0), :file_folder: [work](../Dockerfiles/work/Dockerfile-8.0) | +| :elephant: **`PHP 8.1`** | :computer: amd64, arm64 | :file_folder: [base](../Dockerfiles/base/Dockerfile-8.1), :file_folder: [mods](../Dockerfiles/mods/Dockerfile-8.1), :file_folder: [prod](../Dockerfiles/prod/Dockerfile-8.1), :file_folder: [work](../Dockerfiles/work/Dockerfile-8.1) | +| :elephant: **`PHP 8.2`** | :computer: amd64, arm64 | :file_folder: [base](../Dockerfiles/base/Dockerfile-8.2), :file_folder: [mods](../Dockerfiles/mods/Dockerfile-8.2), :file_folder: [prod](../Dockerfiles/prod/Dockerfile-8.2), :file_folder: [work](../Dockerfiles/work/Dockerfile-8.2) | diff --git a/doc/supported-architectures.md b/doc/supported-architectures.md new file mode 100644 index 0000000..a51198a --- /dev/null +++ b/doc/supported-architectures.md @@ -0,0 +1,25 @@ +[Permissions](syncronize-file-permissions.md) | +[Tags](docker-tags.md) | +Architectures | +[Versions](php-versions.md) | +[Flavours](flavours.md) | +[Extensions](php-modules.md) | +[Tools](available-tools.md) | +[Env Vars](docker-env-variables.md) | +[Volumes](docker-volumes.md) | +[Base Images](base-images.md) + +--- + +

Documentation

+ + + +### Supported Architectures + +The following architectures are supported for **Linux**, **MacOS** and **Windows** + +| Arch | PHP Version | +|---------|-------------| +| `amd64` | `5.2`, `5.3`, `5.4`, `5.5`, `5.6`, `7.0`, `7.1`, `7.2`, `7.3`, `7.4`, `8.0`, `8.1`, `8.2` | +| `arm64` | `5.3`, `5.4`, `5.5`, `5.6`, `7.0`, `7.1`, `7.2`, `7.3`, `7.4`, `8.0`, `8.1`, `8.2` | diff --git a/doc/syncronize-file-permissions.md b/doc/syncronize-file-permissions.md new file mode 100644 index 0000000..99c3f7a --- /dev/null +++ b/doc/syncronize-file-permissions.md @@ -0,0 +1,89 @@ +Permissions | +[Tags](docker-tags.md) | +[Architectures](supported-architectures.md) | +[Versions](php-versions.md) | +[Flavours](flavours.md) | +[Extensions](php-modules.md) | +[Tools](available-tools.md) | +[Env Vars](docker-env-variables.md) | +[Volumes](docker-volumes.md) | +[Base Images](base-images.md) + +--- + +

Documentation

+ + + +### Motivation + +One main problem with a running Docker container is to **synchronize the ownership of files in a mounted volume** in order to preserve security (Not having to use `chmod 0777`). + + +### Unsynchronized permissions + +Consider the following directory structure of a mounted volume. Your hosts computer uid/gid are `1000` which does not have a corresponding user/group within the container. Fortunately the `tmp/` directory allows everybody to create new files in it. + +```shell + [Host] | [Container] +------------------------------------------------------------------------------------------ + $ ls -l | $ ls -l + -rw-r--r-- user group index.php | -rw-r--r-- 1000 1000 index.php + drwxrwxrwx user group tmp/ | drwxrwxrwx 1000 1000 tmp/ +``` + +Your web application might now have created some temporary files (via the PHP-FPM process) inside the `tmp/` directory: + +```shell + [Host] | [Container] +------------------------------------------------------------------------------------------ + $ ls -l tmp/ | $ ls -l tmp/ + -rw-r--r-- 96 96 _tmp_cache01.php | -rw-r--r-- www www _tmp_cache01.php + -rw-r--r-- 96 96 _tmp_cache02.php | -rw-r--r-- www www _tmp_cache01.php +``` + +On the Docker container side everything is still fine, but on your host computers side, those files now show a user id and group id of `96`, which is in fact the uid/gid of the PHP-FPM process running inside the container. On the host side you will now have to use `sudo` in order to delete/edit those files. + + +### It gets even worse + +Consider your had created the `tmp/` directory on your host only with `0775` permissions: + +```shell + [Host] | [Container] +------------------------------------------------------------------------------------------ + $ ls -l | $ ls -l + -rw-r--r-- user group index.php | -rw-r--r-- 1000 1000 index.php + drwxrwxr-x user group tmp/ | drwxrwxr-x 1000 1000 tmp/ +``` + +If your web application now wants to create some temporary files (via the PHP-FPM process) inside the `tmp/` directory, it will fail due to lacking permissions. + + +### The solution + +To overcome this problem, it must be made sure that the PHP-FPM process inside the container runs under the same uid/gid as your local user that mouns the volumes and also wants to work on those files locally. However, you never know during Image build time what user id this would be. Therefore it must be something that can be changed during startup of the container. + +This is achieved by two environment variables that can be provided during startup in order to change the uid/gid of the PHP-FPM user prior starting up PHP-FPM. + +```shell +$ docker run -e NEW_UID=1000 -e NEW_GID=1000 -it devilbox/php-fpm:7.2-base +[INFO] Changing user 'devilbox' uid to: 1000 +root $ usermod -u 1000 devilbox +[INFO] Changing group 'devilbox' gid to: 1000 +root $ groupmod -g 1000 devilbox +[INFO] Starting PHP 7.2.0 (fpm-fcgi) (built: Oct 30 2017 12:05:19) +``` + +When **`NEW_UID`** and **`NEW_GID`** are provided to the startup command, the container will do a `usermod` and `groupmod` prior starting up in order to assign new uid/gid to the PHP-FPM user. When the PHP-FPM process finally starts up it actually runs with your local system user and making sure permissions will be in sync from now on. + +At a minimum those two environment variables are offered by all flavours and types of the here provided PHP-FPM images. + +**Note:** + +To tackle this on the PHP-FPM side is only half a solution to the problem. The same applies to a web server Docker container when you offer **file uploads**. They will be uploaded and created by the web servers uid/gid. Therefore the web server itself must also provide the same kind of solution. See the following Web server Docker images for how this is done: + +**[Apache 2.2](https://github.com/devilbox/docker-apache-2.2)** | +**[Apache 2.4](https://github.com/devilbox/docker-apache-2.4)** | +**[Nginx stable](https://github.com/devilbox/docker-nginx-stable)** | +**[Nginx mainline](https://github.com/devilbox/docker-nginx-mainline)** diff --git a/php_modules/README.md b/php_modules/README.md new file mode 100644 index 0000000..b2ad686 --- /dev/null +++ b/php_modules/README.md @@ -0,0 +1,59 @@ +PHP Mods: Overview | +[PHP Mods: `options.yml`](../doc/contributor/PHP-EXT-options.yml.md) | +[PHP Mods: `build.yml`](../doc/contributor/PHP-EXT-build.yml.md) | +[PHP Mods: `test.yml`](../doc/contributor/PHP-EXT-test.yml.md) + +--- + +

Contributor Documentation: PHP Modules

+ + + +# PHP Module definitions + +This document describes how to create new or alter existing PHP module definitions. + +All PHP modules/extensions (for all PHP versions and both for `amd64` and `arm64` platforms) are defined in the `php_modules/` directory in their corresponding sub directory. These definitions are then transformed to Ansible group_vars and afterwards Ansible will generate the corresponding Dockerfiles (Stage: `mods`). + + +## How to add PHP modules? + +> **Note:** The below listed steps require you to have the following on your local machine installed: `python3`, `PyYAML` Python module, `docker` and `make`. + +1. **Inside `php_modules/` directory:** + 1. Create a new directory with the name of the PHP module in `php_modules/` + 2. Add `build.yml`, `options.yml` and `test.yml` into your newly created directory + 3. Alter `build.yml`, `options.yml` and `test.yml` according to documentation below + +2. **Inside the root of this git repository:** + 1. Run `make gen-modules` to create Ansible group_vars + 2. Run `make gen-dockerfiles` to generate Dockerfiles via Ansible + 3. Run `make build STAGE=mods VERSION=8.1 ARCH=linux/amd64` to build the `mods` Docker image with version `8.1` for platform `linux/amd64` + +**Note:** If you want to test if your new module builds correctly, you can generate Dockerfiles which only contain this one module and all others removed. This allows for much faster Docker builds and you don't have to wait for all other modules to be built. To do so, generate only group_vars for your one module via: + +```bash +# Commands shown here are executed from root of this repository + +# Only generate group_vars for curl +# Note: if curl has other modules as requirements to be built beforehand, those will also be added +make gen-modules ARGS="curl" +make gen-dockerfiles +``` + +:information_source: For details on how to generate modules see **[Abuser Documentation: Build your own image](../doc/abuser/README.md)** + + +## Extension definition: `build.yml` + +See **[PHP-EXT-build.yml.md](../doc/contributor/PHP-EXT-build.yml.md)** how to alter the `build.yml` file. + + +## Extension definition: `options.yml` + +See **[PHP-EXT-options.yml.md](../doc/contributor/PHP-EXT-options.yml.md)** how to alter the `options.yml` file. + + +## Extension definition: `test.yml` + +See **[PHP-EXT-test.yml.md](../doc/contributor/PHP-EXT-test.yml.md)** how to alter the `test.yml` file. diff --git a/php_modules/amqp/README.md b/php_modules/amqp/README.md new file mode 100644 index 0000000..c9a2f25 --- /dev/null +++ b/php_modules/amqp/README.md @@ -0,0 +1,8 @@ +# amqp + +Object-oriented PHP bindings for the AMQP C library (https://github.com/alanxz/rabbitmq-c) + +| Platform | Url | +|----------|------------------------------------------------------------------| +| GitHub | https://github.com/php-amqp/php-amqp | +| Pecl | https://pecl.php.net/package/amqp | diff --git a/php_modules/amqp/build.yml b/php_modules/amqp/build.yml new file mode 100644 index 0000000..ab7474f --- /dev/null +++ b/php_modules/amqp/build.yml @@ -0,0 +1,32 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: pecl + command: echo "/usr" | pecl install amqp + build_dep: [librabbitmq-dev] + run_dep: [librabbitmq4] + +5.5: + type: pecl + version: 1.9.3 + run_dep: [librabbitmq1] + +5.4: + type: pecl + version: 1.9.3 + run_dep: [librabbitmq1] + +5.3: + type: pecl + version: 1.9.3 + run_dep: [librabbitmq1] + +5.2: + type: pecl + version: 1.6.1 + run_dep: [librabbitmq1] diff --git a/php_modules/amqp/options.yml b/php_modules/amqp/options.yml new file mode 100644 index 0000000..372d587 --- /dev/null +++ b/php_modules/amqp/options.yml @@ -0,0 +1,21 @@ +--- + +# The name of the module +name: amqp + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/amqp/test.yml b/php_modules/amqp/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/amqp/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/apc/README.md b/php_modules/apc/README.md new file mode 100644 index 0000000..8cd49f8 --- /dev/null +++ b/php_modules/apc/README.md @@ -0,0 +1,7 @@ +# apc + +Alternative PHP Cache. Deprecated and superseeded by [apcu](../apcu). + +| Platform | Url | +|----------|------------------------------------------------------------------| +| Pecl | https://pecl.php.net/package/apc | diff --git a/php_modules/apc/build.yml b/php_modules/apc/build.yml new file mode 100644 index 0000000..a04b687 --- /dev/null +++ b/php_modules/apc/build.yml @@ -0,0 +1,8 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +already_avail: "{{ php_all_versions }}" diff --git a/php_modules/apc/options.yml b/php_modules/apc/options.yml new file mode 100644 index 0000000..2a73bd6 --- /dev/null +++ b/php_modules/apc/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: apc + +# Exclude module build/installation for the following PHP versions +exclude: [5.2, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/apc/test.yml b/php_modules/apc/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/apc/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/apcu/README.md b/php_modules/apcu/README.md new file mode 100644 index 0000000..2a6fc04 --- /dev/null +++ b/php_modules/apcu/README.md @@ -0,0 +1,9 @@ +# apcu + +APCu is an in-memory key-value store for PHP. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.apcu | +| GitHub | https://github.com/krakjoe/apcu | +| Pecl | https://pecl.php.net/package/apcu | diff --git a/php_modules/apcu/build.yml b/php_modules/apcu/build.yml new file mode 100644 index 0000000..44411b6 --- /dev/null +++ b/php_modules/apcu/build.yml @@ -0,0 +1,25 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: pecl + +5.6: + type: pecl + version: 4.0.11 + +5.5: + type: pecl + version: 4.0.11 + +5.4: + type: pecl + version: 4.0.11 + +5.3: + type: pecl + version: 4.0.11 diff --git a/php_modules/apcu/options.yml b/php_modules/apcu/options.yml new file mode 100644 index 0000000..d7daa91 --- /dev/null +++ b/php_modules/apcu/options.yml @@ -0,0 +1,21 @@ +--- + +# The name of the module +name: apcu + +# Exclude module build/installation for the following PHP versions +exclude: [5.2] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/apcu/test.yml b/php_modules/apcu/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/apcu/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/bcmath/README.md b/php_modules/bcmath/README.md new file mode 100644 index 0000000..70487a0 --- /dev/null +++ b/php_modules/bcmath/README.md @@ -0,0 +1,7 @@ +# bcmath + +For arbitrary precision mathematics PHP offers BCMath which supports numbers of any size and precision up to 2147483647 (or 0x7FFFFFFF) decimal digits, if there is sufficient memory, represented as strings. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.bc.php | diff --git a/php_modules/bcmath/build.yml b/php_modules/bcmath/build.yml new file mode 100644 index 0000000..6c0d2de --- /dev/null +++ b/php_modules/bcmath/build.yml @@ -0,0 +1,9 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: builtin diff --git a/php_modules/bcmath/options.yml b/php_modules/bcmath/options.yml new file mode 100644 index 0000000..9336fc7 --- /dev/null +++ b/php_modules/bcmath/options.yml @@ -0,0 +1,21 @@ +--- + +# The name of the module +name: bcmath + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/bcmath/test.yml b/php_modules/bcmath/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/bcmath/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/blackfire/README.md b/php_modules/blackfire/README.md new file mode 100644 index 0000000..3acfc65 --- /dev/null +++ b/php_modules/blackfire/README.md @@ -0,0 +1,7 @@ +# blackfire + +Blackfire helps to improve web applications’ performance at each step of its lifecycle: from development to test, staging and production. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| Vendor | https://blackfire.io/docs/up-and-running/installation | diff --git a/php_modules/blackfire/build.yml b/php_modules/blackfire/build.yml new file mode 100644 index 0000000..4308c9d --- /dev/null +++ b/php_modules/blackfire/build.yml @@ -0,0 +1,16 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: custom + command: | + version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \ + && curl -A "Docker" -o /tmp/blackfire-probe.tar.gz -D - -L -s https://blackfire.io/api/v1/releases/probe/php/linux/amd64/$version \ + && mkdir -p /tmp/blackfire \ + && tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp/blackfire \ + && mv /tmp/blackfire/blackfire-*.so $(php -r "echo ini_get('extension_dir');")/blackfire.so \ + && rm -rf /tmp/blackfire /tmp/blackfire-probe.tar.gz \ diff --git a/php_modules/blackfire/options.yml b/php_modules/blackfire/options.yml new file mode 100644 index 0000000..864bb92 --- /dev/null +++ b/php_modules/blackfire/options.yml @@ -0,0 +1,30 @@ +--- + +# The name of the module +name: blackfire + +# Exclude module build/installation for the following PHP versions +exclude: [5.2, 5.3, 5.4, 5.5, 8.1, 8.2] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +# https://blackfire.io/docs/up-and-running/installation?action=install&mode=full&version=latest&mode=full&location=local&os=debian&language=php +conflicts_load: + - pcov + - pinba + - suhosin + - xdebug + - xhprof + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/blackfire/test.yml b/php_modules/blackfire/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/blackfire/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/bz2/README.md b/php_modules/bz2/README.md new file mode 100644 index 0000000..b230b7c --- /dev/null +++ b/php_modules/bz2/README.md @@ -0,0 +1,7 @@ +# bz2 + +The bzip2 functions are used to transparently read and write bzip2 (.bz2) compressed files. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.bzip2.php | diff --git a/php_modules/bz2/build.yml b/php_modules/bz2/build.yml new file mode 100644 index 0000000..a71f47f --- /dev/null +++ b/php_modules/bz2/build.yml @@ -0,0 +1,10 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: builtin + build_dep: [libbz2-dev] diff --git a/php_modules/bz2/options.yml b/php_modules/bz2/options.yml new file mode 100644 index 0000000..98f557c --- /dev/null +++ b/php_modules/bz2/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: bz2 + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/bz2/test.yml b/php_modules/bz2/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/bz2/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/calendar/README.md b/php_modules/calendar/README.md new file mode 100644 index 0000000..30098c0 --- /dev/null +++ b/php_modules/calendar/README.md @@ -0,0 +1,7 @@ +# calendar + +The calendar extension presents a series of functions to simplify converting between different calendar formats. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.calendar.php | diff --git a/php_modules/calendar/build.yml b/php_modules/calendar/build.yml new file mode 100644 index 0000000..6c0d2de --- /dev/null +++ b/php_modules/calendar/build.yml @@ -0,0 +1,9 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: builtin diff --git a/php_modules/calendar/options.yml b/php_modules/calendar/options.yml new file mode 100644 index 0000000..29e4704 --- /dev/null +++ b/php_modules/calendar/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: calendar + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/calendar/test.yml b/php_modules/calendar/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/calendar/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/ctype/README.md b/php_modules/ctype/README.md new file mode 100644 index 0000000..e5e3aa5 --- /dev/null +++ b/php_modules/ctype/README.md @@ -0,0 +1,7 @@ +# ctype + +The functions provided by this extension check whether a character or string falls into a certain character class according to the current locale. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.ctype.php | diff --git a/php_modules/ctype/build.yml b/php_modules/ctype/build.yml new file mode 100644 index 0000000..a04b687 --- /dev/null +++ b/php_modules/ctype/build.yml @@ -0,0 +1,8 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +already_avail: "{{ php_all_versions }}" diff --git a/php_modules/ctype/options.yml b/php_modules/ctype/options.yml new file mode 100644 index 0000000..22facd8 --- /dev/null +++ b/php_modules/ctype/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: ctype + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/ctype/test.yml b/php_modules/ctype/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/ctype/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/curl/README.md b/php_modules/curl/README.md new file mode 100644 index 0000000..191c796 --- /dev/null +++ b/php_modules/curl/README.md @@ -0,0 +1,7 @@ +# curl + +PHP supports libcurl, a library created by Daniel Stenberg, that allows you to connect and communicate to many different types of servers with many different types of protocols. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.curl.php | diff --git a/php_modules/curl/build.yml b/php_modules/curl/build.yml new file mode 100644 index 0000000..a04b687 --- /dev/null +++ b/php_modules/curl/build.yml @@ -0,0 +1,8 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +already_avail: "{{ php_all_versions }}" diff --git a/php_modules/curl/options.yml b/php_modules/curl/options.yml new file mode 100644 index 0000000..bafa896 --- /dev/null +++ b/php_modules/curl/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: curl + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/curl/test.yml b/php_modules/curl/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/curl/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/date/README.md b/php_modules/date/README.md new file mode 100644 index 0000000..8a51487 --- /dev/null +++ b/php_modules/date/README.md @@ -0,0 +1,7 @@ +# date + +The DateTimeImmutable and related classes allow you represent date/time information. The objects can be created by passing in a string presentation of date/time information, or from the current system's time. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.datetime | diff --git a/php_modules/date/build.yml b/php_modules/date/build.yml new file mode 100644 index 0000000..a04b687 --- /dev/null +++ b/php_modules/date/build.yml @@ -0,0 +1,8 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +already_avail: "{{ php_all_versions }}" diff --git a/php_modules/date/options.yml b/php_modules/date/options.yml new file mode 100644 index 0000000..6af1ce0 --- /dev/null +++ b/php_modules/date/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: date + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/date/test.yml b/php_modules/date/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/date/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/dba/README.md b/php_modules/dba/README.md new file mode 100644 index 0000000..730d296 --- /dev/null +++ b/php_modules/dba/README.md @@ -0,0 +1,7 @@ +# dba + +These functions build the foundation for accessing Berkeley DB style databases. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.dba.php | diff --git a/php_modules/dba/build.yml b/php_modules/dba/build.yml new file mode 100644 index 0000000..6c0d2de --- /dev/null +++ b/php_modules/dba/build.yml @@ -0,0 +1,9 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: builtin diff --git a/php_modules/dba/options.yml b/php_modules/dba/options.yml new file mode 100644 index 0000000..237a91a --- /dev/null +++ b/php_modules/dba/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: dba + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/dba/test.yml b/php_modules/dba/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/dba/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/dom/README.md b/php_modules/dom/README.md new file mode 100644 index 0000000..da43984 --- /dev/null +++ b/php_modules/dom/README.md @@ -0,0 +1,7 @@ +# dom + +The DOM extension allows you to operate on XML documents through the DOM API with PHP. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.dom.php | diff --git a/php_modules/dom/build.yml b/php_modules/dom/build.yml new file mode 100644 index 0000000..a04b687 --- /dev/null +++ b/php_modules/dom/build.yml @@ -0,0 +1,8 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +already_avail: "{{ php_all_versions }}" diff --git a/php_modules/dom/options.yml b/php_modules/dom/options.yml new file mode 100644 index 0000000..518c39f --- /dev/null +++ b/php_modules/dom/options.yml @@ -0,0 +1,25 @@ +--- + +# The name of the module +name: dom + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: + - libxml + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/dom/test.yml b/php_modules/dom/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/dom/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/enchant/README.md b/php_modules/enchant/README.md new file mode 100644 index 0000000..a18aeee --- /dev/null +++ b/php_modules/enchant/README.md @@ -0,0 +1,7 @@ +# enchant + +Enchant is the PHP binding for the Enchant library. Enchant steps in to provide uniformity and conformity on top of all spelling libraries, and implement certain features that may be lacking in any individual provider library. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.enchant.php | diff --git a/php_modules/enchant/build.yml b/php_modules/enchant/build.yml new file mode 100644 index 0000000..ebf7db7 --- /dev/null +++ b/php_modules/enchant/build.yml @@ -0,0 +1,45 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: builtin + build_dep: [libenchant-2-dev] + run_dep: [libenchant-2-2] + +7.2: + build_dep: [libenchant-dev] + run_dep: [libenchant1c2a] + +7.1: + build_dep: [libenchant-dev] + run_dep: [libenchant1c2a] + +7.0: + build_dep: [libenchant-dev] + run_dep: [libenchant1c2a] + +5.6: + build_dep: [libenchant-dev] + run_dep: [libenchant1c2a] + +5.5: + build_dep: [libenchant-dev] + run_dep: [libenchant1c2a] + +5.4: + build_dep: [libenchant-dev] + run_dep: [libenchant1c2a] + +5.3: + build_dep: [libenchant-dev] + run_dep: [libenchant1c2a] + +5.2: + type: pecl + command: echo "/usr" | pecl install enchant + build_dep: [libenchant-dev] + run_dep: [libenchant1c2a] diff --git a/php_modules/enchant/options.yml b/php_modules/enchant/options.yml new file mode 100644 index 0000000..3185b0d --- /dev/null +++ b/php_modules/enchant/options.yml @@ -0,0 +1,27 @@ +--- + +# The name of the module +name: enchant + +# Exclude module build/installation for the following PHP versions +# https://www.php.net/manual/en/enchant.requirements.php +# 7.3: requires enchant 1, but not avail via apt install +# 7.4: requires enchant 1, but not avail via apt install +exclude: [7.3, 7.4] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/enchant/test.yml b/php_modules/enchant/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/enchant/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/ereg/README.md b/php_modules/ereg/README.md new file mode 100644 index 0000000..06caf95 --- /dev/null +++ b/php_modules/ereg/README.md @@ -0,0 +1,7 @@ +# ereg + +POSIX Regex Functions. Deprecated and superseeded by [pcre](../pcre). + +| Platform | Url | +|----------|------------------------------------------------------------------| +| Pecl | https://pecl.php.net/package/ereg | diff --git a/php_modules/ereg/build.yml b/php_modules/ereg/build.yml new file mode 100644 index 0000000..a04b687 --- /dev/null +++ b/php_modules/ereg/build.yml @@ -0,0 +1,8 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +already_avail: "{{ php_all_versions }}" diff --git a/php_modules/ereg/options.yml b/php_modules/ereg/options.yml new file mode 100644 index 0000000..80cf9b1 --- /dev/null +++ b/php_modules/ereg/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: ereg + +# Exclude module build/installation for the following PHP versions +exclude: [5.2, 7., 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/ereg/test.yml b/php_modules/ereg/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/ereg/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/exif/README.md b/php_modules/exif/README.md new file mode 100644 index 0000000..4ec084e --- /dev/null +++ b/php_modules/exif/README.md @@ -0,0 +1,7 @@ +# exif + +With the exif extension you are able to work with image meta data. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.exif.php | diff --git a/php_modules/exif/build.yml b/php_modules/exif/build.yml new file mode 100644 index 0000000..6c0d2de --- /dev/null +++ b/php_modules/exif/build.yml @@ -0,0 +1,9 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: builtin diff --git a/php_modules/exif/options.yml b/php_modules/exif/options.yml new file mode 100644 index 0000000..558a202 --- /dev/null +++ b/php_modules/exif/options.yml @@ -0,0 +1,26 @@ +--- + +# The name of the module +name: exif + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: + - mbstring + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: + - mbstring + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/exif/test.yml b/php_modules/exif/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/exif/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/ffi/README.md b/php_modules/ffi/README.md new file mode 100644 index 0000000..377429d --- /dev/null +++ b/php_modules/ffi/README.md @@ -0,0 +1,7 @@ +# ffi + +This extension allows the loading of shared libraries (.DLL or .so), calling of C functions and accessing of C data structures in pure PHP, without having to have deep knowledge of the Zend extension API, and without having to learn a third “intermediate” language. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.ffi.php | diff --git a/php_modules/ffi/build.yml b/php_modules/ffi/build.yml new file mode 100644 index 0000000..7984b2e --- /dev/null +++ b/php_modules/ffi/build.yml @@ -0,0 +1,13 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +already_avail: [8.0, 8.1, 8.2] + +all: + type: builtin + build_dep: [libffi-dev] + run_dep: [libffi7] diff --git a/php_modules/ffi/options.yml b/php_modules/ffi/options.yml new file mode 100644 index 0000000..92bf760 --- /dev/null +++ b/php_modules/ffi/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: ffi + +# Exclude module build/installation for the following PHP versions +exclude: [5.2, 5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3] # only available as of PHP 7.4 + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/ffi/test.yml b/php_modules/ffi/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/ffi/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/fileinfo/README.md b/php_modules/fileinfo/README.md new file mode 100644 index 0000000..4b14d6a --- /dev/null +++ b/php_modules/fileinfo/README.md @@ -0,0 +1,7 @@ +# fileinfo + +The functions in this module try to guess the content type and encoding of a file by looking for certain magic byte sequences at specific positions within the file. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.fileinfo.php | diff --git a/php_modules/fileinfo/build.yml b/php_modules/fileinfo/build.yml new file mode 100644 index 0000000..ddda146 --- /dev/null +++ b/php_modules/fileinfo/build.yml @@ -0,0 +1,13 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +already_avail: [5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2] + +5.2: + type: pecl + build_dep: [libmagic-dev] + run_dep: [libmagic1] diff --git a/php_modules/fileinfo/options.yml b/php_modules/fileinfo/options.yml new file mode 100644 index 0000000..c68c869 --- /dev/null +++ b/php_modules/fileinfo/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: fileinfo + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/fileinfo/test.yml b/php_modules/fileinfo/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/fileinfo/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/filter/README.md b/php_modules/filter/README.md new file mode 100644 index 0000000..bdaee7a --- /dev/null +++ b/php_modules/filter/README.md @@ -0,0 +1,7 @@ +# filter + +This extension filters data by either validating or sanitizing it. This is especially useful when the data source contains unknown (or foreign) data, like user supplied input. For example, this data may come from an HTML form. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.filter.php | diff --git a/php_modules/filter/build.yml b/php_modules/filter/build.yml new file mode 100644 index 0000000..a04b687 --- /dev/null +++ b/php_modules/filter/build.yml @@ -0,0 +1,8 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +already_avail: "{{ php_all_versions }}" diff --git a/php_modules/filter/options.yml b/php_modules/filter/options.yml new file mode 100644 index 0000000..3ab2ddf --- /dev/null +++ b/php_modules/filter/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: filter + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/filter/test.yml b/php_modules/filter/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/filter/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/ftp/README.md b/php_modules/ftp/README.md new file mode 100644 index 0000000..6eae81e --- /dev/null +++ b/php_modules/ftp/README.md @@ -0,0 +1,7 @@ +# ftp + +The functions in this extension implement client access to files servers speaking the File Transfer Protocol (FTP) as defined in http://www.faqs.org/rfcs/rfc959. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.ftp.php | diff --git a/php_modules/ftp/build.yml b/php_modules/ftp/build.yml new file mode 100644 index 0000000..a04b687 --- /dev/null +++ b/php_modules/ftp/build.yml @@ -0,0 +1,8 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +already_avail: "{{ php_all_versions }}" diff --git a/php_modules/ftp/options.yml b/php_modules/ftp/options.yml new file mode 100644 index 0000000..621bfab --- /dev/null +++ b/php_modules/ftp/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: ftp + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/ftp/test.yml b/php_modules/ftp/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/ftp/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/gd/README.md b/php_modules/gd/README.md new file mode 100644 index 0000000..58933e3 --- /dev/null +++ b/php_modules/gd/README.md @@ -0,0 +1,7 @@ +# gd + +PHP is not limited to creating just HTML output. It can also be used to create and manipulate image files in a variety of different image formats, including GIF, PNG, JPEG, WBMP, and XPM. Even more conveniently, PHP can output image streams directly to a browser. You will need to compile PHP with the GD library of image functions for this to work. GD and PHP may also require other libraries, depending on which image formats you want to work with. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.image.php | diff --git a/php_modules/gd/build.yml b/php_modules/gd/build.yml new file mode 100644 index 0000000..e38e64c --- /dev/null +++ b/php_modules/gd/build.yml @@ -0,0 +1,102 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: builtin + pre: ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ + configure: --with-gd --with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-native-ttf + build_dep: [libpng-dev, libjpeg-dev, libxpm-dev, libvpx-dev, zlib1g-dev, libfreetype6-dev, libwebp-dev] + run_dep: [libpng16-16, libjpeg62-turbo, libxpm4, libvpx6, libfreetype6, libwebp6] + +8.2: + type: builtin + configure: --enable-gd --with-webp --with-jpeg --with-xpm --with-freetype --with-avif + build_dep: [libpng-dev, libjpeg-dev, libxpm-dev, libvpx-dev, zlib1g-dev, libfreetype6-dev, libwebp-dev, libavif-dev] + run_dep: [libpng16-16, libjpeg62-turbo, libxpm4, libvpx6, libfreetype6, libwebp6, libavif9] + +8.1: + type: builtin + configure: --enable-gd --with-webp --with-jpeg --with-xpm --with-freetype --with-avif + build_dep: [libpng-dev, libjpeg-dev, libxpm-dev, libvpx-dev, zlib1g-dev, libfreetype6-dev, libwebp-dev, libavif-dev] + run_dep: [libpng16-16, libjpeg62-turbo, libxpm4, libvpx6, libfreetype6, libwebp6, libavif9] + +8.0: + type: builtin + configure: --enable-gd --with-webp --with-jpeg --with-xpm --with-freetype + +7.4: + type: builtin + configure: --enable-gd --with-webp --with-jpeg --with-xpm --with-freetype + +7.3: + type: builtin + configure: --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 + +7.2: + type: builtin + configure: --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 + run_dep: [libpng16-16, libjpeg62-turbo, libxpm4, libvpx5, libfreetype6, libwebp6] + +7.1: + type: builtin + configure: --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-native-ttf + run_dep: [libpng16-16, libjpeg62-turbo, libxpm4, libvpx5, libfreetype6, libwebp6] + +7.0: + type: builtin + configure: --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-native-ttf + run_dep: [libpng16-16, libjpeg62-turbo, libxpm4, libvpx4, libfreetype6, libwebp6] + +5.6: + type: builtin + pre: ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ + configure: --with-gd --with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-native-ttf + run_dep: [libpng16-16, libjpeg62-turbo, libxpm4, libvpx4, libfreetype6, libwebp6] + +5.5: + type: builtin + pre: | + ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libjpeg.* /usr/lib/ && \ + ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libpng.* /usr/lib/ && \ + ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ && \ + mkdir /usr/include/freetype2/freetype && \ + ln -s /usr/include/freetype2/freetype.h /usr/include/freetype2/freetype/freetype.h \ + configure: --with-gd --with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-native-ttf + run_dep: [libpng12-0, libjpeg62-turbo, libxpm4, libvpx1, libfreetype6, libwebp5] + +5.4: + type: builtin + pre: | + ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libjpeg.* /usr/lib/ && \ + ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libpng.* /usr/lib/ && \ + ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ && \ + mkdir /usr/include/freetype2/freetype && \ + ln -s /usr/include/freetype2/freetype.h /usr/include/freetype2/freetype/freetype.h \ + configure: --with-gd --with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-native-ttf + run_dep: [libpng12-0, libjpeg62-turbo, libxpm4, libvpx1, libfreetype6, libwebp5] + +5.3: + type: builtin + pre: | + ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libjpeg.* /usr/lib/ && \ + ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libpng.* /usr/lib/ && \ + ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ && \ + mkdir /usr/include/freetype2/freetype && \ + ln -s /usr/include/freetype2/freetype.h /usr/include/freetype2/freetype/freetype.h \ + configure: --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-native-ttf + run_dep: [libpng12-0, libjpeg62-turbo, libxpm4, libvpx1, libfreetype6, libwebp5] + +5.2: + type: builtin + pre: | + ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libjpeg.* /usr/lib/ && \ + ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libpng.* /usr/lib/ && \ + ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ && \ + mkdir /usr/include/freetype2/freetype && \ + ln -s /usr/include/freetype2/freetype.h /usr/include/freetype2/freetype/freetype.h \ + configure: --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-native-ttf + run_dep: [libpng12-0, libjpeg62-turbo, libxpm4, libvpx1, libfreetype6, libwebp5] diff --git a/php_modules/gd/options.yml b/php_modules/gd/options.yml new file mode 100644 index 0000000..4a8a0bd --- /dev/null +++ b/php_modules/gd/options.yml @@ -0,0 +1,25 @@ +--- + +# The name of the module +name: gd + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: + - exif + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/gd/test.yml b/php_modules/gd/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/gd/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/gettext/README.md b/php_modules/gettext/README.md new file mode 100644 index 0000000..6b4fd07 --- /dev/null +++ b/php_modules/gettext/README.md @@ -0,0 +1,7 @@ +# gettext + +The gettext functions implement an NLS (Native Language Support) API which can be used to internationalize your PHP applications. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.gettext.php | diff --git a/php_modules/gettext/build.yml b/php_modules/gettext/build.yml new file mode 100644 index 0000000..6c0d2de --- /dev/null +++ b/php_modules/gettext/build.yml @@ -0,0 +1,9 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: builtin diff --git a/php_modules/gettext/options.yml b/php_modules/gettext/options.yml new file mode 100644 index 0000000..51755f0 --- /dev/null +++ b/php_modules/gettext/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: gettext + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/gettext/test.yml b/php_modules/gettext/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/gettext/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/gmp/README.md b/php_modules/gmp/README.md new file mode 100644 index 0000000..fbe1877 --- /dev/null +++ b/php_modules/gmp/README.md @@ -0,0 +1,7 @@ +# gmp + +These functions allow for arbitrary-length integers to be worked with using the GNU MP library. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.gmp.php | diff --git a/php_modules/gmp/build.yml b/php_modules/gmp/build.yml new file mode 100644 index 0000000..1305d3c --- /dev/null +++ b/php_modules/gmp/build.yml @@ -0,0 +1,12 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: builtin + pre: ln /usr/include/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/gmp.h /usr/include/ + build_dep: [libgmp-dev] + run_dep: [] # TODO: Ensure to add libgmp10 to each of the versions diff --git a/php_modules/gmp/options.yml b/php_modules/gmp/options.yml new file mode 100644 index 0000000..e8d5dc6 --- /dev/null +++ b/php_modules/gmp/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: gmp + +# Exclude module build/installation for the following PHP versions +exclude: [5.2] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/gmp/test.yml b/php_modules/gmp/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/gmp/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/hash/README.md b/php_modules/hash/README.md new file mode 100644 index 0000000..7fe6475 --- /dev/null +++ b/php_modules/hash/README.md @@ -0,0 +1,7 @@ +# hash + +Message Digest (hash) engine. Allows direct or incremental processing of arbitrary length messages using a variety of hashing algorithms. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.hash.php | diff --git a/php_modules/hash/build.yml b/php_modules/hash/build.yml new file mode 100644 index 0000000..a04b687 --- /dev/null +++ b/php_modules/hash/build.yml @@ -0,0 +1,8 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +already_avail: "{{ php_all_versions }}" diff --git a/php_modules/hash/options.yml b/php_modules/hash/options.yml new file mode 100644 index 0000000..41db8cb --- /dev/null +++ b/php_modules/hash/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: hash + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/hash/test.yml b/php_modules/hash/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/hash/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/iconv/README.md b/php_modules/iconv/README.md new file mode 100644 index 0000000..5ecaa0d --- /dev/null +++ b/php_modules/iconv/README.md @@ -0,0 +1,7 @@ +# iconv + +This module contains an interface to iconv character set conversion facility. With this module, you can turn a string represented by a local character set into the one represented by another character set, which may be the Unicode character set. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.iconv.php | diff --git a/php_modules/iconv/build.yml b/php_modules/iconv/build.yml new file mode 100644 index 0000000..a04b687 --- /dev/null +++ b/php_modules/iconv/build.yml @@ -0,0 +1,8 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +already_avail: "{{ php_all_versions }}" diff --git a/php_modules/iconv/options.yml b/php_modules/iconv/options.yml new file mode 100644 index 0000000..3d3a54c --- /dev/null +++ b/php_modules/iconv/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: iconv + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/iconv/test.yml b/php_modules/iconv/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/iconv/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/igbinary/README.md b/php_modules/igbinary/README.md new file mode 100644 index 0000000..58d6a10 --- /dev/null +++ b/php_modules/igbinary/README.md @@ -0,0 +1,7 @@ +# igbinary + +Igbinary is a drop in replacement for the standard PHP serializer. Instead of the time and space consuming textual representation used by PHP's serialize(), igbinary stores PHP data structures in a compact binary form. Memory savings are significant when using memcached, APCu, or similar memory based storages for serialized data. The typical reduction in storage requirements are around 50%. The exact percentage depends on the data. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.igbinary.php | diff --git a/php_modules/igbinary/build.yml b/php_modules/igbinary/build.yml new file mode 100644 index 0000000..3287431 --- /dev/null +++ b/php_modules/igbinary/build.yml @@ -0,0 +1,29 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: pecl + +5.6: + type: pecl + version: 2.0.8 + +5.5: + type: pecl + version: 2.0.8 + +5.4: + type: pecl + version: 2.0.8 + +5.3: + type: pecl + version: 2.0.8 + +5.2: + type: pecl + version: 2.0.7 diff --git a/php_modules/igbinary/options.yml b/php_modules/igbinary/options.yml new file mode 100644 index 0000000..e4a4192 --- /dev/null +++ b/php_modules/igbinary/options.yml @@ -0,0 +1,21 @@ +--- + +# The name of the module +name: igbinary + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/igbinary/test.yml b/php_modules/igbinary/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/igbinary/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/imagick/README.md b/php_modules/imagick/README.md new file mode 100644 index 0000000..146fdf3 --- /dev/null +++ b/php_modules/imagick/README.md @@ -0,0 +1,7 @@ +# imagick + +Imagick is a native php extension to create and modify images using the ImageMagick API. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.imagick.php | diff --git a/php_modules/imagick/build.yml b/php_modules/imagick/build.yml new file mode 100644 index 0000000..fd0c44b --- /dev/null +++ b/php_modules/imagick/build.yml @@ -0,0 +1,35 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: pecl + build_dep: [libmagickwand-dev, libwebp-dev, ghostscript] + run_dep: [libmagickwand-6.q16-6, libwebp6, ghostscript] + # https://bugs.php.net/bug.php?id=77683 + # https://github.com/Imagick/imagick/issues/262 (policy prevents PDF from being read) + post: | + sed -i'' 's|.*"thread".*| |g' /etc/ImageMagick-6/policy.xml \ + && sed -i'' 's|.*= 2.6.0 diff --git a/php_modules/libxml/options.yml b/php_modules/libxml/options.yml new file mode 100644 index 0000000..254ffed --- /dev/null +++ b/php_modules/libxml/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: libxml + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/libxml/test.yml b/php_modules/libxml/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/libxml/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/lz4/README.md b/php_modules/lz4/README.md new file mode 100644 index 0000000..86d1ec0 --- /dev/null +++ b/php_modules/lz4/README.md @@ -0,0 +1,9 @@ +# lz4 + +This extension allows LZ4. + +Documentation for LZ4 can be found at » https://github.com/Cyan4973/lz4. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| GitHub | https://github.com/kjdev/php-ext-lz4 | diff --git a/php_modules/lz4/build.yml b/php_modules/lz4/build.yml new file mode 100644 index 0000000..eef7132 --- /dev/null +++ b/php_modules/lz4/build.yml @@ -0,0 +1,14 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: git + git_url: https://github.com/kjdev/php-ext-lz4 + git_ref: $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) + configure: --enable-lz4 --with-lz4-includedir=/usr + build_dep: [liblz4-dev] + run_dep: [liblz4-1] diff --git a/php_modules/lz4/options.yml b/php_modules/lz4/options.yml new file mode 100644 index 0000000..64ab17c --- /dev/null +++ b/php_modules/lz4/options.yml @@ -0,0 +1,25 @@ +--- + +# The name of the module +name: lz4 + +# Exclude module build/installation for the following PHP versions +exclude: [5.2, 5.3, 5.4, 5.5, 5.6] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: + - apcu + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/lz4/test.yml b/php_modules/lz4/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/lz4/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/lzf/README.md b/php_modules/lzf/README.md new file mode 100644 index 0000000..eb5b153 --- /dev/null +++ b/php_modules/lzf/README.md @@ -0,0 +1,8 @@ +# lzf + +LZF is a very fast compression algorithm, ideal for saving space with only slight speed cost. It can be optimized for speed or space at the time of compilation. This extension is using liblzf library by Marc Lehmann for its operations. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.lzf.php | +| Pecl | https://pecl.php.net/package/lzf | diff --git a/php_modules/lzf/build.yml b/php_modules/lzf/build.yml new file mode 100644 index 0000000..b85def0 --- /dev/null +++ b/php_modules/lzf/build.yml @@ -0,0 +1,28 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: pecl + build_dep: [liblzf-dev] + run_dep: [liblzf1] + +7.2: + type: pecl + build_dep: [] + run_dep: [] + +7.1: + type: pecl + version: 1.6.8 + build_dep: [] + run_dep: [] + +7.0: + type: pecl + version: 1.6.8 + build_dep: [] + run_dep: [] diff --git a/php_modules/lzf/options.yml b/php_modules/lzf/options.yml new file mode 100644 index 0000000..589367a --- /dev/null +++ b/php_modules/lzf/options.yml @@ -0,0 +1,25 @@ +--- + +# The name of the module +name: lzf + +# Exclude module build/installation for the following PHP versions +exclude: [5.2, 5.3, 5.4, 5.5, 5.6] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: + - apcu + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/lzf/test.yml b/php_modules/lzf/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/lzf/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/mbstring/README.md b/php_modules/mbstring/README.md new file mode 100644 index 0000000..a4a5698 --- /dev/null +++ b/php_modules/mbstring/README.md @@ -0,0 +1,7 @@ +# mbstring + +mbstring provides multibyte specific string functions that help you deal with multibyte encodings in PHP. In addition to that, mbstring handles character encoding conversion between the possible encoding pairs. mbstring is designed to handle Unicode-based encodings such as UTF-8 and UCS-2 and many single-byte encodings for convenience. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.mbstring.php | diff --git a/php_modules/mbstring/build.yml b/php_modules/mbstring/build.yml new file mode 100644 index 0000000..f19b239 --- /dev/null +++ b/php_modules/mbstring/build.yml @@ -0,0 +1,8 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +already_avail: "{{ php_all_versions }}" # Available by default diff --git a/php_modules/mbstring/options.yml b/php_modules/mbstring/options.yml new file mode 100644 index 0000000..f7f45e0 --- /dev/null +++ b/php_modules/mbstring/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: mbstring + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/mbstring/test.yml b/php_modules/mbstring/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/mbstring/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/mcrypt/README.md b/php_modules/mcrypt/README.md new file mode 100644 index 0000000..172542e --- /dev/null +++ b/php_modules/mcrypt/README.md @@ -0,0 +1,7 @@ +# mcrypt + +This is an interface to the mcrypt library, which supports a wide variety of block algorithms such as DES, TripleDES, Blowfish (default), 3-WAY, SAFER-SK64, SAFER-SK128, TWOFISH, TEA, RC2 and GOST in CBC, OFB, CFB and ECB cipher modes. Additionally, it supports RC6 and IDEA which are considered "non-free". CFB/OFB are 8bit by default. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.mcrypt.php | diff --git a/php_modules/mcrypt/build.yml b/php_modules/mcrypt/build.yml new file mode 100644 index 0000000..2cf53b7 --- /dev/null +++ b/php_modules/mcrypt/build.yml @@ -0,0 +1,40 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: pecl + run_dep: [libmcrypt4] + build_dep: [libmcrypt-dev] + +7.3: + type: pecl + version: 1.0.2 + +7.2: + type: pecl + version: 1.0.1 + +7.1: + type: builtin + +7.0: + type: builtin + +5.6: + type: builtin + +5.5: + type: builtin + +5.4: + type: builtin + +5.3: + type: builtin + +5.2: + type: builtin diff --git a/php_modules/mcrypt/options.yml b/php_modules/mcrypt/options.yml new file mode 100644 index 0000000..18aa522 --- /dev/null +++ b/php_modules/mcrypt/options.yml @@ -0,0 +1,26 @@ +--- + +# The name of the module +name: mcrypt + +# Exclude module build/installation for the following PHP versions +# mcrypt 1.0.4 requires PHP 8.1.0 or older +# version >= 7.2.0, version <= 8.1.0, excluded versions: 8.1.0 +exclude: [8.1, 8.2] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/mcrypt/test.yml b/php_modules/mcrypt/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/mcrypt/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/memcache/README.md b/php_modules/memcache/README.md new file mode 100644 index 0000000..980ef5a --- /dev/null +++ b/php_modules/memcache/README.md @@ -0,0 +1,7 @@ +# memcache + +Memcache module provides handy procedural and object-oriented interface to memcached, highly effective caching daemon, which was especially designed to decrease database load in dynamic web applications. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.memcache.php | diff --git a/php_modules/memcache/build.yml b/php_modules/memcache/build.yml new file mode 100644 index 0000000..197845f --- /dev/null +++ b/php_modules/memcache/build.yml @@ -0,0 +1,50 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: pecl + build_dep: [zlib1g-dev] + +7.4: + type: pecl + version: 4.0.5.2 + +7.3: + type: pecl + version: 4.0.5.2 + +7.2: + type: pecl + version: 4.0.5.2 + +7.1: + type: pecl + version: 4.0.5.2 + +7.0: + type: pecl + version: 4.0.5.2 + +5.6: + type: pecl + version: 2.2.7 + +5.5: + type: pecl + version: 2.2.7 + +5.4: + type: pecl + version: 2.2.7 + +5.3: + type: pecl + version: 2.2.7 + +5.2: + type: pecl + version: 2.2.7 diff --git a/php_modules/memcache/options.yml b/php_modules/memcache/options.yml new file mode 100644 index 0000000..713a3dd --- /dev/null +++ b/php_modules/memcache/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: memcache + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/memcache/test.yml b/php_modules/memcache/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/memcache/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/memcached/README.md b/php_modules/memcached/README.md new file mode 100644 index 0000000..db7cd2b --- /dev/null +++ b/php_modules/memcached/README.md @@ -0,0 +1,7 @@ +# memcached + +This extension uses the libmemcached library to provide an API for communicating with memcached servers. It also provides a session handler (memcached). + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.memcached.php | diff --git a/php_modules/memcached/build.yml b/php_modules/memcached/build.yml new file mode 100644 index 0000000..4b08574 --- /dev/null +++ b/php_modules/memcached/build.yml @@ -0,0 +1,65 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: pecl + command: printf "\n\n\nyes\nyes\nyes\n" | pecl install memcached + build_dep: [zlib1g-dev, libmemcached-dev, libevent-dev] + run_dep: [libmemcachedutil2, libevent-2.1-7] + +8.2: + type: git + git_url: https://github.com/php-memcached-dev/php-memcached + git_ref: master + command: | + true \ + # FIXME: This is a work-around to mitigate compile error with PHP 8.2 + && sed -i'' 's/\sTSRMLS_CC//g' php_memcached_session.c \ + && phpize \ + && ./configure --enable-memcached \ + && make -j$(getconf _NPROCESSORS_ONLN) \ + && make install \ + +7.2: + type: pecl + command: printf "\n\n\nyes\nyes\nyes\n" | pecl install memcached + run_dep: [libmemcachedutil2, libevent-2.1-6] + +7.1: + type: pecl + command: printf "\n\n\nyes\nyes\nyes\n" | pecl install memcached + run_dep: [libmemcachedutil2, libevent-2.1-6] + +7.0: + type: pecl + command: printf "\n\n\nyes\nyes\nyes\n" | pecl install memcached + run_dep: [libmemcachedutil2, libevent-2.0-5] + +5.6: + type: pecl + version: 2.2.0 + run_dep: [libmemcachedutil2, libevent-2.0-5] + +5.5: + type: pecl + version: 2.2.0 + run_dep: [libmemcachedutil2, libevent-2.0-5] + +5.4: + type: pecl + version: 2.2.0 + run_dep: [libmemcachedutil2, libevent-2.0-5] + +5.3: + type: pecl + version: 2.2.0 + run_dep: [libmemcachedutil2, libevent-2.0-5] + +5.2: + type: pecl + version: 2.1.0 + run_dep: [libmemcachedutil2, libevent-2.0-5] diff --git a/php_modules/memcached/options.yml b/php_modules/memcached/options.yml new file mode 100644 index 0000000..8f091ee --- /dev/null +++ b/php_modules/memcached/options.yml @@ -0,0 +1,26 @@ +--- + +# The name of the module +name: memcached + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: + - igbinary + - msgpack + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/memcached/test.yml b/php_modules/memcached/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/memcached/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/mhash/README.md b/php_modules/mhash/README.md new file mode 100644 index 0000000..31ae074 --- /dev/null +++ b/php_modules/mhash/README.md @@ -0,0 +1,7 @@ +# mhash + +This is an interface to the mhash library. Mhash supports a wide variety of hash algorithms such as MD5, SHA1, GOST, and many others. For a complete list of supported hashes, refer to the constants page. The general rule is that you can access the hash algorithm from PHP with MHASH_hashname. For example, to access TIGER you use the PHP constant MHASH_TIGER. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.mhash.php | diff --git a/php_modules/mhash/build.yml b/php_modules/mhash/build.yml new file mode 100644 index 0000000..b5075e0 --- /dev/null +++ b/php_modules/mhash/build.yml @@ -0,0 +1,8 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +already_avail: [5.2, 5.3, 5.4, 5.5, 5.6] diff --git a/php_modules/mhash/options.yml b/php_modules/mhash/options.yml new file mode 100644 index 0000000..e4ca461 --- /dev/null +++ b/php_modules/mhash/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: mhash + +# Exclude module build/installation for the following PHP versions +exclude: [7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2] # Deprecated + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/mhash/test.yml b/php_modules/mhash/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/mhash/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/mongo/README.md b/php_modules/mongo/README.md new file mode 100644 index 0000000..b995ca5 --- /dev/null +++ b/php_modules/mongo/README.md @@ -0,0 +1,8 @@ +# mongo + +The legacy MongoDB PHP driver + +| Platform | Url | +|----------|------------------------------------------------------------------| +| GitHub | https://github.com/mongodb/mongo-php-driver-legacy | +| Pecl | https://pecl.php.net/package/mongo | diff --git a/php_modules/mongo/build.yml b/php_modules/mongo/build.yml new file mode 100644 index 0000000..9062bb3 --- /dev/null +++ b/php_modules/mongo/build.yml @@ -0,0 +1,15 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: pecl + command: yes yes | pecl install mongo + build_dep: [libssl-dev, libsasl2-dev] + +5.2: + type: pecl + command: yes yes | pecl install mongo-1.5.8 diff --git a/php_modules/mongo/options.yml b/php_modules/mongo/options.yml new file mode 100644 index 0000000..6636b1e --- /dev/null +++ b/php_modules/mongo/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: mongo + +# Exclude module build/installation for the following PHP versions +exclude: [7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2] # Deprecated + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/mongo/test.yml b/php_modules/mongo/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/mongo/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/mongodb/README.md b/php_modules/mongodb/README.md new file mode 100644 index 0000000..d061cb6 --- /dev/null +++ b/php_modules/mongodb/README.md @@ -0,0 +1,8 @@ +# mongodb + +This extension is developed atop the libmongoc and libbson libraries. It provides a minimal API for core driver functionality: commands, queries, writes, connection management, and BSON serialization. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/set.mongodb.php | +| Pecl | https://pecl.php.net/package/mongodb | diff --git a/php_modules/mongodb/build.yml b/php_modules/mongodb/build.yml new file mode 100644 index 0000000..cc1616f --- /dev/null +++ b/php_modules/mongodb/build.yml @@ -0,0 +1,34 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: pecl + build_dep: [libssl-dev, libsasl2-dev] + +7.1: + type: pecl + version: 1.11.1 + +7.0: + type: pecl + version: 1.9.2 + +5.6: + type: pecl + version: 1.7.5 + +5.5: + type: pecl + version: 1.5.5 + +5.4: + type: pecl + version: 1.2.11 + +5.3: + type: pecl + version: 0.6.3 diff --git a/php_modules/mongodb/options.yml b/php_modules/mongodb/options.yml new file mode 100644 index 0000000..bce5929 --- /dev/null +++ b/php_modules/mongodb/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: mongodb + +# Exclude module build/installation for the following PHP versions +exclude: [5.2] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/mongodb/test.yml b/php_modules/mongodb/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/mongodb/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/msgpack/README.md b/php_modules/msgpack/README.md new file mode 100644 index 0000000..b0fcbc4 --- /dev/null +++ b/php_modules/msgpack/README.md @@ -0,0 +1,8 @@ +# msgpack + +This extension provide API for communicating with MessagePack serialization. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| GitHub | https://github.com/msgpack/msgpack-php | +| Pecl | https://pecl.php.net/package/msgpack | diff --git a/php_modules/msgpack/build.yml b/php_modules/msgpack/build.yml new file mode 100644 index 0000000..864c95f --- /dev/null +++ b/php_modules/msgpack/build.yml @@ -0,0 +1,29 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: pecl + +5.6: + type: pecl + version: 0.5.7 + +5.5: + type: pecl + version: 0.5.7 + +5.4: + type: pecl + version: 0.5.7 + +5.3: + type: pecl + version: 0.5.7 + +5.2: + type: pecl + version: 0.5.7 diff --git a/php_modules/msgpack/options.yml b/php_modules/msgpack/options.yml new file mode 100644 index 0000000..8496d17 --- /dev/null +++ b/php_modules/msgpack/options.yml @@ -0,0 +1,21 @@ +--- + +# The name of the module +name: msgpack + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/msgpack/test.yml b/php_modules/msgpack/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/msgpack/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/mysql/README.md b/php_modules/mysql/README.md new file mode 100644 index 0000000..b3bab53 --- /dev/null +++ b/php_modules/mysql/README.md @@ -0,0 +1,7 @@ +# mysql + +This extension is deprecated as of PHP 5.5.0, and has been removed as of PHP 7.0.0. Instead, either the mysqli or PDO_MySQL extension should be used. See also the MySQL API Overview for further help while choosing a MySQL API. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.mysql.php | diff --git a/php_modules/mysql/build.yml b/php_modules/mysql/build.yml new file mode 100644 index 0000000..5574a7a --- /dev/null +++ b/php_modules/mysql/build.yml @@ -0,0 +1,17 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: builtin + configure: --with-mysql --with-mysql-sock --with-zlib-dir=/usr --with-libdir="/lib/$(dpkg-architecture --query DEB_BUILD_MULTIARCH)" + run_dep: [libmysqlclient18] + build_dep: [libmysqlclient-dev] + +5.6: + type: builtin + run_dep: [libmariadbclient18] + build_dep: [libmariadbclient-dev] diff --git a/php_modules/mysql/options.yml b/php_modules/mysql/options.yml new file mode 100644 index 0000000..d2395ba --- /dev/null +++ b/php_modules/mysql/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: mysql + +# Exclude module build/installation for the following PHP versions +exclude: [7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2] # Deprecated in newer versions + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/mysql/test.yml b/php_modules/mysql/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/mysql/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/mysqli/README.md b/php_modules/mysqli/README.md new file mode 100644 index 0000000..fa5cd0e --- /dev/null +++ b/php_modules/mysqli/README.md @@ -0,0 +1,7 @@ +# mysqli + +The mysqli extension allows you to access the functionality provided by MySQL 4.1 and above. More information about the MySQL Database server can be found at » http://www.mysql.com/ + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.mysqli.php | diff --git a/php_modules/mysqli/build.yml b/php_modules/mysqli/build.yml new file mode 100644 index 0000000..6e4766a --- /dev/null +++ b/php_modules/mysqli/build.yml @@ -0,0 +1,40 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + +all: + type: builtin + run_dep: [libmariadbd19] + build_dep: [libmariadb-dev] + +7.0: + type: builtin + run_dep: [libmariadbclient18] + build_dep: [libmariadbclient-dev] + +5.6: + type: builtin + run_dep: [libmariadbclient18] + build_dep: [libmariadbclient-dev] + +5.5: + type: builtin + run_dep: [libmysqlclient18] + build_dep: [libmysqlclient-dev] + +5.4: + type: builtin + run_dep: [libmysqlclient18] + build_dep: [libmysqlclient-dev] + +5.3: + type: builtin + run_dep: [libmysqlclient18] + build_dep: [libmysqlclient-dev] + +5.2: + type: builtin + run_dep: [libmysqlclient18] + build_dep: [libmysqlclient-dev] diff --git a/php_modules/mysqli/options.yml b/php_modules/mysqli/options.yml new file mode 100644 index 0000000..785626a --- /dev/null +++ b/php_modules/mysqli/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: mysqli + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/mysqli/test.yml b/php_modules/mysqli/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/mysqli/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/mysqlnd/README.md b/php_modules/mysqlnd/README.md new file mode 100644 index 0000000..a24061e --- /dev/null +++ b/php_modules/mysqlnd/README.md @@ -0,0 +1,7 @@ +# mysqlnd + +MySQL Native Driver is a replacement for the MySQL Client Library (libmysqlclient). MySQL Native Driver is part of the official PHP sources as of PHP 5.3.0. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.mysqlnd.php | diff --git a/php_modules/mysqlnd/build.yml b/php_modules/mysqlnd/build.yml new file mode 100644 index 0000000..a6cad66 --- /dev/null +++ b/php_modules/mysqlnd/build.yml @@ -0,0 +1,8 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +already_avail: [5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2] diff --git a/php_modules/mysqlnd/options.yml b/php_modules/mysqlnd/options.yml new file mode 100644 index 0000000..3aeccca --- /dev/null +++ b/php_modules/mysqlnd/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: mysqlnd + +# Exclude module build/installation for the following PHP versions +exclude: [5.2] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/mysqlnd/test.yml b/php_modules/mysqlnd/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/mysqlnd/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/oauth/README.md b/php_modules/oauth/README.md new file mode 100644 index 0000000..760e315 --- /dev/null +++ b/php_modules/oauth/README.md @@ -0,0 +1,7 @@ +# oauth + +This extension provides OAuth 1.0a consumer and provider bindings. OAuth is an authorization protocol built on top of HTTP which allows applications to securely access data without having to store usernames and passwords. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.oauth.php | diff --git a/php_modules/oauth/build.yml b/php_modules/oauth/build.yml new file mode 100644 index 0000000..634a83d --- /dev/null +++ b/php_modules/oauth/build.yml @@ -0,0 +1,30 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: pecl + build_dep: [libpcre3-dev, libcurl4-openssl-dev] + +5.6: + type: pecl + version: 1.2.3 + +5.5: + type: pecl + version: 1.2.3 + +5.4: + type: pecl + version: 1.2.3 + +5.3: + type: pecl + version: 1.2.3 + +5.2: + type: pecl + version: 1.2.3 diff --git a/php_modules/oauth/options.yml b/php_modules/oauth/options.yml new file mode 100644 index 0000000..5fe8901 --- /dev/null +++ b/php_modules/oauth/options.yml @@ -0,0 +1,27 @@ +--- + +# The name of the module +name: oauth + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +# https://www.php.net/manual/en/oauth.requirements.php +depends_build: + - pcre + - hash + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/oauth/test.yml b/php_modules/oauth/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/oauth/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/oci8/README.md b/php_modules/oci8/README.md new file mode 100644 index 0000000..adea92e --- /dev/null +++ b/php_modules/oci8/README.md @@ -0,0 +1,7 @@ +# oci8 + +These functions allow you to access Oracle Database. They support SQL and PL/SQL statements. Basic features include transaction control, binding of PHP variables to Oracle placeholders, and support for large object (LOB) types and collections. Oracle's scalability features such as Database Resident Connection Pooling (DRCP) and result caching are also supported. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.oci8.php | diff --git a/php_modules/oci8/build.yml b/php_modules/oci8/build.yml new file mode 100644 index 0000000..81540de --- /dev/null +++ b/php_modules/oci8/build.yml @@ -0,0 +1,51 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: builtin + configure: --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} + pre: | + ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \ + && ORACLE_HREF="$( \ + curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \ + | tac \ + | tac \ + | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \ + | tail -1 \ + )" \ + && ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ + && ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ + \ + && rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \ + && curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ + https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ + && curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ + https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ + && alien \ + -v \ + --target=$( dpkg --print-architecture ) \ + -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ + && alien \ + -v \ + --target=$( dpkg --print-architecture ) \ + -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ + && rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ + && rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ + build_dep: [alien, libaio-dev] + run_dep: [libaio1] + post: | + ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \ + && ORACLE_HREF="$( \ + curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \ + | tac \ + | tac \ + | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \ + | tail -1 \ + )" \ + && ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ + && ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ + && (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ diff --git a/php_modules/oci8/options.yml b/php_modules/oci8/options.yml new file mode 100644 index 0000000..73dc502 --- /dev/null +++ b/php_modules/oci8/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: oci8 + +# Exclude module build/installation for the following PHP versions +exclude: [5.2] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/oci8/test.yml b/php_modules/oci8/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/oci8/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/odbc/README.md b/php_modules/odbc/README.md new file mode 100644 index 0000000..8c3ad1e --- /dev/null +++ b/php_modules/odbc/README.md @@ -0,0 +1,7 @@ +# ODBC + +In addition to normal ODBC support, the Unified ODBC functions in PHP allow you to access several databases that have borrowed the semantics of the ODBC API to implement their own API. Instead of maintaining multiple database drivers that were all nearly identical, these drivers have been unified into a single set of ODBC functions. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.uodbc.php | diff --git a/php_modules/odbc/build.yml b/php_modules/odbc/build.yml new file mode 100644 index 0000000..6639f28 --- /dev/null +++ b/php_modules/odbc/build.yml @@ -0,0 +1,5 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions diff --git a/php_modules/odbc/options.yml b/php_modules/odbc/options.yml new file mode 100644 index 0000000..2989e5d --- /dev/null +++ b/php_modules/odbc/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: odbc + +# Exclude module build/installation for the following PHP versions +exclude: [5.2, 5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2] # TODO: sqlext.h' not found! + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/odbc/test.yml b/php_modules/odbc/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/odbc/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/opcache/README.md b/php_modules/opcache/README.md new file mode 100644 index 0000000..ffad4fe --- /dev/null +++ b/php_modules/opcache/README.md @@ -0,0 +1,7 @@ +# opcache + +OPcache improves PHP performance by storing precompiled script bytecode in shared memory, thereby removing the need for PHP to load and parse scripts on each request. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.opcache.php | diff --git a/php_modules/opcache/build.yml b/php_modules/opcache/build.yml new file mode 100644 index 0000000..8b37b7f --- /dev/null +++ b/php_modules/opcache/build.yml @@ -0,0 +1,29 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: builtin + +8.2: + type: builtin + pre: curl -sS https://raw.githubusercontent.com/php/php-src/php-8.0.6/ext/opcache/Optimizer/zend_dfg.h > /usr/local/include/php/Zend/Optimizer/zend_dfg.h + +8.1: + type: builtin + pre: curl -sS https://raw.githubusercontent.com/php/php-src/php-8.0.6/ext/opcache/Optimizer/zend_dfg.h > /usr/local/include/php/Zend/Optimizer/zend_dfg.h + +5.4: + type: pecl + command: pecl install zendopcache + +5.3: + type: pecl + command: pecl install zendopcache + +5.2: + type: pecl + command: pecl install zendopcache diff --git a/php_modules/opcache/options.yml b/php_modules/opcache/options.yml new file mode 100644 index 0000000..b32a99b --- /dev/null +++ b/php_modules/opcache/options.yml @@ -0,0 +1,29 @@ +--- + +# The name of the module +name: opcache + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# In order to be used together with other modules, it must be loaded before +# https://www.php.net/manual/en/opcache.installation.php +loads_before: + - xdebug + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/opcache/test.yml b/php_modules/opcache/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/opcache/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/openssl/README.md b/php_modules/openssl/README.md new file mode 100644 index 0000000..e79911e --- /dev/null +++ b/php_modules/openssl/README.md @@ -0,0 +1,7 @@ +# openssl + +This extension binds functions of OpenSSL library for symmetric and asymmetric encryption and decryption, PBKDF2, PKCS7, PKCS12, X509 and other crypto operations. In addition to that it provides implementation of TLS streams. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.openssl.php | diff --git a/php_modules/openssl/build.yml b/php_modules/openssl/build.yml new file mode 100644 index 0000000..a04b687 --- /dev/null +++ b/php_modules/openssl/build.yml @@ -0,0 +1,8 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +already_avail: "{{ php_all_versions }}" diff --git a/php_modules/openssl/options.yml b/php_modules/openssl/options.yml new file mode 100644 index 0000000..7f9ebae --- /dev/null +++ b/php_modules/openssl/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: openssl + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/openssl/test.yml b/php_modules/openssl/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/openssl/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/pcntl/README.md b/php_modules/pcntl/README.md new file mode 100644 index 0000000..febf1c4 --- /dev/null +++ b/php_modules/pcntl/README.md @@ -0,0 +1,7 @@ +# pcntl + +Process Control support in PHP implements the Unix style of process creation, program execution, signal handling and process termination. Process Control should not be enabled within a web server environment and unexpected results may happen if any Process Control functions are used within a web server environment. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.pcntl.php | diff --git a/php_modules/pcntl/build.yml b/php_modules/pcntl/build.yml new file mode 100644 index 0000000..6c0d2de --- /dev/null +++ b/php_modules/pcntl/build.yml @@ -0,0 +1,9 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: builtin diff --git a/php_modules/pcntl/options.yml b/php_modules/pcntl/options.yml new file mode 100644 index 0000000..59be8df --- /dev/null +++ b/php_modules/pcntl/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: pcntl + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/pcntl/test.yml b/php_modules/pcntl/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/pcntl/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/pcre/README.md b/php_modules/pcre/README.md new file mode 100644 index 0000000..cbd5a89 --- /dev/null +++ b/php_modules/pcre/README.md @@ -0,0 +1,7 @@ +# pcre + +The PCRE library is a set of functions that implement regular expression pattern matching using the same syntax and semantics as Perl 5, with just a few differences (see below). The current implementation corresponds to Perl 5.005. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.pcre.php | diff --git a/php_modules/pcre/build.yml b/php_modules/pcre/build.yml new file mode 100644 index 0000000..a04b687 --- /dev/null +++ b/php_modules/pcre/build.yml @@ -0,0 +1,8 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +already_avail: "{{ php_all_versions }}" diff --git a/php_modules/pcre/options.yml b/php_modules/pcre/options.yml new file mode 100644 index 0000000..fadf7ca --- /dev/null +++ b/php_modules/pcre/options.yml @@ -0,0 +1,21 @@ +--- + +# The name of the module +name: pcre + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/pcre/test.yml b/php_modules/pcre/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/pcre/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/pdo/README.md b/php_modules/pdo/README.md new file mode 100644 index 0000000..d85fabf --- /dev/null +++ b/php_modules/pdo/README.md @@ -0,0 +1,7 @@ +# pdo + +The PHP Data Objects (PDO) extension defines a lightweight, consistent interface for accessing databases in PHP. Each database driver that implements the PDO interface can expose database-specific features as regular extension functions. Note that you cannot perform any database functions using the PDO extension by itself; you must use a database-specific PDO driver to access a database server. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.pdo.php | diff --git a/php_modules/pdo/build.yml b/php_modules/pdo/build.yml new file mode 100644 index 0000000..a04b687 --- /dev/null +++ b/php_modules/pdo/build.yml @@ -0,0 +1,8 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +already_avail: "{{ php_all_versions }}" diff --git a/php_modules/pdo/options.yml b/php_modules/pdo/options.yml new file mode 100644 index 0000000..3d5fbdd --- /dev/null +++ b/php_modules/pdo/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: pdo + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/pdo/test.yml b/php_modules/pdo/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/pdo/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/pdo_dblib/README.md b/php_modules/pdo_dblib/README.md new file mode 100644 index 0000000..6e84e17 --- /dev/null +++ b/php_modules/pdo_dblib/README.md @@ -0,0 +1,7 @@ +# pdo_dblib + +PDO_DBLIB is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to Microsoft SQL Server and Sybase databases through the FreeTDS library. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/ref.pdo-dblib.php | diff --git a/php_modules/pdo_dblib/build.yml b/php_modules/pdo_dblib/build.yml new file mode 100644 index 0000000..e65fc61 --- /dev/null +++ b/php_modules/pdo_dblib/build.yml @@ -0,0 +1,12 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: builtin + pre: ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libsybdb.* /usr/lib/ + build_dep: [freetds-dev] + run_dep: [libsybdb5] diff --git a/php_modules/pdo_dblib/options.yml b/php_modules/pdo_dblib/options.yml new file mode 100644 index 0000000..23d394c --- /dev/null +++ b/php_modules/pdo_dblib/options.yml @@ -0,0 +1,25 @@ +--- + +# The name of the module +name: pdo_dblib + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: + - pdo + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/pdo_dblib/test.yml b/php_modules/pdo_dblib/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/pdo_dblib/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/pdo_firebird/README.md b/php_modules/pdo_firebird/README.md new file mode 100644 index 0000000..4de5486 --- /dev/null +++ b/php_modules/pdo_firebird/README.md @@ -0,0 +1,7 @@ +# pdo_firebird + +PDO_FIREBIRD is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to Firebird database. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/ref.pdo-firebird.php | diff --git a/php_modules/pdo_firebird/build.yml b/php_modules/pdo_firebird/build.yml new file mode 100644 index 0000000..03fbc42 --- /dev/null +++ b/php_modules/pdo_firebird/build.yml @@ -0,0 +1,11 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: builtin + build_dep: [libfbclient2, libib-util, firebird-dev] + run_dep: [libfbclient2] diff --git a/php_modules/pdo_firebird/options.yml b/php_modules/pdo_firebird/options.yml new file mode 100644 index 0000000..546b549 --- /dev/null +++ b/php_modules/pdo_firebird/options.yml @@ -0,0 +1,25 @@ +--- + +# The name of the module +name: pdo_firebird + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: + - pdo + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/pdo_firebird/test.yml b/php_modules/pdo_firebird/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/pdo_firebird/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/pdo_mysql/README.md b/php_modules/pdo_mysql/README.md new file mode 100644 index 0000000..f697abf --- /dev/null +++ b/php_modules/pdo_mysql/README.md @@ -0,0 +1,7 @@ +# pdo_mysql + +PDO_MYSQL is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to MySQL databases. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/ref.pdo-mysql.php | diff --git a/php_modules/pdo_mysql/build.yml b/php_modules/pdo_mysql/build.yml new file mode 100644 index 0000000..738f9f2 --- /dev/null +++ b/php_modules/pdo_mysql/build.yml @@ -0,0 +1,42 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: builtin + configure: --with-zlib-dir=/usr + run_dep: [libmariadbd19] + build_dep: [zlib1g-dev, libmariadb-dev] + +7.0: + type: builtin + run_dep: [libmariadbclient18] + build_dep: [zlib1g-dev, libmariadbclient-dev] + +5.6: + type: builtin + run_dep: [libmariadbclient18] + build_dep: [zlib1g-dev, libmariadbclient-dev] + +5.5: + type: builtin + run_dep: [libmysqlclient18] + build_dep: [zlib1g-dev, libmysqlclient-dev] + +5.4: + type: builtin + run_dep: [libmysqlclient18] + build_dep: [zlib1g-dev, libmysqlclient-dev] + +5.3: + type: builtin + run_dep: [libmysqlclient18] + build_dep: [zlib1g-dev, libmysqlclient-dev] + +5.2: + type: builtin + run_dep: [libmysqlclient18] + build_dep: [zlib1g-dev, libmysqlclient-dev] diff --git a/php_modules/pdo_mysql/options.yml b/php_modules/pdo_mysql/options.yml new file mode 100644 index 0000000..34b5f24 --- /dev/null +++ b/php_modules/pdo_mysql/options.yml @@ -0,0 +1,25 @@ +--- + +# The name of the module +name: pdo_mysql + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: + - pdo + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/pdo_mysql/test.yml b/php_modules/pdo_mysql/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/pdo_mysql/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/pdo_oci/README.md b/php_modules/pdo_oci/README.md new file mode 100644 index 0000000..da72307 --- /dev/null +++ b/php_modules/pdo_oci/README.md @@ -0,0 +1,7 @@ +# pdo_oci + +Connect to Oracle databases. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/ref.pdo-oci.php | diff --git a/php_modules/pdo_oci/build.yml b/php_modules/pdo_oci/build.yml new file mode 100644 index 0000000..769453e --- /dev/null +++ b/php_modules/pdo_oci/build.yml @@ -0,0 +1,62 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + +all: + type: builtin + configure: --with-pdo-oci=instantclient,/usr,${ORACLE_VERSION_MAJOR} + pre: | + ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \ + && ORACLE_HREF="$( \ + curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \ + | tac \ + | tac \ + | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \ + | tail -1 \ + )" \ + && ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ + && ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ + \ + && rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \ + && curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ + https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ + && curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ + https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ + && alien \ + -v \ + --target=$( dpkg --print-architecture ) \ + -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ + && alien \ + -v \ + --target=$( dpkg --print-architecture ) \ + -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ + && rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ + && rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \ + && (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ + build_dep: [alien] + +8.2: + type: builtin + configure: --with-pdo-oci=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} + +8.1: + type: builtin + configure: --with-pdo-oci=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} + +8.0: + type: builtin + configure: --with-pdo-oci=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} + +7.4: + type: builtin + configure: --with-pdo-oci=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} + +7.3: + type: builtin + configure: --with-pdo-oci=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} + +7.2: + type: builtin + configure: --with-pdo-oci=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} diff --git a/php_modules/pdo_oci/options.yml b/php_modules/pdo_oci/options.yml new file mode 100644 index 0000000..a533c8b --- /dev/null +++ b/php_modules/pdo_oci/options.yml @@ -0,0 +1,25 @@ +--- + +# The name of the module +name: pdo_oci + +# Exclude module build/installation for the following PHP versions +exclude: [5.2, 5.3, 5.4, 5.5, 5.6] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: + - pdo + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/pdo_oci/test.yml b/php_modules/pdo_oci/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/pdo_oci/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/pdo_odbc/README.md b/php_modules/pdo_odbc/README.md new file mode 100644 index 0000000..1c4a549 --- /dev/null +++ b/php_modules/pdo_odbc/README.md @@ -0,0 +1,7 @@ +# pdo_odbc + +PDO_ODBC is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to databases through ODBC drivers or through the IBM DB2 Call Level Interface (DB2 CLI) library. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/ref.pdo-odbc.php | diff --git a/php_modules/pdo_odbc/build.yml b/php_modules/pdo_odbc/build.yml new file mode 100644 index 0000000..6639f28 --- /dev/null +++ b/php_modules/pdo_odbc/build.yml @@ -0,0 +1,5 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions diff --git a/php_modules/pdo_odbc/options.yml b/php_modules/pdo_odbc/options.yml new file mode 100644 index 0000000..7124098 --- /dev/null +++ b/php_modules/pdo_odbc/options.yml @@ -0,0 +1,25 @@ +--- + +# The name of the module +name: pdo_odbc + +# Exclude module build/installation for the following PHP versions +exclude: [5.2, 5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2] # TODO: Build errors + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: + - pdo + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/pdo_odbc/test.yml b/php_modules/pdo_odbc/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/pdo_odbc/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/pdo_pgsql/README.md b/php_modules/pdo_pgsql/README.md new file mode 100644 index 0000000..11783bc --- /dev/null +++ b/php_modules/pdo_pgsql/README.md @@ -0,0 +1,7 @@ +# pdo_pgsql + +PDO_PGSQL is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to PostgreSQL databases. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/ref.pdo-pgsql.php | diff --git a/php_modules/pdo_pgsql/build.yml b/php_modules/pdo_pgsql/build.yml new file mode 100644 index 0000000..6998b9f --- /dev/null +++ b/php_modules/pdo_pgsql/build.yml @@ -0,0 +1,11 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: builtin + build_dep: [libpq-dev] + run_dep: [libpq5] diff --git a/php_modules/pdo_pgsql/options.yml b/php_modules/pdo_pgsql/options.yml new file mode 100644 index 0000000..86e6db7 --- /dev/null +++ b/php_modules/pdo_pgsql/options.yml @@ -0,0 +1,25 @@ +--- + +# The name of the module +name: pdo_pgsql + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: + - pdo + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/pdo_pgsql/test.yml b/php_modules/pdo_pgsql/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/pdo_pgsql/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/pdo_sqlite/README.md b/php_modules/pdo_sqlite/README.md new file mode 100644 index 0000000..c3680ae --- /dev/null +++ b/php_modules/pdo_sqlite/README.md @@ -0,0 +1,7 @@ +# pdo_sqlite + +PDO_SQLITE is a driver that implements the PHP Data Objects (PDO) interface to enable access to SQLite 3 databases. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/ref.pdo-sqlite.php | diff --git a/php_modules/pdo_sqlite/build.yml b/php_modules/pdo_sqlite/build.yml new file mode 100644 index 0000000..a04b687 --- /dev/null +++ b/php_modules/pdo_sqlite/build.yml @@ -0,0 +1,8 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +already_avail: "{{ php_all_versions }}" diff --git a/php_modules/pdo_sqlite/options.yml b/php_modules/pdo_sqlite/options.yml new file mode 100644 index 0000000..63e1861 --- /dev/null +++ b/php_modules/pdo_sqlite/options.yml @@ -0,0 +1,25 @@ +--- + +# The name of the module +name: pdo_sqlite + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: + - pdo + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/pdo_sqlite/test.yml b/php_modules/pdo_sqlite/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/pdo_sqlite/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/pdo_sqlsrv/README.md b/php_modules/pdo_sqlsrv/README.md new file mode 100644 index 0000000..e0517e7 --- /dev/null +++ b/php_modules/pdo_sqlsrv/README.md @@ -0,0 +1,7 @@ +# pdo_sqlsrv + +PDO_SQLSRV is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to MS SQL Server (starting with SQL Server 2005) and SQL Azure databases. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/ref.pdo-sqlsrv.php | diff --git a/php_modules/pdo_sqlsrv/build.yml b/php_modules/pdo_sqlsrv/build.yml new file mode 100644 index 0000000..fa19ee1 --- /dev/null +++ b/php_modules/pdo_sqlsrv/build.yml @@ -0,0 +1,27 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: pecl + build_dep: [unixodbc-dev] + run_dep: [unixodbc] + +7.3: + type: pecl + version: 5.9.0 + +7.2: + type: pecl + version: 5.8.1 + +7.1: + type: pecl + version: 5.6.1 + +7.0: + type: pecl + version: 5.3.0 diff --git a/php_modules/pdo_sqlsrv/options.yml b/php_modules/pdo_sqlsrv/options.yml new file mode 100644 index 0000000..4f447e0 --- /dev/null +++ b/php_modules/pdo_sqlsrv/options.yml @@ -0,0 +1,25 @@ +--- + +# The name of the module +name: pdo_sqlsrv + +# Exclude module build/installation for the following PHP versions +exclude: [5.2, 5.3, 5.4, 5.5, 5.6] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: + - pdo + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/pdo_sqlsrv/test.yml b/php_modules/pdo_sqlsrv/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/pdo_sqlsrv/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/pgsql/README.md b/php_modules/pgsql/README.md new file mode 100644 index 0000000..6b05c79 --- /dev/null +++ b/php_modules/pgsql/README.md @@ -0,0 +1,7 @@ +# pgsql + +PostgreSQL database is an Open Source product and available without cost. Postgres, developed originally in the UC Berkeley Computer Science Department, pioneered many of the object-relational concepts now becoming available in some commercial databases. It provides SQL92/SQL99 language support, transactions, referential integrity, stored procedures and type extensibility. PostgreSQL is an open source descendant of this original Berkeley code. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.pgsql.php | diff --git a/php_modules/pgsql/build.yml b/php_modules/pgsql/build.yml new file mode 100644 index 0000000..6998b9f --- /dev/null +++ b/php_modules/pgsql/build.yml @@ -0,0 +1,11 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: builtin + build_dep: [libpq-dev] + run_dep: [libpq5] diff --git a/php_modules/pgsql/options.yml b/php_modules/pgsql/options.yml new file mode 100644 index 0000000..b109c7b --- /dev/null +++ b/php_modules/pgsql/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: pgsql + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/pgsql/test.yml b/php_modules/pgsql/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/pgsql/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/phalcon/README.md b/php_modules/phalcon/README.md new file mode 100644 index 0000000..aecf018 --- /dev/null +++ b/php_modules/phalcon/README.md @@ -0,0 +1,10 @@ +# phalcon + +Phalcon is an open source web framework delivered as a C extension for the PHP language providing high performance and lower resource consumption. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| GitHub | https://github.com/phalcon/cphalcon | +| Pecl | https://pecl.php.net/package/phalcon | +| Web | https://phalcon.io | +| Doc | https://docs.phalcon.io/5.0/en/environments-devilbox | diff --git a/php_modules/phalcon/build.yml b/php_modules/phalcon/build.yml new file mode 100644 index 0000000..efb73ef --- /dev/null +++ b/php_modules/phalcon/build.yml @@ -0,0 +1,68 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: git + git_url: https://github.com/phalcon/cphalcon + git_ref: | + $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags \ + | sort -V \ + | sed 's/^.*tags\///g' \ + | grep -E '^v[.0-9]+$' \ + | tail -1 \ + ) \ + command: cd build && ./install + build_dep: [libpcre3-dev, re2c] + run_dep: [] + +7.3: + type: git + git_url: https://github.com/phalcon/cphalcon + git_ref: v4.1.2 + command: cd build && ./install + +7.2: + type: git + git_url: https://github.com/phalcon/cphalcon + git_ref: v4.1.1 + command: cd build && ./install + +7.1: + type: git + git_url: https://github.com/phalcon/cphalcon + git_ref: v3.4.4 + command: cd build && ./install + +7.0: + type: git + git_url: https://github.com/phalcon/cphalcon + git_ref: v3.4.4 + command: cd build && ./install + +5.6: + type: git + git_url: https://github.com/phalcon/cphalcon + git_ref: v3.4.4 + command: cd build && ./install + +5.5: + type: git + git_url: https://github.com/phalcon/cphalcon + git_ref: v3.4.4 + command: cd build && ./install + +5.4: + type: git + git_url: https://github.com/phalcon/cphalcon + git_ref: phalcon-v2.0.13 + command: cd build && ./install + +5.3: + type: git + git_url: https://github.com/phalcon/cphalcon + git_ref: phalcon-v2.0.9 + command: cd build && ./install diff --git a/php_modules/phalcon/options.yml b/php_modules/phalcon/options.yml new file mode 100644 index 0000000..6dee662 --- /dev/null +++ b/php_modules/phalcon/options.yml @@ -0,0 +1,92 @@ +--- + +# The name of the module +name: phalcon + +# Exclude module build/installation for the following PHP versions +exclude: + - 5.2 + - 8.2 + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +# https://docs.phalcon.io/5.0/en/installation#software +depends_build: + - curl + - fileinfo + - gd + - gettext + - imagick + - interbase + - json + - mbstring + - memcache + - memcached + - mongo + - mongodb + - mysql + - mysqli + - mysqlnd + - oci8 + - odbc + - openssl + - pdo + - pdo_dblib + - pdo_firebird + - pdo_mysql + - pdo_oci + - pdo_odbc + - pdo_pgsql + - pdo_sqlite + - pdo_sqlsrv + - pgsql + - psr + - redis + - sqlite3 + - sqlsrv + +# In order for this module to function correctly, +# the following modules must be loaded before. +# https://docs.phalcon.io/5.0/en/installation#load-order +depends_load: + - curl + - fileinfo + - gd + - gettext + - imagick + - interbase + - json + - mbstring + - memcache + - memcached + - mongo + - mongodb + - mysql + - mysqli + - mysqlnd + - oci8 + - odbc + - openssl + - pdo + - pdo_dblib + - pdo_firebird + - pdo_mysql + - pdo_oci + - pdo_odbc + - pdo_pgsql + - pdo_sqlite + - pdo_sqlsrv + - pgsql + - psr + - redis + - sqlite3 + - sqlsrv + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: false + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: false diff --git a/php_modules/phalcon/test.yml b/php_modules/phalcon/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/phalcon/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/phar/README.md b/php_modules/phar/README.md new file mode 100644 index 0000000..26e8c14 --- /dev/null +++ b/php_modules/phar/README.md @@ -0,0 +1,7 @@ +# phar + +The phar extension provides a way to put entire PHP applications into a single file called a "phar" (PHP Archive) for easy distribution and installation. In addition to providing this service, the phar extension also provides a file-format abstraction method for creating and manipulating tar and zip files through the PharData class, much as PDO provides a unified interface for accessing different databases. Unlike PDO, which cannot convert between different databases, Phar also can convert between tar, zip and phar file formats with a single line of code. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.phar.php | diff --git a/php_modules/phar/build.yml b/php_modules/phar/build.yml new file mode 100644 index 0000000..e65dc47 --- /dev/null +++ b/php_modules/phar/build.yml @@ -0,0 +1,12 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +already_avail: [5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2] + +5.2: + type: pecl + build_dep: [libssl-dev] diff --git a/php_modules/phar/options.yml b/php_modules/phar/options.yml new file mode 100644 index 0000000..d9b5cb0 --- /dev/null +++ b/php_modules/phar/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: phar + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/phar/test.yml b/php_modules/phar/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/phar/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/posix/README.md b/php_modules/posix/README.md new file mode 100644 index 0000000..2d28219 --- /dev/null +++ b/php_modules/posix/README.md @@ -0,0 +1,7 @@ +# posix + +This module contains an interface to those functions defined in the IEEE 1003.1 (POSIX.1) standards document which are not accessible through other means. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.posix.php | diff --git a/php_modules/posix/build.yml b/php_modules/posix/build.yml new file mode 100644 index 0000000..a04b687 --- /dev/null +++ b/php_modules/posix/build.yml @@ -0,0 +1,8 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +already_avail: "{{ php_all_versions }}" diff --git a/php_modules/posix/options.yml b/php_modules/posix/options.yml new file mode 100644 index 0000000..8c89bde --- /dev/null +++ b/php_modules/posix/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: posix + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/posix/test.yml b/php_modules/posix/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/posix/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/pspell/README.md b/php_modules/pspell/README.md new file mode 100644 index 0000000..d7a57f8 --- /dev/null +++ b/php_modules/pspell/README.md @@ -0,0 +1,7 @@ +# pspell + +These functions allow you to check the spelling of a word and offer suggestions. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.pspell.php | diff --git a/php_modules/pspell/build.yml b/php_modules/pspell/build.yml new file mode 100644 index 0000000..8fdac37 --- /dev/null +++ b/php_modules/pspell/build.yml @@ -0,0 +1,11 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: builtin + build_dep: [libpspell-dev] + run_dep: [libaspell15] diff --git a/php_modules/pspell/options.yml b/php_modules/pspell/options.yml new file mode 100644 index 0000000..60a0f7e --- /dev/null +++ b/php_modules/pspell/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: pspell + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/pspell/test.yml b/php_modules/pspell/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/pspell/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/psr/README.md b/php_modules/psr/README.md new file mode 100644 index 0000000..d5cdac7 --- /dev/null +++ b/php_modules/psr/README.md @@ -0,0 +1,8 @@ +# psr + +This PHP extension provides the interfaces from the PSR standards as established by the PHP-FIG group. You can use interfaces provided by this extension in another extension easily - see this example. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| GitHub | https://github.com/jbboehr/php-psr | +| Pecl | https://www.php.net/manual/en/book.pspell.php | diff --git a/php_modules/psr/build.yml b/php_modules/psr/build.yml new file mode 100644 index 0000000..0101db7 --- /dev/null +++ b/php_modules/psr/build.yml @@ -0,0 +1,33 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: pecl + +7.2: + type: pecl + version: 1.1.0 + +7.1: + type: pecl + version: 1.1.0 + +7.0: + type: pecl + version: 1.1.0 + +5.6: + type: pecl + version: 0.6.0 # NOTE: 0.6.1 fails with: Package "psr" Version "0.6.1" does not have REST xml available + +5.5: + type: pecl + version: 0.5.1 + +5.4: + type: pecl + version: 0.5.1 diff --git a/php_modules/psr/options.yml b/php_modules/psr/options.yml new file mode 100644 index 0000000..518f3e1 --- /dev/null +++ b/php_modules/psr/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: psr + +# Exclude module build/installation for the following PHP versions +exclude: [5.2, 5.3] # IMPORTANT: Required by PHP >= 7.2 by phalcon >=4.0 module + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/psr/test.yml b/php_modules/psr/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/psr/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/random/README.md b/php_modules/random/README.md new file mode 100644 index 0000000..ea176fe --- /dev/null +++ b/php_modules/random/README.md @@ -0,0 +1,7 @@ +# random + +Random Number Generators and Functions Related to Randomness. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.random.php | diff --git a/php_modules/random/build.yml b/php_modules/random/build.yml new file mode 100644 index 0000000..a04b687 --- /dev/null +++ b/php_modules/random/build.yml @@ -0,0 +1,8 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +already_avail: "{{ php_all_versions }}" diff --git a/php_modules/random/options.yml b/php_modules/random/options.yml new file mode 100644 index 0000000..bd8a3e4 --- /dev/null +++ b/php_modules/random/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: random + +# Exclude module build/installation for the following PHP versions +exclude: [5.2, 5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/random/test.yml b/php_modules/random/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/random/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/rdkafka/README.md b/php_modules/rdkafka/README.md new file mode 100644 index 0000000..6e6eee8 --- /dev/null +++ b/php_modules/rdkafka/README.md @@ -0,0 +1,8 @@ +# rdkafka + +PHP-rdkafka is a stable, production-ready, long term support, and fast Kafka client for PHP based on librdkafka. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| GitHub | https://github.com/arnaud-lb/php-rdkafka | +| Pecl | https://pecl.php.net/package/rdkafka | diff --git a/php_modules/rdkafka/build.yml b/php_modules/rdkafka/build.yml new file mode 100644 index 0000000..46907bc --- /dev/null +++ b/php_modules/rdkafka/build.yml @@ -0,0 +1,31 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: pecl + build_dep: [librdkafka-dev] + run_dep: [librdkafka1] + +7.0: + type: pecl + version: 3.1.2 + +5.6: + type: pecl + version: 3.1.2 + +5.5: + type: pecl + version: 3.0.5 + +5.4: + type: pecl + version: 3.0.5 + +5.3: + type: pecl + version: 3.0.5 diff --git a/php_modules/rdkafka/options.yml b/php_modules/rdkafka/options.yml new file mode 100644 index 0000000..abe2300 --- /dev/null +++ b/php_modules/rdkafka/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: rdkafka + +# Exclude module build/installation for the following PHP versions +exclude: [5.2] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/rdkafka/test.yml b/php_modules/rdkafka/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/rdkafka/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/readline/README.md b/php_modules/readline/README.md new file mode 100644 index 0000000..03aa928 --- /dev/null +++ b/php_modules/readline/README.md @@ -0,0 +1,7 @@ +# readline + +The readline functions implement an interface to the GNU Readline library. These are functions that provide editable command lines. An example being the way Bash allows you to use the arrow keys to insert characters or scroll through command history. Because of the interactive nature of this library, it will be of little use for writing Web applications, but may be useful when writing scripts used from a command line. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.readline.php | diff --git a/php_modules/readline/build.yml b/php_modules/readline/build.yml new file mode 100644 index 0000000..a8627a4 --- /dev/null +++ b/php_modules/readline/build.yml @@ -0,0 +1,9 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +already_avail: "{{ php_all_versions }}" +# TODO: requires run_dep libreadline diff --git a/php_modules/readline/options.yml b/php_modules/readline/options.yml new file mode 100644 index 0000000..cc9a696 --- /dev/null +++ b/php_modules/readline/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: readline + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/readline/test.yml b/php_modules/readline/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/readline/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/recode/README.md b/php_modules/recode/README.md new file mode 100644 index 0000000..6c40a4d --- /dev/null +++ b/php_modules/recode/README.md @@ -0,0 +1,7 @@ +# recode + +This module contains an interface to the GNU Recode library. The GNU Recode library converts files between various coded character sets and surface encodings. When this cannot be achieved exactly, it may get rid of the offending characters or fall back on approximations. The library recognises or produces nearly 150 different character sets and is able to convert files between almost any pair. Most » RFC 1345 character sets are supported. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.recode.php | diff --git a/php_modules/recode/build.yml b/php_modules/recode/build.yml new file mode 100644 index 0000000..54b88df --- /dev/null +++ b/php_modules/recode/build.yml @@ -0,0 +1,13 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +already_avail: [5.2, 5.3, 5.4, 5.5] + +all: + type: builtin + build_dep: [librecode-dev] + run_dep: [librecode0] diff --git a/php_modules/recode/options.yml b/php_modules/recode/options.yml new file mode 100644 index 0000000..f0b6f87 --- /dev/null +++ b/php_modules/recode/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: recode + +# Exclude module build/installation for the following PHP versions +exclude: [7.4, 8.0, 8.1, 8.2] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/recode/test.yml b/php_modules/recode/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/recode/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/redis/README.md b/php_modules/redis/README.md new file mode 100644 index 0000000..8c0783b --- /dev/null +++ b/php_modules/redis/README.md @@ -0,0 +1,8 @@ +# redis + +The phpredis extension provides an API for communicating with the Redis key-value store. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| GitHub | https://github.com/phpredis/phpredis | +| Pecl | https://pecl.php.net/package/redis | diff --git a/php_modules/redis/build.yml b/php_modules/redis/build.yml new file mode 100644 index 0000000..9d12e04 --- /dev/null +++ b/php_modules/redis/build.yml @@ -0,0 +1,163 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: git + git_url: https://github.com/phpredis/phpredis + git_ref: $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) + pre: | + if [ -f /usr/include/liblzf/lzf.h ]; then \ + ln -s /usr/include/liblzf/lzf.h /usr/include/; \ + fi \ + command: | + REDIS_ARGS=""; \ + if php -m | grep -q "igbinary"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \ + fi; \ + if php -m | grep -q "lz4"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-lz4 --with-liblz4=/usr"; \ + fi; \ + if php -m | grep -q "lzf"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-lzf --with-liblzf=/usr"; \ + fi; \ + if php -m | grep -q "msgpack"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \ + fi; \ + if php -m | grep -q "zstd"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-zstd"; \ + fi; \ + phpize \ + && ./configure --enable-redis ${REDIS_ARGS} \ + && make -j$(getconf _NPROCESSORS_ONLN) \ + && make install \ + build_dep: + - liblz4-dev + - liblzf-dev + - libzstd-dev + run_dep: + - liblz4-1 + - liblzf1 + - libzstd1 + +# system liblzf not available +# lzf.h: No such file or directory +7.2: + type: git + git_url: https://github.com/phpredis/phpredis + git_ref: $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) + command: | + REDIS_ARGS=""; \ + if php -m | grep -q "igbinary"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \ + fi; \ + if php -m | grep -q "lz4"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-lz4 --with-liblz4=/usr"; \ + fi; \ + if php -m | grep -q "msgpack"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \ + fi; \ + if php -m | grep -q "zstd"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-zstd"; \ + fi; \ + phpize \ + && ./configure --enable-redis ${REDIS_ARGS} \ + && make -j$(getconf _NPROCESSORS_ONLN) \ + && make install \ + build_dep: + - liblz4-dev + - libzstd-dev + run_dep: + - liblz4-1 + - libzstd1 + +# system liblzf not available +# lzf.h: No such file or directory +7.1: + type: git + git_url: https://github.com/phpredis/phpredis + git_ref: $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) + command: | + REDIS_ARGS=""; \ + if php -m | grep -q "igbinary"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \ + fi; \ + if php -m | grep -q "lz4"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-lz4 --with-liblz4=/usr"; \ + fi; \ + if php -m | grep -q "msgpack"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \ + fi; \ + if php -m | grep -q "zstd"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-zstd"; \ + fi; \ + phpize \ + && ./configure --enable-redis ${REDIS_ARGS} \ + && make -j$(getconf _NPROCESSORS_ONLN) \ + && make install \ + build_dep: + - liblz4-dev + - libzstd-dev + run_dep: + - liblz4-1 + - libzstd1 + +# system liblzf not available +# libzstd is 1.1.2, but >=1.3.0 is required +# lzf.h: No such file or directory +7.0: + type: git + git_url: https://github.com/phpredis/phpredis + git_ref: $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) + command: | + REDIS_ARGS=""; \ + if php -m | grep -q "igbinary"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \ + fi; \ + if php -m | grep -q "lz4"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-lz4 --with-liblz4=/usr"; \ + fi; \ + if php -m | grep -q "msgpack"; then \ + REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \ + fi; \ + phpize \ + && ./configure --enable-redis ${REDIS_ARGS} \ + && make -j$(getconf _NPROCESSORS_ONLN) \ + && make install \ + build_dep: + - liblz4-dev + run_dep: + - liblz4-1 + +5.6: + type: pecl + version: 4.3.0 + build_dep: [] + run_dep: [] + +5.5: + type: pecl + version: 4.3.0 + build_dep: [] + run_dep: [] + +5.4: + type: pecl + version: 4.3.0 + build_dep: [] + run_dep: [] + +5.3: + type: pecl + version: 4.3.0 + build_dep: [] + run_dep: [] + +5.2: + type: pecl + version: 2.2.7 + build_dep: [] + run_dep: [] diff --git a/php_modules/redis/options.yml b/php_modules/redis/options.yml new file mode 100644 index 0000000..eba9d9d --- /dev/null +++ b/php_modules/redis/options.yml @@ -0,0 +1,29 @@ +--- + +# The name of the module +name: redis + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: + - igbinary + - lz4 + - lzf + - msgpack + - zstd + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/redis/test.yml b/php_modules/redis/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/redis/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/reflection/README.md b/php_modules/reflection/README.md new file mode 100644 index 0000000..07211e7 --- /dev/null +++ b/php_modules/reflection/README.md @@ -0,0 +1,7 @@ +# reflection + +PHP comes with a complete reflection API that adds the ability to introspect classes, interfaces, functions, methods and extensions. Additionally, the reflection API offers ways to retrieve doc comments for functions, classes and methods. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.reflection.php | diff --git a/php_modules/reflection/build.yml b/php_modules/reflection/build.yml new file mode 100644 index 0000000..a04b687 --- /dev/null +++ b/php_modules/reflection/build.yml @@ -0,0 +1,8 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +already_avail: "{{ php_all_versions }}" diff --git a/php_modules/reflection/options.yml b/php_modules/reflection/options.yml new file mode 100644 index 0000000..aaff243 --- /dev/null +++ b/php_modules/reflection/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: reflection + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/reflection/test.yml b/php_modules/reflection/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/reflection/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/session/README.md b/php_modules/session/README.md new file mode 100644 index 0000000..dbd8a0c --- /dev/null +++ b/php_modules/session/README.md @@ -0,0 +1,7 @@ +# session + +Session support in PHP consists of a way to preserve certain data across subsequent accesses. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.session.php | diff --git a/php_modules/session/build.yml b/php_modules/session/build.yml new file mode 100644 index 0000000..a04b687 --- /dev/null +++ b/php_modules/session/build.yml @@ -0,0 +1,8 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +already_avail: "{{ php_all_versions }}" diff --git a/php_modules/session/options.yml b/php_modules/session/options.yml new file mode 100644 index 0000000..992f27c --- /dev/null +++ b/php_modules/session/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: session + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/session/test.yml b/php_modules/session/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/session/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/shmop/README.md b/php_modules/shmop/README.md new file mode 100644 index 0000000..f0d24ab --- /dev/null +++ b/php_modules/shmop/README.md @@ -0,0 +1,7 @@ +# shmop + +Shmop is an easy to use set of functions that allows PHP to read, write, create and delete Unix shared memory segments. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.shmop.php | diff --git a/php_modules/shmop/build.yml b/php_modules/shmop/build.yml new file mode 100644 index 0000000..6c0d2de --- /dev/null +++ b/php_modules/shmop/build.yml @@ -0,0 +1,9 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: builtin diff --git a/php_modules/shmop/options.yml b/php_modules/shmop/options.yml new file mode 100644 index 0000000..47bff47 --- /dev/null +++ b/php_modules/shmop/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: shmop + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/shmop/test.yml b/php_modules/shmop/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/shmop/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/simplexml/README.md b/php_modules/simplexml/README.md new file mode 100644 index 0000000..d523ead --- /dev/null +++ b/php_modules/simplexml/README.md @@ -0,0 +1,7 @@ +# simplexml + +The SimpleXML extension provides a very simple and easily usable toolset to convert XML to an object that can be processed with normal property selectors and array iterators. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.simplexml.php | diff --git a/php_modules/simplexml/build.yml b/php_modules/simplexml/build.yml new file mode 100644 index 0000000..a04b687 --- /dev/null +++ b/php_modules/simplexml/build.yml @@ -0,0 +1,8 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +already_avail: "{{ php_all_versions }}" diff --git a/php_modules/simplexml/options.yml b/php_modules/simplexml/options.yml new file mode 100644 index 0000000..b607e8c --- /dev/null +++ b/php_modules/simplexml/options.yml @@ -0,0 +1,25 @@ +--- + +# The name of the module +name: simplexml + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: + - libxml + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/simplexml/test.yml b/php_modules/simplexml/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/simplexml/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/snmp/README.md b/php_modules/snmp/README.md new file mode 100644 index 0000000..2365a3a --- /dev/null +++ b/php_modules/snmp/README.md @@ -0,0 +1,9 @@ +# snmp + +The SNMP extension provides a very simple and easily usable toolset for managing remote devices via the Simple Network Management Protocol. + +As it is a wrapper around the underlying Net-SNMP library, all basic concepts are the same and the PHP functions change their behaviour depending on the Net-SNMP configuration files and environment variables. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.snmp.php | diff --git a/php_modules/snmp/build.yml b/php_modules/snmp/build.yml new file mode 100644 index 0000000..6acd219 --- /dev/null +++ b/php_modules/snmp/build.yml @@ -0,0 +1,12 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: builtin + configure: --with-snmp + build_dep: [libssl-dev, libsnmp-dev, snmp] + run_dep: [snmp] diff --git a/php_modules/snmp/options.yml b/php_modules/snmp/options.yml new file mode 100644 index 0000000..57939bb --- /dev/null +++ b/php_modules/snmp/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: snmp + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/snmp/test.yml b/php_modules/snmp/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/snmp/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/soap/README.md b/php_modules/soap/README.md new file mode 100644 index 0000000..6e291a3 --- /dev/null +++ b/php_modules/soap/README.md @@ -0,0 +1,7 @@ +# soap + +The SOAP extension can be used to write SOAP Servers and Clients. It supports subsets of SOAP 1.1, SOAP 1.2 and WSDL 1.1 specifications. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.soap.php | diff --git a/php_modules/soap/build.yml b/php_modules/soap/build.yml new file mode 100644 index 0000000..2962660 --- /dev/null +++ b/php_modules/soap/build.yml @@ -0,0 +1,10 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: builtin + build_dep: [libxml2-dev] diff --git a/php_modules/soap/options.yml b/php_modules/soap/options.yml new file mode 100644 index 0000000..2f47358 --- /dev/null +++ b/php_modules/soap/options.yml @@ -0,0 +1,25 @@ +--- + +# The name of the module +name: soap + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: + - libxml + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/soap/test.yml b/php_modules/soap/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/soap/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/sockets/README.md b/php_modules/sockets/README.md new file mode 100644 index 0000000..9d4f25b --- /dev/null +++ b/php_modules/sockets/README.md @@ -0,0 +1,7 @@ +# sockets + +The socket extension implements a low-level interface to the socket communication functions based on the popular BSD sockets, providing the possibility to act as a socket server as well as a client. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.sockets.php | diff --git a/php_modules/sockets/build.yml b/php_modules/sockets/build.yml new file mode 100644 index 0000000..0be33bf --- /dev/null +++ b/php_modules/sockets/build.yml @@ -0,0 +1,26 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + +all: + type: builtin + +8.2: + # Remove ucred (currently breaks build) + pre: | + docker-php-ext-configure sockets \ + && sed -i'' 's/.*ucred.*//g' /usr/src/php/ext/sockets/sendrecvmsg.c \ + +8.1: + # Remove ucred (currently breaks build) + pre: | + docker-php-ext-configure sockets \ + && sed -i'' 's/.*ucred.*//g' /usr/src/php/ext/sockets/sendrecvmsg.c \ + +8.0: + # Remove ucred (currently breaks build) + pre: | + docker-php-ext-configure sockets \ + && sed -i'' 's/.*ucred.*//g' /usr/src/php/ext/sockets/sendrecvmsg.c \ diff --git a/php_modules/sockets/options.yml b/php_modules/sockets/options.yml new file mode 100644 index 0000000..9c879b4 --- /dev/null +++ b/php_modules/sockets/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: sockets + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/sockets/test.yml b/php_modules/sockets/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/sockets/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/sodium/README.md b/php_modules/sodium/README.md new file mode 100644 index 0000000..4711b42 --- /dev/null +++ b/php_modules/sodium/README.md @@ -0,0 +1,7 @@ +# sodium + +Sodium is a modern, easy-to-use software library for encryption, decryption, signatures, password hashing and more. Its goal is to provide all of the core operations needed to build higher-level cryptographic tools. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.sodium.php | diff --git a/php_modules/sodium/build.yml b/php_modules/sodium/build.yml new file mode 100644 index 0000000..e784b8b --- /dev/null +++ b/php_modules/sodium/build.yml @@ -0,0 +1,12 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +already_avail: [7.2, 7.3, 7.4] + +all: + type: builtin + build_dep: [libsodium-dev] diff --git a/php_modules/sodium/options.yml b/php_modules/sodium/options.yml new file mode 100644 index 0000000..889db9b --- /dev/null +++ b/php_modules/sodium/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: sodium + +# Exclude module build/installation for the following PHP versions +exclude: [5.2, 5.3, 5.4, 5.5, 5.6, 7.0, 7.1] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/sodium/test.yml b/php_modules/sodium/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/sodium/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/solr/README.md b/php_modules/solr/README.md new file mode 100644 index 0000000..b692b1c --- /dev/null +++ b/php_modules/solr/README.md @@ -0,0 +1,7 @@ +# solr + +The Solr extension allows you to communicate effectively with the Apache Solr Server in PHP. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.solr.php | diff --git a/php_modules/solr/build.yml b/php_modules/solr/build.yml new file mode 100644 index 0000000..3a4c06b --- /dev/null +++ b/php_modules/solr/build.yml @@ -0,0 +1,10 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: pecl + build_dep: [libxml2-dev, libcurl4-openssl-dev] diff --git a/php_modules/solr/options.yml b/php_modules/solr/options.yml new file mode 100644 index 0000000..e21bba8 --- /dev/null +++ b/php_modules/solr/options.yml @@ -0,0 +1,27 @@ +--- + +# The name of the module +name: solr + +# Exclude module build/installation for the following PHP versions +# PHP 8.2: SolrParams::__toString() implemented without string return type in Unknown on line 0 +exclude: [5.2, 5.3, 5.4, 5.5, 5.6, 7.0, 8.2] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: + - curl + - libxml + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/solr/test.yml b/php_modules/solr/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/solr/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/spl/README.md b/php_modules/spl/README.md new file mode 100644 index 0000000..376751c --- /dev/null +++ b/php_modules/spl/README.md @@ -0,0 +1,9 @@ +# spl + +The Standard PHP Library (SPL) is a collection of interfaces and classes that are meant to solve common problems. + +SPL provides a set of standard datastructure, a set of iterators to traverse over objects, a set of interfaces, a set of standard Exceptions, a number of classes to work with files and it provides a set of functions like spl_autoload_register() + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.spl.php | diff --git a/php_modules/spl/build.yml b/php_modules/spl/build.yml new file mode 100644 index 0000000..a04b687 --- /dev/null +++ b/php_modules/spl/build.yml @@ -0,0 +1,8 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +already_avail: "{{ php_all_versions }}" diff --git a/php_modules/spl/options.yml b/php_modules/spl/options.yml new file mode 100644 index 0000000..b23aa8c --- /dev/null +++ b/php_modules/spl/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: spl + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/spl/test.yml b/php_modules/spl/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/spl/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/sqlite/README.md b/php_modules/sqlite/README.md new file mode 100644 index 0000000..cdb682c --- /dev/null +++ b/php_modules/sqlite/README.md @@ -0,0 +1,7 @@ +# sqlite + +SQLite database bindings. Deprecated and superseeded by [sqlite3](../sqlite3). + +| Platform | Url | +|----------|------------------------------------------------------------------| +| Pecl | https://pecl.php.net/package/sqlite | diff --git a/php_modules/sqlite/build.yml b/php_modules/sqlite/build.yml new file mode 100644 index 0000000..a04b687 --- /dev/null +++ b/php_modules/sqlite/build.yml @@ -0,0 +1,8 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +already_avail: "{{ php_all_versions }}" diff --git a/php_modules/sqlite/options.yml b/php_modules/sqlite/options.yml new file mode 100644 index 0000000..e07b165 --- /dev/null +++ b/php_modules/sqlite/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: sqlite + +# Exclude module build/installation for the following PHP versions +exclude: [5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/sqlite/test.yml b/php_modules/sqlite/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/sqlite/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/sqlite3/README.md b/php_modules/sqlite3/README.md new file mode 100644 index 0000000..c84ba1b --- /dev/null +++ b/php_modules/sqlite3/README.md @@ -0,0 +1,7 @@ +# sqlite3 + +Support for SQLite version 3 databases. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.sqlite3.php | diff --git a/php_modules/sqlite3/build.yml b/php_modules/sqlite3/build.yml new file mode 100644 index 0000000..a04b687 --- /dev/null +++ b/php_modules/sqlite3/build.yml @@ -0,0 +1,8 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +already_avail: "{{ php_all_versions }}" diff --git a/php_modules/sqlite3/options.yml b/php_modules/sqlite3/options.yml new file mode 100644 index 0000000..c206026 --- /dev/null +++ b/php_modules/sqlite3/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: sqlite3 + +# Exclude module build/installation for the following PHP versions +exclude: [5.2] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/sqlite3/test.yml b/php_modules/sqlite3/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/sqlite3/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/sqlsrv/README.md b/php_modules/sqlsrv/README.md new file mode 100644 index 0000000..0c52408 --- /dev/null +++ b/php_modules/sqlsrv/README.md @@ -0,0 +1,7 @@ +# sqlsrv + +The SQLSRV extension allows you to access Microsoft SQL Server and SQL Azure databases. The 3.0 release of the driver supports SQL Server, beginning with SQL Server 2005, including SQL Server 2012 and SQL Server 2012 LocalDB. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.sqlsrv.php | diff --git a/php_modules/sqlsrv/build.yml b/php_modules/sqlsrv/build.yml new file mode 100644 index 0000000..fa19ee1 --- /dev/null +++ b/php_modules/sqlsrv/build.yml @@ -0,0 +1,27 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: pecl + build_dep: [unixodbc-dev] + run_dep: [unixodbc] + +7.3: + type: pecl + version: 5.9.0 + +7.2: + type: pecl + version: 5.8.1 + +7.1: + type: pecl + version: 5.6.1 + +7.0: + type: pecl + version: 5.3.0 diff --git a/php_modules/sqlsrv/options.yml b/php_modules/sqlsrv/options.yml new file mode 100644 index 0000000..24e6759 --- /dev/null +++ b/php_modules/sqlsrv/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: sqlsrv + +# Exclude module build/installation for the following PHP versions +exclude: [5.2, 5.3, 5.4, 5.5, 5.6] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/sqlsrv/test.yml b/php_modules/sqlsrv/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/sqlsrv/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/ssh2/README.md b/php_modules/ssh2/README.md new file mode 100644 index 0000000..5b67f69 --- /dev/null +++ b/php_modules/ssh2/README.md @@ -0,0 +1,7 @@ +# ssh2 + +Bindings to the libssh2 library which provide access to resources (shell, remote exec, tunneling, file transfer) on a remote machine using a secure cryptographic transport. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.ssh2.php | diff --git a/php_modules/ssh2/build.yml b/php_modules/ssh2/build.yml new file mode 100644 index 0000000..ecc4184 --- /dev/null +++ b/php_modules/ssh2/build.yml @@ -0,0 +1,12 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: pecl + version: 1.2 + build_dep: [libssh2-1-dev] + run_dep: [libssh2-1] diff --git a/php_modules/ssh2/options.yml b/php_modules/ssh2/options.yml new file mode 100644 index 0000000..45312f8 --- /dev/null +++ b/php_modules/ssh2/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: ssh2 + +# Exclude module build/installation for the following PHP versions +exclude: [5.2, 5.3, 5.4, 5.5, 5.6, 8.0, 8.1, 8.2] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/ssh2/test.yml b/php_modules/ssh2/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/ssh2/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/swoole/README.md b/php_modules/swoole/README.md new file mode 100644 index 0000000..007da3d --- /dev/null +++ b/php_modules/swoole/README.md @@ -0,0 +1,7 @@ +# swoole + +Swoole is a high-performance networking framework using an event-driven, asynchronous, non-blocking I/O model. It can be used to develop high-performance, scalable, concurrent TCP, UDP, Unix socket, HTTP, Websocket services. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.swoole.php | diff --git a/php_modules/swoole/build.yml b/php_modules/swoole/build.yml new file mode 100644 index 0000000..156bf89 --- /dev/null +++ b/php_modules/swoole/build.yml @@ -0,0 +1,52 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: pecl + # Note: -D is only supported from PHP 7.2+ + command: pecl install -D 'enable-sockets="no" enable-openssl="yes" enable-http2="yes" enable-mysqlnd="yes" enable-swoole-json="no" enable-swoole-curl="yes" enable-cares="yes" with-postgres="yes"' swoole + build_dep: [libc-ares-dev, libnghttp2-dev, libssl-dev, libcurl4-openssl-dev] + run_dep: [libc-ares2, libnghttp2-14] + +7.4: + type: pecl + version: 4.8.12 + +7.3: + type: pecl + version: 4.8.12 + +7.2: + type: pecl + version: 4.8.12 + +7.1: + type: pecl + version: 4.4.26 + +7.0: + type: pecl + version: 4.2.13 + +5.6: + type: pecl + version: 1.9.23 + +5.5: + type: pecl + version: 1.9.23 + run_dep: [libc-ares2, libnghttp2-5, libssl1.0.0] + +5.4: + type: pecl + version: 1.9.23 + run_dep: [libc-ares2, libnghttp2-5, libssl1.0.0] + +5.3: + type: pecl + version: 1.9.23 + run_dep: [libc-ares2, libnghttp2-5, libssl1.0.0] diff --git a/php_modules/swoole/options.yml b/php_modules/swoole/options.yml new file mode 100644 index 0000000..f16589c --- /dev/null +++ b/php_modules/swoole/options.yml @@ -0,0 +1,36 @@ +--- + +# The name of the module +name: swoole + +# Exclude module build/installation for the following PHP versions +exclude: [5.2, 8.2] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +# https://openswoole.com/docs/get-started/prerequisites#php-extensions +depends_build: + - bcmath + - curl + - gd + - intl + - json + - mbstring + - mysqlnd + - opcache + - sockets + - xml + - zip + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/swoole/test.yml b/php_modules/swoole/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/swoole/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/sysvmsg/README.md b/php_modules/sysvmsg/README.md new file mode 100644 index 0000000..a5992b6 --- /dev/null +++ b/php_modules/sysvmsg/README.md @@ -0,0 +1,10 @@ +# sysvmsg + +These modules provide wrappers for the System V IPC family of functions. It includes semaphores, shared memory and inter-process messaging (IPC). + +Semaphores may be used to provide exclusive access to resources on the current machine, or to limit the number of processes that may simultaneously use a resource. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.sem.php | +| Class | https://www.php.net/manual/en/class.sysvmessagequeue.php | diff --git a/php_modules/sysvmsg/build.yml b/php_modules/sysvmsg/build.yml new file mode 100644 index 0000000..6c0d2de --- /dev/null +++ b/php_modules/sysvmsg/build.yml @@ -0,0 +1,9 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: builtin diff --git a/php_modules/sysvmsg/options.yml b/php_modules/sysvmsg/options.yml new file mode 100644 index 0000000..4e76ad9 --- /dev/null +++ b/php_modules/sysvmsg/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: sysvmsg + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/sysvmsg/test.yml b/php_modules/sysvmsg/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/sysvmsg/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/sysvsem/README.md b/php_modules/sysvsem/README.md new file mode 100644 index 0000000..a8351b5 --- /dev/null +++ b/php_modules/sysvsem/README.md @@ -0,0 +1,10 @@ +# sysvsem + +These modules provide wrappers for the System V IPC family of functions. It includes semaphores, shared memory and inter-process messaging (IPC). + +Semaphores may be used to provide exclusive access to resources on the current machine, or to limit the number of processes that may simultaneously use a resource. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.sem.php | +| Class | https://www.php.net/manual/en/class.sysvsemaphore.php | diff --git a/php_modules/sysvsem/build.yml b/php_modules/sysvsem/build.yml new file mode 100644 index 0000000..6c0d2de --- /dev/null +++ b/php_modules/sysvsem/build.yml @@ -0,0 +1,9 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: builtin diff --git a/php_modules/sysvsem/options.yml b/php_modules/sysvsem/options.yml new file mode 100644 index 0000000..428beb0 --- /dev/null +++ b/php_modules/sysvsem/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: sysvsem + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/sysvsem/test.yml b/php_modules/sysvsem/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/sysvsem/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/sysvshm/README.md b/php_modules/sysvshm/README.md new file mode 100644 index 0000000..225f0f0 --- /dev/null +++ b/php_modules/sysvshm/README.md @@ -0,0 +1,10 @@ +# sysvshm + +These modules provide wrappers for the System V IPC family of functions. It includes semaphores, shared memory and inter-process messaging (IPC). + +Semaphores may be used to provide exclusive access to resources on the current machine, or to limit the number of processes that may simultaneously use a resource. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.sem.php | +| Class | https://www.php.net/manual/en/class.sysvsharedmemory.php | diff --git a/php_modules/sysvshm/build.yml b/php_modules/sysvshm/build.yml new file mode 100644 index 0000000..6c0d2de --- /dev/null +++ b/php_modules/sysvshm/build.yml @@ -0,0 +1,9 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: builtin diff --git a/php_modules/sysvshm/options.yml b/php_modules/sysvshm/options.yml new file mode 100644 index 0000000..8d82491 --- /dev/null +++ b/php_modules/sysvshm/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: sysvshm + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/sysvshm/test.yml b/php_modules/sysvshm/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/sysvshm/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/tidy/README.md b/php_modules/tidy/README.md new file mode 100644 index 0000000..78de87e --- /dev/null +++ b/php_modules/tidy/README.md @@ -0,0 +1,7 @@ +# tidy + +Tidy is a binding for the Tidy HTML clean and repair utility which allows you to not only clean and otherwise manipulate HTML, XHTML, and XML documents, but also traverse the document tree, including ones with embedded scripting languages such as PHP or ASP within them using object-oriented constructs. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.tidy.php | diff --git a/php_modules/tidy/build.yml b/php_modules/tidy/build.yml new file mode 100644 index 0000000..5f83505 --- /dev/null +++ b/php_modules/tidy/build.yml @@ -0,0 +1,35 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: builtin + build_dep: [libtidy-dev] + run_dep: [libtidy5deb1] + +7.0: + type: builtin + run_dep: [libtidy5] + +5.6: + type: builtin + run_dep: [libtidy5] + +5.5: + type: builtin + run_dep: [libtidy-0.99-0] + +5.4: + type: builtin + run_dep: [libtidy-0.99-0] + +5.3: + type: builtin + run_dep: [libtidy-0.99-0] + +5.2: + type: builtin + run_dep: [libtidy-0.99-0] diff --git a/php_modules/tidy/options.yml b/php_modules/tidy/options.yml new file mode 100644 index 0000000..911dbd3 --- /dev/null +++ b/php_modules/tidy/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: tidy + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/tidy/test.yml b/php_modules/tidy/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/tidy/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/tokenizer/README.md b/php_modules/tokenizer/README.md new file mode 100644 index 0000000..ad2a449 --- /dev/null +++ b/php_modules/tokenizer/README.md @@ -0,0 +1,7 @@ +# tokenizer + +The tokenizer functions provide an interface to the PHP tokenizer embedded in the Zend Engine. Using these functions you may write your own PHP source analyzing or modification tools without having to deal with the language specification at the lexical level. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.tokenizer.php | diff --git a/php_modules/tokenizer/build.yml b/php_modules/tokenizer/build.yml new file mode 100644 index 0000000..a04b687 --- /dev/null +++ b/php_modules/tokenizer/build.yml @@ -0,0 +1,8 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +already_avail: "{{ php_all_versions }}" diff --git a/php_modules/tokenizer/options.yml b/php_modules/tokenizer/options.yml new file mode 100644 index 0000000..58184a7 --- /dev/null +++ b/php_modules/tokenizer/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: tokenizer + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/tokenizer/test.yml b/php_modules/tokenizer/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/tokenizer/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/uploadprogress/README.md b/php_modules/uploadprogress/README.md new file mode 100644 index 0000000..c96471a --- /dev/null +++ b/php_modules/uploadprogress/README.md @@ -0,0 +1,8 @@ +# uploadprogress + +A PHP extension to track progress of a file upload, including details on the speed of the upload, estimated time remaining, and access to the contents of the file as it is being uploaded. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| GitHub | https://github.com/php/pecl-php-uploadprogress/ | +| Pecl | https://pecl.php.net/package/uploadprogress | diff --git a/php_modules/uploadprogress/build.yml b/php_modules/uploadprogress/build.yml new file mode 100644 index 0000000..3bb0944 --- /dev/null +++ b/php_modules/uploadprogress/build.yml @@ -0,0 +1,37 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: pecl + +7.1: + type: pecl + version: 1.1.4 + +7.0: + type: pecl + version: 1.1.4 + +5.6: + type: pecl + version: 1.1.4 + +5.5: + type: pecl + version: 1.1.4 + +5.4: + type: pecl + version: 1.1.4 + +5.3: + type: pecl + version: 1.1.4 + +5.2: + type: pecl + version: 1.1.4 diff --git a/php_modules/uploadprogress/options.yml b/php_modules/uploadprogress/options.yml new file mode 100644 index 0000000..d0e6300 --- /dev/null +++ b/php_modules/uploadprogress/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: uploadprogress + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/uploadprogress/test.yml b/php_modules/uploadprogress/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/uploadprogress/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/uuid/README.md b/php_modules/uuid/README.md new file mode 100644 index 0000000..4eb202b --- /dev/null +++ b/php_modules/uuid/README.md @@ -0,0 +1,8 @@ +# uuid + +A wrapper around libuuid from the ext2utils project. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| GitHub | https://github.com/php/pecl-networking-uuid | +| Pecl | https://pecl.php.net/package/uuid | diff --git a/php_modules/uuid/build.yml b/php_modules/uuid/build.yml new file mode 100644 index 0000000..14d3ac5 --- /dev/null +++ b/php_modules/uuid/build.yml @@ -0,0 +1,27 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: pecl + run_dep: [uuid] + build_dep: [uuid-dev] + +5.6: + type: pecl + version: 1.0.5 + +5.5: + type: pecl + version: 1.0.5 + +5.4: + type: pecl + version: 1.0.5 + +5.3: + type: pecl + version: 1.0.5 diff --git a/php_modules/uuid/options.yml b/php_modules/uuid/options.yml new file mode 100644 index 0000000..51e9ee8 --- /dev/null +++ b/php_modules/uuid/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: uuid + +# Exclude module build/installation for the following PHP versions +exclude: [5.2] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/uuid/test.yml b/php_modules/uuid/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/uuid/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/vips/README.md b/php_modules/vips/README.md new file mode 100644 index 0000000..6e16f09 --- /dev/null +++ b/php_modules/vips/README.md @@ -0,0 +1,10 @@ +# vips + +This extension uses libvips to provide image processing facilities. + +It is deprecated in favour of: https://github.com/libvips/php-vips + +| Platform | Url | +|----------|------------------------------------------------------------------| +| GitHub | https://github.com/libvips/php-vips-ext | +| Pecl | https://pecl.php.net/package/vips | diff --git a/php_modules/vips/build.yml b/php_modules/vips/build.yml new file mode 100644 index 0000000..ca7e77e --- /dev/null +++ b/php_modules/vips/build.yml @@ -0,0 +1,18 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: pecl + build_dep: + - libvips-dev + - libvips42 + run_dep: + - libvips42 + +5.6: + type: pecl + version: 1.0.0 diff --git a/php_modules/vips/options.yml b/php_modules/vips/options.yml new file mode 100644 index 0000000..e6f4e78 --- /dev/null +++ b/php_modules/vips/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: vips + +# Exclude module build/installation for the following PHP versions +exclude: [5.2, 5.3, 5.4, 5.5, 5.6, 8.2] # vips requires PHP > 5.6 + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/vips/test.yml b/php_modules/vips/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/vips/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/wddx/README.md b/php_modules/wddx/README.md new file mode 100644 index 0000000..38f9dfd --- /dev/null +++ b/php_modules/wddx/README.md @@ -0,0 +1,7 @@ +# wddx + +These functions are intended for work with WDDX. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.wddx.php | diff --git a/php_modules/wddx/build.yml b/php_modules/wddx/build.yml new file mode 100644 index 0000000..5e2b0d6 --- /dev/null +++ b/php_modules/wddx/build.yml @@ -0,0 +1,12 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: builtin + configure: --with-libxml-dir=/usr + build_dep: [libxml2-dev] + # TODO: requires run_dep libxml diff --git a/php_modules/wddx/options.yml b/php_modules/wddx/options.yml new file mode 100644 index 0000000..9b23daf --- /dev/null +++ b/php_modules/wddx/options.yml @@ -0,0 +1,25 @@ +--- + +# The name of the module +name: wddx + +# Exclude module build/installation for the following PHP versions +exclude: [7.4, 8.0, 8.1, 8.2] # https://wiki.php.net/rfc/deprecate-and-remove-ext-wddx + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: + - libxml + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/wddx/test.yml b/php_modules/wddx/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/wddx/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/xdebug/README.md b/php_modules/xdebug/README.md new file mode 100644 index 0000000..b38e297 --- /dev/null +++ b/php_modules/xdebug/README.md @@ -0,0 +1,8 @@ +# xdebug + +Xdebug is a debugging tool for PHP. It provides step-debugging and a whole range of development helpers, such as stack traces, a code profiler, features to dump the full execution of your script to a file, and more. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| GitHub | https://github.com/xdebug/xdebug | +| Pecl | https://pecl.php.net/package/xdebug | diff --git a/php_modules/xdebug/build.yml b/php_modules/xdebug/build.yml new file mode 100644 index 0000000..977be01 --- /dev/null +++ b/php_modules/xdebug/build.yml @@ -0,0 +1,50 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: pecl + +8.2: + type: git + git_url: https://github.com/xdebug/xdebug + # FIXME: revert to latest tag once PHP 8.2 support is out of alpha/beta + git_ref: 3.2.0RC2 + configure: --enable-xdebug + +8.1: + type: git + git_url: https://github.com/xdebug/xdebug + git_ref: $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) + configure: --enable-xdebug + +7.1: + type: pecl + version: 2.9.8 + +7.0: + type: pecl + version: 2.9.0 + +5.6: + type: pecl + version: 2.4.1 + +5.5: + type: pecl + version: 2.4.1 + +5.4: + type: pecl + version: 2.4.1 + +5.3: + type: pecl + version: 2.2.7 + +5.2: + type: pecl + version: 2.2.7 diff --git a/php_modules/xdebug/options.yml b/php_modules/xdebug/options.yml new file mode 100644 index 0000000..ea9408d --- /dev/null +++ b/php_modules/xdebug/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: xdebug + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/xdebug/test.yml b/php_modules/xdebug/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/xdebug/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/xlswriter/README.md b/php_modules/xlswriter/README.md new file mode 100644 index 0000000..560c690 --- /dev/null +++ b/php_modules/xlswriter/README.md @@ -0,0 +1,7 @@ +# xlswriter + +An efficient and fast xlsx file export extension. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.xlswriter.php | diff --git a/php_modules/xlswriter/build.yml b/php_modules/xlswriter/build.yml new file mode 100644 index 0000000..168627d --- /dev/null +++ b/php_modules/xlswriter/build.yml @@ -0,0 +1,11 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: pecl + build_dep: [zlib1g-dev] + run_dep: [] diff --git a/php_modules/xlswriter/options.yml b/php_modules/xlswriter/options.yml new file mode 100644 index 0000000..31d17d4 --- /dev/null +++ b/php_modules/xlswriter/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: xlswriter + +# Exclude module build/installation for the following PHP versions +exclude: [5.2, 5.3, 5.4, 5.5, 5.6] # XLSWriter requires PHP 7.0 and above. + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/xlswriter/test.yml b/php_modules/xlswriter/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/xlswriter/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/xml/README.md b/php_modules/xml/README.md new file mode 100644 index 0000000..d92a4f3 --- /dev/null +++ b/php_modules/xml/README.md @@ -0,0 +1,9 @@ +# xml + +This PHP extension implements support for James Clark's expat in PHP. This toolkit lets you parse, but not validate, XML documents. It supports three source character encodings also provided by PHP: US-ASCII, ISO-8859-1 and UTF-8. UTF-16 is not supported. + +This extension lets you create XML parsers and then define handlers for different XML events. Each XML parser also has a few parameters you can adjust. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.xml.php | diff --git a/php_modules/xml/build.yml b/php_modules/xml/build.yml new file mode 100644 index 0000000..a04b687 --- /dev/null +++ b/php_modules/xml/build.yml @@ -0,0 +1,8 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +already_avail: "{{ php_all_versions }}" diff --git a/php_modules/xml/options.yml b/php_modules/xml/options.yml new file mode 100644 index 0000000..aff491a --- /dev/null +++ b/php_modules/xml/options.yml @@ -0,0 +1,25 @@ +--- + +# The name of the module +name: xml + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: + - libxml + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/xml/test.yml b/php_modules/xml/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/xml/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/xmlreader/README.md b/php_modules/xmlreader/README.md new file mode 100644 index 0000000..880bc93 --- /dev/null +++ b/php_modules/xmlreader/README.md @@ -0,0 +1,7 @@ +# xmlreader + +The XMLReader extension is an XML Pull parser. The reader acts as a cursor going forward on the document stream and stopping at each node on the way. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.xmlreader.php | diff --git a/php_modules/xmlreader/build.yml b/php_modules/xmlreader/build.yml new file mode 100644 index 0000000..a04b687 --- /dev/null +++ b/php_modules/xmlreader/build.yml @@ -0,0 +1,8 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +already_avail: "{{ php_all_versions }}" diff --git a/php_modules/xmlreader/options.yml b/php_modules/xmlreader/options.yml new file mode 100644 index 0000000..6b7184e --- /dev/null +++ b/php_modules/xmlreader/options.yml @@ -0,0 +1,25 @@ +--- + +# The name of the module +name: xmlreader + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: + - libxml + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/xmlreader/test.yml b/php_modules/xmlreader/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/xmlreader/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/xmlrpc/README.md b/php_modules/xmlrpc/README.md new file mode 100644 index 0000000..c82a85a --- /dev/null +++ b/php_modules/xmlrpc/README.md @@ -0,0 +1,7 @@ +# xmlrpc + +These functions can be used to write XML-RPC servers and clients. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.xmlrpc.php | diff --git a/php_modules/xmlrpc/build.yml b/php_modules/xmlrpc/build.yml new file mode 100644 index 0000000..57d6a38 --- /dev/null +++ b/php_modules/xmlrpc/build.yml @@ -0,0 +1,16 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: builtin + configure: --with-libxml-dir=/usr --with-iconv-dir=/usr + build_dep: [libxml2-dev] + # TODO: requires run_dep libxml + +7.4: + type: builtin + configure: --with-iconv-dir=/usr diff --git a/php_modules/xmlrpc/options.yml b/php_modules/xmlrpc/options.yml new file mode 100644 index 0000000..4989621 --- /dev/null +++ b/php_modules/xmlrpc/options.yml @@ -0,0 +1,25 @@ +--- + +# The name of the module +name: xmlrpc + +# Exclude module build/installation for the following PHP versions +exclude: [8.0, 8.1, 8.2] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: + - libxml + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/xmlrpc/test.yml b/php_modules/xmlrpc/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/xmlrpc/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/xmlwriter/README.md b/php_modules/xmlwriter/README.md new file mode 100644 index 0000000..6fdbfd6 --- /dev/null +++ b/php_modules/xmlwriter/README.md @@ -0,0 +1,11 @@ +# xmlwriter + +This is the XMLWriter extension. It wraps the libxml xmlWriter API. + +This extension represents a writer that provides a non-cached, forward-only means of generating streams or files containing XML data. + +This extension can be used in an object-oriented style or a procedural one. Every method documented describes the alternative procedural call. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.xmlwriter.php | diff --git a/php_modules/xmlwriter/build.yml b/php_modules/xmlwriter/build.yml new file mode 100644 index 0000000..a04b687 --- /dev/null +++ b/php_modules/xmlwriter/build.yml @@ -0,0 +1,8 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +already_avail: "{{ php_all_versions }}" diff --git a/php_modules/xmlwriter/options.yml b/php_modules/xmlwriter/options.yml new file mode 100644 index 0000000..bf75cdf --- /dev/null +++ b/php_modules/xmlwriter/options.yml @@ -0,0 +1,25 @@ +--- + +# The name of the module +name: xmlwriter + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: + - libxml + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/xmlwriter/test.yml b/php_modules/xmlwriter/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/xmlwriter/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/xsl/README.md b/php_modules/xsl/README.md new file mode 100644 index 0000000..931ba65 --- /dev/null +++ b/php_modules/xsl/README.md @@ -0,0 +1,7 @@ +# xsl + +The XSL extension implements the XSL standard, performing XSLT transformations using the libxslt library + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.xsl.php | diff --git a/php_modules/xsl/build.yml b/php_modules/xsl/build.yml new file mode 100644 index 0000000..eefbe3c --- /dev/null +++ b/php_modules/xsl/build.yml @@ -0,0 +1,11 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: builtin + build_dep: [libxslt-dev] + run_dep: [libxslt1.1] diff --git a/php_modules/xsl/options.yml b/php_modules/xsl/options.yml new file mode 100644 index 0000000..d213747 --- /dev/null +++ b/php_modules/xsl/options.yml @@ -0,0 +1,25 @@ +--- + +# The name of the module +name: xsl + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: + - libxml + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/xsl/test.yml b/php_modules/xsl/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/xsl/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/yaml/README.md b/php_modules/yaml/README.md new file mode 100644 index 0000000..dc97e9c --- /dev/null +++ b/php_modules/yaml/README.md @@ -0,0 +1,7 @@ +# yaml + +This extension implements the YAML Ain't Markup Language (YAML) data serialization standard. Parsing and emiting are handled by the LibYAML library. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.yaml.php | diff --git a/php_modules/yaml/build.yml b/php_modules/yaml/build.yml new file mode 100644 index 0000000..048a474 --- /dev/null +++ b/php_modules/yaml/build.yml @@ -0,0 +1,31 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: pecl + build_dep: [libyaml-dev] + run_dep: [libyaml-0-2] + +7.0: + type: pecl + version: 2.0.4 + +5.6: + type: pecl + version: 1.3.2 + +5.5: + type: pecl + version: 1.3.2 + +5.4: + type: pecl + version: 1.3.2 + +5.3: + type: pecl + version: 1.3.2 diff --git a/php_modules/yaml/options.yml b/php_modules/yaml/options.yml new file mode 100644 index 0000000..c5e6d74 --- /dev/null +++ b/php_modules/yaml/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: yaml + +# Exclude module build/installation for the following PHP versions +exclude: [5.2] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/yaml/test.yml b/php_modules/yaml/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/yaml/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/zip/README.md b/php_modules/zip/README.md new file mode 100644 index 0000000..4c37876 --- /dev/null +++ b/php_modules/zip/README.md @@ -0,0 +1,7 @@ +# zip + +This extension enables you to transparently read or write ZIP compressed archives and the files inside them. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.zip.php | diff --git a/php_modules/zip/build.yml b/php_modules/zip/build.yml new file mode 100644 index 0000000..d47797b --- /dev/null +++ b/php_modules/zip/build.yml @@ -0,0 +1,66 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: builtin + configure: --with-zip + build_dep: [libzip-dev] + run_dep: [libzip4] + +7.3: + type: builtin + configure: --enable-zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip=/usr + build_dep: [libzip-dev, zlib1g-dev] + run_dep: [libzip4, zlib1g] + +7.2: + type: builtin + configure: --enable-zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip=/usr + build_dep: [libzip-dev, zlib1g-dev] + run_dep: [libzip4, zlib1g] + +7.1: + type: builtin + configure: --enable-zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip=/usr + build_dep: [libzip-dev, zlib1g-dev] + run_dep: [libzip4, zlib1g] + +7.0: + type: builtin + configure: --enable-zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip=/usr + build_dep: [libzip-dev, zlib1g-dev] + run_dep: [libzip4, zlib1g] + +5.6: + type: builtin + configure: --enable-zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip=/usr + build_dep: [libzip-dev, zlib1g-dev] + run_dep: [libzip4, zlib1g] + +5.5: + type: builtin + configure: --enable-zip --with-zlib-dir=/usr --with-pcre-dir=/usr + build_dep: [libzip-dev, zlib1g-dev] + run_dep: [libzip2, zlib1g] + +5.4: + type: builtin + configure: --enable-zip --with-zlib-dir=/usr --with-pcre-dir=/usr + build_dep: [libzip-dev, zlib1g-dev] + run_dep: [libzip2, zlib1g] + +5.3: + type: builtin + configure: --enable-zip --with-zlib-dir=/usr --with-pcre-dir=/usr + build_dep: [libzip-dev, zlib1g-dev] + run_dep: [libzip2, zlib1g] + +5.2: + type: builtin + configure: --enable-zip + build_dep: [libzip-dev] + run_dep: [libzip2] diff --git a/php_modules/zip/options.yml b/php_modules/zip/options.yml new file mode 100644 index 0000000..1754cf9 --- /dev/null +++ b/php_modules/zip/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: zip + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/zip/test.yml b/php_modules/zip/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/zip/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/zlib/README.md b/php_modules/zlib/README.md new file mode 100644 index 0000000..89e6242 --- /dev/null +++ b/php_modules/zlib/README.md @@ -0,0 +1,7 @@ +# zlib + +This module enables you to transparently read and write gzip (.gz) compressed files, through versions of most of the filesystem functions which work with gzip-compressed files (and uncompressed files, too, but not with sockets). + +| Platform | Url | +|----------|------------------------------------------------------------------| +| PHP.net | https://www.php.net/manual/en/book.zlib.php | diff --git a/php_modules/zlib/build.yml b/php_modules/zlib/build.yml new file mode 100644 index 0000000..a04b687 --- /dev/null +++ b/php_modules/zlib/build.yml @@ -0,0 +1,8 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +already_avail: "{{ php_all_versions }}" diff --git a/php_modules/zlib/options.yml b/php_modules/zlib/options.yml new file mode 100644 index 0000000..a0b2e47 --- /dev/null +++ b/php_modules/zlib/options.yml @@ -0,0 +1,24 @@ +--- + +# The name of the module +name: zlib + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: [] + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/zlib/test.yml b/php_modules/zlib/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/zlib/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/zstd/README.md b/php_modules/zstd/README.md new file mode 100644 index 0000000..632d6f2 --- /dev/null +++ b/php_modules/zstd/README.md @@ -0,0 +1,8 @@ +# zstd + +PHP extension for compression and decompression with Zstandard library. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| GitHub | https://github.com/kjdev/php-ext-zstd | +| Pecl | https://pecl.php.net/package/zstd | diff --git a/php_modules/zstd/build.yml b/php_modules/zstd/build.yml new file mode 100644 index 0000000..48269bb --- /dev/null +++ b/php_modules/zstd/build.yml @@ -0,0 +1,20 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +all: + type: git + git_url: https://github.com/kjdev/php-ext-zstd + git_ref: $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) + configure: --enable-zstd --with-libzstd + build_dep: [libzstd-dev] + run_dep: [libzstd1] + +# compiling from git breaks somehow (Pecl has the same version which works) +7.0: + type: pecl + build_dep: [libzstd-dev] + run_dep: [libzstd1] diff --git a/php_modules/zstd/options.yml b/php_modules/zstd/options.yml new file mode 100644 index 0000000..d48270a --- /dev/null +++ b/php_modules/zstd/options.yml @@ -0,0 +1,25 @@ +--- + +# The name of the module +name: zstd + +# Exclude module build/installation for the following PHP versions +exclude: [5.2, 5.3, 5.4, 5.5, 5.6] + +# In order for this module to built correctly against all dependencies, +# the following modules must have been built first. +depends_build: + - apcu + +# In order for this module to function correctly, +# the following modules must be loaded before. +depends_load: [] + +# If the following PHP modules are loaded, this module will not behave as expected. +conflicts_load: [] + +# Enable this module by default via php.ini for PHP cli command? +enabled_php_cli: true + +# Enable this module by default via php.ini for PHP-FPM? +enabled_php_fpm: true diff --git a/php_modules/zstd/test.yml b/php_modules/zstd/test.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/php_modules/zstd/test.yml @@ -0,0 +1 @@ +---