1e3e3032f3
* Initial commit for new branch * Quick change to base test files * Updated map.jinja, added `php` dependency for all subformulas * Fixing mongo module and map.jinja needed OpenSSL dev libraries * Should be final changes needed for Mongo module * Updating Suhosin package since many distros don't have package in their repos anymore * Generalizing suhosin module, and updating pillar.example for new PPA * Adding addtional logic for RedHat based families to Suhosin * Initial commit of NG refactored map.jinja file * Deleting FFMpeg state file since the module is quite old, and has been replaced by using a Composer library. See https://github.com/PHP-FFMpeg/PHP-FFMpeg for details * Updating NG formulas for new definitions * Removing 'twig' as a state since it can be installed via Composer * Changes to installed.jinja to set correct PHP path based on version * NG Composer and NG Suhosin changes * Version bump and deleting README for deleted states * Finished refactor of NG map.jinja file * Adding trailing commas (forgot them earler) * Adding changes list, and modifying map file for missing definitions when using Ubuntu 16.04 and NOT using a PPA * Changes needed after performing testing on RHEL 7 * Changes needed for Ubuntu Trusty without using PPA * Removing testing files; keep on local * Map changes needed after testing Debian Jessie * Changed needed for Debian Wheezy * Adding more pkgs for Arch Linux support * More ArchLinux support * Stupid tabs * Removing extra line breaks, and using the general "use_external_repo" in the future if DotDeb (Debian) or Webtactic (RedHat) * Accoutning for Precise `phpenmod` and others
75 lines
2.1 KiB
Django/Jinja
75 lines
2.1 KiB
Django/Jinja
# -*- coding: utf-8 -*-
|
|
# vim: ft=jinja
|
|
{# Template for installing packages #}
|
|
{% from "php/ng/map.jinja" import php with context %}
|
|
{% from "php/ng/macro.jinja" import sls_block %}
|
|
|
|
|
|
{% set pkginfo = php.lookup.pkgs.get(state) %}
|
|
{% set phpng_version = salt['pillar.get']('php:ng:version', '7.0')|string %}
|
|
|
|
{% set pkgs = [] %}
|
|
{% set specials = [] %}
|
|
|
|
{% if pkginfo is iterable and pkginfo is not string %}
|
|
{% for pkg in pkginfo %}
|
|
{% if pkg is mapping %}
|
|
{% do specials.append(pkg) %}
|
|
{% else %}
|
|
{% do pkgs.append(pkg) %}
|
|
{% endif %}
|
|
{% endfor %}
|
|
{% else %}
|
|
{% do pkgs.append(pkginfo) %}
|
|
{% endif %}
|
|
|
|
{% if grains['os_family'] == "Debian" and (state == 'cli' or state == 'fpm' or state == 'php') %}
|
|
{% set use_external_repo = salt['pillar.get']('php:use_external_repo', False) %}
|
|
|
|
{% if use_external_repo %}
|
|
{% set external_repo_name = salt['pillar.get']('php:external_repo_name', 'ondrej/php') %}
|
|
{% set current_php = salt['alternatives.show_current']('php') %}
|
|
|
|
php_ppa_{{ state }}:
|
|
pkgrepo.managed:
|
|
- ppa: {{ external_repo_name }}
|
|
- env:
|
|
- LC_ALL: C.UTF-8
|
|
- onlyif:
|
|
- test ! -e /etc/apt/sources.list.d/ondrej-ubuntu-php-{{ grains['oscodename'] }}.list {# Trusty and Xenial use different naming schemas #}
|
|
- test ! -e /etc/apt/sources.list.d/ondrej-php-{{ grains['oscodename'] }}.list {# Trusty and Xenial use different naming schemas #}
|
|
- require_in:
|
|
- pkg: php_install_{{ state }}
|
|
pkg.latest:
|
|
- name: {{ state }}
|
|
- pkgs: {{ pkgs|json() }}
|
|
- refresh: True
|
|
- onchanges:
|
|
- pkgrepo: php_ppa_{{ state }}
|
|
|
|
php_{{ phpng_version }}_link:
|
|
alternatives.set:
|
|
- name: php
|
|
- path: /usr/bin/php{{ phpng_version }}
|
|
- require_in:
|
|
- pkg: php_install_{{ state }}
|
|
- onlyif:
|
|
- which php
|
|
- test {{ current_php }} != $(which php{{ phpng_version }})
|
|
|
|
{% endif %}
|
|
{% endif %}
|
|
|
|
php_install_{{ state }}:
|
|
pkg.installed:
|
|
- name: {{ state }}
|
|
- pkgs: {{ pkgs|json() }}
|
|
|
|
{% for pkg in specials %}
|
|
|
|
php_install_{{ state }}_{{ pkg.get('name') }}:
|
|
pkg.installed:
|
|
{{ sls_block(pkg) }}
|
|
|
|
{% endfor %}
|