From bc0a08ce2fb0664e5f62d19c8fb37b5d5ecaa1e3 Mon Sep 17 00:00:00 2001 From: cytopia Date: Sat, 26 Nov 2022 21:15:40 +0100 Subject: [PATCH 01/53] Module parser --- .ansible/bin/get-modules.py | 134 ++++++++++++++++++++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100755 .ansible/bin/get-modules.py diff --git a/.ansible/bin/get-modules.py b/.ansible/bin/get-modules.py new file mode 100755 index 00000000..c19ed3bc --- /dev/null +++ b/.ansible/bin/get-modules.py @@ -0,0 +1,134 @@ +#!/usr/bin/env python3 +import os +import yaml +import copy +from collections import OrderedDict + + +# -------------------------------------------------------------------------------------------------- +# PATH FUNCTIONS +# -------------------------------------------------------------------------------------------------- + +def get_repository_path() -> str: + """Returns the absolute repository directory path.""" + script_path = os.path.dirname(os.path.realpath(__file__)) + return os.path.dirname(os.path.dirname(script_path)) + + +def get_module_path(repository_path) -> str: + """Returns the absolute PHP module directory path.""" + return os.path.join(repository_path, "php_modules") + + +def get_group_vars_path(repository_path) -> str: + """Returns the absolute mods group_vars directory path.""" + return os.path.join(repository_path, ".ansible", "group_vars", "all") + + +def get_module_dir_names(path: str) -> list[str]: + """Returns a list of PHP module directory names.""" + directories = [] + with os.scandir(path) as it: + for item in it: + if not item.name.startswith('.') and item.is_dir(): + directories.append(item.name) + return sorted(directories, key=str.lower) + + +# -------------------------------------------------------------------------------------------------- +# MODULE FUNCTIONS +# -------------------------------------------------------------------------------------------------- + +def get_module_options(path: str) -> dict[str, str]: + mod_opt_path = os.path.join(path, "options.yml") + with open(mod_opt_path) as options: + data = yaml.safe_load(options) + return data + + +def get_module_dependency_tree(names: list[str], path: str) -> dict(): + """Returns dictionary of module dependency tree.""" + module_tree = OrderedDict() + + for name in names: + # Full path of options.yml inside module directory + opt_path = os.path.join(path, name) + data = get_module_options(opt_path) + + mod_name = data["name"] + mod_deps = data["requires"] + + module_tree[mod_name] = {} + + # Do we have module requirements? + if len(mod_deps) > 0: + module_tree[mod_name] = get_module_dependency_tree(mod_deps, path) + return module_tree + + +def resolve_module_dependency_tree(tree): + """Returns sorted list of resolved dependencies.""" + resolved = [] + for key, value 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_dependency_tree(tree, lvl=0): + for key, value in tree.items(): + print(" "*lvl, "-", key) + if value: + print_dependency_tree(tree[key], lvl+2) + + +# -------------------------------------------------------------------------------------------------- +# MAIN FUNCTION +# -------------------------------------------------------------------------------------------------- + +def main(): + # Get paths + repository_path = get_repository_path() + php_module_path = get_module_path(repository_path) + group_vars_path = get_group_vars_path(repository_path) + + # Module directory names + directory_names = get_module_dir_names(php_module_path) + + # Get modules in order of dependencies + module_tree = get_module_dependency_tree(directory_names, php_module_path) + modules = 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("# Dependency Tree") + print("#", "-"*78) + print_dependency_tree(module_tree) + print() + + print("#", "-"*78) + print("# Sorted PHP modules") + print("#", "-"*78) + print(modules) + + +if __name__ == "__main__": + main() From 873bcce2e7c3b45e002b4e0b73e583c730a0cdc9 Mon Sep 17 00:00:00 2001 From: cytopia Date: Sat, 26 Nov 2022 21:49:58 +0100 Subject: [PATCH 02/53] Cleanup module dependency fetcher --- .ansible/bin/get-modules.py | 64 ++++++++++++++++++++----------------- 1 file changed, 34 insertions(+), 30 deletions(-) diff --git a/.ansible/bin/get-modules.py b/.ansible/bin/get-modules.py index c19ed3bc..f8f08d92 100755 --- a/.ansible/bin/get-modules.py +++ b/.ansible/bin/get-modules.py @@ -5,6 +5,11 @@ from collections import OrderedDict +SCRIPT_PATH = os.path.dirname(os.path.realpath(__file__)) +REPOSITORY_PATH = os.path.dirname(os.path.dirname(SCRIPT_PATH)) +PHP_MODULE_PATH = os.path.join(REPOSITORY_PATH, "php_modules") +GROUP_VARS_PATH = os.path.join(REPOSITORY_PATH, ".ansible", "group_vars", "all") + # -------------------------------------------------------------------------------------------------- # PATH FUNCTIONS # -------------------------------------------------------------------------------------------------- @@ -15,45 +20,43 @@ def get_repository_path() -> str: return os.path.dirname(os.path.dirname(script_path)) -def get_module_path(repository_path) -> str: +def get_module_path(repository_path: str) -> str: """Returns the absolute PHP module directory path.""" return os.path.join(repository_path, "php_modules") -def get_group_vars_path(repository_path) -> str: +def get_group_vars_path(repository_path: str) -> str: """Returns the absolute mods group_vars directory path.""" return os.path.join(repository_path, ".ansible", "group_vars", "all") -def get_module_dir_names(path: str) -> list[str]: +# -------------------------------------------------------------------------------------------------- +# MODULE FUNCTIONS +# -------------------------------------------------------------------------------------------------- + +def get_module_options(module_dirname: str) -> dict[str, str]: + """Returns yaml dict options of a PHP module given by its absolute file path.""" + with open(os.path.join(PHP_MODULE_PATH, module_dirname, "options.yml")) as fp: + data = yaml.safe_load(fp) + return data + + +def get_module_dir_names() -> list[str]: """Returns a list of PHP module directory names.""" directories = [] - with os.scandir(path) as it: + with os.scandir(PHP_MODULE_PATH) as it: for item in it: if not item.name.startswith('.') and item.is_dir(): directories.append(item.name) return sorted(directories, key=str.lower) -# -------------------------------------------------------------------------------------------------- -# MODULE FUNCTIONS -# -------------------------------------------------------------------------------------------------- - -def get_module_options(path: str) -> dict[str, str]: - mod_opt_path = os.path.join(path, "options.yml") - with open(mod_opt_path) as options: - data = yaml.safe_load(options) - return data - - -def get_module_dependency_tree(names: list[str], path: str) -> dict(): +def get_module_dependency_tree(names: list[str]) -> dict(): """Returns dictionary of module dependency tree.""" module_tree = OrderedDict() for name in names: - # Full path of options.yml inside module directory - opt_path = os.path.join(path, name) - data = get_module_options(opt_path) + data = get_module_options(name) mod_name = data["name"] mod_deps = data["requires"] @@ -62,7 +65,7 @@ def get_module_dependency_tree(names: list[str], path: str) -> dict(): # Do we have module requirements? if len(mod_deps) > 0: - module_tree[mod_name] = get_module_dependency_tree(mod_deps, path) + module_tree[mod_name] = get_module_dependency_tree(mod_deps) return module_tree @@ -98,24 +101,25 @@ def print_dependency_tree(tree, lvl=0): # -------------------------------------------------------------------------------------------------- def main(): - # Get paths - repository_path = get_repository_path() - php_module_path = get_module_path(repository_path) - group_vars_path = get_group_vars_path(repository_path) - # Module directory names - directory_names = get_module_dir_names(php_module_path) + directory_names = get_module_dir_names() # Get modules in order of dependencies - module_tree = get_module_dependency_tree(directory_names, php_module_path) + module_tree = get_module_dependency_tree(directory_names) modules = 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("Repository: ", REPOSITORY_PATH) + print("PHP Module: ", PHP_MODULE_PATH) + print("Group Vars: ", GROUP_VARS_PATH) + print() + + print("#", "-"*78) + print("# Module directories") + print("#", "-"*78) + print(directory_names) print() print("#", "-"*78) From bd9aac8cba0c55cece0f937722188097008a7dc1 Mon Sep 17 00:00:00 2001 From: cytopia Date: Sun, 27 Nov 2022 16:04:32 +0100 Subject: [PATCH 03/53] Nicyfy get-modules.py --- .ansible/bin/Makefile | 27 ++++++ .ansible/bin/get-modules.py | 171 ++++++++++++++++++++++++------------ 2 files changed, 143 insertions(+), 55 deletions(-) create mode 100644 .ansible/bin/Makefile diff --git a/.ansible/bin/Makefile b/.ansible/bin/Makefile new file mode 100644 index 00000000..74c1a89c --- /dev/null +++ b/.ansible/bin/Makefile @@ -0,0 +1,27 @@ +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 + +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 index f8f08d92..94d33b38 100755 --- a/.ansible/bin/get-modules.py +++ b/.ansible/bin/get-modules.py @@ -1,65 +1,92 @@ #!/usr/bin/env python3 +# -*- coding: utf-8 -*- +"""Generate Ansible group_vars from module definition.""" import os -import yaml -import copy +import sys from collections import OrderedDict +from typing import Dict, List, Any +import yaml -SCRIPT_PATH = os.path.dirname(os.path.realpath(__file__)) -REPOSITORY_PATH = os.path.dirname(os.path.dirname(SCRIPT_PATH)) -PHP_MODULE_PATH = os.path.join(REPOSITORY_PATH, "php_modules") -GROUP_VARS_PATH = os.path.join(REPOSITORY_PATH, ".ansible", "group_vars", "all") - # -------------------------------------------------------------------------------------------------- -# PATH FUNCTIONS +# GLOBALS # -------------------------------------------------------------------------------------------------- -def get_repository_path() -> str: - """Returns the absolute repository directory path.""" - script_path = os.path.dirname(os.path.realpath(__file__)) - return os.path.dirname(os.path.dirname(script_path)) +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")) -def get_module_path(repository_path: str) -> str: - """Returns the absolute PHP module directory path.""" - return os.path.join(repository_path, "php_modules") +# -------------------------------------------------------------------------------------------------- +# HELPER FUNCTIONS +# -------------------------------------------------------------------------------------------------- -def get_group_vars_path(repository_path: str) -> str: - """Returns the absolute mods group_vars directory path.""" - return os.path.join(repository_path, ".ansible", "group_vars", "all") +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) # -------------------------------------------------------------------------------------------------- # MODULE FUNCTIONS # -------------------------------------------------------------------------------------------------- -def get_module_options(module_dirname: str) -> dict[str, str]: + +def get_module_options(module_dirname: str) -> Dict[str, Any]: """Returns yaml dict options of a PHP module given by its absolute file path.""" - with open(os.path.join(PHP_MODULE_PATH, module_dirname, "options.yml")) as fp: + with open(os.path.join(PHP_MODULE_PATH, module_dirname, "options.yml"), encoding="utf8") as fp: data = yaml.safe_load(fp) return data -def get_module_dir_names() -> list[str]: +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.""" + with open(os.path.join(PHP_MODULE_PATH, module_dirname, "build.yml"), encoding="utf8") as fp: + data = yaml.safe_load(fp) + return data + + +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.""" + with open(os.path.join(PHP_MODULE_PATH, module_dirname, "test.yml"), encoding="utf8") as fp: + data = yaml.safe_load(fp) + return data + + +def get_modules() -> List[Dict[str, Any]]: """Returns a list of PHP module directory names.""" - directories = [] + modules = [] with os.scandir(PHP_MODULE_PATH) as it: for item in it: - if not item.name.startswith('.') and item.is_dir(): - directories.append(item.name) - return sorted(directories, key=str.lower) - - -def get_module_dependency_tree(names: list[str]) -> dict(): + 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() - - for name in names: - data = get_module_options(name) + module_tree = OrderedDict() # type: OrderedDict[str, Any] - mod_name = data["name"] - mod_deps = data["requires"] + for module in modules: + mod_name = module["name"] + mod_deps = module["deps"] module_tree[mod_name] = {} @@ -69,10 +96,10 @@ def get_module_dependency_tree(names: list[str]) -> dict(): return module_tree -def resolve_module_dependency_tree(tree): +def resolve_module_dependency_tree(tree: OrderedDict[str, Any]) -> List[str]: """Returns sorted list of resolved dependencies.""" resolved = [] - for key, value in tree.items(): + for key, _ in tree.items(): # Has dependenies if tree[key]: childs = resolve_module_dependency_tree(tree[key]) @@ -89,49 +116,83 @@ def resolve_module_dependency_tree(tree): # PRINT FUNCTIONS # -------------------------------------------------------------------------------------------------- -def print_dependency_tree(tree, lvl=0): + +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) + print(" " * lvl, "-", key) if value: - print_dependency_tree(tree[key], lvl+2) + 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(): + +def main() -> None: + """Main entrypoint.""" # Module directory names - directory_names = get_module_dir_names() + modules = get_modules() # Get modules in order of dependencies - module_tree = get_module_dependency_tree(directory_names) - modules = resolve_module_dependency_tree(module_tree) + module_tree = get_module_dependency_tree(modules) + names = resolve_module_dependency_tree(module_tree) - print("#", "-"*78) + print("#", "-" * 78) print("# Paths") - print("#", "-"*78) + print("#", "-" * 78) print("Repository: ", REPOSITORY_PATH) print("PHP Module: ", PHP_MODULE_PATH) print("Group Vars: ", GROUP_VARS_PATH) print() - print("#", "-"*78) + print("#", "-" * 78) print("# Module directories") - print("#", "-"*78) - print(directory_names) + print("#", "-" * 78) + print_modules(modules) print() - print("#", "-"*78) - print("# Dependency Tree") - print("#", "-"*78) + print("#", "-" * 78) + print("# Build Dependency Tree") + print("#", "-" * 78) print_dependency_tree(module_tree) print() - print("#", "-"*78) - print("# Sorted PHP modules") - print("#", "-"*78) - print(modules) + print("#", "-" * 78) + print("# Build order") + print("#", "-" * 78) + print(names) + + # Create group_vars file mods.yml + write_group_vars(names) if __name__ == "__main__": From c991ca9eaa1bff1711936899751d03231dd00b50 Mon Sep 17 00:00:00 2001 From: cytopia Date: Sun, 27 Nov 2022 16:28:40 +0100 Subject: [PATCH 04/53] Adjust code to linting --- .ansible/bin/Makefile | 2 ++ .ansible/bin/get-modules.py | 23 +++++++++++------------ 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/.ansible/bin/Makefile b/.ansible/bin/Makefile index 74c1a89c..d3182a71 100644 --- a/.ansible/bin/Makefile +++ b/.ansible/bin/Makefile @@ -23,5 +23,7 @@ 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 index 94d33b38..815f550a 100755 --- a/.ansible/bin/get-modules.py +++ b/.ansible/bin/get-modules.py @@ -32,6 +32,13 @@ def get_el_by_name(items: List[Dict[str, Any]], name: str) -> Dict[str, Any]: 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 # -------------------------------------------------------------------------------------------------- @@ -39,23 +46,17 @@ def get_el_by_name(items: List[Dict[str, Any]], name: str) -> Dict[str, Any]: def get_module_options(module_dirname: str) -> Dict[str, Any]: """Returns yaml dict options of a PHP module given by its absolute file path.""" - with open(os.path.join(PHP_MODULE_PATH, module_dirname, "options.yml"), encoding="utf8") as fp: - data = yaml.safe_load(fp) - return data + 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.""" - with open(os.path.join(PHP_MODULE_PATH, module_dirname, "build.yml"), encoding="utf8") as fp: - data = yaml.safe_load(fp) - return data + 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.""" - with open(os.path.join(PHP_MODULE_PATH, module_dirname, "test.yml"), encoding="utf8") as fp: - data = yaml.safe_load(fp) - return data + return load_yaml(os.path.join(PHP_MODULE_PATH, module_dirname, "test.yml")) def get_modules() -> List[Dict[str, Any]]: @@ -159,10 +160,8 @@ def write_group_vars(module_names: List[str]) -> None: def main() -> None: """Main entrypoint.""" - # Module directory names - modules = get_modules() - # Get modules in order of dependencies + modules = get_modules() module_tree = get_module_dependency_tree(modules) names = resolve_module_dependency_tree(module_tree) From 0fbc57c1546ad2e74d5e9cf7f4bbfd956944378e Mon Sep 17 00:00:00 2001 From: cytopia Date: Tue, 29 Nov 2022 04:39:38 +0100 Subject: [PATCH 05/53] Restructured PHP extensions --- .../CONFIGURATIONS/php-fpm.conf.j2 | 0 .../CONFIGURATIONS/php.ini.j2 | 0 .../DOCKERFILES/Dockerfile-base.j2 | 0 .../DOCKERFILES/Dockerfile-mods.j2 | 0 .../DOCKERFILES/Dockerfile-prod.j2 | 0 .../DOCKERFILES/Dockerfile-work.j2 | 0 {build/ansible => .ansible}/README.md | 0 {build/ansible => .ansible}/ansible.cfg | 2 +- .ansible/bin/Makefile | 29 - .ansible/bin/get-modules.py | 198 --- {build/ansible => .ansible}/generate.yml | 0 .../group_vars/all/all-ansible.yml | 16 +- .../group_vars/all/all-php-settings.yml | 0 .../group_vars/all/mods.yml | 1366 +++++++++-------- .../group_vars/all/work.yml | 0 .../inventory => .ansible/inventory.ini | 0 .../roles/template/defaults/main.yml | 0 .../roles/template/tasks/main.yml | 0 {build => bin}/gen-readme.sh | 0 19 files changed, 720 insertions(+), 891 deletions(-) rename {build/ansible => .ansible}/CONFIGURATIONS/php-fpm.conf.j2 (100%) rename {build/ansible => .ansible}/CONFIGURATIONS/php.ini.j2 (100%) rename {build/ansible => .ansible}/DOCKERFILES/Dockerfile-base.j2 (100%) rename {build/ansible => .ansible}/DOCKERFILES/Dockerfile-mods.j2 (100%) rename {build/ansible => .ansible}/DOCKERFILES/Dockerfile-prod.j2 (100%) rename {build/ansible => .ansible}/DOCKERFILES/Dockerfile-work.j2 (100%) rename {build/ansible => .ansible}/README.md (100%) rename {build/ansible => .ansible}/ansible.cfg (55%) delete mode 100644 .ansible/bin/Makefile delete mode 100755 .ansible/bin/get-modules.py rename {build/ansible => .ansible}/generate.yml (100%) rename {build/ansible => .ansible}/group_vars/all/all-ansible.yml (82%) rename {build/ansible => .ansible}/group_vars/all/all-php-settings.yml (100%) rename {build/ansible => .ansible}/group_vars/all/mods.yml (82%) rename {build/ansible => .ansible}/group_vars/all/work.yml (100%) rename build/ansible/inventory => .ansible/inventory.ini (100%) rename {build/ansible => .ansible}/roles/template/defaults/main.yml (100%) rename {build/ansible => .ansible}/roles/template/tasks/main.yml (100%) rename {build => bin}/gen-readme.sh (100%) 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 5831c616..23aad464 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 d3182a71..00000000 --- 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 815f550a..00000000 --- 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 6ab6f73d..c504ba07 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 0edf4a91..8e72df19 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,55 +97,24 @@ 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: + disabled: [] + all: type: pecl - version: 1.6.1 - run_dep: [librabbitmq1] - 5.3: + command: echo "/usr" | pecl install amqp + build_dep: [librabbitmq-dev] + run_dep: [librabbitmq4] + 5.5: type: pecl version: 1.9.3 run_dep: [librabbitmq1] @@ -160,32 +122,32 @@ extensions_available: type: pecl version: 1.9.3 run_dep: [librabbitmq1] - 5.5: + 5.3: type: pecl version: 1.9.3 run_dep: [librabbitmq1] - all: + 5.2: type: pecl - command: echo "/usr" | pecl install amqp - build_dep: [librabbitmq-dev] - run_dep: [librabbitmq4] + version: 1.6.1 + run_dep: [librabbitmq1] apcu: disabled: [5.2] - 5.3: + all: type: pecl - version: 4.0.11 - 5.4: + 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 + all: + type: builtin + build_dep: [libenchant-2-dev] + run_dep: [libenchant-2-2] + 7.2: build_dep: [libenchant-dev] run_dep: [libenchant1c2a] - 5.3: + 7.1: build_dep: [libenchant-dev] run_dep: [libenchant1c2a] - 5.4: + 7.0: build_dep: [libenchant-dev] run_dep: [libenchant1c2a] - 5.5: + 5.6: build_dep: [libenchant-dev] run_dep: [libenchant1c2a] - 5.6: + 5.5: build_dep: [libenchant-dev] run_dep: [libenchant1c2a] - 7.0: + 5.4: build_dep: [libenchant-dev] run_dep: [libenchant1c2a] - 7.1: + 5.3: build_dep: [libenchant-dev] run_dep: [libenchant1c2a] - 7.2: + 5.2: + type: pecl + command: echo "/usr" | pecl install enchant 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] + 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,9 +297,9 @@ 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 + 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: + 5.4: type: builtin pre: | ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libjpeg.* /usr/lib/ && \ @@ -289,9 +307,9 @@ 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 + 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: + 5.3: type: builtin pre: | ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libjpeg.* /usr/lib/ && \ @@ -299,9 +317,9 @@ 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.5: + 5.2: type: builtin pre: | ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libjpeg.* /usr/lib/ && \ @@ -309,51 +327,10 @@ 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: - 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] 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.4: + 5.5: type: pecl version: 2.0.8 - 5.5: + 5.4: type: pecl version: 2.0.8 - 5.6: + 5.3: 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: + 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 - 5.3: + 7.0: type: builtin - 5.4: + 5.6: type: builtin 5.5: type: builtin - 5.6: + 5.4: type: builtin - 7.0: + 5.3: type: builtin - 7.1: + 5.2: 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: - 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: + disabled: [] + all: type: pecl - version: 2.2.7 - 7.0: + build_dep: [zlib1g-dev] + 7.4: type: pecl version: 4.0.5.2 - 7.1: + 7.3: type: pecl version: 4.0.5.2 7.2: type: pecl version: 4.0.5.2 - 7.3: + 7.1: type: pecl version: 4.0.5.2 - 7.4: + 7.0: type: pecl version: 4.0.5.2 - all: + 5.6: type: pecl - build_dep: [zlib1g-dev] - memcached: - 5.2: + version: 2.2.7 + 5.5: type: pecl - version: 2.1.0 - run_dep: [libmemcachedutil2, libevent-2.0-5] + version: 2.2.7 + 5.4: + type: pecl + version: 2.2.7 5.3: type: pecl - version: 2.2.0 - run_dep: [libmemcachedutil2, libevent-2.0-5] - 5.4: + version: 2.2.7 + 5.2: type: pecl - version: 2.2.0 - run_dep: [libmemcachedutil2, libevent-2.0-5] - 5.5: + version: 2.2.7 + msgpack: + disabled: [] + all: 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: + version: 0.5.7 + 5.5: type: pecl - command: printf "\n\n\nyes\nyes\nyes\n" | pecl install memcached - run_dep: [libmemcachedutil2, libevent-2.0-5] - 7.1: + version: 0.5.7 + 5.4: type: pecl - command: printf "\n\n\nyes\nyes\nyes\n" | pecl install memcached - run_dep: [libmemcachedutil2, libevent-2.1-6] - 7.2: + 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,81 +559,99 @@ 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 - 5.2: - type: pecl - command: yes yes | pecl install mongo-1.5.8 - all: + run_dep: [libmemcachedutil2, libevent-2.1-6] + 7.1: type: pecl - command: yes yes | pecl install mongo - build_dep: [libssl-dev, libsasl2-dev] - mongodb: - disabled: [5.2] - 5.3: + command: printf "\n\n\nyes\nyes\nyes\n" | pecl install memcached + run_dep: [libmemcachedutil2, libevent-2.1-6] + 7.0: type: pecl - version: 0.6.3 - 5.4: + command: printf "\n\n\nyes\nyes\nyes\n" | pecl install memcached + run_dep: [libmemcachedutil2, libevent-2.0-5] + 5.6: type: pecl - version: 1.2.11 + version: 2.2.0 + run_dep: [libmemcachedutil2, libevent-2.0-5] 5.5: type: pecl - version: 1.5.5 - 5.6: + version: 2.2.0 + run_dep: [libmemcachedutil2, libevent-2.0-5] + 5.4: type: pecl - version: 1.7.5 - 7.0: + version: 2.2.0 + run_dep: [libmemcachedutil2, libevent-2.0-5] + 5.3: type: pecl - version: 1.9.2 - 7.1: + version: 2.2.0 + run_dep: [libmemcachedutil2, libevent-2.0-5] + 5.2: type: pecl - version: 1.11.1 + 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] - msgpack: 5.2: type: pecl - version: 0.5.7 - 5.3: + command: yes yes | pecl install mongo-1.5.8 + mongodb: + disabled: [5.2] + all: type: pecl - version: 0.5.7 - 5.4: + build_dep: [libssl-dev, libsasl2-dev] + 7.1: type: pecl - version: 0.5.7 - 5.5: + version: 1.11.1 + 7.0: type: pecl - version: 0.5.7 + version: 1.9.2 5.6: type: pecl - version: 0.5.7 - all: + 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 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] + 5.6: + type: builtin + run_dep: [libmariadbclient18] + build_dep: [libmariadbclient-dev] mysqli: - 5.2: + disabled: [] + all: type: builtin - run_dep: [libmysqlclient18] - build_dep: [libmysqlclient-dev] - 5.3: + 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] @@ -671,124 +659,146 @@ extensions_available: type: builtin run_dep: [libmysqlclient18] build_dep: [libmysqlclient-dev] - 5.5: + 5.3: 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] - all: + 5.2: type: builtin - run_dep: [libmariadbd19] - build_dep: [libmariadb-dev] + 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] - oauth: - 5.2: + pcre: + disabled: [] + already_avail: "{{ php_all_versions }}" + oauth: + disabled: [] + all: + type: pecl + build_dep: [libpcre3-dev, libcurl4-openssl-dev] + 5.6: type: pecl version: 1.2.3 - 5.3: + 5.5: type: pecl version: 1.2.3 5.4: type: pecl version: 1.2.3 - 5.5: + 5.3: type: pecl version: 1.2.3 - 5.6: + 5.2: type: pecl version: 1.2.3 - all: - type: pecl - build_dep: [libpcre3-dev] 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: + disabled: [] + all: type: builtin - run_dep: [libmysqlclient18] - build_dep: [zlib1g-dev, libmysqlclient-dev] - 5.3: + 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] @@ -796,209 +806,126 @@ extensions_available: type: builtin run_dep: [libmysqlclient18] build_dep: [zlib1g-dev, libmysqlclient-dev] - 5.5: + 5.3: 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] - all: + 5.2: type: builtin - configure: --with-zlib-dir=/usr - run_dep: [libmariadbd19] - build_dep: [zlib1g-dev, libmariadb-dev] + run_dep: [libmysqlclient18] + build_dep: [zlib1g-dev, libmysqlclient-dev] pdo_oci: disabled: [5.2, 5.3, 5.4, 5.5, 5.6] - 7.2: - 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: - 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: - type: builtin - configure: --with-pdo-oci=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} all: 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 )" \ + 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) \ 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} 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: + all: type: pecl - version: 5.3.0 - 7.1: + build_dep: [unixodbc-dev] + run_dep: [unixodbc] + 7.3: type: pecl - version: 5.6.1 + version: 5.9.0 7.2: type: pecl version: 5.8.1 - 7.3: + 7.1: type: pecl - version: 5.9.0 - all: + version: 5.6.1 + 7.0: type: pecl - build_dep: [unixodbc-dev] - run_dep: [unixodbc] + 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: - type: pecl - version: 0.5.1 - 5.5: - type: pecl - version: 0.5.1 - 5.6: + disabled: [5.2, 5.3] + all: 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: + 7.2: type: pecl version: 1.1.0 7.1: type: pecl version: 1.1.0 - 7.2: + 7.0: type: pecl version: 1.1.0 - 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 - 7.1: - type: git - git_url: https://github.com/phalcon/cphalcon - git_ref: v3.4.4 - 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: - type: git - git_url: https://github.com/phalcon/cphalcon - git_ref: v4.1.2 - command: cd build && ./install - 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 -n | sed 's/^.*tags\///g' | grep -E '^v[.0-9]+$' | tail -1) - command: cd build && ./install - phar: - 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: - already_avail: "{{ php_all_versions }}" - pspell: - all: - type: builtin - build_dep: [libpspell-dev] - run_dep: [libaspell15] - readline: - already_avail: "{{ php_all_versions }}" - recode: - disabled: [7.4, 8.0, 8.1, 8.2] - already_avail: [5.2, 5.3, 5.4, 5.5] - all: - 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 + 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: 4.3.0 - 5.6: + version: 0.5.1 + 5.4: type: pecl - version: 4.3.0 - 8.1: + 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) @@ -1012,8 +939,6 @@ extensions_available: 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: @@ -1034,7 +959,7 @@ extensions_available: && 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: + 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) @@ -1048,59 +973,177 @@ extensions_available: 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 \ - 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: + 5.6: type: pecl - version: 3.0.5 + version: 4.3.0 + 5.5: + type: pecl + version: 4.3.0 5.4: type: pecl - version: 3.0.5 - 5.5: + version: 4.3.0 + 5.3: type: pecl - version: 3.0.5 - 5.6: + version: 4.3.0 + 5.2: type: pecl - version: 3.1.2 + 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 + 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: 3.1.2 + version: 5.3.0 + phalcon: + disabled: [5.2, 8.2] + 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: [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.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 + 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] + already_avail: [5.2, 5.3, 5.4, 5.5] + all: + type: builtin + build_dep: [librecode-dev] + run_dep: [librecode0] + reflection: + 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: - type: builtin - configure: --with-snmp - build_dep: [libssl-dev, libsnmp-dev, snmp] - run_dep: [snmp] + disabled: [] all: type: builtin - configure: --with-openssl-dir + configure: --with-snmp 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: - 8.0: + disabled: [] + all: + type: builtin + 8.2: # Remove ucred (currently breaks build) pre: | docker-php-ext-configure sockets \ @@ -1110,13 +1153,11 @@ extensions_available: pre: | docker-php-ext-configure sockets \ && sed -i'' 's/.*ucred.*//g' /usr/src/php/ext/sockets/sendrecvmsg.c \ - 8.2: + 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 \ - all: - type: builtin + && sed -i'' 's/.*ucred.*//g' /usr/src/php/ext/sockets/sendrecvmsg.c \ 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: + all: type: pecl - version: 1.9.23 - run_dep: [libc-ares2, libnghttp2-5, libssl1.0.0] - 5.5: + # 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: 1.9.23 - run_dep: [libc-ares2, libnghttp2-5, libssl1.0.0] - 5.6: + version: 4.8.12 + 7.3: type: pecl - version: 1.9.23 - 7.0: + version: 4.8.12 + 7.2: type: pecl - version: 4.2.13 + version: 4.8.12 7.1: type: pecl version: 4.4.26 - 7.2: + 7.0: type: pecl - version: 4.8.12 - 7.3: + version: 4.2.13 + 5.6: type: pecl - version: 4.8.12 - 7.4: + version: 1.9.23 + 5.5: type: pecl - version: 4.8.12 - all: + version: 1.9.23 + run_dep: [libc-ares2, libnghttp2-5, libssl1.0.0] + 5.4: 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] + 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: + disabled: [] + all: type: builtin - run_dep: [libtidy-0.99-0] - 5.3: + build_dep: [libtidy-dev] + run_dep: [libtidy5deb1] + 7.0: type: builtin - run_dep: [libtidy-0.99-0] - 5.4: + run_dep: [libtidy5] + 5.6: type: builtin - run_dep: [libtidy-0.99-0] + run_dep: [libtidy5] 5.5: type: builtin run_dep: [libtidy-0.99-0] - 5.6: + 5.4: type: builtin - run_dep: [libtidy5] - 7.0: + run_dep: [libtidy-0.99-0] + 5.3: type: builtin - run_dep: [libtidy5] - all: + run_dep: [libtidy-0.99-0] + 5.2: type: builtin - build_dep: [libtidy-dev] - run_dep: [libtidy5deb1] + run_dep: [libtidy-0.99-0] tokenizer: + disabled: [] already_avail: "{{ php_all_versions }}" uploadprogress: - 5.2: + disabled: [] + all: + type: pecl + 7.1: type: pecl version: 1.1.4 - 5.3: + 7.0: type: pecl version: 1.1.4 - 5.4: + 5.6: type: pecl version: 1.1.4 5.5: type: pecl version: 1.1.4 - 5.6: + 5.4: type: pecl version: 1.1.4 - 7.0: + 5.3: type: pecl version: 1.1.4 - 7.1: + 5.2: type: pecl version: 1.1.4 - all: - type: pecl uuid: disabled: [5.2] - 5.3: + all: type: pecl - version: 1.0.5 - 5.4: + 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: - type: pecl - version: 2.9.0 - 7.1: + 5.3: 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: + all: type: pecl - version: 1.3.2 - 5.4: + 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.6: + 5.4: 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] - 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 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 From df09f78b3825380e81acb53341422293e8b0e53d Mon Sep 17 00:00:00 2001 From: cytopia Date: Tue, 29 Nov 2022 04:42:00 +0100 Subject: [PATCH 06/53] Adjust paths in Makefile --- Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 24b9d081..596b7548 100644 --- a/Makefile +++ b/Makefile @@ -124,7 +124,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 @@ -203,7 +203,7 @@ gen-readme: @echo "################################################################################" @echo "# Generate README.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) $(BASE_TAG) $(MODS_TAG) $(VERSION) git diff --quiet || { echo "Build Changes"; git diff; git status; false; } ### @@ -217,7 +217,7 @@ gen-dockerfiles: -e MY_UID=$$(id -u) \ -e MY_GID=$$(id -g) \ -v ${PWD}:/data \ - -w /data/build/ansible \ + -w /data/.ansible \ cytopia/ansible:2.8-tools ansible-playbook generate.yml \ -e ANSIBLE_STRATEGY_PLUGINS=/usr/lib/python3.8/site-packages/ansible_mitogen/plugins/strategy \ -e ANSIBLE_STRATEGY=mitogen_linear \ From 2ad29a8c3e21f993b95b3488d8f74c598d02be5e Mon Sep 17 00:00:00 2001 From: cytopia Date: Tue, 29 Nov 2022 04:42:26 +0100 Subject: [PATCH 07/53] Adjust paths in Ansible comments --- .ansible/group_vars/all/all-ansible.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.ansible/group_vars/all/all-ansible.yml b/.ansible/group_vars/all/all-ansible.yml index c504ba07..69a76444 100644 --- a/.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." # ------------------------------------------------------------------------------------------------- From d7db5dc72aa4f0c9d0b82bf4f8e7246ff02c454f Mon Sep 17 00:00:00 2001 From: cytopia Date: Tue, 29 Nov 2022 04:43:16 +0100 Subject: [PATCH 08/53] Adjust paths in gitignore --- .gitignore | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 0aaabdf6..371b0147 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ -build/ansible/*.retry +.ansible/*.retry + Makefile.docker Makefile.lint +Makefile.python From 40c6d485cc74a016c01ba2d39beb68fe3c4ab71d Mon Sep 17 00:00:00 2001 From: cytopia Date: Tue, 29 Nov 2022 04:43:57 +0100 Subject: [PATCH 09/53] Adjust repo files --- CHANGELOG.md | 8 +- bin/modules-generate.py | 264 ++++++++++++++++++++++++++++++++++++++++ bin/modules-validate.py | 6 + build/README.md | 51 -------- 4 files changed, 277 insertions(+), 52 deletions(-) create mode 100755 bin/modules-generate.py create mode 100755 bin/modules-validate.py delete mode 100644 build/README.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 91fa580b..fdfda9c2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,9 +4,15 @@ ## Unreleased -## Release 0.143 +## Release 0.144 ### Changed +- Split out PHP extensions int separate directories + + +## Release 0.143 + +### Added - Added `phalcon` 5.x to PHP 8.0 and PHP 8.1 diff --git a/bin/modules-generate.py b/bin/modules-generate.py new file mode 100755 index 00000000..4257ff67 --- /dev/null +++ b/bin/modules-generate.py @@ -0,0 +1,264 @@ +#!/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, Optional, 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(mod_name: Optional[str] = None) -> List[Dict[str, Any]]: + """Returns a list of PHP module directory names. + + Args: + mod_name: If specified, only get this module (and its dependencies). + """ + 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"]: + deps = [] + for dep in module["deps"]: + deps.append(get_el_by_name(modules, dep)) + module["deps"] = deps + items.append(module) + else: + items.append(module) + # Check if we only want to read a single module + if mod_name: + return [get_el_by_name(items, mod_name)] + 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__), "[php-module]") + 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("Optional arguments:") + print(" [php-module] When specifying a name of a php-module, the group_vars file will") + 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.") + + +def main(argv: List[str]) -> None: + """Main entrypoint.""" + if not (len(argv) == 0 or len(argv) == 1): + print_help() + sys.exit(1) + if len(argv) == 1: + if argv[0] == "--help" or argv[0] == "-h": + print_help() + sys.exit(0) + + single_module = None + if len(argv) == 1: + single_module = argv[0] + + # Get modules in order of dependencies + modules = get_modules(single_module) + 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 00000000..9fbcc43b --- /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 c5f7409c..00000000 --- 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`. From 52aa0d4d42d932878be8bd8af7a026b5a21b2c7f Mon Sep 17 00:00:00 2001 From: cytopia Date: Tue, 29 Nov 2022 04:44:19 +0100 Subject: [PATCH 10/53] Add PHP module dirs --- php_modules/Makefile | 38 +++++ php_modules/README-build.yml.md | 195 +++++++++++++++++++++++++ php_modules/README-options.yml.md | 6 + php_modules/README-test.yml.md | 3 + php_modules/README.md | 42 ++++++ php_modules/amqp/build.yml | 32 ++++ php_modules/amqp/options.yml | 21 +++ php_modules/amqp/test.yml | 2 + php_modules/apcu/build.yml | 25 ++++ php_modules/apcu/options.yml | 21 +++ php_modules/apcu/test.yml | 2 + php_modules/bcmath/build.yml | 9 ++ php_modules/bcmath/options.yml | 21 +++ php_modules/bcmath/test.yml | 2 + php_modules/blackfire/build.yml | 16 ++ php_modules/blackfire/curl/build.yml | 8 + php_modules/blackfire/curl/options.yml | 24 +++ php_modules/blackfire/curl/test.yml | 2 + php_modules/blackfire/options.yml | 30 ++++ php_modules/blackfire/test.yml | 2 + php_modules/bz2/build.yml | 10 ++ php_modules/bz2/options.yml | 24 +++ php_modules/bz2/test.yml | 2 + php_modules/calendar/build.yml | 9 ++ php_modules/calendar/options.yml | 24 +++ php_modules/calendar/test.yml | 2 + php_modules/ctype/build.yml | 8 + php_modules/ctype/options.yml | 24 +++ php_modules/ctype/test.yml | 2 + php_modules/curl/build.yml | 8 + php_modules/curl/options.yml | 24 +++ php_modules/curl/test.yml | 2 + php_modules/dba/build.yml | 9 ++ php_modules/dba/options.yml | 24 +++ php_modules/dba/test.yml | 2 + php_modules/dom/build.yml | 8 + php_modules/dom/options.yml | 25 ++++ php_modules/dom/test.yml | 2 + php_modules/enchant/build.yml | 45 ++++++ php_modules/enchant/options.yml | 27 ++++ php_modules/enchant/test.yml | 2 + php_modules/exif/build.yml | 9 ++ php_modules/exif/options.yml | 26 ++++ php_modules/exif/test.yml | 2 + php_modules/ffi/build.yml | 13 ++ php_modules/ffi/options.yml | 24 +++ php_modules/ffi/test.yml | 2 + php_modules/fileinfo/build.yml | 13 ++ php_modules/fileinfo/options.yml | 24 +++ php_modules/fileinfo/test.yml | 2 + php_modules/filter/build.yml | 8 + php_modules/filter/options.yml | 24 +++ php_modules/filter/test.yml | 2 + php_modules/ftp/build.yml | 8 + php_modules/ftp/options.yml | 24 +++ php_modules/ftp/test.yml | 2 + php_modules/gd/build.yml | 102 +++++++++++++ php_modules/gd/options.yml | 25 ++++ php_modules/gd/test.yml | 2 + php_modules/gettext/build.yml | 9 ++ php_modules/gettext/options.yml | 24 +++ php_modules/gettext/test.yml | 2 + php_modules/gmp/build.yml | 12 ++ php_modules/gmp/options.yml | 24 +++ php_modules/gmp/test.yml | 2 + php_modules/hash/build.yml | 8 + php_modules/hash/options.yml | 24 +++ php_modules/hash/test.yml | 2 + php_modules/iconv/build.yml | 8 + php_modules/iconv/options.yml | 24 +++ php_modules/iconv/test.yml | 2 + php_modules/igbinary/build.yml | 29 ++++ php_modules/igbinary/options.yml | 21 +++ php_modules/igbinary/test.yml | 2 + php_modules/imagick/build.yml | 35 +++++ php_modules/imagick/options.yml | 24 +++ php_modules/imagick/test.yml | 2 + php_modules/imap/build.yml | 13 ++ php_modules/imap/options.yml | 24 +++ php_modules/imap/test.yml | 2 + php_modules/interbase/build.yml | 11 ++ php_modules/interbase/options.yml | 24 +++ php_modules/interbase/test.yml | 2 + php_modules/intl/build.yml | 43 ++++++ php_modules/intl/options.yml | 24 +++ php_modules/intl/test.yml | 2 + php_modules/ioncube/build.yml | 19 +++ php_modules/ioncube/options.yml | 27 ++++ php_modules/ioncube/test.yml | 2 + php_modules/json/build.yml | 8 + php_modules/json/options.yml | 24 +++ php_modules/json/test.yml | 2 + php_modules/ldap/build.yml | 12 ++ php_modules/ldap/options.yml | 24 +++ php_modules/ldap/test.yml | 2 + php_modules/libxml/build.yml | 9 ++ php_modules/libxml/options.yml | 24 +++ php_modules/libxml/test.yml | 2 + php_modules/mbstring/build.yml | 8 + php_modules/mbstring/options.yml | 24 +++ php_modules/mbstring/test.yml | 2 + php_modules/mcrypt/build.yml | 40 +++++ php_modules/mcrypt/options.yml | 26 ++++ php_modules/mcrypt/test.yml | 2 + php_modules/memcache/build.yml | 50 +++++++ php_modules/memcache/options.yml | 24 +++ php_modules/memcache/test.yml | 2 + php_modules/memcached/build.yml | 65 +++++++++ php_modules/memcached/options.yml | 26 ++++ php_modules/memcached/test.yml | 2 + php_modules/mhash/build.yml | 8 + php_modules/mhash/options.yml | 24 +++ php_modules/mhash/test.yml | 2 + php_modules/modules-generate.py | 1 + php_modules/modules-validate.py | 1 + php_modules/mongo/build.yml | 15 ++ php_modules/mongo/options.yml | 24 +++ php_modules/mongo/test.yml | 2 + php_modules/mongodb/build.yml | 34 +++++ php_modules/mongodb/options.yml | 24 +++ php_modules/mongodb/test.yml | 2 + php_modules/msgpack/build.yml | 29 ++++ php_modules/msgpack/options.yml | 21 +++ php_modules/msgpack/test.yml | 2 + php_modules/mysql/build.yml | 17 +++ php_modules/mysql/options.yml | 24 +++ php_modules/mysql/test.yml | 2 + php_modules/mysqli/build.yml | 40 +++++ php_modules/mysqli/options.yml | 24 +++ php_modules/mysqli/test.yml | 2 + php_modules/mysqlnd/build.yml | 8 + php_modules/mysqlnd/options.yml | 24 +++ php_modules/mysqlnd/test.yml | 2 + php_modules/oauth/build.yml | 30 ++++ php_modules/oauth/options.yml | 27 ++++ php_modules/oauth/test.yml | 2 + php_modules/oci8/build.yml | 51 +++++++ php_modules/oci8/options.yml | 24 +++ php_modules/oci8/test.yml | 2 + php_modules/odbc/build.yml | 5 + php_modules/odbc/options.yml | 24 +++ php_modules/odbc/test.yml | 2 + php_modules/opcache/build.yml | 29 ++++ php_modules/opcache/options.yml | 29 ++++ php_modules/opcache/test.yml | 2 + php_modules/openssl/build.yml | 8 + php_modules/openssl/options.yml | 24 +++ php_modules/openssl/test.yml | 2 + php_modules/pcntl/build.yml | 9 ++ php_modules/pcntl/options.yml | 24 +++ php_modules/pcntl/test.yml | 2 + php_modules/pcre/build.yml | 8 + php_modules/pcre/curl/build.yml | 8 + php_modules/pcre/curl/options.yml | 24 +++ php_modules/pcre/curl/test.yml | 2 + php_modules/pcre/options.yml | 21 +++ php_modules/pcre/test.yml | 2 + php_modules/pdo/build.yml | 8 + php_modules/pdo/options.yml | 24 +++ php_modules/pdo/test.yml | 2 + php_modules/pdo_dblib/build.yml | 12 ++ php_modules/pdo_dblib/options.yml | 25 ++++ php_modules/pdo_dblib/test.yml | 2 + php_modules/pdo_firebird/build.yml | 11 ++ php_modules/pdo_firebird/options.yml | 25 ++++ php_modules/pdo_firebird/test.yml | 2 + php_modules/pdo_mysql/build.yml | 42 ++++++ php_modules/pdo_mysql/options.yml | 25 ++++ php_modules/pdo_mysql/test.yml | 2 + php_modules/pdo_oci/build.yml | 62 ++++++++ php_modules/pdo_oci/options.yml | 25 ++++ php_modules/pdo_oci/test.yml | 2 + php_modules/pdo_odbc/build.yml | 5 + php_modules/pdo_odbc/options.yml | 25 ++++ php_modules/pdo_odbc/test.yml | 2 + php_modules/pdo_pgsql/build.yml | 11 ++ php_modules/pdo_pgsql/options.yml | 25 ++++ php_modules/pdo_pgsql/test.yml | 2 + php_modules/pdo_sqlite/build.yml | 8 + php_modules/pdo_sqlite/options.yml | 25 ++++ php_modules/pdo_sqlite/test.yml | 2 + php_modules/pdo_sqlsrv/build.yml | 27 ++++ php_modules/pdo_sqlsrv/options.yml | 25 ++++ php_modules/pdo_sqlsrv/test.yml | 2 + php_modules/pgsql/build.yml | 11 ++ php_modules/pgsql/options.yml | 24 +++ php_modules/pgsql/test.yml | 2 + php_modules/phalcon/build.yml | 68 +++++++++ php_modules/phalcon/options.yml | 92 ++++++++++++ php_modules/phalcon/test.yml | 2 + php_modules/phar/build.yml | 12 ++ php_modules/phar/options.yml | 24 +++ php_modules/phar/test.yml | 2 + php_modules/posix/build.yml | 8 + php_modules/posix/options.yml | 24 +++ php_modules/posix/test.yml | 2 + php_modules/pspell/build.yml | 11 ++ php_modules/pspell/options.yml | 24 +++ php_modules/pspell/test.yml | 2 + php_modules/psr/build.yml | 33 +++++ php_modules/psr/options.yml | 24 +++ php_modules/psr/test.yml | 2 + php_modules/rdkafka/build.yml | 31 ++++ php_modules/rdkafka/options.yml | 24 +++ php_modules/rdkafka/test.yml | 2 + php_modules/readline/build.yml | 9 ++ php_modules/readline/options.yml | 24 +++ php_modules/readline/test.yml | 2 + php_modules/recode/build.yml | 13 ++ php_modules/recode/options.yml | 24 +++ php_modules/recode/test.yml | 2 + php_modules/redis/build.yml | 81 ++++++++++ php_modules/redis/options.yml | 27 ++++ php_modules/redis/test.yml | 2 + php_modules/reflection/build.yml | 8 + php_modules/reflection/options.yml | 24 +++ php_modules/reflection/test.yml | 2 + php_modules/session/build.yml | 8 + php_modules/session/options.yml | 24 +++ php_modules/session/test.yml | 2 + php_modules/shmop/build.yml | 9 ++ php_modules/shmop/options.yml | 24 +++ php_modules/shmop/test.yml | 2 + php_modules/simplexml/build.yml | 8 + php_modules/simplexml/options.yml | 25 ++++ php_modules/simplexml/test.yml | 2 + php_modules/snmp/build.yml | 12 ++ php_modules/snmp/options.yml | 24 +++ php_modules/snmp/test.yml | 2 + php_modules/soap/build.yml | 10 ++ php_modules/soap/options.yml | 25 ++++ php_modules/soap/test.yml | 2 + php_modules/sockets/build.yml | 26 ++++ php_modules/sockets/options.yml | 24 +++ php_modules/sockets/test.yml | 2 + php_modules/sodium/build.yml | 12 ++ php_modules/sodium/options.yml | 24 +++ php_modules/sodium/test.yml | 2 + php_modules/solr/build.yml | 10 ++ php_modules/solr/options.yml | 27 ++++ php_modules/solr/test.yml | 2 + php_modules/spl/build.yml | 8 + php_modules/spl/options.yml | 24 +++ php_modules/spl/test.yml | 2 + php_modules/sqlite3/build.yml | 8 + php_modules/sqlite3/options.yml | 24 +++ php_modules/sqlite3/test.yml | 2 + php_modules/sqlsrv/build.yml | 27 ++++ php_modules/sqlsrv/options.yml | 24 +++ php_modules/sqlsrv/test.yml | 2 + php_modules/ssh2/build.yml | 12 ++ php_modules/ssh2/options.yml | 24 +++ php_modules/ssh2/test.yml | 2 + php_modules/swoole/build.yml | 52 +++++++ php_modules/swoole/options.yml | 36 +++++ php_modules/swoole/test.yml | 2 + php_modules/sysvmsg/build.yml | 9 ++ php_modules/sysvmsg/options.yml | 24 +++ php_modules/sysvmsg/test.yml | 2 + php_modules/sysvsem/build.yml | 9 ++ php_modules/sysvsem/options.yml | 24 +++ php_modules/sysvsem/test.yml | 2 + php_modules/sysvshm/build.yml | 9 ++ php_modules/sysvshm/options.yml | 24 +++ php_modules/sysvshm/test.yml | 2 + php_modules/tidy/build.yml | 35 +++++ php_modules/tidy/options.yml | 24 +++ php_modules/tidy/test.yml | 2 + php_modules/tokenizer/build.yml | 8 + php_modules/tokenizer/options.yml | 24 +++ php_modules/tokenizer/test.yml | 2 + php_modules/uploadprogress/build.yml | 37 +++++ php_modules/uploadprogress/options.yml | 24 +++ php_modules/uploadprogress/test.yml | 2 + php_modules/uuid/build.yml | 27 ++++ php_modules/uuid/options.yml | 24 +++ php_modules/uuid/test.yml | 2 + php_modules/vips/build.yml | 18 +++ php_modules/vips/options.yml | 24 +++ php_modules/vips/test.yml | 2 + php_modules/wddx/build.yml | 12 ++ php_modules/wddx/options.yml | 25 ++++ php_modules/wddx/test.yml | 2 + php_modules/xdebug/build.yml | 49 +++++++ php_modules/xdebug/options.yml | 24 +++ php_modules/xdebug/test.yml | 2 + php_modules/xlswriter/build.yml | 11 ++ php_modules/xlswriter/options.yml | 24 +++ php_modules/xlswriter/test.yml | 2 + php_modules/xml/build.yml | 8 + php_modules/xml/options.yml | 25 ++++ php_modules/xml/test.yml | 2 + php_modules/xmlreader/build.yml | 8 + php_modules/xmlreader/options.yml | 25 ++++ php_modules/xmlreader/test.yml | 2 + php_modules/xmlrpc/build.yml | 16 ++ php_modules/xmlrpc/options.yml | 25 ++++ php_modules/xmlrpc/test.yml | 2 + php_modules/xmlwriter/build.yml | 8 + php_modules/xmlwriter/options.yml | 25 ++++ php_modules/xmlwriter/test.yml | 2 + php_modules/xsl/build.yml | 11 ++ php_modules/xsl/options.yml | 25 ++++ php_modules/xsl/test.yml | 2 + php_modules/yaml/build.yml | 31 ++++ php_modules/yaml/options.yml | 24 +++ php_modules/yaml/test.yml | 2 + php_modules/zip/build.yml | 66 +++++++++ php_modules/zip/options.yml | 24 +++ php_modules/zip/test.yml | 2 + 310 files changed, 5087 insertions(+) create mode 100644 php_modules/Makefile create mode 100644 php_modules/README-build.yml.md create mode 100644 php_modules/README-options.yml.md create mode 100644 php_modules/README-test.yml.md create mode 100644 php_modules/README.md create mode 100644 php_modules/amqp/build.yml create mode 100644 php_modules/amqp/options.yml create mode 100644 php_modules/amqp/test.yml create mode 100644 php_modules/apcu/build.yml create mode 100644 php_modules/apcu/options.yml create mode 100644 php_modules/apcu/test.yml create mode 100644 php_modules/bcmath/build.yml create mode 100644 php_modules/bcmath/options.yml create mode 100644 php_modules/bcmath/test.yml create mode 100644 php_modules/blackfire/build.yml create mode 100644 php_modules/blackfire/curl/build.yml create mode 100644 php_modules/blackfire/curl/options.yml create mode 100644 php_modules/blackfire/curl/test.yml create mode 100644 php_modules/blackfire/options.yml create mode 100644 php_modules/blackfire/test.yml create mode 100644 php_modules/bz2/build.yml create mode 100644 php_modules/bz2/options.yml create mode 100644 php_modules/bz2/test.yml create mode 100644 php_modules/calendar/build.yml create mode 100644 php_modules/calendar/options.yml create mode 100644 php_modules/calendar/test.yml create mode 100644 php_modules/ctype/build.yml create mode 100644 php_modules/ctype/options.yml create mode 100644 php_modules/ctype/test.yml create mode 100644 php_modules/curl/build.yml create mode 100644 php_modules/curl/options.yml create mode 100644 php_modules/curl/test.yml create mode 100644 php_modules/dba/build.yml create mode 100644 php_modules/dba/options.yml create mode 100644 php_modules/dba/test.yml create mode 100644 php_modules/dom/build.yml create mode 100644 php_modules/dom/options.yml create mode 100644 php_modules/dom/test.yml create mode 100644 php_modules/enchant/build.yml create mode 100644 php_modules/enchant/options.yml create mode 100644 php_modules/enchant/test.yml create mode 100644 php_modules/exif/build.yml create mode 100644 php_modules/exif/options.yml create mode 100644 php_modules/exif/test.yml create mode 100644 php_modules/ffi/build.yml create mode 100644 php_modules/ffi/options.yml create mode 100644 php_modules/ffi/test.yml create mode 100644 php_modules/fileinfo/build.yml create mode 100644 php_modules/fileinfo/options.yml create mode 100644 php_modules/fileinfo/test.yml create mode 100644 php_modules/filter/build.yml create mode 100644 php_modules/filter/options.yml create mode 100644 php_modules/filter/test.yml create mode 100644 php_modules/ftp/build.yml create mode 100644 php_modules/ftp/options.yml create mode 100644 php_modules/ftp/test.yml create mode 100644 php_modules/gd/build.yml create mode 100644 php_modules/gd/options.yml create mode 100644 php_modules/gd/test.yml create mode 100644 php_modules/gettext/build.yml create mode 100644 php_modules/gettext/options.yml create mode 100644 php_modules/gettext/test.yml create mode 100644 php_modules/gmp/build.yml create mode 100644 php_modules/gmp/options.yml create mode 100644 php_modules/gmp/test.yml create mode 100644 php_modules/hash/build.yml create mode 100644 php_modules/hash/options.yml create mode 100644 php_modules/hash/test.yml create mode 100644 php_modules/iconv/build.yml create mode 100644 php_modules/iconv/options.yml create mode 100644 php_modules/iconv/test.yml create mode 100644 php_modules/igbinary/build.yml create mode 100644 php_modules/igbinary/options.yml create mode 100644 php_modules/igbinary/test.yml create mode 100644 php_modules/imagick/build.yml create mode 100644 php_modules/imagick/options.yml create mode 100644 php_modules/imagick/test.yml create mode 100644 php_modules/imap/build.yml create mode 100644 php_modules/imap/options.yml create mode 100644 php_modules/imap/test.yml create mode 100644 php_modules/interbase/build.yml create mode 100644 php_modules/interbase/options.yml create mode 100644 php_modules/interbase/test.yml create mode 100644 php_modules/intl/build.yml create mode 100644 php_modules/intl/options.yml create mode 100644 php_modules/intl/test.yml create mode 100644 php_modules/ioncube/build.yml create mode 100644 php_modules/ioncube/options.yml create mode 100644 php_modules/ioncube/test.yml create mode 100644 php_modules/json/build.yml create mode 100644 php_modules/json/options.yml create mode 100644 php_modules/json/test.yml create mode 100644 php_modules/ldap/build.yml create mode 100644 php_modules/ldap/options.yml create mode 100644 php_modules/ldap/test.yml create mode 100644 php_modules/libxml/build.yml create mode 100644 php_modules/libxml/options.yml create mode 100644 php_modules/libxml/test.yml create mode 100644 php_modules/mbstring/build.yml create mode 100644 php_modules/mbstring/options.yml create mode 100644 php_modules/mbstring/test.yml create mode 100644 php_modules/mcrypt/build.yml create mode 100644 php_modules/mcrypt/options.yml create mode 100644 php_modules/mcrypt/test.yml create mode 100644 php_modules/memcache/build.yml create mode 100644 php_modules/memcache/options.yml create mode 100644 php_modules/memcache/test.yml create mode 100644 php_modules/memcached/build.yml create mode 100644 php_modules/memcached/options.yml create mode 100644 php_modules/memcached/test.yml create mode 100644 php_modules/mhash/build.yml create mode 100644 php_modules/mhash/options.yml create mode 100644 php_modules/mhash/test.yml create mode 120000 php_modules/modules-generate.py create mode 120000 php_modules/modules-validate.py create mode 100644 php_modules/mongo/build.yml create mode 100644 php_modules/mongo/options.yml create mode 100644 php_modules/mongo/test.yml create mode 100644 php_modules/mongodb/build.yml create mode 100644 php_modules/mongodb/options.yml create mode 100644 php_modules/mongodb/test.yml create mode 100644 php_modules/msgpack/build.yml create mode 100644 php_modules/msgpack/options.yml create mode 100644 php_modules/msgpack/test.yml create mode 100644 php_modules/mysql/build.yml create mode 100644 php_modules/mysql/options.yml create mode 100644 php_modules/mysql/test.yml create mode 100644 php_modules/mysqli/build.yml create mode 100644 php_modules/mysqli/options.yml create mode 100644 php_modules/mysqli/test.yml create mode 100644 php_modules/mysqlnd/build.yml create mode 100644 php_modules/mysqlnd/options.yml create mode 100644 php_modules/mysqlnd/test.yml create mode 100644 php_modules/oauth/build.yml create mode 100644 php_modules/oauth/options.yml create mode 100644 php_modules/oauth/test.yml create mode 100644 php_modules/oci8/build.yml create mode 100644 php_modules/oci8/options.yml create mode 100644 php_modules/oci8/test.yml create mode 100644 php_modules/odbc/build.yml create mode 100644 php_modules/odbc/options.yml create mode 100644 php_modules/odbc/test.yml create mode 100644 php_modules/opcache/build.yml create mode 100644 php_modules/opcache/options.yml create mode 100644 php_modules/opcache/test.yml create mode 100644 php_modules/openssl/build.yml create mode 100644 php_modules/openssl/options.yml create mode 100644 php_modules/openssl/test.yml create mode 100644 php_modules/pcntl/build.yml create mode 100644 php_modules/pcntl/options.yml create mode 100644 php_modules/pcntl/test.yml create mode 100644 php_modules/pcre/build.yml create mode 100644 php_modules/pcre/curl/build.yml create mode 100644 php_modules/pcre/curl/options.yml create mode 100644 php_modules/pcre/curl/test.yml create mode 100644 php_modules/pcre/options.yml create mode 100644 php_modules/pcre/test.yml create mode 100644 php_modules/pdo/build.yml create mode 100644 php_modules/pdo/options.yml create mode 100644 php_modules/pdo/test.yml create mode 100644 php_modules/pdo_dblib/build.yml create mode 100644 php_modules/pdo_dblib/options.yml create mode 100644 php_modules/pdo_dblib/test.yml create mode 100644 php_modules/pdo_firebird/build.yml create mode 100644 php_modules/pdo_firebird/options.yml create mode 100644 php_modules/pdo_firebird/test.yml create mode 100644 php_modules/pdo_mysql/build.yml create mode 100644 php_modules/pdo_mysql/options.yml create mode 100644 php_modules/pdo_mysql/test.yml create mode 100644 php_modules/pdo_oci/build.yml create mode 100644 php_modules/pdo_oci/options.yml create mode 100644 php_modules/pdo_oci/test.yml create mode 100644 php_modules/pdo_odbc/build.yml create mode 100644 php_modules/pdo_odbc/options.yml create mode 100644 php_modules/pdo_odbc/test.yml create mode 100644 php_modules/pdo_pgsql/build.yml create mode 100644 php_modules/pdo_pgsql/options.yml create mode 100644 php_modules/pdo_pgsql/test.yml create mode 100644 php_modules/pdo_sqlite/build.yml create mode 100644 php_modules/pdo_sqlite/options.yml create mode 100644 php_modules/pdo_sqlite/test.yml create mode 100644 php_modules/pdo_sqlsrv/build.yml create mode 100644 php_modules/pdo_sqlsrv/options.yml create mode 100644 php_modules/pdo_sqlsrv/test.yml create mode 100644 php_modules/pgsql/build.yml create mode 100644 php_modules/pgsql/options.yml create mode 100644 php_modules/pgsql/test.yml create mode 100644 php_modules/phalcon/build.yml create mode 100644 php_modules/phalcon/options.yml create mode 100644 php_modules/phalcon/test.yml create mode 100644 php_modules/phar/build.yml create mode 100644 php_modules/phar/options.yml create mode 100644 php_modules/phar/test.yml create mode 100644 php_modules/posix/build.yml create mode 100644 php_modules/posix/options.yml create mode 100644 php_modules/posix/test.yml create mode 100644 php_modules/pspell/build.yml create mode 100644 php_modules/pspell/options.yml create mode 100644 php_modules/pspell/test.yml create mode 100644 php_modules/psr/build.yml create mode 100644 php_modules/psr/options.yml create mode 100644 php_modules/psr/test.yml create mode 100644 php_modules/rdkafka/build.yml create mode 100644 php_modules/rdkafka/options.yml create mode 100644 php_modules/rdkafka/test.yml create mode 100644 php_modules/readline/build.yml create mode 100644 php_modules/readline/options.yml create mode 100644 php_modules/readline/test.yml create mode 100644 php_modules/recode/build.yml create mode 100644 php_modules/recode/options.yml create mode 100644 php_modules/recode/test.yml create mode 100644 php_modules/redis/build.yml create mode 100644 php_modules/redis/options.yml create mode 100644 php_modules/redis/test.yml create mode 100644 php_modules/reflection/build.yml create mode 100644 php_modules/reflection/options.yml create mode 100644 php_modules/reflection/test.yml create mode 100644 php_modules/session/build.yml create mode 100644 php_modules/session/options.yml create mode 100644 php_modules/session/test.yml create mode 100644 php_modules/shmop/build.yml create mode 100644 php_modules/shmop/options.yml create mode 100644 php_modules/shmop/test.yml create mode 100644 php_modules/simplexml/build.yml create mode 100644 php_modules/simplexml/options.yml create mode 100644 php_modules/simplexml/test.yml create mode 100644 php_modules/snmp/build.yml create mode 100644 php_modules/snmp/options.yml create mode 100644 php_modules/snmp/test.yml create mode 100644 php_modules/soap/build.yml create mode 100644 php_modules/soap/options.yml create mode 100644 php_modules/soap/test.yml create mode 100644 php_modules/sockets/build.yml create mode 100644 php_modules/sockets/options.yml create mode 100644 php_modules/sockets/test.yml create mode 100644 php_modules/sodium/build.yml create mode 100644 php_modules/sodium/options.yml create mode 100644 php_modules/sodium/test.yml create mode 100644 php_modules/solr/build.yml create mode 100644 php_modules/solr/options.yml create mode 100644 php_modules/solr/test.yml create mode 100644 php_modules/spl/build.yml create mode 100644 php_modules/spl/options.yml create mode 100644 php_modules/spl/test.yml create mode 100644 php_modules/sqlite3/build.yml create mode 100644 php_modules/sqlite3/options.yml create mode 100644 php_modules/sqlite3/test.yml create mode 100644 php_modules/sqlsrv/build.yml create mode 100644 php_modules/sqlsrv/options.yml create mode 100644 php_modules/sqlsrv/test.yml create mode 100644 php_modules/ssh2/build.yml create mode 100644 php_modules/ssh2/options.yml create mode 100644 php_modules/ssh2/test.yml create mode 100644 php_modules/swoole/build.yml create mode 100644 php_modules/swoole/options.yml create mode 100644 php_modules/swoole/test.yml create mode 100644 php_modules/sysvmsg/build.yml create mode 100644 php_modules/sysvmsg/options.yml create mode 100644 php_modules/sysvmsg/test.yml create mode 100644 php_modules/sysvsem/build.yml create mode 100644 php_modules/sysvsem/options.yml create mode 100644 php_modules/sysvsem/test.yml create mode 100644 php_modules/sysvshm/build.yml create mode 100644 php_modules/sysvshm/options.yml create mode 100644 php_modules/sysvshm/test.yml create mode 100644 php_modules/tidy/build.yml create mode 100644 php_modules/tidy/options.yml create mode 100644 php_modules/tidy/test.yml create mode 100644 php_modules/tokenizer/build.yml create mode 100644 php_modules/tokenizer/options.yml create mode 100644 php_modules/tokenizer/test.yml create mode 100644 php_modules/uploadprogress/build.yml create mode 100644 php_modules/uploadprogress/options.yml create mode 100644 php_modules/uploadprogress/test.yml create mode 100644 php_modules/uuid/build.yml create mode 100644 php_modules/uuid/options.yml create mode 100644 php_modules/uuid/test.yml create mode 100644 php_modules/vips/build.yml create mode 100644 php_modules/vips/options.yml create mode 100644 php_modules/vips/test.yml create mode 100644 php_modules/wddx/build.yml create mode 100644 php_modules/wddx/options.yml create mode 100644 php_modules/wddx/test.yml create mode 100644 php_modules/xdebug/build.yml create mode 100644 php_modules/xdebug/options.yml create mode 100644 php_modules/xdebug/test.yml create mode 100644 php_modules/xlswriter/build.yml create mode 100644 php_modules/xlswriter/options.yml create mode 100644 php_modules/xlswriter/test.yml create mode 100644 php_modules/xml/build.yml create mode 100644 php_modules/xml/options.yml create mode 100644 php_modules/xml/test.yml create mode 100644 php_modules/xmlreader/build.yml create mode 100644 php_modules/xmlreader/options.yml create mode 100644 php_modules/xmlreader/test.yml create mode 100644 php_modules/xmlrpc/build.yml create mode 100644 php_modules/xmlrpc/options.yml create mode 100644 php_modules/xmlrpc/test.yml create mode 100644 php_modules/xmlwriter/build.yml create mode 100644 php_modules/xmlwriter/options.yml create mode 100644 php_modules/xmlwriter/test.yml create mode 100644 php_modules/xsl/build.yml create mode 100644 php_modules/xsl/options.yml create mode 100644 php_modules/xsl/test.yml create mode 100644 php_modules/yaml/build.yml create mode 100644 php_modules/yaml/options.yml create mode 100644 php_modules/yaml/test.yml create mode 100644 php_modules/zip/build.yml create mode 100644 php_modules/zip/options.yml create mode 100644 php_modules/zip/test.yml diff --git a/php_modules/Makefile b/php_modules/Makefile new file mode 100644 index 00000000..68cb4454 --- /dev/null +++ b/php_modules/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/php_modules/README-build.yml.md b/php_modules/README-build.yml.md new file mode 100644 index 00000000..19297fec --- /dev/null +++ b/php_modules/README-build.yml.md @@ -0,0 +1,195 @@ +# 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/php_modules/README-options.yml.md b/php_modules/README-options.yml.md new file mode 100644 index 00000000..6a0d0e69 --- /dev/null +++ b/php_modules/README-options.yml.md @@ -0,0 +1,6 @@ +# Extension definition: `options.yml` + +To be done + + +For now have a look at the existing modules into the respective `options.yml` files as they are mostly the same. diff --git a/php_modules/README-test.yml.md b/php_modules/README-test.yml.md new file mode 100644 index 00000000..ea47fb8b --- /dev/null +++ b/php_modules/README-test.yml.md @@ -0,0 +1,3 @@ +# Extension definition: `test.yml` + +This is not yet implemented and thus no documentation exists. diff --git a/php_modules/README.md b/php_modules/README.md new file mode 100644 index 00000000..5df4bf06 --- /dev/null +++ b/php_modules/README.md @@ -0,0 +1,42 @@ +# PHP Module definitions + +This documentation 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 here in their dedicated 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? + +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 + 4. Run `python3 modules-validate.py` to validate the created PHP module definitions + 5. Run `python3 modules-generate.py` to create Ansible group_vars + +2. **Inside the root of this git repository:** + 1. Run `make gen-dockerfiles` to generate Dockerfiles via Ansible + 2. 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 your 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 you generate group_vars for your module only via: + +```bash +# Only generate group_vars for curl +# Note: if curl has other modules as requiredments to be built beforehand, those will also be added +python3 module-generate.py curl +``` + + +## Extension definition: `build.yml` + +See **[README-build.yml.md](README-build.yml.md)** how to alter the `build.yml` file. + + +## Extension definition: `options.yml` + +See **[README-options.yml.md](README-options.yml.md)** how to alter the `options.yml` file. + + +## Extension definition: `test.yml` + +See **[README-test.yml.md](README-test.yml.md)** how to alter the `test.yml` file. diff --git a/php_modules/amqp/build.yml b/php_modules/amqp/build.yml new file mode 100644 index 00000000..ab7474fe --- /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 00000000..372d5873 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/amqp/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/apcu/build.yml b/php_modules/apcu/build.yml new file mode 100644 index 00000000..44411b61 --- /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 00000000..d7daa91b --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/apcu/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/bcmath/build.yml b/php_modules/bcmath/build.yml new file mode 100644 index 00000000..6c0d2dea --- /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 00000000..9336fc76 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/bcmath/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/blackfire/build.yml b/php_modules/blackfire/build.yml new file mode 100644 index 00000000..4308c9d1 --- /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/curl/build.yml b/php_modules/blackfire/curl/build.yml new file mode 100644 index 00000000..a04b6871 --- /dev/null +++ b/php_modules/blackfire/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/blackfire/curl/options.yml b/php_modules/blackfire/curl/options.yml new file mode 100644 index 00000000..bafa896b --- /dev/null +++ b/php_modules/blackfire/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/blackfire/curl/test.yml b/php_modules/blackfire/curl/test.yml new file mode 100644 index 00000000..cd21505a --- /dev/null +++ b/php_modules/blackfire/curl/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/blackfire/options.yml b/php_modules/blackfire/options.yml new file mode 100644 index 00000000..864bb923 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/blackfire/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/bz2/build.yml b/php_modules/bz2/build.yml new file mode 100644 index 00000000..a71f47f5 --- /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 00000000..98f557cc --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/bz2/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/calendar/build.yml b/php_modules/calendar/build.yml new file mode 100644 index 00000000..6c0d2dea --- /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 00000000..29e47041 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/calendar/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/ctype/build.yml b/php_modules/ctype/build.yml new file mode 100644 index 00000000..a04b6871 --- /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 00000000..22facd88 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/ctype/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/curl/build.yml b/php_modules/curl/build.yml new file mode 100644 index 00000000..a04b6871 --- /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 00000000..bafa896b --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/curl/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/dba/build.yml b/php_modules/dba/build.yml new file mode 100644 index 00000000..6c0d2dea --- /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 00000000..237a91ae --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/dba/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/dom/build.yml b/php_modules/dom/build.yml new file mode 100644 index 00000000..a04b6871 --- /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 00000000..518c39f9 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/dom/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/enchant/build.yml b/php_modules/enchant/build.yml new file mode 100644 index 00000000..ebf7db78 --- /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 00000000..3185b0d3 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/enchant/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/exif/build.yml b/php_modules/exif/build.yml new file mode 100644 index 00000000..6c0d2dea --- /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 00000000..558a2024 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/exif/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/ffi/build.yml b/php_modules/ffi/build.yml new file mode 100644 index 00000000..7984b2e8 --- /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 00000000..92bf7609 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/ffi/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/fileinfo/build.yml b/php_modules/fileinfo/build.yml new file mode 100644 index 00000000..ddda1468 --- /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 00000000..c68c8695 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/fileinfo/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/filter/build.yml b/php_modules/filter/build.yml new file mode 100644 index 00000000..a04b6871 --- /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 00000000..3ab2ddff --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/filter/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/ftp/build.yml b/php_modules/ftp/build.yml new file mode 100644 index 00000000..a04b6871 --- /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 00000000..621bfab0 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/ftp/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/gd/build.yml b/php_modules/gd/build.yml new file mode 100644 index 00000000..e38e64c6 --- /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 00000000..4a8a0bdd --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/gd/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/gettext/build.yml b/php_modules/gettext/build.yml new file mode 100644 index 00000000..6c0d2dea --- /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 00000000..51755f07 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/gettext/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/gmp/build.yml b/php_modules/gmp/build.yml new file mode 100644 index 00000000..1305d3cf --- /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 00000000..e8d5dc65 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/gmp/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/hash/build.yml b/php_modules/hash/build.yml new file mode 100644 index 00000000..a04b6871 --- /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 00000000..41db8cbb --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/hash/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/iconv/build.yml b/php_modules/iconv/build.yml new file mode 100644 index 00000000..a04b6871 --- /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 00000000..3d3a54c0 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/iconv/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/igbinary/build.yml b/php_modules/igbinary/build.yml new file mode 100644 index 00000000..32874312 --- /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 00000000..e4a4192f --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/igbinary/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/imagick/build.yml b/php_modules/imagick/build.yml new file mode 100644 index 00000000..fd0c44b2 --- /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 00000000..254ffed9 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/libxml/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/mbstring/build.yml b/php_modules/mbstring/build.yml new file mode 100644 index 00000000..f19b239d --- /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 00000000..f7f45e0d --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/mbstring/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/mcrypt/build.yml b/php_modules/mcrypt/build.yml new file mode 100644 index 00000000..2cf53b70 --- /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 00000000..18aa5223 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/mcrypt/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/memcache/build.yml b/php_modules/memcache/build.yml new file mode 100644 index 00000000..197845f1 --- /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 00000000..713a3dd8 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/memcache/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/memcached/build.yml b/php_modules/memcached/build.yml new file mode 100644 index 00000000..4b08574b --- /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 00000000..8f091ee9 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/memcached/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/mhash/build.yml b/php_modules/mhash/build.yml new file mode 100644 index 00000000..b5075e08 --- /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 00000000..e4ca4617 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/mhash/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/modules-generate.py b/php_modules/modules-generate.py new file mode 120000 index 00000000..a220005a --- /dev/null +++ b/php_modules/modules-generate.py @@ -0,0 +1 @@ +../bin/modules-generate.py \ No newline at end of file diff --git a/php_modules/modules-validate.py b/php_modules/modules-validate.py new file mode 120000 index 00000000..14167079 --- /dev/null +++ b/php_modules/modules-validate.py @@ -0,0 +1 @@ +../bin/modules-validate.py \ No newline at end of file diff --git a/php_modules/mongo/build.yml b/php_modules/mongo/build.yml new file mode 100644 index 00000000..9062bb3e --- /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 00000000..6636b1ea --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/mongo/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/mongodb/build.yml b/php_modules/mongodb/build.yml new file mode 100644 index 00000000..cc1616fe --- /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 00000000..bce5929e --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/mongodb/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/msgpack/build.yml b/php_modules/msgpack/build.yml new file mode 100644 index 00000000..864c95fe --- /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 00000000..8496d175 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/msgpack/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/mysql/build.yml b/php_modules/mysql/build.yml new file mode 100644 index 00000000..5574a7ad --- /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 00000000..d2395ba3 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/mysql/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/mysqli/build.yml b/php_modules/mysqli/build.yml new file mode 100644 index 00000000..6e4766a6 --- /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 00000000..785626ac --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/mysqli/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/mysqlnd/build.yml b/php_modules/mysqlnd/build.yml new file mode 100644 index 00000000..a6cad66f --- /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 00000000..3aeccca6 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/mysqlnd/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/oauth/build.yml b/php_modules/oauth/build.yml new file mode 100644 index 00000000..634a83d6 --- /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 00000000..5fe8901f --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/oauth/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/oci8/build.yml b/php_modules/oci8/build.yml new file mode 100644 index 00000000..81540de9 --- /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 00000000..73dc5022 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/oci8/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/odbc/build.yml b/php_modules/odbc/build.yml new file mode 100644 index 00000000..6639f28d --- /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 00000000..2989e5d0 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/odbc/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/opcache/build.yml b/php_modules/opcache/build.yml new file mode 100644 index 00000000..8b37b7f4 --- /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 00000000..b32a99b3 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/opcache/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/openssl/build.yml b/php_modules/openssl/build.yml new file mode 100644 index 00000000..a04b6871 --- /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 00000000..7f9ebae0 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/openssl/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/pcntl/build.yml b/php_modules/pcntl/build.yml new file mode 100644 index 00000000..6c0d2dea --- /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 00000000..59be8dff --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/pcntl/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/pcre/build.yml b/php_modules/pcre/build.yml new file mode 100644 index 00000000..a04b6871 --- /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/curl/build.yml b/php_modules/pcre/curl/build.yml new file mode 100644 index 00000000..a04b6871 --- /dev/null +++ b/php_modules/pcre/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/pcre/curl/options.yml b/php_modules/pcre/curl/options.yml new file mode 100644 index 00000000..bafa896b --- /dev/null +++ b/php_modules/pcre/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/pcre/curl/test.yml b/php_modules/pcre/curl/test.yml new file mode 100644 index 00000000..cd21505a --- /dev/null +++ b/php_modules/pcre/curl/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/pcre/options.yml b/php_modules/pcre/options.yml new file mode 100644 index 00000000..fadf7caa --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/pcre/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/pdo/build.yml b/php_modules/pdo/build.yml new file mode 100644 index 00000000..a04b6871 --- /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 00000000..3d5fbdda --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/pdo/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/pdo_dblib/build.yml b/php_modules/pdo_dblib/build.yml new file mode 100644 index 00000000..e65fc61d --- /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 00000000..23d394c4 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/pdo_dblib/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/pdo_firebird/build.yml b/php_modules/pdo_firebird/build.yml new file mode 100644 index 00000000..03fbc424 --- /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 00000000..546b5497 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/pdo_firebird/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/pdo_mysql/build.yml b/php_modules/pdo_mysql/build.yml new file mode 100644 index 00000000..738f9f23 --- /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 00000000..34b5f24f --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/pdo_mysql/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/pdo_oci/build.yml b/php_modules/pdo_oci/build.yml new file mode 100644 index 00000000..769453e6 --- /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 00000000..a533c8b3 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/pdo_oci/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/pdo_odbc/build.yml b/php_modules/pdo_odbc/build.yml new file mode 100644 index 00000000..6639f28d --- /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 00000000..71240986 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/pdo_odbc/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/pdo_pgsql/build.yml b/php_modules/pdo_pgsql/build.yml new file mode 100644 index 00000000..6998b9fa --- /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 00000000..86e6db74 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/pdo_pgsql/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/pdo_sqlite/build.yml b/php_modules/pdo_sqlite/build.yml new file mode 100644 index 00000000..a04b6871 --- /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 00000000..63e18612 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/pdo_sqlite/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/pdo_sqlsrv/build.yml b/php_modules/pdo_sqlsrv/build.yml new file mode 100644 index 00000000..fa19ee13 --- /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 00000000..4f447e0b --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/pdo_sqlsrv/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/pgsql/build.yml b/php_modules/pgsql/build.yml new file mode 100644 index 00000000..6998b9fa --- /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 00000000..b109c7b7 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/pgsql/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/phalcon/build.yml b/php_modules/phalcon/build.yml new file mode 100644 index 00000000..fc99662c --- /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: [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.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 00000000..6dee662a --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/phalcon/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/phar/build.yml b/php_modules/phar/build.yml new file mode 100644 index 00000000..e65dc47e --- /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 00000000..d9b5cb04 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/phar/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/posix/build.yml b/php_modules/posix/build.yml new file mode 100644 index 00000000..a04b6871 --- /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 00000000..8c89bdeb --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/posix/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/pspell/build.yml b/php_modules/pspell/build.yml new file mode 100644 index 00000000..8fdac37d --- /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 00000000..60a0f7ec --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/pspell/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/psr/build.yml b/php_modules/psr/build.yml new file mode 100644 index 00000000..0101db7c --- /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 00000000..518f3e1a --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/psr/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/rdkafka/build.yml b/php_modules/rdkafka/build.yml new file mode 100644 index 00000000..46907bc9 --- /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 00000000..abe2300e --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/rdkafka/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/readline/build.yml b/php_modules/readline/build.yml new file mode 100644 index 00000000..a8627a43 --- /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 00000000..cc9a6960 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/readline/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/recode/build.yml b/php_modules/recode/build.yml new file mode 100644 index 00000000..54b88dfe --- /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 00000000..f0b6f87d --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/recode/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/redis/build.yml b/php_modules/redis/build.yml new file mode 100644 index 00000000..1d854bf1 --- /dev/null +++ b/php_modules/redis/build.yml @@ -0,0 +1,81 @@ +--- + +# Available Jinja2 variables: +# --------------------------- +# * {{ php_all_versions }}: Array of all PHP versions + + +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 diff --git a/php_modules/redis/options.yml b/php_modules/redis/options.yml new file mode 100644 index 00000000..83c5a103 --- /dev/null +++ b/php_modules/redis/options.yml @@ -0,0 +1,27 @@ +--- + +# 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 + - msgpack +# - lzf # TODO: add lzf module to redis + +# 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 00000000..cd21505a --- /dev/null +++ b/php_modules/redis/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/reflection/build.yml b/php_modules/reflection/build.yml new file mode 100644 index 00000000..a04b6871 --- /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 00000000..aaff243a --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/reflection/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/session/build.yml b/php_modules/session/build.yml new file mode 100644 index 00000000..a04b6871 --- /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 00000000..992f27c1 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/session/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/shmop/build.yml b/php_modules/shmop/build.yml new file mode 100644 index 00000000..6c0d2dea --- /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 00000000..47bff472 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/shmop/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/simplexml/build.yml b/php_modules/simplexml/build.yml new file mode 100644 index 00000000..a04b6871 --- /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 00000000..b607e8c8 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/simplexml/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/snmp/build.yml b/php_modules/snmp/build.yml new file mode 100644 index 00000000..6acd2193 --- /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 00000000..57939bb0 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/snmp/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/soap/build.yml b/php_modules/soap/build.yml new file mode 100644 index 00000000..29626602 --- /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 00000000..2f473589 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/soap/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/sockets/build.yml b/php_modules/sockets/build.yml new file mode 100644 index 00000000..0be33bf4 --- /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 00000000..9c879b48 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/sockets/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/sodium/build.yml b/php_modules/sodium/build.yml new file mode 100644 index 00000000..e784b8b2 --- /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 00000000..889db9b2 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/sodium/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/solr/build.yml b/php_modules/solr/build.yml new file mode 100644 index 00000000..3a4c06bd --- /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 00000000..e21bba89 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/solr/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/spl/build.yml b/php_modules/spl/build.yml new file mode 100644 index 00000000..a04b6871 --- /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 00000000..b23aa8c8 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/spl/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/sqlite3/build.yml b/php_modules/sqlite3/build.yml new file mode 100644 index 00000000..a04b6871 --- /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 00000000..7bb21db9 --- /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: [] + +# 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 00000000..cd21505a --- /dev/null +++ b/php_modules/sqlite3/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/sqlsrv/build.yml b/php_modules/sqlsrv/build.yml new file mode 100644 index 00000000..fa19ee13 --- /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 00000000..24e67595 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/sqlsrv/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/ssh2/build.yml b/php_modules/ssh2/build.yml new file mode 100644 index 00000000..ecc4184b --- /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 00000000..45312f8d --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/ssh2/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/swoole/build.yml b/php_modules/swoole/build.yml new file mode 100644 index 00000000..156bf894 --- /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 00000000..f16589c8 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/swoole/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/sysvmsg/build.yml b/php_modules/sysvmsg/build.yml new file mode 100644 index 00000000..6c0d2dea --- /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 00000000..4e76ad97 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/sysvmsg/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/sysvsem/build.yml b/php_modules/sysvsem/build.yml new file mode 100644 index 00000000..6c0d2dea --- /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 00000000..428beb0e --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/sysvsem/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/sysvshm/build.yml b/php_modules/sysvshm/build.yml new file mode 100644 index 00000000..6c0d2dea --- /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 00000000..8d824915 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/sysvshm/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/tidy/build.yml b/php_modules/tidy/build.yml new file mode 100644 index 00000000..5f835054 --- /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 00000000..911dbd37 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/tidy/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/tokenizer/build.yml b/php_modules/tokenizer/build.yml new file mode 100644 index 00000000..a04b6871 --- /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 00000000..58184a7e --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/tokenizer/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/uploadprogress/build.yml b/php_modules/uploadprogress/build.yml new file mode 100644 index 00000000..3bb0944f --- /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 00000000..d0e63005 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/uploadprogress/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/uuid/build.yml b/php_modules/uuid/build.yml new file mode 100644 index 00000000..14d3ac57 --- /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 00000000..51e9ee84 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/uuid/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/vips/build.yml b/php_modules/vips/build.yml new file mode 100644 index 00000000..ca7e77ec --- /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 00000000..e6f4e78e --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/vips/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/wddx/build.yml b/php_modules/wddx/build.yml new file mode 100644 index 00000000..5e2b0d62 --- /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 00000000..9b23daf2 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/wddx/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/xdebug/build.yml b/php_modules/xdebug/build.yml new file mode 100644 index 00000000..11d81125 --- /dev/null +++ b/php_modules/xdebug/build.yml @@ -0,0 +1,49 @@ +--- + +# 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 + 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.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 00000000..ea9408d4 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/xdebug/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/xlswriter/build.yml b/php_modules/xlswriter/build.yml new file mode 100644 index 00000000..168627d1 --- /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 00000000..31d17d4b --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/xlswriter/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/xml/build.yml b/php_modules/xml/build.yml new file mode 100644 index 00000000..a04b6871 --- /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 00000000..aff491a3 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/xml/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/xmlreader/build.yml b/php_modules/xmlreader/build.yml new file mode 100644 index 00000000..a04b6871 --- /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 00000000..6b7184e3 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/xmlreader/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/xmlrpc/build.yml b/php_modules/xmlrpc/build.yml new file mode 100644 index 00000000..57d6a38e --- /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 00000000..4989621b --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/xmlrpc/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/xmlwriter/build.yml b/php_modules/xmlwriter/build.yml new file mode 100644 index 00000000..a04b6871 --- /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 00000000..bf75cdf8 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/xmlwriter/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/xsl/build.yml b/php_modules/xsl/build.yml new file mode 100644 index 00000000..eefbe3cf --- /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 00000000..d213747f --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/xsl/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/yaml/build.yml b/php_modules/yaml/build.yml new file mode 100644 index 00000000..048a4740 --- /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 00000000..c5e6d742 --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/yaml/test.yml @@ -0,0 +1,2 @@ +--- + diff --git a/php_modules/zip/build.yml b/php_modules/zip/build.yml new file mode 100644 index 00000000..d47797be --- /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 00000000..1754cf9e --- /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 00000000..cd21505a --- /dev/null +++ b/php_modules/zip/test.yml @@ -0,0 +1,2 @@ +--- + From 63598496fed8d448aa9e03fafb1ea7e20bbdfbb3 Mon Sep 17 00:00:00 2001 From: cytopia Date: Tue, 29 Nov 2022 04:45:25 +0100 Subject: [PATCH 11/53] Update Dockerfiles --- Dockerfiles/base/Dockerfile-5.2 | 2 +- Dockerfiles/base/Dockerfile-5.3 | 2 +- Dockerfiles/base/Dockerfile-5.4 | 2 +- Dockerfiles/base/Dockerfile-5.5 | 2 +- Dockerfiles/base/Dockerfile-5.6 | 2 +- Dockerfiles/base/Dockerfile-7.0 | 2 +- Dockerfiles/base/Dockerfile-7.1 | 2 +- Dockerfiles/base/Dockerfile-7.2 | 2 +- Dockerfiles/base/Dockerfile-7.3 | 2 +- Dockerfiles/base/Dockerfile-7.4 | 2 +- Dockerfiles/base/Dockerfile-8.0 | 2 +- Dockerfiles/base/Dockerfile-8.1 | 2 +- Dockerfiles/base/Dockerfile-8.2 | 2 +- Dockerfiles/mods/Dockerfile-5.2 | 97 +++++----- Dockerfiles/mods/Dockerfile-5.3 | 173 +++++++++-------- Dockerfiles/mods/Dockerfile-5.4 | 173 +++++++++-------- Dockerfiles/mods/Dockerfile-5.5 | 207 +++++++++++--------- Dockerfiles/mods/Dockerfile-5.6 | 219 ++++++++++++---------- Dockerfiles/mods/Dockerfile-7.0 | 322 +++++++++++++++++--------------- Dockerfiles/mods/Dockerfile-7.1 | 322 +++++++++++++++++--------------- Dockerfiles/mods/Dockerfile-7.2 | 322 +++++++++++++++++--------------- Dockerfiles/mods/Dockerfile-7.3 | 322 +++++++++++++++++--------------- Dockerfiles/mods/Dockerfile-7.4 | 311 ++++++++++++++++-------------- Dockerfiles/mods/Dockerfile-8.0 | 254 ++++++++++++++----------- Dockerfiles/mods/Dockerfile-8.1 | 256 ++++++++++++++----------- Dockerfiles/mods/Dockerfile-8.2 | 202 +++++++++++--------- Dockerfiles/prod/Dockerfile-5.2 | 2 +- Dockerfiles/prod/Dockerfile-5.3 | 2 +- Dockerfiles/prod/Dockerfile-5.4 | 2 +- Dockerfiles/prod/Dockerfile-5.5 | 2 +- Dockerfiles/prod/Dockerfile-5.6 | 2 +- Dockerfiles/prod/Dockerfile-7.0 | 2 +- Dockerfiles/prod/Dockerfile-7.1 | 2 +- Dockerfiles/prod/Dockerfile-7.2 | 2 +- Dockerfiles/prod/Dockerfile-7.3 | 2 +- Dockerfiles/prod/Dockerfile-7.4 | 2 +- Dockerfiles/prod/Dockerfile-8.0 | 2 +- Dockerfiles/prod/Dockerfile-8.1 | 2 +- Dockerfiles/prod/Dockerfile-8.2 | 2 +- Dockerfiles/work/Dockerfile-5.2 | 2 +- Dockerfiles/work/Dockerfile-5.3 | 2 +- Dockerfiles/work/Dockerfile-5.4 | 2 +- Dockerfiles/work/Dockerfile-5.5 | 2 +- Dockerfiles/work/Dockerfile-5.6 | 2 +- Dockerfiles/work/Dockerfile-7.0 | 2 +- Dockerfiles/work/Dockerfile-7.1 | 2 +- Dockerfiles/work/Dockerfile-7.2 | 2 +- Dockerfiles/work/Dockerfile-7.3 | 2 +- Dockerfiles/work/Dockerfile-7.4 | 2 +- Dockerfiles/work/Dockerfile-8.0 | 2 +- Dockerfiles/work/Dockerfile-8.1 | 2 +- Dockerfiles/work/Dockerfile-8.2 | 2 +- 52 files changed, 1790 insertions(+), 1468 deletions(-) diff --git a/Dockerfiles/base/Dockerfile-5.2 b/Dockerfiles/base/Dockerfile-5.2 index 03947e5b..cbc78944 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 a7bb4726..3cc5f3a8 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 c7334d87..418c0aa3 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 2cd23010..40a14c19 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 4826ff0e..d99785e8 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 d550dc59..133cce52 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 69ad40bb..ba3ac83b 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 220242f5..210d7c40 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 4a83d6bd..35146a30 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 eda04c16..1612e70d 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 ddd65b36..07ce20e9 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 7c7c6495..007692f6 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 c9951b63..ebd91c76 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 d894e3d7..fe69bd25 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,25 +244,25 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: msgpack -------------------- +# -------------------- Installing PHP Extension: memcache -------------------- RUN set -eux \ # Installation: Version specific # Type: PECL extension # Default: Pecl command - && pecl install msgpack-0.5.7 \ + && pecl install memcache-2.2.7 \ # Enabling - && docker-php-ext-enable msgpack \ + && docker-php-ext-enable memcache \ && true -# -------------------- Installing PHP Extension: memcache -------------------- +# -------------------- Installing PHP Extension: msgpack -------------------- RUN set -eux \ # Installation: Version specific # Type: PECL extension # Default: Pecl command - && pecl install memcache-2.2.7 \ + && pecl install msgpack-0.5.7 \ # Enabling - && docker-php-ext-enable memcache \ + && docker-php-ext-enable msgpack \ && true @@ -381,6 +382,17 @@ 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: phar -------------------- RUN set -eux \ # Installation: Version specific @@ -400,17 +412,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 +425,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 +434,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 +446,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 +540,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 +558,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 +609,8 @@ RUN set -eux \ libwebp5 \ libxpm4 \ libxslt1.1 \ + libzip2 \ snmp \ - zlib1g \ ca-certificates \ && rm -rf /var/lib/apt/lists/* \ \ @@ -665,10 +664,14 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^curl$' \ && 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 +700,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 +716,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 +726,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 +740,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 '^phar$' \ && php-fpm -m | grep -oiE '^phar$' \ && php -m | grep -oiE '^posix$' \ @@ -750,8 +753,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 +769,10 @@ 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 '^sysvmsg$' \ && php-fpm -m | grep -oiE '^sysvmsg$' \ && php -m | grep -oiE '^sysvsem$' \ @@ -784,8 +789,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 +797,6 @@ 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$' \ && true diff --git a/Dockerfiles/mods/Dockerfile-5.3 b/Dockerfiles/mods/Dockerfile-5.3 index 5f0c2304..21f118b6 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 @@ -30,6 +30,7 @@ RUN set -eux \ libmemcached-dev \ libmysqlclient-dev \ libnghttp2-dev \ + libpcre-dev \ libpcre3-dev \ libpng-dev \ libpq-dev \ @@ -46,6 +47,8 @@ RUN set -eux \ libxpm-dev \ libxslt-dev \ libyaml-dev \ + libzip-dev \ + re2c \ snmp \ uuid-dev \ zlib1g-dev \ @@ -255,25 +258,25 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: msgpack -------------------- +# -------------------- Installing PHP Extension: memcache -------------------- RUN set -eux \ # Installation: Version specific # Type: PECL extension # Default: Pecl command - && pecl install msgpack-0.5.7 \ + && pecl install memcache-2.2.7 \ # Enabling - && docker-php-ext-enable msgpack \ + && docker-php-ext-enable memcache \ && true -# -------------------- Installing PHP Extension: memcache -------------------- +# -------------------- Installing PHP Extension: msgpack -------------------- RUN set -eux \ # Installation: Version specific # Type: PECL extension # Default: Pecl command - && pecl install memcache-2.2.7 \ + && pecl install msgpack-0.5.7 \ # Enabling - && docker-php-ext-enable memcache \ + && docker-php-ext-enable msgpack \ && true @@ -343,27 +346,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 +379,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 +458,17 @@ 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: phalcon -------------------- RUN set -eux \ # Installation: Version specific @@ -466,17 +492,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 +516,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 +525,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 +537,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 +664,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 +682,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 +738,7 @@ RUN set -eux \ libxpm4 \ libxslt1.1 \ libyaml-0-2 \ + libzip2 \ snmp \ uuid \ zlib1g \ @@ -750,7 +764,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) \ @@ -793,10 +814,14 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^curl$' \ && 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$' \ @@ -827,16 +852,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 +872,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 +884,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 +898,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 +910,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 +931,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$' \ @@ -926,8 +955,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 +965,6 @@ 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$' \ && true diff --git a/Dockerfiles/mods/Dockerfile-5.4 b/Dockerfiles/mods/Dockerfile-5.4 index 77ffb18a..87330d21 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 @@ -30,6 +30,7 @@ RUN set -eux \ libmemcached-dev \ libmysqlclient-dev \ libnghttp2-dev \ + libpcre-dev \ libpcre3-dev \ libpng-dev \ libpq-dev \ @@ -46,6 +47,8 @@ RUN set -eux \ libxpm-dev \ libxslt-dev \ libyaml-dev \ + libzip-dev \ + re2c \ snmp \ uuid-dev \ zlib1g-dev \ @@ -255,25 +258,25 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: msgpack -------------------- +# -------------------- Installing PHP Extension: memcache -------------------- RUN set -eux \ # Installation: Version specific # Type: PECL extension # Default: Pecl command - && pecl install msgpack-0.5.7 \ + && pecl install memcache-2.2.7 \ # Enabling - && docker-php-ext-enable msgpack \ + && docker-php-ext-enable memcache \ && true -# -------------------- Installing PHP Extension: memcache -------------------- +# -------------------- Installing PHP Extension: msgpack -------------------- RUN set -eux \ # Installation: Version specific # Type: PECL extension # Default: Pecl command - && pecl install memcache-2.2.7 \ + && pecl install msgpack-0.5.7 \ # Enabling - && docker-php-ext-enable memcache \ + && docker-php-ext-enable msgpack \ && true @@ -343,27 +346,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 +379,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 +469,17 @@ 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: phalcon -------------------- RUN set -eux \ # Installation: Version specific @@ -477,17 +503,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 +527,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 +536,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 +548,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 +675,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 +693,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 +749,7 @@ RUN set -eux \ libxpm4 \ libxslt1.1 \ libyaml-0-2 \ + libzip2 \ snmp \ uuid \ zlib1g \ @@ -761,7 +775,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) \ @@ -804,10 +825,14 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^curl$' \ && 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$' \ @@ -838,16 +863,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 +883,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 +895,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 +911,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 +923,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 +944,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 +968,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 +978,6 @@ 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$' \ && true diff --git a/Dockerfiles/mods/Dockerfile-5.5 b/Dockerfiles/mods/Dockerfile-5.5 index 29d0506a..8c515238 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 @@ -32,6 +32,7 @@ RUN set -eux \ libmemcached-dev \ libmysqlclient-dev \ libnghttp2-dev \ + libpcre-dev \ libpcre3-dev \ libpng-dev \ libpq-dev \ @@ -48,6 +49,8 @@ RUN set -eux \ libxpm-dev \ libxslt-dev \ libyaml-dev \ + libzip-dev \ + re2c \ snmp \ uuid-dev \ zlib1g-dev \ @@ -90,23 +93,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 +261,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,25 +299,25 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: msgpack -------------------- +# -------------------- Installing PHP Extension: memcache -------------------- RUN set -eux \ # Installation: Version specific # Type: PECL extension # Default: Pecl command - && pecl install msgpack-0.5.7 \ + && pecl install memcache-2.2.7 \ # Enabling - && docker-php-ext-enable msgpack \ + && docker-php-ext-enable memcache \ && true -# -------------------- Installing PHP Extension: memcache -------------------- +# -------------------- Installing PHP Extension: msgpack -------------------- RUN set -eux \ # Installation: Version specific # Type: PECL extension # Default: Pecl command - && pecl install memcache-2.2.7 \ + && pecl install msgpack-0.5.7 \ # Enabling - && docker-php-ext-enable memcache \ + && docker-php-ext-enable msgpack \ && true @@ -384,27 +387,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 +420,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 +507,17 @@ 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: phalcon -------------------- RUN set -eux \ # Installation: Version specific @@ -515,17 +541,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 +565,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 +574,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 +586,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 +713,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 +731,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 +789,7 @@ RUN set -eux \ libxpm4 \ libxslt1.1 \ libyaml-0-2 \ + libzip2 \ snmp \ uuid \ zlib1g \ @@ -812,7 +826,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 +271,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,25 +309,25 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: msgpack -------------------- +# -------------------- Installing PHP Extension: memcache -------------------- RUN set -eux \ # Installation: Version specific # Type: PECL extension # Default: Pecl command - && pecl install msgpack-0.5.7 \ + && pecl install memcache-2.2.7 \ # Enabling - && docker-php-ext-enable msgpack \ + && docker-php-ext-enable memcache \ && true -# -------------------- Installing PHP Extension: memcache -------------------- +# -------------------- Installing PHP Extension: msgpack -------------------- RUN set -eux \ # Installation: Version specific # Type: PECL extension # Default: Pecl command - && pecl install memcache-2.2.7 \ + && pecl install msgpack-0.5.7 \ # Enabling - && docker-php-ext-enable memcache \ + && docker-php-ext-enable msgpack \ && true @@ -396,27 +398,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 +431,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 +518,17 @@ 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: phalcon -------------------- RUN set -eux \ # Installation: Version specific @@ -527,33 +552,22 @@ 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 -------------------- +# -------------------- Installing PHP Extension: rdkafka -------------------- RUN set -eux \ # Installation: Version specific # Type: PECL extension # Default: Pecl command - && pecl install redis-4.3.0 \ + && pecl install rdkafka-3.1.2 \ # Enabling - && docker-php-ext-enable redis \ + && docker-php-ext-enable rdkafka \ && true -# -------------------- Installing PHP Extension: rdkafka -------------------- +# -------------------- Installing PHP Extension: recode -------------------- RUN set -eux \ - # Installation: Version specific - # Type: PECL extension - # Default: Pecl command - && pecl install rdkafka-3.1.2 \ - # Enabling - && docker-php-ext-enable rdkafka \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ && true @@ -570,7 +584,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 +593,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 +605,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 +732,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 +750,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 +810,7 @@ RUN set -eux \ libzip4 \ snmp \ uuid \ + zlib1g \ ca-certificates \ && rm -rf /var/lib/apt/lists/* \ \ @@ -830,7 +844,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 +275,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 @@ -311,25 +313,25 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: msgpack -------------------- +# -------------------- Installing PHP Extension: memcache -------------------- RUN set -eux \ - # Installation: Generic + # Installation: Version specific # Type: PECL extension # Default: Pecl command - && pecl install msgpack \ + && pecl install memcache-4.0.5.2 \ # Enabling - && docker-php-ext-enable msgpack \ + && docker-php-ext-enable memcache \ && true -# -------------------- Installing PHP Extension: memcache -------------------- +# -------------------- Installing PHP Extension: msgpack -------------------- RUN set -eux \ - # Installation: Version specific + # Installation: Generic # Type: PECL extension # Default: Pecl command - && pecl install memcache-4.0.5.2 \ + && pecl install msgpack \ # Enabling - && docker-php-ext-enable memcache \ + && docker-php-ext-enable msgpack \ && true @@ -378,27 +380,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 +413,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 +476,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,37 +550,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: phalcon -------------------- -RUN set -eux \ - # Installation: Version specific - # Type: GIT extension - && git clone https://github.com/phalcon/cphalcon /tmp/phalcon \ - && cd /tmp/phalcon \ - # Custom: Branch - && git checkout v3.4.4 \ - # Custom: Install command - && cd build && ./install \ - # Enabling - && docker-php-ext-enable phalcon \ - && 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: 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 @@ -588,6 +576,40 @@ phpize \ && 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 + # Type: GIT extension + && git clone https://github.com/phalcon/cphalcon /tmp/phalcon \ + && cd /tmp/phalcon \ + # Custom: Branch + && git checkout v3.4.4 \ + # Custom: Install command + && cd build && ./install \ + # Enabling + && docker-php-ext-enable phalcon \ + && 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: Version specific @@ -599,6 +621,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 +642,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 +651,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,25 +663,36 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: sqlsrv -------------------- +# -------------------- Installing PHP Extension: ssh2 -------------------- RUN set -eux \ - # Installation: Version specific + # Installation: Generic # Type: PECL extension # Default: Pecl command - && pecl install sqlsrv-5.3.0 \ + && pecl install ssh2-1.2 \ # Enabling - && docker-php-ext-enable sqlsrv \ + && docker-php-ext-enable ssh2 \ && true -# -------------------- Installing PHP Extension: ssh2 -------------------- +# -------------------- Installing PHP Extension: zip -------------------- RUN set -eux \ - # Installation: Generic + # 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 ssh2-1.2 \ + && pecl install swoole-4.2.13 \ # Enabling - && docker-php-ext-enable ssh2 \ + && docker-php-ext-enable swoole \ && true @@ -744,24 +783,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: xmlrpc -------------------- -RUN set -eux \ - # Installation: Generic - # Type: Built-in extension - # Custom: configure command - && docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \ - && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \ - && 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 @@ -773,35 +794,32 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: yaml -------------------- +# -------------------- Installing PHP Extension: xmlrpc -------------------- RUN set -eux \ - # Installation: Version specific - # Type: PECL extension - # Default: Pecl command - && pecl install yaml-2.0.4 \ - # Enabling - && docker-php-ext-enable yaml \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \ && true -# -------------------- Installing PHP Extension: zip -------------------- +# -------------------- Installing PHP Extension: xsl -------------------- 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 \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ && true -# -------------------- Installing PHP Extension: swoole -------------------- +# -------------------- Installing PHP Extension: yaml -------------------- RUN set -eux \ # Installation: Version specific # Type: PECL extension # Default: Pecl command - && pecl install swoole-4.2.13 \ + && pecl install yaml-2.0.4 \ # Enabling - && docker-php-ext-enable swoole \ + && docker-php-ext-enable yaml \ && true @@ -823,7 +841,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" @@ -886,6 +904,7 @@ RUN set -eux \ snmp \ unixodbc \ uuid \ + zlib1g \ ca-certificates \ && rm -rf /var/lib/apt/lists/* \ \ @@ -919,7 +938,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 +275,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 @@ -311,25 +313,25 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: msgpack -------------------- +# -------------------- Installing PHP Extension: memcache -------------------- RUN set -eux \ - # Installation: Generic + # Installation: Version specific # Type: PECL extension # Default: Pecl command - && pecl install msgpack \ + && pecl install memcache-4.0.5.2 \ # Enabling - && docker-php-ext-enable msgpack \ + && docker-php-ext-enable memcache \ && true -# -------------------- Installing PHP Extension: memcache -------------------- +# -------------------- Installing PHP Extension: msgpack -------------------- RUN set -eux \ - # Installation: Version specific + # Installation: Generic # Type: PECL extension # Default: Pecl command - && pecl install memcache-4.0.5.2 \ + && pecl install msgpack \ # Enabling - && docker-php-ext-enable memcache \ + && docker-php-ext-enable msgpack \ && true @@ -377,27 +379,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 +412,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 +474,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,37 +548,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: phalcon -------------------- -RUN set -eux \ - # Installation: Version specific - # Type: GIT extension - && git clone https://github.com/phalcon/cphalcon /tmp/phalcon \ - && cd /tmp/phalcon \ - # Custom: Branch - && git checkout v3.4.4 \ - # Custom: Install command - && cd build && ./install \ - # Enabling - && docker-php-ext-enable phalcon \ - && 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: 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 @@ -586,6 +574,40 @@ phpize \ && 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 + # Type: GIT extension + && git clone https://github.com/phalcon/cphalcon /tmp/phalcon \ + && cd /tmp/phalcon \ + # Custom: Branch + && git checkout v3.4.4 \ + # Custom: Install command + && cd build && ./install \ + # Enabling + && docker-php-ext-enable phalcon \ + && 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 @@ -597,6 +619,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 +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 @@ -619,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 @@ -644,25 +672,36 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: sqlsrv -------------------- +# -------------------- Installing PHP Extension: ssh2 -------------------- RUN set -eux \ - # Installation: Version specific + # Installation: Generic # Type: PECL extension # Default: Pecl command - && pecl install sqlsrv-5.6.1 \ + && pecl install ssh2-1.2 \ # Enabling - && docker-php-ext-enable sqlsrv \ + && docker-php-ext-enable ssh2 \ && true -# -------------------- Installing PHP Extension: ssh2 -------------------- +# -------------------- Installing PHP Extension: zip -------------------- RUN set -eux \ - # Installation: Generic + # 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 ssh2-1.2 \ + && pecl install swoole-4.4.26 \ # Enabling - && docker-php-ext-enable ssh2 \ + && docker-php-ext-enable swoole \ && true @@ -752,24 +791,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: xmlrpc -------------------- -RUN set -eux \ - # Installation: Generic - # Type: Built-in extension - # Custom: configure command - && docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \ - && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \ - && 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 @@ -781,35 +802,32 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: yaml -------------------- +# -------------------- Installing PHP Extension: xmlrpc -------------------- RUN set -eux \ # Installation: Generic - # Type: PECL extension - # Default: Pecl command - && pecl install yaml \ - # Enabling - && docker-php-ext-enable yaml \ + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \ && true -# -------------------- Installing PHP Extension: zip -------------------- +# -------------------- Installing PHP Extension: xsl -------------------- 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 \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ && true -# -------------------- Installing PHP Extension: swoole -------------------- +# -------------------- Installing PHP Extension: yaml -------------------- RUN set -eux \ - # Installation: Version specific + # Installation: Generic # Type: PECL extension # Default: Pecl command - && pecl install swoole-4.4.26 \ + && pecl install yaml \ # Enabling - && docker-php-ext-enable swoole \ + && docker-php-ext-enable yaml \ && true @@ -831,7 +849,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" @@ -894,6 +912,7 @@ RUN set -eux \ snmp \ unixodbc \ uuid \ + zlib1g \ ca-certificates \ && rm -rf /var/lib/apt/lists/* \ \ @@ -927,7 +946,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 +275,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 @@ -313,25 +315,25 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: msgpack -------------------- +# -------------------- Installing PHP Extension: memcache -------------------- RUN set -eux \ - # Installation: Generic + # Installation: Version specific # Type: PECL extension # Default: Pecl command - && pecl install msgpack \ + && pecl install memcache-4.0.5.2 \ # Enabling - && docker-php-ext-enable msgpack \ + && docker-php-ext-enable memcache \ && true -# -------------------- Installing PHP Extension: memcache -------------------- +# -------------------- Installing PHP Extension: msgpack -------------------- RUN set -eux \ - # Installation: Version specific + # Installation: Generic # Type: PECL extension # Default: Pecl command - && pecl install memcache-4.0.5.2 \ + && pecl install msgpack \ # Enabling - && docker-php-ext-enable memcache \ + && docker-php-ext-enable msgpack \ && true @@ -379,27 +381,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 +414,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 +476,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,37 +551,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: phalcon -------------------- -RUN set -eux \ - # Installation: Version specific - # Type: GIT extension - && git clone https://github.com/phalcon/cphalcon /tmp/phalcon \ - && cd /tmp/phalcon \ - # Custom: Branch - && git checkout v4.1.1 \ - # Custom: Install command - && cd build && ./install \ - # Enabling - && docker-php-ext-enable phalcon \ - && 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: 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 @@ -589,6 +577,40 @@ phpize \ && 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 + # Type: GIT extension + && git clone https://github.com/phalcon/cphalcon /tmp/phalcon \ + && cd /tmp/phalcon \ + # Custom: Branch + && git checkout v4.1.1 \ + # Custom: Install command + && cd build && ./install \ + # Enabling + && docker-php-ext-enable phalcon \ + && 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 @@ -600,6 +622,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 +643,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 +652,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,25 +675,36 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: sqlsrv -------------------- +# -------------------- Installing PHP Extension: ssh2 -------------------- RUN set -eux \ - # Installation: Version specific + # Installation: Generic # Type: PECL extension # Default: Pecl command - && pecl install sqlsrv-5.8.1 \ + && pecl install ssh2-1.2 \ # Enabling - && docker-php-ext-enable sqlsrv \ + && docker-php-ext-enable ssh2 \ && true -# -------------------- Installing PHP Extension: ssh2 -------------------- +# -------------------- Installing PHP Extension: zip -------------------- RUN set -eux \ - # Installation: Generic + # 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 ssh2-1.2 \ + && pecl install swoole-4.8.12 \ # Enabling - && docker-php-ext-enable ssh2 \ + && docker-php-ext-enable swoole \ && true @@ -755,24 +794,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: xmlrpc -------------------- -RUN set -eux \ - # Installation: Generic - # Type: Built-in extension - # Custom: configure command - && docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \ - && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \ - && 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 @@ -784,35 +805,32 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: yaml -------------------- +# -------------------- Installing PHP Extension: xmlrpc -------------------- RUN set -eux \ # Installation: Generic - # Type: PECL extension - # Default: Pecl command - && pecl install yaml \ - # Enabling - && docker-php-ext-enable yaml \ + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \ && true -# -------------------- Installing PHP Extension: zip -------------------- +# -------------------- Installing PHP Extension: xsl -------------------- 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 \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ && true -# -------------------- Installing PHP Extension: swoole -------------------- +# -------------------- Installing PHP Extension: yaml -------------------- RUN set -eux \ - # Installation: Version specific + # Installation: Generic # Type: PECL extension # Default: Pecl command - && pecl install swoole-4.8.12 \ + && pecl install yaml \ # Enabling - && docker-php-ext-enable swoole \ + && docker-php-ext-enable yaml \ && true @@ -834,7 +852,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" @@ -897,6 +915,7 @@ RUN set -eux \ snmp \ unixodbc \ uuid \ + zlib1g \ ca-certificates \ && rm -rf /var/lib/apt/lists/* \ \ @@ -930,7 +949,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 +265,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 @@ -303,25 +305,25 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: msgpack -------------------- +# -------------------- Installing PHP Extension: memcache -------------------- RUN set -eux \ - # Installation: Generic + # Installation: Version specific # Type: PECL extension # Default: Pecl command - && pecl install msgpack \ + && pecl install memcache-4.0.5.2 \ # Enabling - && docker-php-ext-enable msgpack \ + && docker-php-ext-enable memcache \ && true -# -------------------- Installing PHP Extension: memcache -------------------- +# -------------------- Installing PHP Extension: msgpack -------------------- RUN set -eux \ - # Installation: Version specific + # Installation: Generic # Type: PECL extension # Default: Pecl command - && pecl install memcache-4.0.5.2 \ + && pecl install msgpack \ # Enabling - && docker-php-ext-enable memcache \ + && docker-php-ext-enable msgpack \ && true @@ -369,27 +371,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 +404,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 +466,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,37 +541,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: phalcon -------------------- -RUN set -eux \ - # Installation: Version specific - # Type: GIT extension - && git clone https://github.com/phalcon/cphalcon /tmp/phalcon \ - && cd /tmp/phalcon \ - # Custom: Branch - && git checkout v4.1.2 \ - # Custom: Install command - && cd build && ./install \ - # Enabling - && docker-php-ext-enable phalcon \ - && 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: 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 @@ -579,6 +567,40 @@ phpize \ && 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 + # Type: GIT extension + && git clone https://github.com/phalcon/cphalcon /tmp/phalcon \ + && cd /tmp/phalcon \ + # Custom: Branch + && git checkout v4.1.2 \ + # Custom: Install command + && cd build && ./install \ + # Enabling + && docker-php-ext-enable phalcon \ + && 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 @@ -590,6 +612,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 +633,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 +642,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,25 +665,36 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: sqlsrv -------------------- +# -------------------- Installing PHP Extension: ssh2 -------------------- RUN set -eux \ - # Installation: Version specific + # Installation: Generic # Type: PECL extension # Default: Pecl command - && pecl install sqlsrv-5.9.0 \ + && pecl install ssh2-1.2 \ # Enabling - && docker-php-ext-enable sqlsrv \ + && docker-php-ext-enable ssh2 \ && true -# -------------------- Installing PHP Extension: ssh2 -------------------- +# -------------------- Installing PHP Extension: zip -------------------- RUN set -eux \ - # Installation: Generic + # 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 ssh2-1.2 \ + && pecl install swoole-4.8.12 \ # Enabling - && docker-php-ext-enable ssh2 \ + && docker-php-ext-enable swoole \ && true @@ -745,24 +784,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: xmlrpc -------------------- -RUN set -eux \ - # Installation: Generic - # Type: Built-in extension - # Custom: configure command - && docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \ - && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \ - && 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 @@ -774,35 +795,32 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: yaml -------------------- +# -------------------- Installing PHP Extension: xmlrpc -------------------- RUN set -eux \ # Installation: Generic - # Type: PECL extension - # Default: Pecl command - && pecl install yaml \ - # Enabling - && docker-php-ext-enable yaml \ + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \ && true -# -------------------- Installing PHP Extension: zip -------------------- +# -------------------- Installing PHP Extension: xsl -------------------- 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 \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ && true -# -------------------- Installing PHP Extension: swoole -------------------- +# -------------------- Installing PHP Extension: yaml -------------------- RUN set -eux \ - # Installation: Version specific + # Installation: Generic # Type: PECL extension # Default: Pecl command - && pecl install swoole-4.8.12 \ + && pecl install yaml \ # Enabling - && docker-php-ext-enable swoole \ + && docker-php-ext-enable yaml \ && true @@ -824,7 +842,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" @@ -886,6 +904,7 @@ RUN set -eux \ snmp \ unixodbc \ uuid \ + zlib1g \ ca-certificates \ && rm -rf /var/lib/apt/lists/* \ \ @@ -919,7 +938,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 +265,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 @@ -303,25 +305,25 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: msgpack -------------------- +# -------------------- Installing PHP Extension: memcache -------------------- RUN set -eux \ - # Installation: Generic + # Installation: Version specific # Type: PECL extension # Default: Pecl command - && pecl install msgpack \ + && pecl install memcache-4.0.5.2 \ # Enabling - && docker-php-ext-enable msgpack \ + && docker-php-ext-enable memcache \ && true -# -------------------- Installing PHP Extension: memcache -------------------- +# -------------------- Installing PHP Extension: msgpack -------------------- RUN set -eux \ - # Installation: Version specific + # Installation: Generic # Type: PECL extension # Default: Pecl command - && pecl install memcache-4.0.5.2 \ + && pecl install msgpack \ # Enabling - && docker-php-ext-enable memcache \ + && docker-php-ext-enable msgpack \ && true @@ -369,27 +371,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 +404,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 +466,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,29 +541,6 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: phalcon -------------------- -RUN set -eux \ - # Installation: Generic - # Type: GIT extension - && 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) \ - # Custom: Install command - && cd build && ./install \ - # Enabling - && docker-php-ext-enable phalcon \ - && 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: redis -------------------- RUN set -eux \ # Installation: Generic @@ -571,6 +567,46 @@ 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: phalcon -------------------- +RUN set -eux \ + # Installation: Generic + # Type: GIT extension + && 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 -V \ + | sed 's/^.*tags\///g' \ + | grep -E '^v[.0-9]+$' \ + | tail -1 \ +) \ + \ + # Custom: Install command + && cd build && ./install \ + # Enabling + && docker-php-ext-enable phalcon \ + && 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 @@ -592,22 +628,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,25 +663,35 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: sqlsrv -------------------- +# -------------------- Installing PHP Extension: ssh2 -------------------- RUN set -eux \ # Installation: Generic # Type: PECL extension # Default: Pecl command - && pecl install sqlsrv \ + && pecl install ssh2-1.2 \ # Enabling - && docker-php-ext-enable sqlsrv \ + && docker-php-ext-enable ssh2 \ && true -# -------------------- Installing PHP Extension: ssh2 -------------------- +# -------------------- 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 ssh2-1.2 \ + && pecl install swoole-4.8.12 \ # Enabling - && docker-php-ext-enable ssh2 \ + && docker-php-ext-enable swoole \ && true @@ -729,6 +771,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 +801,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 +812,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 +830,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" @@ -905,7 +925,14 @@ RUN set -eux \ && sed -i'' 's|.* @@ -875,7 +898,14 @@ RUN set -eux \ && sed -i'' 's|.* @@ -862,7 +885,14 @@ RUN set -eux \ && sed -i'' 's|.* @@ -818,7 +833,14 @@ RUN set -eux \ && sed -i'' 's|.* diff --git a/Dockerfiles/prod/Dockerfile-5.3 b/Dockerfiles/prod/Dockerfile-5.3 index 4975c3d7..c426ceb9 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 bff4671e..aebd6979 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 00eef34c..a41dfe69 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 b61faed4..e4e7dab9 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 57591ea8..72e7da40 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 0e0fe396..e124c916 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 9cd8e4ae..14ba9a6c 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 57481cc5..d2ec62b2 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 6ecf1bcd..006148d9 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 5061343d..ac9757b9 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 60c0e031..ab6b2bd5 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 c9c46e97..88478f89 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 d40e93d9..e9a73d29 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 1e8bed75..63f46847 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 0a615ed8..42546e1d 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 01255c3d..b59759f4 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 e1e3c7b3..7b814d46 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 658bfe8b..cca09c97 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 68530497..151c7e3b 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 c3315a3e..6baffbff 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 269dc666..19efe7c7 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 4ac666dd..e121f338 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 0c4c4114..b3904367 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 ce4d8be1..518b7131 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 11e3921a..9e94abac 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" From 566dba9b1eef381e04c707c435eff5928092659f Mon Sep 17 00:00:00 2001 From: cytopia Date: Tue, 29 Nov 2022 05:03:07 +0100 Subject: [PATCH 12/53] Fix linting --- Makefile | 3 ++- {php_modules => bin}/Makefile | 0 php_modules/amqp/test.yml | 1 - php_modules/apcu/test.yml | 1 - php_modules/bcmath/test.yml | 1 - php_modules/blackfire/curl/build.yml | 8 -------- php_modules/blackfire/curl/options.yml | 24 ------------------------ php_modules/blackfire/curl/test.yml | 2 -- php_modules/blackfire/test.yml | 1 - php_modules/bz2/test.yml | 1 - php_modules/calendar/test.yml | 1 - php_modules/ctype/test.yml | 1 - php_modules/curl/test.yml | 1 - php_modules/dba/test.yml | 1 - php_modules/dom/test.yml | 1 - php_modules/enchant/test.yml | 1 - php_modules/exif/test.yml | 1 - php_modules/ffi/test.yml | 1 - php_modules/fileinfo/test.yml | 1 - php_modules/filter/test.yml | 1 - php_modules/ftp/test.yml | 1 - php_modules/gd/test.yml | 1 - php_modules/gettext/test.yml | 1 - php_modules/gmp/test.yml | 1 - php_modules/hash/test.yml | 1 - php_modules/iconv/test.yml | 1 - php_modules/igbinary/test.yml | 1 - php_modules/imagick/test.yml | 1 - php_modules/imap/test.yml | 1 - php_modules/interbase/test.yml | 1 - php_modules/intl/test.yml | 1 - php_modules/ioncube/test.yml | 1 - php_modules/json/test.yml | 1 - php_modules/ldap/test.yml | 1 - php_modules/libxml/test.yml | 1 - php_modules/mbstring/test.yml | 1 - php_modules/mcrypt/test.yml | 1 - php_modules/memcache/test.yml | 1 - php_modules/memcached/test.yml | 1 - php_modules/mhash/test.yml | 1 - php_modules/mongo/test.yml | 1 - php_modules/mongodb/test.yml | 1 - php_modules/msgpack/test.yml | 1 - php_modules/mysql/test.yml | 1 - php_modules/mysqli/test.yml | 1 - php_modules/mysqlnd/test.yml | 1 - php_modules/oauth/test.yml | 1 - php_modules/oci8/test.yml | 1 - php_modules/odbc/test.yml | 1 - php_modules/opcache/test.yml | 1 - php_modules/openssl/test.yml | 1 - php_modules/pcntl/test.yml | 1 - php_modules/pcre/curl/build.yml | 8 -------- php_modules/pcre/curl/options.yml | 24 ------------------------ php_modules/pcre/curl/test.yml | 2 -- php_modules/pcre/test.yml | 1 - php_modules/pdo/test.yml | 1 - php_modules/pdo_dblib/test.yml | 1 - php_modules/pdo_firebird/test.yml | 1 - php_modules/pdo_mysql/test.yml | 1 - php_modules/pdo_oci/test.yml | 1 - php_modules/pdo_odbc/test.yml | 1 - php_modules/pdo_pgsql/test.yml | 1 - php_modules/pdo_sqlite/test.yml | 1 - php_modules/pdo_sqlsrv/test.yml | 1 - php_modules/pgsql/test.yml | 1 - php_modules/phalcon/test.yml | 1 - php_modules/phar/test.yml | 1 - php_modules/posix/test.yml | 1 - php_modules/pspell/test.yml | 1 - php_modules/psr/test.yml | 1 - php_modules/rdkafka/test.yml | 1 - php_modules/readline/test.yml | 1 - php_modules/recode/test.yml | 1 - php_modules/redis/test.yml | 1 - php_modules/reflection/test.yml | 1 - php_modules/session/test.yml | 1 - php_modules/shmop/test.yml | 1 - php_modules/simplexml/test.yml | 1 - php_modules/snmp/test.yml | 1 - php_modules/soap/test.yml | 1 - php_modules/sockets/test.yml | 1 - php_modules/sodium/test.yml | 1 - php_modules/solr/test.yml | 1 - php_modules/spl/test.yml | 1 - php_modules/sqlite3/test.yml | 1 - php_modules/sqlsrv/test.yml | 1 - php_modules/ssh2/test.yml | 1 - php_modules/swoole/test.yml | 1 - php_modules/sysvmsg/test.yml | 1 - php_modules/sysvsem/test.yml | 1 - php_modules/sysvshm/test.yml | 1 - php_modules/tidy/test.yml | 1 - php_modules/tokenizer/test.yml | 1 - php_modules/uploadprogress/test.yml | 1 - php_modules/uuid/test.yml | 1 - php_modules/vips/test.yml | 1 - php_modules/wddx/test.yml | 1 - php_modules/xdebug/test.yml | 1 - php_modules/xlswriter/test.yml | 1 - php_modules/xml/test.yml | 1 - php_modules/xmlreader/test.yml | 1 - php_modules/xmlrpc/test.yml | 1 - php_modules/xmlwriter/test.yml | 1 - php_modules/xsl/test.yml | 1 - php_modules/yaml/test.yml | 1 - php_modules/zip/test.yml | 1 - 107 files changed, 2 insertions(+), 168 deletions(-) rename {php_modules => bin}/Makefile (100%) delete mode 100644 php_modules/blackfire/curl/build.yml delete mode 100644 php_modules/blackfire/curl/options.yml delete mode 100644 php_modules/blackfire/curl/test.yml delete mode 100644 php_modules/pcre/curl/build.yml delete mode 100644 php_modules/pcre/curl/options.yml delete mode 100644 php_modules/pcre/curl/test.yml diff --git a/Makefile b/Makefile index 596b7548..021cb221 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* # ------------------------------------------------------------------------------------------------- diff --git a/php_modules/Makefile b/bin/Makefile similarity index 100% rename from php_modules/Makefile rename to bin/Makefile diff --git a/php_modules/amqp/test.yml b/php_modules/amqp/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/amqp/test.yml +++ b/php_modules/amqp/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/apcu/test.yml b/php_modules/apcu/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/apcu/test.yml +++ b/php_modules/apcu/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/bcmath/test.yml b/php_modules/bcmath/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/bcmath/test.yml +++ b/php_modules/bcmath/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/blackfire/curl/build.yml b/php_modules/blackfire/curl/build.yml deleted file mode 100644 index a04b6871..00000000 --- a/php_modules/blackfire/curl/build.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- - -# Available Jinja2 variables: -# --------------------------- -# * {{ php_all_versions }}: Array of all PHP versions - - -already_avail: "{{ php_all_versions }}" diff --git a/php_modules/blackfire/curl/options.yml b/php_modules/blackfire/curl/options.yml deleted file mode 100644 index bafa896b..00000000 --- a/php_modules/blackfire/curl/options.yml +++ /dev/null @@ -1,24 +0,0 @@ ---- - -# 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/blackfire/curl/test.yml b/php_modules/blackfire/curl/test.yml deleted file mode 100644 index cd21505a..00000000 --- a/php_modules/blackfire/curl/test.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- - diff --git a/php_modules/blackfire/test.yml b/php_modules/blackfire/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/blackfire/test.yml +++ b/php_modules/blackfire/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/bz2/test.yml b/php_modules/bz2/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/bz2/test.yml +++ b/php_modules/bz2/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/calendar/test.yml b/php_modules/calendar/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/calendar/test.yml +++ b/php_modules/calendar/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/ctype/test.yml b/php_modules/ctype/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/ctype/test.yml +++ b/php_modules/ctype/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/curl/test.yml b/php_modules/curl/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/curl/test.yml +++ b/php_modules/curl/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/dba/test.yml b/php_modules/dba/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/dba/test.yml +++ b/php_modules/dba/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/dom/test.yml b/php_modules/dom/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/dom/test.yml +++ b/php_modules/dom/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/enchant/test.yml b/php_modules/enchant/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/enchant/test.yml +++ b/php_modules/enchant/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/exif/test.yml b/php_modules/exif/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/exif/test.yml +++ b/php_modules/exif/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/ffi/test.yml b/php_modules/ffi/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/ffi/test.yml +++ b/php_modules/ffi/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/fileinfo/test.yml b/php_modules/fileinfo/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/fileinfo/test.yml +++ b/php_modules/fileinfo/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/filter/test.yml b/php_modules/filter/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/filter/test.yml +++ b/php_modules/filter/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/ftp/test.yml b/php_modules/ftp/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/ftp/test.yml +++ b/php_modules/ftp/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/gd/test.yml b/php_modules/gd/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/gd/test.yml +++ b/php_modules/gd/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/gettext/test.yml b/php_modules/gettext/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/gettext/test.yml +++ b/php_modules/gettext/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/gmp/test.yml b/php_modules/gmp/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/gmp/test.yml +++ b/php_modules/gmp/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/hash/test.yml b/php_modules/hash/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/hash/test.yml +++ b/php_modules/hash/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/iconv/test.yml b/php_modules/iconv/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/iconv/test.yml +++ b/php_modules/iconv/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/igbinary/test.yml b/php_modules/igbinary/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/igbinary/test.yml +++ b/php_modules/igbinary/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/imagick/test.yml b/php_modules/imagick/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/imagick/test.yml +++ b/php_modules/imagick/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/imap/test.yml b/php_modules/imap/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/imap/test.yml +++ b/php_modules/imap/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/interbase/test.yml b/php_modules/interbase/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/interbase/test.yml +++ b/php_modules/interbase/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/intl/test.yml b/php_modules/intl/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/intl/test.yml +++ b/php_modules/intl/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/ioncube/test.yml b/php_modules/ioncube/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/ioncube/test.yml +++ b/php_modules/ioncube/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/json/test.yml b/php_modules/json/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/json/test.yml +++ b/php_modules/json/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/ldap/test.yml b/php_modules/ldap/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/ldap/test.yml +++ b/php_modules/ldap/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/libxml/test.yml b/php_modules/libxml/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/libxml/test.yml +++ b/php_modules/libxml/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/mbstring/test.yml b/php_modules/mbstring/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/mbstring/test.yml +++ b/php_modules/mbstring/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/mcrypt/test.yml b/php_modules/mcrypt/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/mcrypt/test.yml +++ b/php_modules/mcrypt/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/memcache/test.yml b/php_modules/memcache/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/memcache/test.yml +++ b/php_modules/memcache/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/memcached/test.yml b/php_modules/memcached/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/memcached/test.yml +++ b/php_modules/memcached/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/mhash/test.yml b/php_modules/mhash/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/mhash/test.yml +++ b/php_modules/mhash/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/mongo/test.yml b/php_modules/mongo/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/mongo/test.yml +++ b/php_modules/mongo/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/mongodb/test.yml b/php_modules/mongodb/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/mongodb/test.yml +++ b/php_modules/mongodb/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/msgpack/test.yml b/php_modules/msgpack/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/msgpack/test.yml +++ b/php_modules/msgpack/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/mysql/test.yml b/php_modules/mysql/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/mysql/test.yml +++ b/php_modules/mysql/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/mysqli/test.yml b/php_modules/mysqli/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/mysqli/test.yml +++ b/php_modules/mysqli/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/mysqlnd/test.yml b/php_modules/mysqlnd/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/mysqlnd/test.yml +++ b/php_modules/mysqlnd/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/oauth/test.yml b/php_modules/oauth/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/oauth/test.yml +++ b/php_modules/oauth/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/oci8/test.yml b/php_modules/oci8/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/oci8/test.yml +++ b/php_modules/oci8/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/odbc/test.yml b/php_modules/odbc/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/odbc/test.yml +++ b/php_modules/odbc/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/opcache/test.yml b/php_modules/opcache/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/opcache/test.yml +++ b/php_modules/opcache/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/openssl/test.yml b/php_modules/openssl/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/openssl/test.yml +++ b/php_modules/openssl/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/pcntl/test.yml b/php_modules/pcntl/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/pcntl/test.yml +++ b/php_modules/pcntl/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/pcre/curl/build.yml b/php_modules/pcre/curl/build.yml deleted file mode 100644 index a04b6871..00000000 --- a/php_modules/pcre/curl/build.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- - -# Available Jinja2 variables: -# --------------------------- -# * {{ php_all_versions }}: Array of all PHP versions - - -already_avail: "{{ php_all_versions }}" diff --git a/php_modules/pcre/curl/options.yml b/php_modules/pcre/curl/options.yml deleted file mode 100644 index bafa896b..00000000 --- a/php_modules/pcre/curl/options.yml +++ /dev/null @@ -1,24 +0,0 @@ ---- - -# 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/pcre/curl/test.yml b/php_modules/pcre/curl/test.yml deleted file mode 100644 index cd21505a..00000000 --- a/php_modules/pcre/curl/test.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- - diff --git a/php_modules/pcre/test.yml b/php_modules/pcre/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/pcre/test.yml +++ b/php_modules/pcre/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/pdo/test.yml b/php_modules/pdo/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/pdo/test.yml +++ b/php_modules/pdo/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/pdo_dblib/test.yml b/php_modules/pdo_dblib/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/pdo_dblib/test.yml +++ b/php_modules/pdo_dblib/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/pdo_firebird/test.yml b/php_modules/pdo_firebird/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/pdo_firebird/test.yml +++ b/php_modules/pdo_firebird/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/pdo_mysql/test.yml b/php_modules/pdo_mysql/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/pdo_mysql/test.yml +++ b/php_modules/pdo_mysql/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/pdo_oci/test.yml b/php_modules/pdo_oci/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/pdo_oci/test.yml +++ b/php_modules/pdo_oci/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/pdo_odbc/test.yml b/php_modules/pdo_odbc/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/pdo_odbc/test.yml +++ b/php_modules/pdo_odbc/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/pdo_pgsql/test.yml b/php_modules/pdo_pgsql/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/pdo_pgsql/test.yml +++ b/php_modules/pdo_pgsql/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/pdo_sqlite/test.yml b/php_modules/pdo_sqlite/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/pdo_sqlite/test.yml +++ b/php_modules/pdo_sqlite/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/pdo_sqlsrv/test.yml b/php_modules/pdo_sqlsrv/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/pdo_sqlsrv/test.yml +++ b/php_modules/pdo_sqlsrv/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/pgsql/test.yml b/php_modules/pgsql/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/pgsql/test.yml +++ b/php_modules/pgsql/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/phalcon/test.yml b/php_modules/phalcon/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/phalcon/test.yml +++ b/php_modules/phalcon/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/phar/test.yml b/php_modules/phar/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/phar/test.yml +++ b/php_modules/phar/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/posix/test.yml b/php_modules/posix/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/posix/test.yml +++ b/php_modules/posix/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/pspell/test.yml b/php_modules/pspell/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/pspell/test.yml +++ b/php_modules/pspell/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/psr/test.yml b/php_modules/psr/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/psr/test.yml +++ b/php_modules/psr/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/rdkafka/test.yml b/php_modules/rdkafka/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/rdkafka/test.yml +++ b/php_modules/rdkafka/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/readline/test.yml b/php_modules/readline/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/readline/test.yml +++ b/php_modules/readline/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/recode/test.yml b/php_modules/recode/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/recode/test.yml +++ b/php_modules/recode/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/redis/test.yml b/php_modules/redis/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/redis/test.yml +++ b/php_modules/redis/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/reflection/test.yml b/php_modules/reflection/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/reflection/test.yml +++ b/php_modules/reflection/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/session/test.yml b/php_modules/session/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/session/test.yml +++ b/php_modules/session/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/shmop/test.yml b/php_modules/shmop/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/shmop/test.yml +++ b/php_modules/shmop/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/simplexml/test.yml b/php_modules/simplexml/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/simplexml/test.yml +++ b/php_modules/simplexml/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/snmp/test.yml b/php_modules/snmp/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/snmp/test.yml +++ b/php_modules/snmp/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/soap/test.yml b/php_modules/soap/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/soap/test.yml +++ b/php_modules/soap/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/sockets/test.yml b/php_modules/sockets/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/sockets/test.yml +++ b/php_modules/sockets/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/sodium/test.yml b/php_modules/sodium/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/sodium/test.yml +++ b/php_modules/sodium/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/solr/test.yml b/php_modules/solr/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/solr/test.yml +++ b/php_modules/solr/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/spl/test.yml b/php_modules/spl/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/spl/test.yml +++ b/php_modules/spl/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/sqlite3/test.yml b/php_modules/sqlite3/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/sqlite3/test.yml +++ b/php_modules/sqlite3/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/sqlsrv/test.yml b/php_modules/sqlsrv/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/sqlsrv/test.yml +++ b/php_modules/sqlsrv/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/ssh2/test.yml b/php_modules/ssh2/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/ssh2/test.yml +++ b/php_modules/ssh2/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/swoole/test.yml b/php_modules/swoole/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/swoole/test.yml +++ b/php_modules/swoole/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/sysvmsg/test.yml b/php_modules/sysvmsg/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/sysvmsg/test.yml +++ b/php_modules/sysvmsg/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/sysvsem/test.yml b/php_modules/sysvsem/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/sysvsem/test.yml +++ b/php_modules/sysvsem/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/sysvshm/test.yml b/php_modules/sysvshm/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/sysvshm/test.yml +++ b/php_modules/sysvshm/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/tidy/test.yml b/php_modules/tidy/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/tidy/test.yml +++ b/php_modules/tidy/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/tokenizer/test.yml b/php_modules/tokenizer/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/tokenizer/test.yml +++ b/php_modules/tokenizer/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/uploadprogress/test.yml b/php_modules/uploadprogress/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/uploadprogress/test.yml +++ b/php_modules/uploadprogress/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/uuid/test.yml b/php_modules/uuid/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/uuid/test.yml +++ b/php_modules/uuid/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/vips/test.yml b/php_modules/vips/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/vips/test.yml +++ b/php_modules/vips/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/wddx/test.yml b/php_modules/wddx/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/wddx/test.yml +++ b/php_modules/wddx/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/xdebug/test.yml b/php_modules/xdebug/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/xdebug/test.yml +++ b/php_modules/xdebug/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/xlswriter/test.yml b/php_modules/xlswriter/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/xlswriter/test.yml +++ b/php_modules/xlswriter/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/xml/test.yml b/php_modules/xml/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/xml/test.yml +++ b/php_modules/xml/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/xmlreader/test.yml b/php_modules/xmlreader/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/xmlreader/test.yml +++ b/php_modules/xmlreader/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/xmlrpc/test.yml b/php_modules/xmlrpc/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/xmlrpc/test.yml +++ b/php_modules/xmlrpc/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/xmlwriter/test.yml b/php_modules/xmlwriter/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/xmlwriter/test.yml +++ b/php_modules/xmlwriter/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/xsl/test.yml b/php_modules/xsl/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/xsl/test.yml +++ b/php_modules/xsl/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/yaml/test.yml b/php_modules/yaml/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/yaml/test.yml +++ b/php_modules/yaml/test.yml @@ -1,2 +1 @@ --- - diff --git a/php_modules/zip/test.yml b/php_modules/zip/test.yml index cd21505a..ed97d539 100644 --- a/php_modules/zip/test.yml +++ b/php_modules/zip/test.yml @@ -1,2 +1 @@ --- - From 3cf353abaee50fd5d38f8c28b1f6b378c919e31d Mon Sep 17 00:00:00 2001 From: cytopia Date: Tue, 29 Nov 2022 05:08:34 +0100 Subject: [PATCH 13/53] Add new target --- Makefile | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Makefile b/Makefile index 021cb221..3365e0a8 100644 --- a/Makefile +++ b/Makefile @@ -207,6 +207,13 @@ gen-readme: ./bin/gen-readme.sh $(IMAGE) $(ARCH) $(BASE_TAG) $(MODS_TAG) $(VERSION) git diff --quiet || { echo "Build Changes"; git diff; git status; false; } +### +### Generate Modules +### +.PHONY: gen-modules +gen-modules: + ./bin/modules-generate.py + ### ### Generate Dockerfiles ### From 5ca99aebc87efe435ecc0294a199a78c98c20175 Mon Sep 17 00:00:00 2001 From: cytopia Date: Tue, 29 Nov 2022 05:09:33 +0100 Subject: [PATCH 14/53] Fix build mod --- .ansible/group_vars/all/mods.yml | 2 +- Dockerfiles/mods/Dockerfile-5.3 | 1 - Dockerfiles/mods/Dockerfile-5.4 | 1 - Dockerfiles/mods/Dockerfile-5.5 | 1 - Dockerfiles/mods/Dockerfile-5.6 | 1 - Dockerfiles/mods/Dockerfile-7.0 | 1 - Dockerfiles/mods/Dockerfile-7.1 | 1 - Dockerfiles/mods/Dockerfile-7.2 | 1 - Dockerfiles/mods/Dockerfile-7.3 | 1 - Dockerfiles/mods/Dockerfile-7.4 | 1 - Dockerfiles/mods/Dockerfile-8.0 | 1 - Dockerfiles/mods/Dockerfile-8.1 | 1 - php_modules/phalcon/build.yml | 2 +- 13 files changed, 2 insertions(+), 13 deletions(-) diff --git a/.ansible/group_vars/all/mods.yml b/.ansible/group_vars/all/mods.yml index 8e72df19..d0c5caf9 100644 --- a/.ansible/group_vars/all/mods.yml +++ b/.ansible/group_vars/all/mods.yml @@ -1026,7 +1026,7 @@ extensions_available: | tail -1 \ ) \ command: cd build && ./install - build_dep: [libpcre-dev, re2c] + build_dep: [libpcre3-dev, re2c] run_dep: [] 7.3: type: git diff --git a/Dockerfiles/mods/Dockerfile-5.3 b/Dockerfiles/mods/Dockerfile-5.3 index 21f118b6..03b559c4 100644 --- a/Dockerfiles/mods/Dockerfile-5.3 +++ b/Dockerfiles/mods/Dockerfile-5.3 @@ -30,7 +30,6 @@ RUN set -eux \ libmemcached-dev \ libmysqlclient-dev \ libnghttp2-dev \ - libpcre-dev \ libpcre3-dev \ libpng-dev \ libpq-dev \ diff --git a/Dockerfiles/mods/Dockerfile-5.4 b/Dockerfiles/mods/Dockerfile-5.4 index 87330d21..a75eb0b5 100644 --- a/Dockerfiles/mods/Dockerfile-5.4 +++ b/Dockerfiles/mods/Dockerfile-5.4 @@ -30,7 +30,6 @@ RUN set -eux \ libmemcached-dev \ libmysqlclient-dev \ libnghttp2-dev \ - libpcre-dev \ libpcre3-dev \ libpng-dev \ libpq-dev \ diff --git a/Dockerfiles/mods/Dockerfile-5.5 b/Dockerfiles/mods/Dockerfile-5.5 index 8c515238..4f874c62 100644 --- a/Dockerfiles/mods/Dockerfile-5.5 +++ b/Dockerfiles/mods/Dockerfile-5.5 @@ -32,7 +32,6 @@ RUN set -eux \ libmemcached-dev \ libmysqlclient-dev \ libnghttp2-dev \ - libpcre-dev \ libpcre3-dev \ libpng-dev \ libpq-dev \ diff --git a/Dockerfiles/mods/Dockerfile-5.6 b/Dockerfiles/mods/Dockerfile-5.6 index 3e794dc4..2339a3b8 100644 --- a/Dockerfiles/mods/Dockerfile-5.6 +++ b/Dockerfiles/mods/Dockerfile-5.6 @@ -32,7 +32,6 @@ RUN set -eux \ libmcrypt-dev \ libmemcached-dev \ libnghttp2-dev \ - libpcre-dev \ libpcre3-dev \ libpng-dev \ libpq-dev \ diff --git a/Dockerfiles/mods/Dockerfile-7.0 b/Dockerfiles/mods/Dockerfile-7.0 index 75e8c94d..c3909a7a 100644 --- a/Dockerfiles/mods/Dockerfile-7.0 +++ b/Dockerfiles/mods/Dockerfile-7.0 @@ -32,7 +32,6 @@ RUN set -eux \ libmcrypt-dev \ libmemcached-dev \ libnghttp2-dev \ - libpcre-dev \ libpcre3-dev \ libpng-dev \ libpq-dev \ diff --git a/Dockerfiles/mods/Dockerfile-7.1 b/Dockerfiles/mods/Dockerfile-7.1 index a92a33c0..0c481a13 100644 --- a/Dockerfiles/mods/Dockerfile-7.1 +++ b/Dockerfiles/mods/Dockerfile-7.1 @@ -32,7 +32,6 @@ RUN set -eux \ libmcrypt-dev \ libmemcached-dev \ libnghttp2-dev \ - libpcre-dev \ libpcre3-dev \ libpng-dev \ libpq-dev \ diff --git a/Dockerfiles/mods/Dockerfile-7.2 b/Dockerfiles/mods/Dockerfile-7.2 index 77812a6c..31dced55 100644 --- a/Dockerfiles/mods/Dockerfile-7.2 +++ b/Dockerfiles/mods/Dockerfile-7.2 @@ -32,7 +32,6 @@ RUN set -eux \ libmcrypt-dev \ libmemcached-dev \ libnghttp2-dev \ - libpcre-dev \ libpcre3-dev \ libpng-dev \ libpq-dev \ diff --git a/Dockerfiles/mods/Dockerfile-7.3 b/Dockerfiles/mods/Dockerfile-7.3 index 12388ce6..e77c5cb2 100644 --- a/Dockerfiles/mods/Dockerfile-7.3 +++ b/Dockerfiles/mods/Dockerfile-7.3 @@ -31,7 +31,6 @@ RUN set -eux \ libmcrypt-dev \ libmemcached-dev \ libnghttp2-dev \ - libpcre-dev \ libpcre3-dev \ libpng-dev \ libpq-dev \ diff --git a/Dockerfiles/mods/Dockerfile-7.4 b/Dockerfiles/mods/Dockerfile-7.4 index 3f9abeda..abeef42c 100644 --- a/Dockerfiles/mods/Dockerfile-7.4 +++ b/Dockerfiles/mods/Dockerfile-7.4 @@ -32,7 +32,6 @@ RUN set -eux \ libmcrypt-dev \ libmemcached-dev \ libnghttp2-dev \ - libpcre-dev \ libpcre3-dev \ libpng-dev \ libpq-dev \ diff --git a/Dockerfiles/mods/Dockerfile-8.0 b/Dockerfiles/mods/Dockerfile-8.0 index e5dfad7d..68161f00 100644 --- a/Dockerfiles/mods/Dockerfile-8.0 +++ b/Dockerfiles/mods/Dockerfile-8.0 @@ -32,7 +32,6 @@ RUN set -eux \ libmcrypt-dev \ libmemcached-dev \ libnghttp2-dev \ - libpcre-dev \ libpcre3-dev \ libpng-dev \ libpq-dev \ diff --git a/Dockerfiles/mods/Dockerfile-8.1 b/Dockerfiles/mods/Dockerfile-8.1 index cf443de6..08fec45e 100644 --- a/Dockerfiles/mods/Dockerfile-8.1 +++ b/Dockerfiles/mods/Dockerfile-8.1 @@ -32,7 +32,6 @@ RUN set -eux \ libmariadb-dev \ libmemcached-dev \ libnghttp2-dev \ - libpcre-dev \ libpcre3-dev \ libpng-dev \ libpq-dev \ diff --git a/php_modules/phalcon/build.yml b/php_modules/phalcon/build.yml index fc99662c..efb73efd 100644 --- a/php_modules/phalcon/build.yml +++ b/php_modules/phalcon/build.yml @@ -16,7 +16,7 @@ all: | tail -1 \ ) \ command: cd build && ./install - build_dep: [libpcre-dev, re2c] + build_dep: [libpcre3-dev, re2c] run_dep: [] 7.3: From 67a7704c561da8114026981fceba34cd7a27df25 Mon Sep 17 00:00:00 2001 From: cytopia Date: Tue, 29 Nov 2022 05:47:30 +0100 Subject: [PATCH 15/53] Exclude PHP 5.2 from sqlite3 --- .ansible/group_vars/all/mods.yml | 2 +- Dockerfiles/mods/Dockerfile-5.2 | 2 -- php_modules/sqlite3/options.yml | 2 +- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/.ansible/group_vars/all/mods.yml b/.ansible/group_vars/all/mods.yml index d0c5caf9..d36ec12a 100644 --- a/.ansible/group_vars/all/mods.yml +++ b/.ansible/group_vars/all/mods.yml @@ -993,7 +993,7 @@ extensions_available: type: pecl version: 2.2.7 sqlite3: - disabled: [] + disabled: [5.2] already_avail: "{{ php_all_versions }}" sqlsrv: disabled: [5.2, 5.3, 5.4, 5.5, 5.6] diff --git a/Dockerfiles/mods/Dockerfile-5.2 b/Dockerfiles/mods/Dockerfile-5.2 index fe69bd25..dba1eda5 100644 --- a/Dockerfiles/mods/Dockerfile-5.2 +++ b/Dockerfiles/mods/Dockerfile-5.2 @@ -742,8 +742,6 @@ RUN set -eux \ && 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 '^phar$' \ && php-fpm -m | grep -oiE '^phar$' \ && php -m | grep -oiE '^posix$' \ diff --git a/php_modules/sqlite3/options.yml b/php_modules/sqlite3/options.yml index 7bb21db9..c2060267 100644 --- a/php_modules/sqlite3/options.yml +++ b/php_modules/sqlite3/options.yml @@ -4,7 +4,7 @@ name: sqlite3 # Exclude module build/installation for the following PHP versions -exclude: [] +exclude: [5.2] # In order for this module to built correctly against all dependencies, # the following modules must have been built first. From e5897282801c5a60feff490719dc22463c41b896 Mon Sep 17 00:00:00 2001 From: cytopia Date: Tue, 29 Nov 2022 05:51:15 +0100 Subject: [PATCH 16/53] Ensure to check against generated modules --- .github/workflows/linting.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 08162669..0f66e78c 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -46,6 +46,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 From 01126fb861df62a5064373ac642e6116be71c6b0 Mon Sep 17 00:00:00 2001 From: cytopia Date: Tue, 29 Nov 2022 06:04:58 +0100 Subject: [PATCH 17/53] Fix xdebug on PHP 8.2 --- .ansible/group_vars/all/mods.yml | 3 ++- Dockerfiles/mods/Dockerfile-8.2 | 2 +- php_modules/xdebug/build.yml | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.ansible/group_vars/all/mods.yml b/.ansible/group_vars/all/mods.yml index d36ec12a..8e3c53b5 100644 --- a/.ansible/group_vars/all/mods.yml +++ b/.ansible/group_vars/all/mods.yml @@ -1380,7 +1380,8 @@ extensions_available: 8.2: type: git git_url: https://github.com/xdebug/xdebug - git_ref: $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) + # 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 diff --git a/Dockerfiles/mods/Dockerfile-8.2 b/Dockerfiles/mods/Dockerfile-8.2 index e12cbca2..1b52e11d 100644 --- a/Dockerfiles/mods/Dockerfile-8.2 +++ b/Dockerfiles/mods/Dockerfile-8.2 @@ -682,7 +682,7 @@ RUN set -eux \ && git clone https://github.com/xdebug/xdebug /tmp/xdebug \ && cd /tmp/xdebug \ # Custom: Branch - && git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \ + && git checkout 3.2.0RC2 \ # Default: Install command && phpize \ && ./configure --enable-xdebug \ diff --git a/php_modules/xdebug/build.yml b/php_modules/xdebug/build.yml index 11d81125..977be017 100644 --- a/php_modules/xdebug/build.yml +++ b/php_modules/xdebug/build.yml @@ -11,7 +11,8 @@ all: 8.2: type: git git_url: https://github.com/xdebug/xdebug - git_ref: $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) + # 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: From 111756d4ae0a9bc80b61500e046897bf82d6a074 Mon Sep 17 00:00:00 2001 From: cytopia Date: Tue, 29 Nov 2022 06:16:12 +0100 Subject: [PATCH 18/53] Ensure Python packages are avail on linting stage --- .github/workflows/linting.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 0f66e78c..8007a146 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 # ------------------------------------------------------------ From f45e004a2fc476f4492db90dc87b89ac45fb5511 Mon Sep 17 00:00:00 2001 From: cytopia Date: Tue, 29 Nov 2022 06:23:03 +0100 Subject: [PATCH 19/53] Fix Ansible version in Makefile --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 3365e0a8..c807fa08 100644 --- a/Makefile +++ b/Makefile @@ -226,8 +226,8 @@ gen-dockerfiles: -e MY_GID=$$(id -g) \ -v ${PWD}:/data \ -w /data/.ansible \ - cytopia/ansible:2.8-tools ansible-playbook generate.yml \ - -e ANSIBLE_STRATEGY_PLUGINS=/usr/lib/python3.8/site-packages/ansible_mitogen/plugins/strategy \ + 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)}\" \ From f26b491e5f59bae2b49cd4ca8eab59b8915d1f62 Mon Sep 17 00:00:00 2001 From: cytopia Date: Tue, 29 Nov 2022 06:24:33 +0100 Subject: [PATCH 20/53] Fix yamllint warning --- .github/FUNDING.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index b3430953..5e3d9ca3 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,2 +1,3 @@ +--- github: [cytopia] patreon: devilbox From e199124ca6ff1624e5d6cc01f3098eb9070b04bd Mon Sep 17 00:00:00 2001 From: cytopia Date: Tue, 29 Nov 2022 06:51:50 +0100 Subject: [PATCH 21/53] Add documentation directory --- .../PHP-EXT-build.yml.md | 0 .../PHP-EXT-options.yml.md | 0 .../PHP-EXT-test.yml.md | 0 php_modules/README.md | 24 ++++++++++--------- php_modules/modules-generate.py | 1 - php_modules/modules-validate.py | 1 - 6 files changed, 13 insertions(+), 13 deletions(-) rename php_modules/README-build.yml.md => doc/PHP-EXT-build.yml.md (100%) rename php_modules/README-options.yml.md => doc/PHP-EXT-options.yml.md (100%) rename php_modules/README-test.yml.md => doc/PHP-EXT-test.yml.md (100%) delete mode 120000 php_modules/modules-generate.py delete mode 120000 php_modules/modules-validate.py diff --git a/php_modules/README-build.yml.md b/doc/PHP-EXT-build.yml.md similarity index 100% rename from php_modules/README-build.yml.md rename to doc/PHP-EXT-build.yml.md diff --git a/php_modules/README-options.yml.md b/doc/PHP-EXT-options.yml.md similarity index 100% rename from php_modules/README-options.yml.md rename to doc/PHP-EXT-options.yml.md diff --git a/php_modules/README-test.yml.md b/doc/PHP-EXT-test.yml.md similarity index 100% rename from php_modules/README-test.yml.md rename to doc/PHP-EXT-test.yml.md diff --git a/php_modules/README.md b/php_modules/README.md index 5df4bf06..7635150b 100644 --- a/php_modules/README.md +++ b/php_modules/README.md @@ -1,8 +1,8 @@ # PHP Module definitions -This documentation describes how to create new or alter existing 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 here in their dedicated directory. These definitions are then transformed to Ansible group_vars and afterwards Ansible will generate the corresponding Dockerfiles (Stage: `mods`). +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? @@ -11,32 +11,34 @@ All PHP modules/extensions (for all PHP versions and both for `amd64` and `arm64 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 - 4. Run `python3 modules-validate.py` to validate the created PHP module definitions - 5. Run `python3 modules-generate.py` to create Ansible group_vars 2. **Inside the root of this git repository:** - 1. Run `make gen-dockerfiles` to generate Dockerfiles via Ansible - 2. 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` + 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 your 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 you generate group_vars for your module only 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 requiredments to be built beforehand, those will also be added -python3 module-generate.py curl +# Note: if curl has other modules as requirements to be built beforehand, those will also be added +python3 ./bin/module-generate.py curl +make gen-dockerfiles ``` ## Extension definition: `build.yml` -See **[README-build.yml.md](README-build.yml.md)** how to alter the `build.yml` file. +See **[PHP-EXT-build.yml.md](../doc/PHP-EXT-build.yml.md)** how to alter the `build.yml` file. ## Extension definition: `options.yml` -See **[README-options.yml.md](README-options.yml.md)** how to alter the `options.yml` file. +See **[PHP-EXT-options.yml.md](../doc/PHP-EXT-options.yml.md)** how to alter the `options.yml` file. ## Extension definition: `test.yml` -See **[README-test.yml.md](README-test.yml.md)** how to alter the `test.yml` file. +See **[PHP-EXT-test.yml.md](../doc/PHP-EXT-test.yml.md)** how to alter the `test.yml` file. diff --git a/php_modules/modules-generate.py b/php_modules/modules-generate.py deleted file mode 120000 index a220005a..00000000 --- a/php_modules/modules-generate.py +++ /dev/null @@ -1 +0,0 @@ -../bin/modules-generate.py \ No newline at end of file diff --git a/php_modules/modules-validate.py b/php_modules/modules-validate.py deleted file mode 120000 index 14167079..00000000 --- a/php_modules/modules-validate.py +++ /dev/null @@ -1 +0,0 @@ -../bin/modules-validate.py \ No newline at end of file From 04e7c24f3a2c1baca1428477a59114eb703f2c57 Mon Sep 17 00:00:00 2001 From: cytopia Date: Tue, 29 Nov 2022 06:57:18 +0100 Subject: [PATCH 22/53] Update README --- php_modules/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/php_modules/README.md b/php_modules/README.md index 7635150b..1736a887 100644 --- a/php_modules/README.md +++ b/php_modules/README.md @@ -17,7 +17,7 @@ All PHP modules/extensions (for all PHP versions and both for `amd64` and `arm64 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 your 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 you generate group_vars for your module only via: +**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, you generate group_vars for your one module only via: ```bash # Commands shown here are executed from root of this repository From 54831fd444684434493cb706459c9667852357aa Mon Sep 17 00:00:00 2001 From: cytopia Date: Wed, 30 Nov 2022 00:45:02 +0100 Subject: [PATCH 23/53] Adjust PHP module generation for README --- Makefile | 4 +- bin/gen-readme.sh | 263 +++-- doc/php-modules.md | 2304 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 2511 insertions(+), 60 deletions(-) create mode 100644 doc/php-modules.md diff --git a/Makefile b/Makefile index c807fa08..ddf9dbe2 100644 --- a/Makefile +++ b/Makefile @@ -185,6 +185,7 @@ manifest-push: docker-manifest-push test: check-stage-is-set test: check-current-image-exists test: test-integration +test: gen-readme .PHONY: test-integration test-integration: @@ -200,11 +201,12 @@ test-integration: ### .PHONY: gen-readme gen-readme: check-version-is-set +gen-readme: check-stage-is-set gen-readme: @echo "################################################################################" @echo "# Generate README.md for PHP $(VERSION) ($(IMAGE):$(DOCKER_TAG)) on $(ARCH)" @echo "################################################################################" - ./bin/gen-readme.sh $(IMAGE) $(ARCH) $(BASE_TAG) $(MODS_TAG) $(VERSION) + ./bin/gen-readme.sh $(IMAGE) $(ARCH) $(STAGE) $(VERSION) git diff --quiet || { echo "Build Changes"; git diff; git status; false; } ### diff --git a/bin/gen-readme.sh b/bin/gen-readme.sh index 29abd81a..cb7207d0 100755 --- a/bin/gen-readme.sh +++ b/bin/gen-readme.sh @@ -6,98 +6,243 @@ set -u set -o pipefail # Get absolute directory of this script -CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)" +SCRIPT_PATH="$(cd -P -- "$(dirname -- "$0")" && pwd -P)" +SCRIPT_NAME="$(basename "${SCRIPT_PATH}")" +REPO_PATH="${SCRIPT_PATH}/.." +README="${REPO_PATH}/doc/php-modules.md" -IMAGE="${1}" -ARCH="${2}" -TAG_BASE="${3}" -TAG_MODS="${4}" -VERSION="${5:-}" +#-------------------------------------------------------------------------------------------------- +# Evaluate given cli arguments +#-------------------------------------------------------------------------------------------------- ### ### Show Usage ### print_usage() { - echo "Usage: gen-readme.sh []" + 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 } ### -### Extract PHP modules in alphabetical order and comma separated in one line +### Get modules available in PHP image ### -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"; +get_modules_from_image() { + local php_version="${1}" + local img_tag="${2}" + local modules + + modules="$( \ + docker run --rm "$(tty -s && echo '-it' || echo)" --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}" "$(tty -s && echo '-it' || echo)" --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}" "$(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"; + if docker run --rm --platform "${ARCH}" "$(tty -s && echo '-it' || echo)" --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}" "$(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"; + if docker run --rm --platform "${ARCH}" "$(tty -s && echo '-it' || echo)" --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}" "$(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"; + if docker run --rm --platform "${ARCH}" "$(tty -s && echo '-it' || echo)" --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 - # 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}" + # 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}") } ### -### Replace modules in Readme for specified PHP version +### 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() { - 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" + 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|\(\)\(.*\)\(<\/sup><\/td>\)|\1๐Ÿ—ธ\3|g" "${README}" + echo "[YES] [${stage}] PHP ${php_version}, mod: '${module_avail}'" + else + sed -i "s|\(\)\(.*\)\(<\/sup><\/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_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" + 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" ] \ @@ -118,6 +263,6 @@ else exit 1 else # Update PHP modules for one specific PHP version - update_readme "${VERSION}" + update "${VERSION}" fi fi diff --git a/doc/php-modules.md b/doc/php-modules.md new file mode 100644 index 00000000..c1c38bb0 --- /dev/null +++ b/doc/php-modules.md @@ -0,0 +1,2304 @@ +[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

+ + + +#### PHP Modules (`base`) + +The following PHP modules are available on the `base` flavour: + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
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: + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
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๐Ÿ—ธ๐Ÿ—ธ๐Ÿ—ธ๐Ÿ—ธ๐Ÿ—ธ๐Ÿ—ธ๐Ÿ—ธ๐Ÿ—ธ๐Ÿ—ธ๐Ÿ—ธ๐Ÿ—ธ๐Ÿ—ธ๐Ÿ—ธ
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๐Ÿ—ธ๐Ÿ—ธ๐Ÿ—ธ๐Ÿ—ธ๐Ÿ—ธ๐Ÿ—ธ๐Ÿ—ธ๐Ÿ—ธ๐Ÿ—ธ๐Ÿ—ธ๐Ÿ—ธ๐Ÿ—ธ๐Ÿ—ธ
From e40b801139bdd41633d04c27cc1b3d52e79f1d9b Mon Sep 17 00:00:00 2001 From: cytopia Date: Wed, 30 Nov 2022 00:46:27 +0100 Subject: [PATCH 24/53] Restructure documentation --- README.md | 1388 ++++++---------------------- doc/available-tools.md | 183 ++++ doc/base-images.md | 27 + doc/docker-env-variables.md | 116 +++ doc/docker-tags.md | 298 ++++++ doc/docker-volumes.md | 83 ++ doc/flavours.md | 34 + doc/php-versions.md | 34 + doc/supported-architectures.md | 25 + doc/syncronize-file-permissions.md | 89 ++ 10 files changed, 1163 insertions(+), 1114 deletions(-) create mode 100644 doc/available-tools.md create mode 100644 doc/base-images.md create mode 100644 doc/docker-env-variables.md create mode 100644 doc/docker-tags.md create mode 100644 doc/docker-volumes.md create mode 100644 doc/flavours.md create mode 100644 doc/php-versions.md create mode 100644 doc/supported-architectures.md create mode 100644 doc/syncronize-file-permissions.md diff --git a/README.md b/README.md index fb0f6113..301c44ca 100644 --- a/README.md +++ b/README.md @@ -9,979 +9,257 @@ [![License](https://img.shields.io/badge/license-MIT-%233DA639.svg)](https://opensource.org/licenses/MIT) -**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. - -| Docker Hub | Upstream Project | -|------------|------------------| -| | | - -#### 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
- - -#### Table of Contents - -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)** - ----- - -

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)** - - -

PHP-FPM Flavours

- -#### Assembly - -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. - -```shell - [PHP] # Base FROM image (Official PHP-FPM image) - ^ # - | # - | # - [base] # Introduces env variables and adjusts entrypoint - ^ # - | # - | # - [mods] # Installs additional PHP modules - ^ # via pecl, git and other means - | # - | # - [prod] # Devilbox flavour for production - ^ # (locales, postifx, socat and injectables) - | # (custom modules and *.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 - - -
- - -#### Tagging - -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.
- - -#### 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
+| Upstream Project | +|------------------| +| | +[![](https://img.shields.io/docker/pulls/devilbox/php-fpm.svg)](https://hub.docker.com/r/devilbox/php-fpm) +**Available Architectures:** `amd64`, `arm64` -

PHP-FPM Features

-#### 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 -``` +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](doc/syncronize-file-permissions.md)** of mounted volumes between the host and the container. -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 detauls see **[Documentation: Syncronize File Permissions](doc/syncronize-file-permissions.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 -``` -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`) +

Docker Tags

-#### 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 -``` +* [`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) -Devilbox production image. This Docker image comes with many injectables, port-forwardings, mail-catch-all and user/group rewriting. +:information_source: For details see **[Documentation: Docker Tags](doc/docker-tags.md)**
+:information_source: For details see **[Documentation: Supported Architectures](doc/supported-architectures.md)** -#### 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 -``` -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. +

PHP Versions

+The following PHP versions are provided by this repository. +* `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` -

PHP-FPM Options

+> **Note:** Unreleased PHP versions are built from custom base images. -#### Environment variables +:information_source: For details see **[Documentation: PHP Versions](doc/php-versions.md)**
+:information_source: For details see **[Documentation: Base Images](doc/base-images.md)** -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
-#### Volumes +

Flavours

-Have a look at the following table to see all offered volumes for each Docker image flavour. +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. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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.
+```shell + [PHP] # Base FROM image (Official PHP-FPM image) + ^ # + | # + | # + [base] # Introduces env variables and adjusts entrypoint + ^ # + | # + | # + [mods] # Installs additional PHP modules + ^ # via pecl, git and other means + | # + | # + [prod] # Devilbox flavour for production + ^ # (locales, postifx, socat and injectables) + | # (custom modules and *.ini files) + | # + [work] # Devilbox flavour for local development + # (includes backup and development tools) + # (sudo, custom bash and tool configs) +``` + +:information_source: For details see **[Documentation: Flavours](doc/flavours.md)**
+:information_source: For details see **[Documentation: Base Images](doc/base-images.md)** + + +

Available PHP extensions

+ + + +[`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/) +[`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/) +[`wddx`](php_modules/wddx/) +[`vips`](php_modules/vips/) +[`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/) + +:information_source: For detauls see **[Documentation: PHP Modules](doc/php-modules.md)** + + + +

Environment Variables

+ +The provided Docker images offer environment variables to alter their startup behaviour. + +:information_source: For details see **[Documentation: Flavours](doc/flavours.md)**
+:information_source: For details see **[Documentation: Environment Variables](doc/docker-env-variables.md)**
+ +#### Flavour: base + +`DEBUG_ENTRYPOINT`, `NEW_UID`, `NEW_GID` + +#### Flavour: mods + +`DEBUG_ENTRYPOINT`, `NEW_UID`, `NEW_GID` + +#### Flavour: prod + +`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` + + + +

Volumes

+ +The provided Docker images offer different volumes to be mounted + +:information_source: For details see **[Documentation: Flavours](doc/flavours.md)**
+:information_source: For details see **[Documentation: Volumes](doc/docker-volumes.md)**
+ +#### Flavour: base + +* None + +#### 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* -#### Ports +#### 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

Have a look at the following table to see all offered exposed ports for each Docker image flavour. - + @@ -1019,172 +297,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 +306,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

@@ -1330,13 +442,61 @@ $ docker exec -it php mysqldump-secure 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. +

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. + +

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/doc/available-tools.md b/doc/available-tools.md new file mode 100644 index 00000000..df510e00 --- /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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
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 00000000..26bf9e10 --- /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/docker-env-variables.md b/doc/docker-env-variables.md new file mode 100644 index 00000000..2c2aa332 --- /dev/null +++ b/doc/docker-env-variables.md @@ -0,0 +1,116 @@ +[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 00000000..8a241bbb --- /dev/null +++ b/doc/docker-tags.md @@ -0,0 +1,298 @@ +[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 + +#### 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 00000000..a618a226 --- /dev/null +++ b/doc/docker-volumes.md @@ -0,0 +1,83 @@ +[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 00000000..d7c33647 --- /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-versions.md b/doc/php-versions.md new file mode 100644 index 00000000..314fa3da --- /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 | +|---------------|---------------|----------| +| **`PHP 5.2`** | amd64 | [base](../Dockerfiles/base/Dockerfile-5.2), [mods](../Dockerfiles/mods/Dockerfile-5.2), [prod](../Dockerfiles/prod/Dockerfile-5.2), [work](../Dockerfiles/work/Dockerfile-5.2) | +| **`PHP 5.3`** | amd64, arm64 | [base](../Dockerfiles/base/Dockerfile-5.3), [mods](../Dockerfiles/mods/Dockerfile-5.3), [prod](../Dockerfiles/prod/Dockerfile-5.3), [work](../Dockerfiles/work/Dockerfile-5.3) | +| **`PHP 5.4`** | amd64, arm64 | [base](../Dockerfiles/base/Dockerfile-5.4), [mods](../Dockerfiles/mods/Dockerfile-5.4), [prod](../Dockerfiles/prod/Dockerfile-5.4), [work](../Dockerfiles/work/Dockerfile-5.4) | +| **`PHP 5.5`** | amd64, arm64 | [base](../Dockerfiles/base/Dockerfile-5.5), [mods](../Dockerfiles/mods/Dockerfile-5.5), [prod](../Dockerfiles/prod/Dockerfile-5.5), [work](../Dockerfiles/work/Dockerfile-5.5) | +| **`PHP 5.6`** | amd64, arm64 | [base](../Dockerfiles/base/Dockerfile-5.6), [mods](../Dockerfiles/mods/Dockerfile-5.6), [prod](../Dockerfiles/prod/Dockerfile-5.6), [work](../Dockerfiles/work/Dockerfile-5.6) | +| **`PHP 7.0`** | amd64, arm64 | [base](../Dockerfiles/base/Dockerfile-7.0), [mods](../Dockerfiles/mods/Dockerfile-7.0), [prod](../Dockerfiles/prod/Dockerfile-7.0), [work](../Dockerfiles/work/Dockerfile-7.0) | +| **`PHP 7.1`** | amd64, arm64 | [base](../Dockerfiles/base/Dockerfile-7.1), [mods](../Dockerfiles/mods/Dockerfile-7.1), [prod](../Dockerfiles/prod/Dockerfile-7.1), [work](../Dockerfiles/work/Dockerfile-7.1) | +| **`PHP 7.2`** | amd64, arm64 | [base](../Dockerfiles/base/Dockerfile-7.2), [mods](../Dockerfiles/mods/Dockerfile-7.2), [prod](../Dockerfiles/prod/Dockerfile-7.2), [work](../Dockerfiles/work/Dockerfile-7.2) | +| **`PHP 7.3`** | amd64, arm64 | [base](../Dockerfiles/base/Dockerfile-7.3), [mods](../Dockerfiles/mods/Dockerfile-7.3), [prod](../Dockerfiles/prod/Dockerfile-7.3), [work](../Dockerfiles/work/Dockerfile-7.3) | +| **`PHP 7.4`** | amd64, arm64 | [base](../Dockerfiles/base/Dockerfile-7.4), [mods](../Dockerfiles/mods/Dockerfile-7.4), [prod](../Dockerfiles/prod/Dockerfile-7.4), [work](../Dockerfiles/work/Dockerfile-7.4) | +| **`PHP 8.0`** | amd64, arm64 | [base](../Dockerfiles/base/Dockerfile-8.0), [mods](../Dockerfiles/mods/Dockerfile-8.0), [prod](../Dockerfiles/prod/Dockerfile-8.0), [work](../Dockerfiles/work/Dockerfile-8.0) | +| **`PHP 8.1`** | amd64, arm64 | [base](../Dockerfiles/base/Dockerfile-8.1), [mods](../Dockerfiles/mods/Dockerfile-8.1), [prod](../Dockerfiles/prod/Dockerfile-8.1), [work](../Dockerfiles/work/Dockerfile-8.1) | +| **`PHP 8.2`** | amd64, arm64 | [base](../Dockerfiles/base/Dockerfile-8.2), [mods](../Dockerfiles/mods/Dockerfile-8.2), [prod](../Dockerfiles/prod/Dockerfile-8.2), [work](../Dockerfiles/work/Dockerfile-8.2) | diff --git a/doc/supported-architectures.md b/doc/supported-architectures.md new file mode 100644 index 00000000..a51198a6 --- /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 00000000..99c3f7a4 --- /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)** From 9db2f7891415af3f19580362d2be4a50ff267a92 Mon Sep 17 00:00:00 2001 From: cytopia Date: Wed, 30 Nov 2022 01:04:24 +0100 Subject: [PATCH 25/53] Adjust documentation --- README.md | 7 +++++-- doc/PHP-EXT-options.yml.md | 6 ------ doc/PHP-EXT-test.yml.md | 3 --- doc/{ => contributor}/PHP-EXT-build.yml.md | 11 +++++++++++ doc/contributor/PHP-EXT-options.yml.md | 17 +++++++++++++++++ doc/contributor/PHP-EXT-test.yml.md | 14 ++++++++++++++ doc/php-modules.md | 1 + php_modules/README.md | 11 +++++++++++ 8 files changed, 59 insertions(+), 11 deletions(-) delete mode 100644 doc/PHP-EXT-options.yml.md delete mode 100644 doc/PHP-EXT-test.yml.md rename doc/{ => contributor}/PHP-EXT-build.yml.md (93%) create mode 100644 doc/contributor/PHP-EXT-options.yml.md create mode 100644 doc/contributor/PHP-EXT-test.yml.md diff --git a/README.md b/README.md index 301c44ca..a64216b2 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ 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](doc/syncronize-file-permissions.md)** of mounted volumes between the host and the container. -:information_source: For detauls see **[Documentation: Syncronize File Permissions](doc/syncronize-file-permissions.md)** +:information_source: For details see **[Documentation: Syncronize File Permissions](doc/syncronize-file-permissions.md)**

Docker Tags

@@ -190,7 +190,8 @@ cat doc/php_modules.md | grep href | sed 's|||g' | xargs [`zip`](php_modules/zip/) [`zlib`](php_modules/zlib/) -:information_source: For detauls see **[Documentation: PHP Modules](doc/php-modules.md)** +: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)** @@ -447,6 +448,8 @@ Docker images are built and tested every night by **[GitHub Actions](https://git 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)** +

Community

diff --git a/doc/PHP-EXT-options.yml.md b/doc/PHP-EXT-options.yml.md deleted file mode 100644 index 6a0d0e69..00000000 --- a/doc/PHP-EXT-options.yml.md +++ /dev/null @@ -1,6 +0,0 @@ -# Extension definition: `options.yml` - -To be done - - -For now have a look at the existing modules into the respective `options.yml` files as they are mostly the same. diff --git a/doc/PHP-EXT-test.yml.md b/doc/PHP-EXT-test.yml.md deleted file mode 100644 index ea47fb8b..00000000 --- a/doc/PHP-EXT-test.yml.md +++ /dev/null @@ -1,3 +0,0 @@ -# Extension definition: `test.yml` - -This is not yet implemented and thus no documentation exists. diff --git a/doc/PHP-EXT-build.yml.md b/doc/contributor/PHP-EXT-build.yml.md similarity index 93% rename from doc/PHP-EXT-build.yml.md rename to doc/contributor/PHP-EXT-build.yml.md index 19297fec..83def9b7 100644 --- a/doc/PHP-EXT-build.yml.md +++ b/doc/contributor/PHP-EXT-build.yml.md @@ -1,3 +1,14 @@ +[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` diff --git a/doc/contributor/PHP-EXT-options.yml.md b/doc/contributor/PHP-EXT-options.yml.md new file mode 100644 index 00000000..4fa5848f --- /dev/null +++ b/doc/contributor/PHP-EXT-options.yml.md @@ -0,0 +1,17 @@ +[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` + +To be done + + +For now have a look at the existing modules into the respective `options.yml` files as they are mostly the same. diff --git a/doc/contributor/PHP-EXT-test.yml.md b/doc/contributor/PHP-EXT-test.yml.md new file mode 100644 index 00000000..d4f25e3f --- /dev/null +++ b/doc/contributor/PHP-EXT-test.yml.md @@ -0,0 +1,14 @@ +[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` + +This is not yet implemented and thus no documentation exists. diff --git a/doc/php-modules.md b/doc/php-modules.md index c1c38bb0..45fb0653 100644 --- a/doc/php-modules.md +++ b/doc/php-modules.md @@ -14,6 +14,7 @@ Extensions |

Documentation

+:information_source: For details on how to add/edit modules see **[Contributor Documentation: PHP Modules](../php_modules/README.md)** #### PHP Modules (`base`) diff --git a/php_modules/README.md b/php_modules/README.md index 1736a887..2107aa28 100644 --- a/php_modules/README.md +++ b/php_modules/README.md @@ -1,3 +1,14 @@ +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. From 4fa108269efb74cec791b3ea123befe09e7eb801 Mon Sep 17 00:00:00 2001 From: cytopia Date: Wed, 30 Nov 2022 01:21:34 +0100 Subject: [PATCH 26/53] Fix Linting --- doc/available-tools.md | 2 -- doc/docker-env-variables.md | 2 -- doc/docker-tags.md | 2 ++ doc/docker-volumes.md | 2 -- 4 files changed, 2 insertions(+), 6 deletions(-) diff --git a/doc/available-tools.md b/doc/available-tools.md index df510e00..362d0268 100644 --- a/doc/available-tools.md +++ b/doc/available-tools.md @@ -179,5 +179,3 @@ Tools | - - diff --git a/doc/docker-env-variables.md b/doc/docker-env-variables.md index 2c2aa332..dc040fc1 100644 --- a/doc/docker-env-variables.md +++ b/doc/docker-env-variables.md @@ -112,5 +112,3 @@ Have a look at the following table to see all supported environment variables fo - - diff --git a/doc/docker-tags.md b/doc/docker-tags.md index 8a241bbb..2d08ed06 100644 --- a/doc/docker-tags.md +++ b/doc/docker-tags.md @@ -17,6 +17,8 @@ Tags | ### 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: diff --git a/doc/docker-volumes.md b/doc/docker-volumes.md index a618a226..6d9b3fb0 100644 --- a/doc/docker-volumes.md +++ b/doc/docker-volumes.md @@ -79,5 +79,3 @@ Have a look at the following table to see all offered volumes for each Docker im - - From f6c47da969d34494ff175d4228ad79f59e6e714c Mon Sep 17 00:00:00 2001 From: cytopia Date: Wed, 30 Nov 2022 01:28:20 +0100 Subject: [PATCH 27/53] Polish README --- README.md | 43 +++++++++++++++++++++---------------------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index a64216b2..f08dbf3a 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,7 @@ 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) @@ -344,27 +344,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. @@ -451,6 +430,26 @@ Contributors are welcome. Feel free to star and clone this repository and submit :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. From 76d33f468f20923198a4a7c2bc6f9e1530e856b6 Mon Sep 17 00:00:00 2001 From: cytopia Date: Wed, 30 Nov 2022 01:28:31 +0100 Subject: [PATCH 28/53] Update CHANGELOG --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index fdfda9c2..3acd64b0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,8 +6,12 @@ ## Release 0.144 +### Added +- Added tons of documentation + ### Changed - Split out PHP extensions int separate directories +- Restructured Documentation ## Release 0.143 From ab9a3e188f9759ba6afff5829539475fe188e0bb Mon Sep 17 00:00:00 2001 From: cytopia Date: Wed, 30 Nov 2022 01:30:29 +0100 Subject: [PATCH 29/53] Fix linting --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f08dbf3a..d437cfe1 100644 --- a/README.md +++ b/README.md @@ -81,7 +81,7 @@ The provided Docker images heavily rely on inheritance to guarantee smallest pos

Available PHP extensions

- From c76b220e4f18a31b6769a3742051af7e01e8af21 Mon Sep 17 00:00:00 2001 From: cytopia Date: Wed, 30 Nov 2022 02:00:27 +0100 Subject: [PATCH 30/53] Be more verbose on failed module generation --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index ddf9dbe2..004b2a65 100644 --- a/Makefile +++ b/Makefile @@ -184,8 +184,8 @@ manifest-push: docker-manifest-push .PHONY: test test: check-stage-is-set test: check-current-image-exists -test: test-integration test: gen-readme +test: test-integration .PHONY: test-integration test-integration: @@ -206,7 +206,7 @@ gen-readme: @echo "################################################################################" @echo "# Generate README.md for PHP $(VERSION) ($(IMAGE):$(DOCKER_TAG)) on $(ARCH)" @echo "################################################################################" - ./bin/gen-readme.sh $(IMAGE) $(ARCH) $(STAGE) $(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; } ### From bf3dffc5b45a6071565887d1ca340c1bac6d06b9 Mon Sep 17 00:00:00 2001 From: cytopia Date: Wed, 30 Nov 2022 02:00:48 +0100 Subject: [PATCH 31/53] Make available PHP versions more fancy --- doc/php-versions.md | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/doc/php-versions.md b/doc/php-versions.md index 314fa3da..f47c9b94 100644 --- a/doc/php-versions.md +++ b/doc/php-versions.md @@ -17,18 +17,18 @@ Versions | ### Available PHP versions -| Version | Architecture | Flavours | -|---------------|---------------|----------| -| **`PHP 5.2`** | amd64 | [base](../Dockerfiles/base/Dockerfile-5.2), [mods](../Dockerfiles/mods/Dockerfile-5.2), [prod](../Dockerfiles/prod/Dockerfile-5.2), [work](../Dockerfiles/work/Dockerfile-5.2) | -| **`PHP 5.3`** | amd64, arm64 | [base](../Dockerfiles/base/Dockerfile-5.3), [mods](../Dockerfiles/mods/Dockerfile-5.3), [prod](../Dockerfiles/prod/Dockerfile-5.3), [work](../Dockerfiles/work/Dockerfile-5.3) | -| **`PHP 5.4`** | amd64, arm64 | [base](../Dockerfiles/base/Dockerfile-5.4), [mods](../Dockerfiles/mods/Dockerfile-5.4), [prod](../Dockerfiles/prod/Dockerfile-5.4), [work](../Dockerfiles/work/Dockerfile-5.4) | -| **`PHP 5.5`** | amd64, arm64 | [base](../Dockerfiles/base/Dockerfile-5.5), [mods](../Dockerfiles/mods/Dockerfile-5.5), [prod](../Dockerfiles/prod/Dockerfile-5.5), [work](../Dockerfiles/work/Dockerfile-5.5) | -| **`PHP 5.6`** | amd64, arm64 | [base](../Dockerfiles/base/Dockerfile-5.6), [mods](../Dockerfiles/mods/Dockerfile-5.6), [prod](../Dockerfiles/prod/Dockerfile-5.6), [work](../Dockerfiles/work/Dockerfile-5.6) | -| **`PHP 7.0`** | amd64, arm64 | [base](../Dockerfiles/base/Dockerfile-7.0), [mods](../Dockerfiles/mods/Dockerfile-7.0), [prod](../Dockerfiles/prod/Dockerfile-7.0), [work](../Dockerfiles/work/Dockerfile-7.0) | -| **`PHP 7.1`** | amd64, arm64 | [base](../Dockerfiles/base/Dockerfile-7.1), [mods](../Dockerfiles/mods/Dockerfile-7.1), [prod](../Dockerfiles/prod/Dockerfile-7.1), [work](../Dockerfiles/work/Dockerfile-7.1) | -| **`PHP 7.2`** | amd64, arm64 | [base](../Dockerfiles/base/Dockerfile-7.2), [mods](../Dockerfiles/mods/Dockerfile-7.2), [prod](../Dockerfiles/prod/Dockerfile-7.2), [work](../Dockerfiles/work/Dockerfile-7.2) | -| **`PHP 7.3`** | amd64, arm64 | [base](../Dockerfiles/base/Dockerfile-7.3), [mods](../Dockerfiles/mods/Dockerfile-7.3), [prod](../Dockerfiles/prod/Dockerfile-7.3), [work](../Dockerfiles/work/Dockerfile-7.3) | -| **`PHP 7.4`** | amd64, arm64 | [base](../Dockerfiles/base/Dockerfile-7.4), [mods](../Dockerfiles/mods/Dockerfile-7.4), [prod](../Dockerfiles/prod/Dockerfile-7.4), [work](../Dockerfiles/work/Dockerfile-7.4) | -| **`PHP 8.0`** | amd64, arm64 | [base](../Dockerfiles/base/Dockerfile-8.0), [mods](../Dockerfiles/mods/Dockerfile-8.0), [prod](../Dockerfiles/prod/Dockerfile-8.0), [work](../Dockerfiles/work/Dockerfile-8.0) | -| **`PHP 8.1`** | amd64, arm64 | [base](../Dockerfiles/base/Dockerfile-8.1), [mods](../Dockerfiles/mods/Dockerfile-8.1), [prod](../Dockerfiles/prod/Dockerfile-8.1), [work](../Dockerfiles/work/Dockerfile-8.1) | -| **`PHP 8.2`** | amd64, arm64 | [base](../Dockerfiles/base/Dockerfile-8.2), [mods](../Dockerfiles/mods/Dockerfile-8.2), [prod](../Dockerfiles/prod/Dockerfile-8.2), [work](../Dockerfiles/work/Dockerfile-8.2) | +| 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) | From f00077a126f8546877dbc49a5c838c73a7d6ee9e Mon Sep 17 00:00:00 2001 From: cytopia Date: Wed, 30 Nov 2022 03:05:46 +0100 Subject: [PATCH 32/53] Finalize Contibutors documentation --- doc/contributor/PHP-EXT-options.yml.md | 119 ++++++++++++++++++++++++- doc/contributor/PHP-EXT-test.yml.md | 13 +++ 2 files changed, 130 insertions(+), 2 deletions(-) diff --git a/doc/contributor/PHP-EXT-options.yml.md b/doc/contributor/PHP-EXT-options.yml.md index 4fa5848f..ad190b0f 100644 --- a/doc/contributor/PHP-EXT-options.yml.md +++ b/doc/contributor/PHP-EXT-options.yml.md @@ -11,7 +11,122 @@ PHP Mods: `options.yml` | # Extension definition: `options.yml` -To be done +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. -For now have a look at the existing modules into the respective `options.yml` files as they are mostly the same. +### `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 index d4f25e3f..79462821 100644 --- a/doc/contributor/PHP-EXT-test.yml.md +++ b/doc/contributor/PHP-EXT-test.yml.md @@ -11,4 +11,17 @@ PHP Mods: `test.yml` # 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. From 7101c8c07ced78d446445c9e20034637166e141c Mon Sep 17 00:00:00 2001 From: cytopia Date: Wed, 30 Nov 2022 03:18:01 +0100 Subject: [PATCH 33/53] Fix docker run --- bin/gen-readme.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/bin/gen-readme.sh b/bin/gen-readme.sh index cb7207d0..608eaf86 100755 --- a/bin/gen-readme.sh +++ b/bin/gen-readme.sh @@ -67,7 +67,7 @@ get_modules_from_image() { local modules modules="$( \ - docker run --rm "$(tty -s && echo '-it' || echo)" --platform "${ARCH}" --entrypoint=php "${IMAGE}:${img_tag}" -m \ + docker run --rm --platform "${ARCH}" --entrypoint=php "${IMAGE}:${img_tag}" -m \ | sed 's/Zend //g' \ | sed 's/xdebug/Xdebug/g' \ | sed 's/Core//g' \ @@ -77,19 +77,19 @@ get_modules_from_image() { )" # Get modules which might be disabled - if docker run --rm --platform "${ARCH}" "$(tty -s && echo '-it' || echo)" --entrypoint=find "${IMAGE}:${img_tag}" /usr/local/lib/php/extensions -name 'ioncube.so' | grep -q ioncube.so; then + 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}" "$(tty -s && echo '-it' || echo)" --entrypoint=find "${IMAGE}:${img_tag}" /usr/local/lib/php/extensions -name 'blackfire.so' | grep -q blackfire.so; then + 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}" "$(tty -s && echo '-it' || echo)" --entrypoint=find "${IMAGE}:${img_tag}" /usr/local/lib/php/extensions -name 'psr.so' | grep -q psr.so; then + 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}" "$(tty -s && echo '-it' || echo)" --entrypoint=find "${IMAGE}:${img_tag}" /usr/local/lib/php/extensions -name 'phalcon.so' | grep -q phalcon.so; then + 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 From ab5264d5be2b283c5e27d3eecb0db08819adb3d2 Mon Sep 17 00:00:00 2001 From: cytopia Date: Wed, 30 Nov 2022 03:29:08 +0100 Subject: [PATCH 34/53] Update contributor docs --- php_modules/README.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/php_modules/README.md b/php_modules/README.md index 2107aa28..163ef90a 100644 --- a/php_modules/README.md +++ b/php_modules/README.md @@ -18,6 +18,8 @@ All PHP modules/extensions (for all PHP versions and both for `amd64` and `arm64 ## 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 @@ -28,7 +30,7 @@ All PHP modules/extensions (for all PHP versions and both for `amd64` and `arm64 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, you generate group_vars for your one module only via: +**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 @@ -42,14 +44,14 @@ make gen-dockerfiles ## Extension definition: `build.yml` -See **[PHP-EXT-build.yml.md](../doc/PHP-EXT-build.yml.md)** how to alter the `build.yml` file. +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/PHP-EXT-options.yml.md)** how to alter the `options.yml` file. +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/PHP-EXT-test.yml.md)** how to alter the `test.yml` file. +See **[PHP-EXT-test.yml.md](../doc/contributor/PHP-EXT-test.yml.md)** how to alter the `test.yml` file. From b98b2c31b3b08aba2966f578de6394bb983bc8ed Mon Sep 17 00:00:00 2001 From: cytopia Date: Wed, 30 Nov 2022 06:24:42 +0100 Subject: [PATCH 35/53] Allow to ignore deps and specify a selection of modules --- bin/modules-generate.py | 59 ++++++++++++++++++++++++++--------------- 1 file changed, 38 insertions(+), 21 deletions(-) diff --git a/bin/modules-generate.py b/bin/modules-generate.py index 4257ff67..c4c0207c 100755 --- a/bin/modules-generate.py +++ b/bin/modules-generate.py @@ -4,7 +4,7 @@ import os import sys from collections import OrderedDict -from typing import Dict, List, Optional, Any +from typing import Dict, List, Any import yaml @@ -74,11 +74,12 @@ def get_module_test(module_dirname: str) -> Dict[str, Any]: return load_yaml(os.path.join(PHP_MODULE_PATH, module_dirname, "test.yml")) -def get_modules(mod_name: Optional[str] = None) -> List[Dict[str, Any]]: +def get_modules(selected_modules: List[str], ignore_dependencies: bool) -> List[Dict[str, Any]]: """Returns a list of PHP module directory names. Args: - mod_name: If specified, only get this module (and its dependencies). + 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: @@ -91,17 +92,18 @@ def get_modules(mod_name: Optional[str] = None) -> List[Dict[str, Any]]: # Convert list of deps into dict(dir, name, deps) items = [] for module in modules: - if module["deps"]: + 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 mod_name: - return [get_el_by_name(items, mod_name)] + 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"]) @@ -196,38 +198,53 @@ def write_group_vars(modules: List[str]) -> None: # -------------------------------------------------------------------------------------------------- def print_help() -> None: """Show help screen.""" - print("Usage:", os.path.basename(__file__), "[php-module]") + 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("Optional arguments:") - print(" [php-module] When specifying a name of a php-module, the group_vars file will") + 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.""" - if not (len(argv) == 0 or len(argv) == 1): - print_help() - sys.exit(1) - if len(argv) == 1: - if argv[0] == "--help" or argv[0] == "-h": - print_help() - sys.exit(0) - - single_module = None - if len(argv) == 1: - single_module = argv[0] + 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(single_module) + modules = get_modules(selected_modules, ignore_dependencies) module_tree = get_module_dependency_tree(modules) names = resolve_module_dependency_tree(module_tree) From 16f09f8bf6a0cbc566570dbf9419e77f4669d527 Mon Sep 17 00:00:00 2001 From: cytopia Date: Wed, 30 Nov 2022 06:25:02 +0100 Subject: [PATCH 36/53] Be able to parse args to module-generate.py via make --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 004b2a65..0f855c60 100644 --- a/Makefile +++ b/Makefile @@ -214,7 +214,7 @@ gen-readme: ### .PHONY: gen-modules gen-modules: - ./bin/modules-generate.py + ./bin/modules-generate.py $(ARGS) ### ### Generate Dockerfiles From c722d4cc8fc2491ad02533df8a66763afd39864f Mon Sep 17 00:00:00 2001 From: cytopia Date: Wed, 30 Nov 2022 06:26:48 +0100 Subject: [PATCH 37/53] Add info on how to generate your own extensions --- README.md | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d437cfe1..9ec967c3 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,8 @@ versions and packed with different types of integrated PHP modules. It also solv :information_source: For details see **[Documentation: Syncronize File Permissions](doc/syncronize-file-permissions.md)** +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)**. +

Docker Tags

@@ -81,6 +83,7 @@ The provided Docker images heavily rely on inheritance to guarantee smallest pos

Available PHP extensions

+> Click below listed extensions for details: .*#\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 diff --git a/README.md b/README.md index 0728c4d7..1b43c415 100644 --- a/README.md +++ b/README.md @@ -84,11 +84,8 @@ The provided Docker images heavily rely on inheritance to guarantee smallest pos

Available PHP extensions

> Click below listed extensions for details: - + [`amqp`](php_modules/amqp/) [`apc`](php_modules/apc/) [`apcu`](php_modules/apcu/) @@ -180,8 +177,8 @@ cat doc/php_modules.md | grep href | sed 's|||g' | xargs [`tokenizer`](php_modules/tokenizer/) [`uploadprogress`](php_modules/uploadprogress/) [`uuid`](php_modules/uuid/) -[`wddx`](php_modules/wddx/) [`vips`](php_modules/vips/) +[`wddx`](php_modules/wddx/) [`Xdebug`](php_modules/xdebug/) [`xlswriter`](php_modules/xlswriter/) [`xml`](php_modules/xml/) @@ -192,6 +189,7 @@ cat doc/php_modules.md | grep href | sed 's|||g' | xargs [`yaml`](php_modules/yaml/) [`zip`](php_modules/zip/) [`zlib`](php_modules/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)** From c64e92e94eb755e29dd33d230ca0ada27c388701 Mon Sep 17 00:00:00 2001 From: cytopia Date: Thu, 1 Dec 2022 09:21:32 +0100 Subject: [PATCH 50/53] Added Serializers for Redis ext: lz4, lzf, zstd --- php_modules/redis/build.yml | 102 +++++++++++++++++++++++++++++----- php_modules/redis/options.yml | 4 +- 2 files changed, 90 insertions(+), 16 deletions(-) diff --git a/php_modules/redis/build.yml b/php_modules/redis/build.yml index 1d854bf1..60907074 100644 --- a/php_modules/redis/build.yml +++ b/php_modules/redis/build.yml @@ -8,57 +8,129 @@ 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) + 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 [ -d "/usr/local/include/php/ext/igbinary" ]; then \ + if php -m | grep -q "igbinary"; then \ REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \ fi; \ - if [ -d "/usr/local/include/php/ext/msgpack" ]; then \ + 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 -8.2: +# 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 for-each-ref --format='%(refname)' refs/tags | grep -E 'tags/[.0-9]+$' | sed 's|.*tags/||g' | sort -V | tail -1) + git_ref: $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) command: | REDIS_ARGS=""; \ - if [ -d "/usr/local/include/php/ext/igbinary" ]; then \ + if php -m | grep -q "igbinary"; then \ REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \ fi; \ - if [ -d "/usr/local/include/php/ext/msgpack" ]; then \ + 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} \ - && 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 \ + build_dep: + - liblz4-dev + - libzstd-dev + run_dep: + - liblz4-1 + - libzstd1 -8.1: +# 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 for-each-ref --format='%(refname)' refs/tags | grep -E 'tags/[.0-9]+$' | sed 's|.*tags/||g' | sort -V | tail -1) + git_ref: $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) command: | REDIS_ARGS=""; \ - if [ -d "/usr/local/include/php/ext/igbinary" ]; then \ + if php -m | grep -q "igbinary"; then \ REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \ fi; \ - if [ -d "/usr/local/include/php/ext/msgpack" ]; then \ + 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} \ - && 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 \ + build_dep: + - liblz4-dev + run_dep: + - liblz4-1 5.6: type: pecl diff --git a/php_modules/redis/options.yml b/php_modules/redis/options.yml index 83c5a103..eba9d9dd 100644 --- a/php_modules/redis/options.yml +++ b/php_modules/redis/options.yml @@ -10,8 +10,10 @@ exclude: [] # the following modules must have been built first. depends_build: - igbinary + - lz4 + - lzf - msgpack -# - lzf # TODO: add lzf module to redis + - zstd # In order for this module to function correctly, # the following modules must be loaded before. From f2d1e41377fd9a26cfbd915e0ae12ecd72d92011 Mon Sep 17 00:00:00 2001 From: cytopia Date: Thu, 1 Dec 2022 09:22:45 +0100 Subject: [PATCH 51/53] Added extensions: lz4, lzf and zstd --- .ansible/group_vars/all/mods.yml | 139 +++++++++++++++++++++++++++---- Dockerfiles/mods/Dockerfile-5.2 | 11 +++ Dockerfiles/mods/Dockerfile-5.3 | 11 +++ Dockerfiles/mods/Dockerfile-5.4 | 11 +++ Dockerfiles/mods/Dockerfile-5.5 | 11 +++ Dockerfiles/mods/Dockerfile-5.6 | 11 +++ Dockerfiles/mods/Dockerfile-7.0 | 66 ++++++++++++++- Dockerfiles/mods/Dockerfile-7.1 | 76 ++++++++++++++++- Dockerfiles/mods/Dockerfile-7.2 | 76 ++++++++++++++++- Dockerfiles/mods/Dockerfile-7.3 | 79 +++++++++++++++++- Dockerfiles/mods/Dockerfile-7.4 | 79 +++++++++++++++++- Dockerfiles/mods/Dockerfile-8.0 | 79 +++++++++++++++++- Dockerfiles/mods/Dockerfile-8.1 | 83 ++++++++++++++++-- Dockerfiles/mods/Dockerfile-8.2 | 83 ++++++++++++++++-- README.md | 3 + doc/php-modules.md | 48 +++++++++++ php_modules/lz4/README.md | 9 ++ php_modules/lz4/build.yml | 14 ++++ php_modules/lz4/options.yml | 25 ++++++ php_modules/lz4/test.yml | 1 + php_modules/lzf/README.md | 8 ++ php_modules/lzf/build.yml | 28 +++++++ php_modules/lzf/options.yml | 25 ++++++ php_modules/lzf/test.yml | 1 + php_modules/zstd/README.md | 8 ++ php_modules/zstd/build.yml | 20 +++++ php_modules/zstd/options.yml | 25 ++++++ php_modules/zstd/test.yml | 1 + 28 files changed, 983 insertions(+), 48 deletions(-) create mode 100644 php_modules/lz4/README.md create mode 100644 php_modules/lz4/build.yml create mode 100644 php_modules/lz4/options.yml create mode 100644 php_modules/lz4/test.yml create mode 100644 php_modules/lzf/README.md create mode 100644 php_modules/lzf/build.yml create mode 100644 php_modules/lzf/options.yml create mode 100644 php_modules/lzf/test.yml create mode 100644 php_modules/zstd/README.md create mode 100644 php_modules/zstd/build.yml create mode 100644 php_modules/zstd/options.yml create mode 100644 php_modules/zstd/test.yml diff --git a/.ansible/group_vars/all/mods.yml b/.ansible/group_vars/all/mods.yml index 2b8d3c87..b19b61d0 100644 --- a/.ansible/group_vars/all/mods.yml +++ b/.ansible/group_vars/all/mods.yml @@ -38,6 +38,8 @@ extensions_enabled: - ioncube - json - ldap + - lz4 + - lzf - mcrypt - memcache - msgpack @@ -66,6 +68,7 @@ extensions_enabled: - pdo_sqlsrv - pgsql - psr + - zstd - redis - sqlite3 - sqlsrv @@ -475,6 +478,35 @@ extensions_available: pre: ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libldap* /usr/lib/ configure: --with-ldap --with-ldap-sasl build_dep: [libldap2-dev, libsasl2-dev] + 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 + 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: [] mcrypt: disabled: [8.1, 8.2] all: @@ -938,60 +970,137 @@ extensions_available: 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/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 for-each-ref --format='%(refname)' refs/tags | grep -E 'tags/[.0-9]+$' | sed 's|.*tags/||g' | sort -V | tail -1) + 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 [ -d "/usr/local/include/php/ext/igbinary" ]; then \ + if php -m | grep -q "igbinary"; then \ REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \ fi; \ - if [ -d "/usr/local/include/php/ext/msgpack" ]; then \ + 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 \ - 8.2: + 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 for-each-ref --format='%(refname)' refs/tags | grep -E 'tags/[.0-9]+$' | sed 's|.*tags/||g' | sort -V | tail -1) + git_ref: $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) command: | REDIS_ARGS=""; \ - if [ -d "/usr/local/include/php/ext/igbinary" ]; then \ + if php -m | grep -q "igbinary"; then \ REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \ fi; \ - if [ -d "/usr/local/include/php/ext/msgpack" ]; then \ + 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} \ - && 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: + 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 for-each-ref --format='%(refname)' refs/tags | grep -E 'tags/[.0-9]+$' | sed 's|.*tags/||g' | sort -V | tail -1) + git_ref: $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) command: | REDIS_ARGS=""; \ - if [ -d "/usr/local/include/php/ext/igbinary" ]; then \ + if php -m | grep -q "igbinary"; then \ REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \ fi; \ - if [ -d "/usr/local/include/php/ext/msgpack" ]; then \ + 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} \ - && 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 \ + build_dep: + - liblz4-dev + run_dep: + - liblz4-1 5.6: type: pecl version: 4.3.0 diff --git a/Dockerfiles/mods/Dockerfile-5.2 b/Dockerfiles/mods/Dockerfile-5.2 index 3e2e3820..9617bcbf 100644 --- a/Dockerfiles/mods/Dockerfile-5.2 +++ b/Dockerfiles/mods/Dockerfile-5.2 @@ -22,6 +22,8 @@ RUN set -eux \ libjpeg-dev \ libkrb5-dev \ libldap2-dev \ + liblz4-dev \ + liblzf-dev \ libmagic-dev \ libmcrypt-dev \ libmemcached-dev \ @@ -41,6 +43,7 @@ RUN set -eux \ libxpm-dev \ libxslt-dev \ libzip-dev \ + libzstd-dev \ snmp \ zlib1g-dev \ # Build tools @@ -384,6 +387,11 @@ RUN set -eux \ # -------------------- 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 @@ -595,6 +603,8 @@ RUN set -eux \ libfreetype6 \ libicu52 \ libjpeg62-turbo \ + liblz4-1 \ + liblzf1 \ libmagic1 \ libmcrypt4 \ libmemcachedutil2 \ @@ -610,6 +620,7 @@ RUN set -eux \ libxpm4 \ libxslt1.1 \ libzip2 \ + libzstd1 \ snmp \ ca-certificates \ && rm -rf /var/lib/apt/lists/* \ diff --git a/Dockerfiles/mods/Dockerfile-5.3 b/Dockerfiles/mods/Dockerfile-5.3 index eaa1f8e8..ce47a80b 100644 --- a/Dockerfiles/mods/Dockerfile-5.3 +++ b/Dockerfiles/mods/Dockerfile-5.3 @@ -26,6 +26,8 @@ RUN set -eux \ libjpeg-dev \ libkrb5-dev \ libldap2-dev \ + liblz4-dev \ + liblzf-dev \ libmcrypt-dev \ libmemcached-dev \ libmysqlclient-dev \ @@ -47,6 +49,7 @@ RUN set -eux \ libxslt-dev \ libyaml-dev \ libzip-dev \ + libzstd-dev \ re2c \ snmp \ uuid-dev \ @@ -459,6 +462,11 @@ RUN set -eux \ # -------------------- 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 @@ -720,6 +728,8 @@ RUN set -eux \ libfreetype6 \ libicu52 \ libjpeg62-turbo \ + liblz4-1 \ + liblzf1 \ libmcrypt4 \ libmemcachedutil2 \ libmysqlclient18 \ @@ -738,6 +748,7 @@ RUN set -eux \ libxslt1.1 \ libyaml-0-2 \ libzip2 \ + libzstd1 \ snmp \ uuid \ zlib1g \ diff --git a/Dockerfiles/mods/Dockerfile-5.4 b/Dockerfiles/mods/Dockerfile-5.4 index 1ef24b06..1281bef3 100644 --- a/Dockerfiles/mods/Dockerfile-5.4 +++ b/Dockerfiles/mods/Dockerfile-5.4 @@ -26,6 +26,8 @@ RUN set -eux \ libjpeg-dev \ libkrb5-dev \ libldap2-dev \ + liblz4-dev \ + liblzf-dev \ libmcrypt-dev \ libmemcached-dev \ libmysqlclient-dev \ @@ -47,6 +49,7 @@ RUN set -eux \ libxslt-dev \ libyaml-dev \ libzip-dev \ + libzstd-dev \ re2c \ snmp \ uuid-dev \ @@ -470,6 +473,11 @@ RUN set -eux \ # -------------------- 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 @@ -731,6 +739,8 @@ RUN set -eux \ libfreetype6 \ libicu52 \ libjpeg62-turbo \ + liblz4-1 \ + liblzf1 \ libmcrypt4 \ libmemcachedutil2 \ libmysqlclient18 \ @@ -749,6 +759,7 @@ RUN set -eux \ libxslt1.1 \ libyaml-0-2 \ libzip2 \ + libzstd1 \ snmp \ uuid \ zlib1g \ diff --git a/Dockerfiles/mods/Dockerfile-5.5 b/Dockerfiles/mods/Dockerfile-5.5 index 1a2993db..22a68398 100644 --- a/Dockerfiles/mods/Dockerfile-5.5 +++ b/Dockerfiles/mods/Dockerfile-5.5 @@ -27,6 +27,8 @@ RUN set -eux \ libjpeg-dev \ libkrb5-dev \ libldap2-dev \ + liblz4-dev \ + liblzf-dev \ libmagickwand-dev \ libmcrypt-dev \ libmemcached-dev \ @@ -49,6 +51,7 @@ RUN set -eux \ libxslt-dev \ libyaml-dev \ libzip-dev \ + libzstd-dev \ re2c \ snmp \ uuid-dev \ @@ -508,6 +511,11 @@ RUN set -eux \ # -------------------- 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 @@ -770,6 +778,8 @@ RUN set -eux \ libfreetype6 \ libicu52 \ libjpeg62-turbo \ + liblz4-1 \ + liblzf1 \ libmagickwand-6.q16-2 \ libmcrypt4 \ libmemcachedutil2 \ @@ -789,6 +799,7 @@ RUN set -eux \ libxslt1.1 \ libyaml-0-2 \ libzip2 \ + libzstd1 \ snmp \ uuid \ zlib1g \ diff --git a/Dockerfiles/mods/Dockerfile-5.6 b/Dockerfiles/mods/Dockerfile-5.6 index f134700a..9c436fb3 100644 --- a/Dockerfiles/mods/Dockerfile-5.6 +++ b/Dockerfiles/mods/Dockerfile-5.6 @@ -27,6 +27,8 @@ RUN set -eux \ libjpeg-dev \ libkrb5-dev \ libldap2-dev \ + liblz4-dev \ + liblzf-dev \ libmagickwand-dev \ libmariadbclient-dev \ libmcrypt-dev \ @@ -50,6 +52,7 @@ RUN set -eux \ libxslt-dev \ libyaml-dev \ libzip-dev \ + libzstd-dev \ re2c \ snmp \ uuid-dev \ @@ -519,6 +522,11 @@ RUN set -eux \ # -------------------- 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 @@ -789,6 +797,8 @@ RUN set -eux \ libfreetype6 \ libicu57 \ libjpeg62-turbo \ + liblz4-1 \ + liblzf1 \ libmagickwand-6.q16-3 \ libmariadbclient18 \ libmcrypt4 \ @@ -807,6 +817,7 @@ RUN set -eux \ libxslt1.1 \ libyaml-0-2 \ libzip4 \ + libzstd1 \ snmp \ uuid \ zlib1g \ diff --git a/Dockerfiles/mods/Dockerfile-7.0 b/Dockerfiles/mods/Dockerfile-7.0 index 374deee6..dbb23b3e 100644 --- a/Dockerfiles/mods/Dockerfile-7.0 +++ b/Dockerfiles/mods/Dockerfile-7.0 @@ -27,6 +27,7 @@ RUN set -eux \ libjpeg-dev \ libkrb5-dev \ libldap2-dev \ + liblz4-dev \ libmagickwand-dev \ libmariadbclient-dev \ libmcrypt-dev \ @@ -53,6 +54,7 @@ RUN set -eux \ libxslt-dev \ libyaml-dev \ libzip-dev \ + libzstd-dev \ re2c \ snmp \ unixodbc-dev \ @@ -303,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 @@ -549,20 +580,39 @@ 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 \ - # Installation: Generic + # 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 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) \ # Custom: Install command && REDIS_ARGS=""; \ -if [ -d "/usr/local/include/php/ext/igbinary" ]; then \ +if php -m | grep -q "igbinary"; then \ REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \ fi; \ -if [ -d "/usr/local/include/php/ext/msgpack" ]; then \ +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 \ @@ -880,6 +930,7 @@ RUN set -eux \ libfreetype6 \ libicu57 \ libjpeg62-turbo \ + liblz4-1 \ libmagickwand-6.q16-3 \ libmariadbclient18 \ libmcrypt4 \ @@ -900,6 +951,7 @@ RUN set -eux \ libxslt1.1 \ libyaml-0-2 \ libzip4 \ + libzstd1 \ snmp \ unixodbc \ uuid \ @@ -1029,6 +1081,10 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^json$' \ && php -m | grep -oiE '^ldap$' \ && php-fpm -m | grep -oiE '^ldap$' \ + && php -m | grep -oiE '^lz4$' \ + && php-fpm -m | grep -oiE '^lz4$' \ + && php -m | grep -oiE '^lzf$' \ + && php-fpm -m | grep -oiE '^lzf$' \ && php -m | grep -oiE '^mcrypt$' \ && php-fpm -m | grep -oiE '^mcrypt$' \ && php -m | grep -oiE '^memcache$' \ @@ -1075,6 +1131,8 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^pgsql$' \ && php -m | grep -oiE '^psr$' \ && php-fpm -m | grep -oiE '^psr$' \ + && php -m | grep -oiE '^zstd$' \ + && php-fpm -m | grep -oiE '^zstd$' \ && php -m | grep -oiE '^redis$' \ && php-fpm -m | grep -oiE '^redis$' \ && php -m | grep -oiE '^sqlite3$' \ diff --git a/Dockerfiles/mods/Dockerfile-7.1 b/Dockerfiles/mods/Dockerfile-7.1 index 71d50970..5134b727 100644 --- a/Dockerfiles/mods/Dockerfile-7.1 +++ b/Dockerfiles/mods/Dockerfile-7.1 @@ -27,6 +27,7 @@ RUN set -eux \ libjpeg-dev \ libkrb5-dev \ libldap2-dev \ + liblz4-dev \ libmagickwand-dev \ libmariadb-dev \ libmcrypt-dev \ @@ -53,6 +54,7 @@ RUN set -eux \ libxslt-dev \ libyaml-dev \ libzip-dev \ + libzstd-dev \ re2c \ snmp \ unixodbc-dev \ @@ -303,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 @@ -547,22 +578,51 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: redis -------------------- +# -------------------- 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 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) \ # Custom: Install command && REDIS_ARGS=""; \ -if [ -d "/usr/local/include/php/ext/igbinary" ]; then \ +if php -m | grep -q "igbinary"; then \ REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \ fi; \ -if [ -d "/usr/local/include/php/ext/msgpack" ]; then \ +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) \ @@ -888,6 +948,7 @@ RUN set -eux \ libfreetype6 \ libicu63 \ libjpeg62-turbo \ + liblz4-1 \ libmagickwand-6.q16-6 \ libmariadbd19 \ libmcrypt4 \ @@ -908,6 +969,7 @@ RUN set -eux \ libxslt1.1 \ libyaml-0-2 \ libzip4 \ + libzstd1 \ snmp \ unixodbc \ uuid \ @@ -1037,6 +1099,10 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^json$' \ && php -m | grep -oiE '^ldap$' \ && php-fpm -m | grep -oiE '^ldap$' \ + && php -m | grep -oiE '^lz4$' \ + && php-fpm -m | grep -oiE '^lz4$' \ + && php -m | grep -oiE '^lzf$' \ + && php-fpm -m | grep -oiE '^lzf$' \ && php -m | grep -oiE '^mcrypt$' \ && php-fpm -m | grep -oiE '^mcrypt$' \ && php -m | grep -oiE '^memcache$' \ @@ -1083,6 +1149,8 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^pgsql$' \ && php -m | grep -oiE '^psr$' \ && php-fpm -m | grep -oiE '^psr$' \ + && php -m | grep -oiE '^zstd$' \ + && php-fpm -m | grep -oiE '^zstd$' \ && php -m | grep -oiE '^redis$' \ && php-fpm -m | grep -oiE '^redis$' \ && php -m | grep -oiE '^sqlite3$' \ diff --git a/Dockerfiles/mods/Dockerfile-7.2 b/Dockerfiles/mods/Dockerfile-7.2 index 94c8e421..75a9eeac 100644 --- a/Dockerfiles/mods/Dockerfile-7.2 +++ b/Dockerfiles/mods/Dockerfile-7.2 @@ -27,6 +27,7 @@ RUN set -eux \ libjpeg-dev \ libkrb5-dev \ libldap2-dev \ + liblz4-dev \ libmagickwand-dev \ libmariadb-dev \ libmcrypt-dev \ @@ -53,6 +54,7 @@ RUN set -eux \ libxslt-dev \ libyaml-dev \ libzip-dev \ + libzstd-dev \ re2c \ snmp \ unixodbc-dev \ @@ -303,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 @@ -550,22 +581,51 @@ RUN set -eux \ && true -# -------------------- Installing PHP Extension: redis -------------------- +# -------------------- 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 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) \ # Custom: Install command && REDIS_ARGS=""; \ -if [ -d "/usr/local/include/php/ext/igbinary" ]; then \ +if php -m | grep -q "igbinary"; then \ REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \ fi; \ -if [ -d "/usr/local/include/php/ext/msgpack" ]; then \ +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) \ @@ -891,6 +951,7 @@ RUN set -eux \ libfreetype6 \ libicu63 \ libjpeg62-turbo \ + liblz4-1 \ libmagickwand-6.q16-6 \ libmariadbd19 \ libmcrypt4 \ @@ -911,6 +972,7 @@ RUN set -eux \ libxslt1.1 \ libyaml-0-2 \ libzip4 \ + libzstd1 \ snmp \ unixodbc \ uuid \ @@ -1040,6 +1102,10 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^json$' \ && php -m | grep -oiE '^ldap$' \ && php-fpm -m | grep -oiE '^ldap$' \ + && php -m | grep -oiE '^lz4$' \ + && php-fpm -m | grep -oiE '^lz4$' \ + && php -m | grep -oiE '^lzf$' \ + && php-fpm -m | grep -oiE '^lzf$' \ && php -m | grep -oiE '^mcrypt$' \ && php-fpm -m | grep -oiE '^mcrypt$' \ && php -m | grep -oiE '^memcache$' \ @@ -1086,6 +1152,8 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^pgsql$' \ && php -m | grep -oiE '^psr$' \ && php-fpm -m | grep -oiE '^psr$' \ + && php -m | grep -oiE '^zstd$' \ + && php-fpm -m | grep -oiE '^zstd$' \ && php -m | grep -oiE '^redis$' \ && php-fpm -m | grep -oiE '^redis$' \ && php -m | grep -oiE '^sqlite3$' \ diff --git a/Dockerfiles/mods/Dockerfile-7.3 b/Dockerfiles/mods/Dockerfile-7.3 index 89940e21..1a112175 100644 --- a/Dockerfiles/mods/Dockerfile-7.3 +++ b/Dockerfiles/mods/Dockerfile-7.3 @@ -26,6 +26,8 @@ RUN set -eux \ libjpeg-dev \ libkrb5-dev \ libldap2-dev \ + liblz4-dev \ + liblzf-dev \ libmagickwand-dev \ libmariadb-dev \ libmcrypt-dev \ @@ -52,6 +54,7 @@ RUN set -eux \ libxslt-dev \ libyaml-dev \ libzip-dev \ + libzstd-dev \ re2c \ snmp \ unixodbc-dev \ @@ -293,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 @@ -540,22 +572,54 @@ 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 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) \ # Custom: Install command && REDIS_ARGS=""; \ -if [ -d "/usr/local/include/php/ext/igbinary" ]; then \ +if php -m | grep -q "igbinary"; then \ REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \ fi; \ -if [ -d "/usr/local/include/php/ext/msgpack" ]; then \ +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) \ @@ -880,6 +944,8 @@ RUN set -eux \ libfreetype6 \ libicu67 \ libjpeg62-turbo \ + liblz4-1 \ + liblzf1 \ libmagickwand-6.q16-6 \ libmariadbd19 \ libmcrypt4 \ @@ -900,6 +966,7 @@ RUN set -eux \ libxslt1.1 \ libyaml-0-2 \ libzip4 \ + libzstd1 \ snmp \ unixodbc \ uuid \ @@ -1027,6 +1094,10 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^json$' \ && php -m | grep -oiE '^ldap$' \ && php-fpm -m | grep -oiE '^ldap$' \ + && php -m | grep -oiE '^lz4$' \ + && php-fpm -m | grep -oiE '^lz4$' \ + && php -m | grep -oiE '^lzf$' \ + && php-fpm -m | grep -oiE '^lzf$' \ && php -m | grep -oiE '^mcrypt$' \ && php-fpm -m | grep -oiE '^mcrypt$' \ && php -m | grep -oiE '^memcache$' \ @@ -1073,6 +1144,8 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^pgsql$' \ && php -m | grep -oiE '^psr$' \ && php-fpm -m | grep -oiE '^psr$' \ + && php -m | grep -oiE '^zstd$' \ + && php-fpm -m | grep -oiE '^zstd$' \ && php -m | grep -oiE '^redis$' \ && php-fpm -m | grep -oiE '^redis$' \ && php -m | grep -oiE '^sqlite3$' \ diff --git a/Dockerfiles/mods/Dockerfile-7.4 b/Dockerfiles/mods/Dockerfile-7.4 index 533216c1..5013c12b 100644 --- a/Dockerfiles/mods/Dockerfile-7.4 +++ b/Dockerfiles/mods/Dockerfile-7.4 @@ -27,6 +27,8 @@ RUN set -eux \ libjpeg-dev \ libkrb5-dev \ libldap2-dev \ + liblz4-dev \ + liblzf-dev \ libmagickwand-dev \ libmariadb-dev \ libmcrypt-dev \ @@ -52,6 +54,7 @@ RUN set -eux \ libxslt-dev \ libyaml-dev \ libzip-dev \ + libzstd-dev \ re2c \ snmp \ unixodbc-dev \ @@ -293,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 @@ -540,22 +572,54 @@ 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 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) \ # Custom: Install command && REDIS_ARGS=""; \ -if [ -d "/usr/local/include/php/ext/igbinary" ]; then \ +if php -m | grep -q "igbinary"; then \ REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \ fi; \ -if [ -d "/usr/local/include/php/ext/msgpack" ]; then \ +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) \ @@ -869,6 +933,8 @@ RUN set -eux \ libfreetype6 \ libicu67 \ libjpeg62-turbo \ + liblz4-1 \ + liblzf1 \ libmagickwand-6.q16-6 \ libmariadbd19 \ libmcrypt4 \ @@ -888,6 +954,7 @@ RUN set -eux \ libxslt1.1 \ libyaml-0-2 \ libzip4 \ + libzstd1 \ snmp \ unixodbc \ uuid \ @@ -1014,6 +1081,10 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^json$' \ && php -m | grep -oiE '^ldap$' \ && php-fpm -m | grep -oiE '^ldap$' \ + && php -m | grep -oiE '^lz4$' \ + && php-fpm -m | grep -oiE '^lz4$' \ + && php -m | grep -oiE '^lzf$' \ + && php-fpm -m | grep -oiE '^lzf$' \ && php -m | grep -oiE '^mcrypt$' \ && php-fpm -m | grep -oiE '^mcrypt$' \ && php -m | grep -oiE '^memcache$' \ @@ -1060,6 +1131,8 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^pgsql$' \ && php -m | grep -oiE '^psr$' \ && php-fpm -m | grep -oiE '^psr$' \ + && php -m | grep -oiE '^zstd$' \ + && php-fpm -m | grep -oiE '^zstd$' \ && php -m | grep -oiE '^redis$' \ && php-fpm -m | grep -oiE '^redis$' \ && php -m | grep -oiE '^sqlite3$' \ diff --git a/Dockerfiles/mods/Dockerfile-8.0 b/Dockerfiles/mods/Dockerfile-8.0 index e748ef05..560ee378 100644 --- a/Dockerfiles/mods/Dockerfile-8.0 +++ b/Dockerfiles/mods/Dockerfile-8.0 @@ -27,6 +27,8 @@ RUN set -eux \ libjpeg-dev \ libkrb5-dev \ libldap2-dev \ + liblz4-dev \ + liblzf-dev \ libmagickwand-dev \ libmariadb-dev \ libmcrypt-dev \ @@ -52,6 +54,7 @@ RUN set -eux \ libxslt-dev \ libyaml-dev \ libzip-dev \ + libzstd-dev \ re2c \ snmp \ unixodbc-dev \ @@ -276,6 +279,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 @@ -523,22 +555,54 @@ 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 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) \ # Custom: Install command && REDIS_ARGS=""; \ -if [ -d "/usr/local/include/php/ext/igbinary" ]; then \ +if php -m | grep -q "igbinary"; then \ REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \ fi; \ -if [ -d "/usr/local/include/php/ext/msgpack" ]; then \ +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) \ @@ -843,6 +907,8 @@ RUN set -eux \ libfreetype6 \ libicu67 \ libjpeg62-turbo \ + liblz4-1 \ + liblzf1 \ libmagickwand-6.q16-6 \ libmariadbd19 \ libmcrypt4 \ @@ -861,6 +927,7 @@ RUN set -eux \ libxslt1.1 \ libyaml-0-2 \ libzip4 \ + libzstd1 \ snmp \ unixodbc \ uuid \ @@ -989,6 +1056,10 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^json$' \ && php -m | grep -oiE '^ldap$' \ && php-fpm -m | grep -oiE '^ldap$' \ + && php -m | grep -oiE '^lz4$' \ + && php-fpm -m | grep -oiE '^lz4$' \ + && php -m | grep -oiE '^lzf$' \ + && php-fpm -m | grep -oiE '^lzf$' \ && php -m | grep -oiE '^mcrypt$' \ && php-fpm -m | grep -oiE '^mcrypt$' \ && php -m | grep -oiE '^memcache$' \ @@ -1035,6 +1106,8 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^pgsql$' \ && php -m | grep -oiE '^psr$' \ && php-fpm -m | grep -oiE '^psr$' \ + && php -m | grep -oiE '^zstd$' \ + && php-fpm -m | grep -oiE '^zstd$' \ && php -m | grep -oiE '^redis$' \ && php-fpm -m | grep -oiE '^redis$' \ && php -m | grep -oiE '^sqlite3$' \ diff --git a/Dockerfiles/mods/Dockerfile-8.1 b/Dockerfiles/mods/Dockerfile-8.1 index 705e8a43..4a2e8c68 100644 --- a/Dockerfiles/mods/Dockerfile-8.1 +++ b/Dockerfiles/mods/Dockerfile-8.1 @@ -28,6 +28,8 @@ RUN set -eux \ libjpeg-dev \ libkrb5-dev \ libldap2-dev \ + liblz4-dev \ + liblzf-dev \ libmagickwand-dev \ libmariadb-dev \ libmemcached-dev \ @@ -52,6 +54,7 @@ RUN set -eux \ libxslt-dev \ libyaml-dev \ libzip-dev \ + libzstd-dev \ re2c \ snmp \ unixodbc-dev \ @@ -262,6 +265,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: memcache -------------------- RUN set -eux \ # Installation: Generic @@ -501,26 +533,56 @@ 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 \ - # Installation: Version specific + # 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 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) \ # Custom: Install command && REDIS_ARGS=""; \ -if [ -d "/usr/local/include/php/ext/igbinary" ]; then \ +if php -m | grep -q "igbinary"; then \ REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \ fi; \ -if [ -d "/usr/local/include/php/ext/msgpack" ]; then \ +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} \ -&& 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 \ \ @@ -831,6 +893,8 @@ RUN set -eux \ libfreetype6 \ libicu67 \ libjpeg62-turbo \ + liblz4-1 \ + liblzf1 \ libmagickwand-6.q16-6 \ libmariadbd19 \ libmemcachedutil2 \ @@ -848,6 +912,7 @@ RUN set -eux \ libxslt1.1 \ libyaml-0-2 \ libzip4 \ + libzstd1 \ snmp \ unixodbc \ uuid \ @@ -976,6 +1041,10 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^json$' \ && php -m | grep -oiE '^ldap$' \ && php-fpm -m | grep -oiE '^ldap$' \ + && php -m | grep -oiE '^lz4$' \ + && php-fpm -m | grep -oiE '^lz4$' \ + && php -m | grep -oiE '^lzf$' \ + && php-fpm -m | grep -oiE '^lzf$' \ && php -m | grep -oiE '^memcache$' \ && php-fpm -m | grep -oiE '^memcache$' \ && php -m | grep -oiE '^msgpack$' \ @@ -1020,6 +1089,8 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^pgsql$' \ && php -m | grep -oiE '^psr$' \ && php-fpm -m | grep -oiE '^psr$' \ + && php -m | grep -oiE '^zstd$' \ + && php-fpm -m | grep -oiE '^zstd$' \ && php -m | grep -oiE '^redis$' \ && php-fpm -m | grep -oiE '^redis$' \ && php -m | grep -oiE '^sqlite3$' \ diff --git a/Dockerfiles/mods/Dockerfile-8.2 b/Dockerfiles/mods/Dockerfile-8.2 index dd993800..fd330e1f 100644 --- a/Dockerfiles/mods/Dockerfile-8.2 +++ b/Dockerfiles/mods/Dockerfile-8.2 @@ -27,6 +27,8 @@ RUN set -eux \ libjpeg-dev \ libkrb5-dev \ libldap2-dev \ + liblz4-dev \ + liblzf-dev \ libmagickwand-dev \ libmariadb-dev \ libmemcached-dev \ @@ -48,6 +50,7 @@ RUN set -eux \ libxslt-dev \ libyaml-dev \ libzip-dev \ + libzstd-dev \ snmp \ unixodbc-dev \ uuid-dev \ @@ -257,6 +260,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: memcache -------------------- RUN set -eux \ # Installation: Generic @@ -507,26 +539,56 @@ 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 \ - # Installation: Version specific + # 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 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) \ # Custom: Install command && REDIS_ARGS=""; \ -if [ -d "/usr/local/include/php/ext/igbinary" ]; then \ +if php -m | grep -q "igbinary"; then \ REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \ fi; \ -if [ -d "/usr/local/include/php/ext/msgpack" ]; then \ +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} \ -&& 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 \ \ @@ -782,6 +844,8 @@ RUN set -eux \ libfreetype6 \ libicu67 \ libjpeg62-turbo \ + liblz4-1 \ + liblzf1 \ libmagickwand-6.q16-6 \ libmariadbd19 \ libmemcachedutil2 \ @@ -797,6 +861,7 @@ RUN set -eux \ libxslt1.1 \ libyaml-0-2 \ libzip4 \ + libzstd1 \ snmp \ unixodbc \ uuid \ @@ -925,6 +990,10 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^json$' \ && php -m | grep -oiE '^ldap$' \ && php-fpm -m | grep -oiE '^ldap$' \ + && php -m | grep -oiE '^lz4$' \ + && php-fpm -m | grep -oiE '^lz4$' \ + && php -m | grep -oiE '^lzf$' \ + && php-fpm -m | grep -oiE '^lzf$' \ && php -m | grep -oiE '^memcache$' \ && php-fpm -m | grep -oiE '^memcache$' \ && php -m | grep -oiE '^msgpack$' \ @@ -969,6 +1038,8 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^pgsql$' \ && php -m | grep -oiE '^psr$' \ && php-fpm -m | grep -oiE '^psr$' \ + && php -m | grep -oiE '^zstd$' \ + && php-fpm -m | grep -oiE '^zstd$' \ && php -m | grep -oiE '^redis$' \ && php-fpm -m | grep -oiE '^redis$' \ && php -m | grep -oiE '^sqlite3$' \ diff --git a/README.md b/README.md index 1b43c415..81f6baaf 100644 --- a/README.md +++ b/README.md @@ -119,6 +119,8 @@ The provided Docker images heavily rely on inheritance to guarantee smallest pos [`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/) @@ -189,6 +191,7 @@ The provided Docker images heavily rely on inheritance to guarantee smallest pos [`yaml`](php_modules/yaml/) [`zip`](php_modules/zip/) [`zlib`](php_modules/zlib/) +[`zstd`](php_modules/zstd/) :information_source: For details see **[Documentation: PHP Modules](doc/php-modules.md)**
diff --git a/doc/php-modules.md b/doc/php-modules.md index 01900a54..5145d070 100644 --- a/doc/php-modules.md +++ b/doc/php-modules.md @@ -1188,6 +1188,38 @@ The following PHP modules are available on the `mods`, `prod` and `work` flavour ๐Ÿ—ธ ๐Ÿ—ธ + + lz4 + + + + + + ๐Ÿ—ธ + ๐Ÿ—ธ + ๐Ÿ—ธ + ๐Ÿ—ธ + ๐Ÿ—ธ + ๐Ÿ—ธ + ๐Ÿ—ธ + ๐Ÿ—ธ + + + lzf + + + + + + ๐Ÿ—ธ + ๐Ÿ—ธ + ๐Ÿ—ธ + ๐Ÿ—ธ + ๐Ÿ—ธ + ๐Ÿ—ธ + ๐Ÿ—ธ + ๐Ÿ—ธ + mbstring ๐Ÿ—ธ @@ -2308,4 +2340,20 @@ The following PHP modules are available on the `mods`, `prod` and `work` flavour ๐Ÿ—ธ ๐Ÿ—ธ + + zstd + + + + + + ๐Ÿ—ธ + ๐Ÿ—ธ + ๐Ÿ—ธ + ๐Ÿ—ธ + ๐Ÿ—ธ + ๐Ÿ—ธ + ๐Ÿ—ธ + ๐Ÿ—ธ + diff --git a/php_modules/lz4/README.md b/php_modules/lz4/README.md new file mode 100644 index 00000000..86d1ec09 --- /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 00000000..eef71320 --- /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 00000000..64ab17cf --- /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 00000000..ed97d539 --- /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 00000000..eb5b153f --- /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 00000000..b85def01 --- /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 00000000..589367a9 --- /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 00000000..ed97d539 --- /dev/null +++ b/php_modules/lzf/test.yml @@ -0,0 +1 @@ +--- diff --git a/php_modules/zstd/README.md b/php_modules/zstd/README.md new file mode 100644 index 00000000..632d6f22 --- /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 00000000..48269bbc --- /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 00000000..d48270a9 --- /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 00000000..ed97d539 --- /dev/null +++ b/php_modules/zstd/test.yml @@ -0,0 +1 @@ +--- From 6054f92e9e315be24c0cd843b16a4d3e806fec57 Mon Sep 17 00:00:00 2001 From: cytopia Date: Thu, 1 Dec 2022 09:22:57 +0100 Subject: [PATCH 52/53] Updated Changelog --- CHANGELOG.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f8259725..ea0d2ec9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,14 +9,18 @@ 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 tons of documentation +- 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 -- Split out PHP extensions into separate directories +- Added serializer for Redis extension: `lz4`, `lzf` and `zstd` - Restructured Documentation +- Split out PHP extensions into separate directories ## Release 0.143 From 9c4490f8207ddfe111043524c45a700a686cbfe2 Mon Sep 17 00:00:00 2001 From: cytopia Date: Thu, 1 Dec 2022 10:53:56 +0100 Subject: [PATCH 53/53] Fix Redis build and run deps --- .ansible/group_vars/all/mods.yml | 10 ++++++++++ Dockerfiles/mods/Dockerfile-5.2 | 6 ------ Dockerfiles/mods/Dockerfile-5.3 | 6 ------ Dockerfiles/mods/Dockerfile-5.4 | 6 ------ Dockerfiles/mods/Dockerfile-5.5 | 6 ------ Dockerfiles/mods/Dockerfile-5.6 | 6 ------ php_modules/redis/build.yml | 10 ++++++++++ 7 files changed, 20 insertions(+), 30 deletions(-) diff --git a/.ansible/group_vars/all/mods.yml b/.ansible/group_vars/all/mods.yml index b19b61d0..c132fd98 100644 --- a/.ansible/group_vars/all/mods.yml +++ b/.ansible/group_vars/all/mods.yml @@ -1104,18 +1104,28 @@ extensions_available: 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 }}" diff --git a/Dockerfiles/mods/Dockerfile-5.2 b/Dockerfiles/mods/Dockerfile-5.2 index 9617bcbf..26465c2a 100644 --- a/Dockerfiles/mods/Dockerfile-5.2 +++ b/Dockerfiles/mods/Dockerfile-5.2 @@ -22,8 +22,6 @@ RUN set -eux \ libjpeg-dev \ libkrb5-dev \ libldap2-dev \ - liblz4-dev \ - liblzf-dev \ libmagic-dev \ libmcrypt-dev \ libmemcached-dev \ @@ -43,7 +41,6 @@ RUN set -eux \ libxpm-dev \ libxslt-dev \ libzip-dev \ - libzstd-dev \ snmp \ zlib1g-dev \ # Build tools @@ -603,8 +600,6 @@ RUN set -eux \ libfreetype6 \ libicu52 \ libjpeg62-turbo \ - liblz4-1 \ - liblzf1 \ libmagic1 \ libmcrypt4 \ libmemcachedutil2 \ @@ -620,7 +615,6 @@ RUN set -eux \ libxpm4 \ libxslt1.1 \ libzip2 \ - libzstd1 \ snmp \ ca-certificates \ && rm -rf /var/lib/apt/lists/* \ diff --git a/Dockerfiles/mods/Dockerfile-5.3 b/Dockerfiles/mods/Dockerfile-5.3 index ce47a80b..9d4c1873 100644 --- a/Dockerfiles/mods/Dockerfile-5.3 +++ b/Dockerfiles/mods/Dockerfile-5.3 @@ -26,8 +26,6 @@ RUN set -eux \ libjpeg-dev \ libkrb5-dev \ libldap2-dev \ - liblz4-dev \ - liblzf-dev \ libmcrypt-dev \ libmemcached-dev \ libmysqlclient-dev \ @@ -49,7 +47,6 @@ RUN set -eux \ libxslt-dev \ libyaml-dev \ libzip-dev \ - libzstd-dev \ re2c \ snmp \ uuid-dev \ @@ -728,8 +725,6 @@ RUN set -eux \ libfreetype6 \ libicu52 \ libjpeg62-turbo \ - liblz4-1 \ - liblzf1 \ libmcrypt4 \ libmemcachedutil2 \ libmysqlclient18 \ @@ -748,7 +743,6 @@ RUN set -eux \ libxslt1.1 \ libyaml-0-2 \ libzip2 \ - libzstd1 \ snmp \ uuid \ zlib1g \ diff --git a/Dockerfiles/mods/Dockerfile-5.4 b/Dockerfiles/mods/Dockerfile-5.4 index 1281bef3..f5122df9 100644 --- a/Dockerfiles/mods/Dockerfile-5.4 +++ b/Dockerfiles/mods/Dockerfile-5.4 @@ -26,8 +26,6 @@ RUN set -eux \ libjpeg-dev \ libkrb5-dev \ libldap2-dev \ - liblz4-dev \ - liblzf-dev \ libmcrypt-dev \ libmemcached-dev \ libmysqlclient-dev \ @@ -49,7 +47,6 @@ RUN set -eux \ libxslt-dev \ libyaml-dev \ libzip-dev \ - libzstd-dev \ re2c \ snmp \ uuid-dev \ @@ -739,8 +736,6 @@ RUN set -eux \ libfreetype6 \ libicu52 \ libjpeg62-turbo \ - liblz4-1 \ - liblzf1 \ libmcrypt4 \ libmemcachedutil2 \ libmysqlclient18 \ @@ -759,7 +754,6 @@ RUN set -eux \ libxslt1.1 \ libyaml-0-2 \ libzip2 \ - libzstd1 \ snmp \ uuid \ zlib1g \ diff --git a/Dockerfiles/mods/Dockerfile-5.5 b/Dockerfiles/mods/Dockerfile-5.5 index 22a68398..03b2f740 100644 --- a/Dockerfiles/mods/Dockerfile-5.5 +++ b/Dockerfiles/mods/Dockerfile-5.5 @@ -27,8 +27,6 @@ RUN set -eux \ libjpeg-dev \ libkrb5-dev \ libldap2-dev \ - liblz4-dev \ - liblzf-dev \ libmagickwand-dev \ libmcrypt-dev \ libmemcached-dev \ @@ -51,7 +49,6 @@ RUN set -eux \ libxslt-dev \ libyaml-dev \ libzip-dev \ - libzstd-dev \ re2c \ snmp \ uuid-dev \ @@ -778,8 +775,6 @@ RUN set -eux \ libfreetype6 \ libicu52 \ libjpeg62-turbo \ - liblz4-1 \ - liblzf1 \ libmagickwand-6.q16-2 \ libmcrypt4 \ libmemcachedutil2 \ @@ -799,7 +794,6 @@ RUN set -eux \ libxslt1.1 \ libyaml-0-2 \ libzip2 \ - libzstd1 \ snmp \ uuid \ zlib1g \ diff --git a/Dockerfiles/mods/Dockerfile-5.6 b/Dockerfiles/mods/Dockerfile-5.6 index 9c436fb3..1f0a7b00 100644 --- a/Dockerfiles/mods/Dockerfile-5.6 +++ b/Dockerfiles/mods/Dockerfile-5.6 @@ -27,8 +27,6 @@ RUN set -eux \ libjpeg-dev \ libkrb5-dev \ libldap2-dev \ - liblz4-dev \ - liblzf-dev \ libmagickwand-dev \ libmariadbclient-dev \ libmcrypt-dev \ @@ -52,7 +50,6 @@ RUN set -eux \ libxslt-dev \ libyaml-dev \ libzip-dev \ - libzstd-dev \ re2c \ snmp \ uuid-dev \ @@ -797,8 +794,6 @@ RUN set -eux \ libfreetype6 \ libicu57 \ libjpeg62-turbo \ - liblz4-1 \ - liblzf1 \ libmagickwand-6.q16-3 \ libmariadbclient18 \ libmcrypt4 \ @@ -817,7 +812,6 @@ RUN set -eux \ libxslt1.1 \ libyaml-0-2 \ libzip4 \ - libzstd1 \ snmp \ uuid \ zlib1g \ diff --git a/php_modules/redis/build.yml b/php_modules/redis/build.yml index 60907074..9d12e043 100644 --- a/php_modules/redis/build.yml +++ b/php_modules/redis/build.yml @@ -135,19 +135,29 @@ all: 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: []