#!/bin/bash set -e do_pre_regen() { pending_dir=$1 mkdir --parents "${pending_dir}/etc/apt/preferences.d" # Add sury mkdir -p ${pending_dir}/etc/apt/sources.list.d/ echo "deb https://packages.sury.org/php/ $(lsb_release --codename --short) main" > "${pending_dir}/etc/apt/sources.list.d/extra_php_version.list" # Ban some packages from sury echo " Package: php-common Pin: origin \"packages.sury.org\" Pin-Priority: 500" >>"${pending_dir}/etc/apt/preferences.d/extra_php_version" packages_to_refuse_from_sury="php php-* openssl libssl1.1 libssl-dev" for package in $packages_to_refuse_from_sury; do echo " Package: $package Pin: origin \"packages.sury.org\" Pin-Priority: -1" >>"${pending_dir}/etc/apt/preferences.d/extra_php_version" done echo " # PLEASE READ THIS WARNING AND DON'T EDIT THIS FILE # You are probably reading this file because you tried to install apache2 or # bind9. These 2 packages conflict with YunoHost. # Installing apache2 will break nginx and break the entire YunoHost ecosystem # on your server, therefore don't remove those lines! # You have been warned. Package: apache2 Pin: release * Pin-Priority: -1 Package: apache2-bin Pin: release * Pin-Priority: -1 # Also bind9 will conflict with dnsmasq. # Same story as for apache2. # Don't install it, don't remove those lines. Package: bind9 Pin: release * Pin-Priority: -1 " >>"${pending_dir}/etc/apt/preferences.d/ban_packages" } do_post_regen() { regen_conf_files=$1 # Add sury key # We do this only at the post regen and if the key doesn't already exists, because we don't want the regenconf to fuck everything up if the regenconf runs while the network is down if [[ ! -s /etc/apt/trusted.gpg.d/extra_php_version.gpg ]] then wget --timeout 900 --quiet "https://packages.sury.org/php/apt.gpg" --output-document=- | gpg --dearmor >"/etc/apt/trusted.gpg.d/extra_php_version.gpg" fi # Make sure php7.4 is the default version when using php in cli update-alternatives --set php /usr/bin/php7.4 } do_$1_regen ${@:2}