Page MenuHomeDevCentral

D1937.id4904.diff
No OneTemporary

D1937.id4904.diff

diff --git a/pillar/webserver/sites.sls b/pillar/webserver/sites.sls
--- a/pillar/webserver/sites.sls
+++ b/pillar/webserver/sites.sls
@@ -58,6 +58,12 @@
# Username must be unique and use max 31 characters.
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+php_custom_builds:
+ php56:
+ mode: release
+ version: 5.6.38
+ hash: d65b231bbdd63be4439ef5ced965cfd63e62983429dbd4dfcfb49981593ebc03
+
php_fpm_instances:
# PHP 7.2, generally installed as package/port
prod:
diff --git a/roles/webserver-legacy/php-builder/init.sls b/roles/webserver-legacy/php-builder/init.sls
new file mode 100644
--- /dev/null
+++ b/roles/webserver-legacy/php-builder/init.sls
@@ -0,0 +1,10 @@
+# -------------------------------------------------------------
+# Salt — Compile custom PHP builds
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+# Project: Nasqueron
+# Created: 2018-10-16
+# License: Trivial work, not eligible to copyright
+# -------------------------------------------------------------
+
+include:
+ - .source
diff --git a/roles/webserver-legacy/php-builder/source.sls b/roles/webserver-legacy/php-builder/source.sls
new file mode 100644
--- /dev/null
+++ b/roles/webserver-legacy/php-builder/source.sls
@@ -0,0 +1,80 @@
+#!py
+
+# -------------------------------------------------------------
+# Salt — Compile custom PHP builds
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+# Project: Nasqueron
+# Created: 2018-10-16
+# License: Trivial work, not eligible to copyright
+# -------------------------------------------------------------
+
+# -------------------------------------------------------------
+# Builds and versions helper methods
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+
+def get_release_builds():
+ return {name: build
+ for (name, build) in __pillar__["php_custom_builds"].items()
+ if build["mode"] == "release"}
+
+
+def get_release_versions():
+ versions = [(build['version'], build['hash'])
+ for build in get_release_builds().values()]
+
+ return set(versions)
+
+
+def get_archive_path(version):
+ return "/opt/php/archives/php-" + version + ".tar.bz2"
+
+
+def get_build_directories():
+ return ["/opt/php/" + build for build in __pillar__["php_custom_builds"]]
+
+
+def get_extract_archive_command(archive, directory):
+ return "tar xjf " + archive + " --strip-components=1 -C " + directory
+
+
+# -------------------------------------------------------------
+# Configuration provider
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+
+def run():
+ config = {}
+
+ builder_user = 'builder'
+ directories_to_create = ['/opt/php', '/opt/php/archives']
+
+ # Task: create directories
+ directories_to_create.extend(get_build_directories())
+ for directory in directories_to_create:
+ config[directory] = {'file.directory': [{'user': builder_user}]}
+
+ # Task: fetch archives
+ for version, archive_hash in get_release_versions():
+ archive = get_archive_path(version)
+ url = "http://fr2.php.net/get/php-" + version + ".tar.bz2/from/this/mirror"
+
+ config[archive] = {'file.managed': [
+ {'source': url},
+ {'source_hash': archive_hash},
+ {'user': builder_user},
+ ]}
+
+ # Task: extract archives to build directories
+ for build_name, build in get_release_builds().items():
+ archive = get_archive_path(build['version'])
+ directory = "/opt/php/" + build_name
+ command = get_extract_archive_command(archive, directory)
+
+ config["php_build_" + build_name] = {'cmd.run' : [
+ {'name': command},
+ {'user': builder_user},
+ {'creates': directory + "/configure.in"},
+ ]}
+
+ return config

File Metadata

Mime Type
text/plain
Expires
Mon, Nov 25, 12:40 (21 h, 57 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2262397
Default Alt Text
D1937.id4904.diff (3 KB)

Event Timeline