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/.ansible/bin/Makefile b/.ansible/bin/Makefile deleted file mode 100644 index d3182a7..0000000 --- a/.ansible/bin/Makefile +++ /dev/null @@ -1,29 +0,0 @@ -ifneq (,) -.error This Makefile requires GNU Make. -endif - -# 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 = get-modules.py -PYLINT_PIP_PKGS = yamllint -PYLINT_ARGS = --disable=invalid-name get-modules.py - -PYCODE_ARGS = --max-line-length=100 - -BLACK_LINT_ARGS = -l 100 --check --diff -BLACK_FIX_ARGS = -l 100 diff --git a/.ansible/bin/get-modules.py b/.ansible/bin/get-modules.py deleted file mode 100755 index 815f550..0000000 --- a/.ansible/bin/get-modules.py +++ /dev/null @@ -1,198 +0,0 @@ -#!/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(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, encoding="utf8") as fp: - data = yaml.safe_load(fp) - return data - - -# -------------------------------------------------------------------------------------------------- -# 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() -> List[Dict[str, Any]]: - """Returns a list of PHP module directory names.""" - 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["requires"]}) - # Convert list of deps into dict(dir, name, deps) - items = [] - for module in modules: - if module["deps"]: - deps = [] - for dep in module["deps"]: - deps.append(get_el_by_name(modules, dep)) - module["deps"] = deps - items.append(module) - else: - items.append(module) - 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(module_names: 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") - fp.write("modules:\n") - for name in module_names: - fp.write(" - " + name + "\n") - - -# -------------------------------------------------------------------------------------------------- -# MAIN FUNCTION -# -------------------------------------------------------------------------------------------------- - - -def main() -> None: - """Main entrypoint.""" - # Get modules in order of dependencies - modules = get_modules() - 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(names) - - # Create group_vars file mods.yml - write_group_vars(names) - - -if __name__ == "__main__": - main() 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 82% rename from build/ansible/group_vars/all/all-ansible.yml rename to .ansible/group_vars/all/all-ansible.yml index 6ab6f73..c504ba0 100644 --- a/build/ansible/group_vars/all/all-ansible.yml +++ b/.ansible/group_vars/all/all-ansible.yml @@ -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 82% rename from build/ansible/group_vars/all/mods.yml rename to .ansible/group_vars/all/mods.yml index 0edf4a9..8e72df1 100644 --- a/build/ansible/group_vars/all/mods.yml +++ b/.ansible/group_vars/all/mods.yml @@ -1,19 +1,9 @@ --- -################################################################################################### -# 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 - apcu - bcmath @@ -23,8 +13,10 @@ extensions_enabled: - ctype - curl - dba + - libxml - dom - enchant + - mbstring - exif - ffi - fileinfo @@ -40,14 +32,12 @@ extensions_enabled: - imap - interbase - intl + - ioncube - json - ldap - - libxml - - mbstring - mcrypt - - msgpack - memcache - # requires igbinary and msgpack to be installed + - msgpack - memcached - mhash - mongo @@ -55,13 +45,13 @@ extensions_enabled: - mysql - mysqli - mysqlnd + - pcre - oauth - oci8 - odbc - opcache - openssl - pcntl - - pcre - pdo - pdo_dblib - pdo_firebird @@ -73,16 +63,17 @@ extensions_enabled: - pdo_sqlsrv - pgsql - psr - # requires psr to be installed + - redis + - sqlite3 + - sqlsrv - phalcon - phar - posix - pspell + - rdkafka - readline - recode - - redis - reflection - - rdkafka - session - shmop - simplexml @@ -92,8 +83,10 @@ extensions_enabled: - sodium - solr - spl - - sqlsrv - ssh2 + - xml + - zip + - swoole - sysvmsg - sysvsem - sysvshm @@ -104,88 +97,57 @@ 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 -# ------------------------------------------------------------------------------------------------- -# 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] + 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 +162,134 @@ 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 }}" 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] + 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 +297,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 +309,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 +317,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 +339,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 +383,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 - 7.2: - type: pecl - version: 1.0.1 - 7.3: - type: pecl - version: 1.0.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 +559,553 @@ 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 + 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 + redis: + disabled: [] + 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 \ + 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 \ + 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 \ + 5.6: + type: pecl + version: 4.3.0 + 5.5: + type: pecl + version: 4.3.0 + 5.4: + type: pecl + version: 4.3.0 + 5.3: + type: pecl + version: 4.3.0 + 5.2: + type: pecl + version: 2.2.7 + sqlite3: + disabled: [] + already_avail: "{{ php_all_versions }}" + sqlsrv: + disabled: [5.2, 5.3, 5.4, 5.5, 5.6] all: 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 - 7.0: - type: git - git_url: https://github.com/phalcon/cphalcon - git_ref: v3.4.4 - command: cd build && ./install + 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: [libpcre-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] + 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 +1114,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 +1165,13 @@ 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 }}" - 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 +1179,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 +1363,97 @@ 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 + git_ref: $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) + 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 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/build/gen-readme.sh b/bin/gen-readme.sh similarity index 100% rename from build/gen-readme.sh rename to bin/gen-readme.sh