From 6b7f299dc68221c1baac43911b85e4b397defdbf Mon Sep 17 00:00:00 2001 From: Kay0u Date: Tue, 26 May 2020 18:12:07 +0200 Subject: [PATCH 1/2] Revert "Ugly hack to workaround sury pinning issues when installing dependencies" This reverts commit fc30d82df5a6aaae305489021c26b225530b398b. --- data/helpers.d/apt | 24 ++---------------------- 1 file changed, 2 insertions(+), 22 deletions(-) diff --git a/data/helpers.d/apt b/data/helpers.d/apt index c6621d814..e64a54058 100644 --- a/data/helpers.d/apt +++ b/data/helpers.d/apt @@ -193,37 +193,17 @@ ynh_package_install_from_equivs () { LC_ALL=C equivs-build ./control 1> /dev/null dpkg --force-depends --install "./${pkgname}_${pkgversion}_all.deb" 2>&1) - # Let's try to see if install will work using dry-run. It it fails, - # it could be because the pinning of sury is blocking some package install - # c.f. for example: https://github.com/YunoHost/issues/issues/1563#issuecomment-623406509 - # ... In that case, we use an ugly hack were we'll use a tweaked - # preferences.d directory with looser contrains for sury... - if ! ynh_package_install --fix-broken --dry-run >/dev/null 2>&1 && [ -e /etc/apt/preferences.d/extra_php_version ] - then - cp -r /etc/apt/preferences.d/ /etc/apt/preferences.d.tmp/ - sed 's/^Pin-Priority: .*/Pin-Priority: 600/g' -i /etc/apt/preferences.d.tmp/extra_php_version - local apt_tweaks='--option Dir::Etc::preferencesparts=preferences.d.tmp' - # Try a dry-run again to see if that fixes the issue ... - # If it did not, then that's probably not related to sury. - ynh_package_install $apt_tweaks --fix-broken --dry-run >/dev/null 2>&1 || apt_tweaks="" - else - local apt_tweaks="" - fi - - # Try to install for real - ynh_package_install $apt_tweaks --fix-broken || \ + ynh_package_install --fix-broken || \ { # If the installation failed # (the following is ran inside { } to not start a subshell otherwise ynh_die wouldnt exit the original process) - rm --recursive --force /etc/apt/preferences.d.tmp/ # Get the list of dependencies from the deb local dependencies="$(dpkg --info "$TMPDIR/${pkgname}_${pkgversion}_all.deb" | grep Depends | \ sed 's/^ Depends: //' | sed 's/,//g')" # Fake an install of those dependencies to see the errors # The sed command here is, Print only from '--fix-broken' to the end. - ynh_package_install $apt_tweaks $dependencies --dry-run | sed --quiet '/--fix-broken/,$p' >&2 + ynh_package_install $dependencies --dry-run | sed --quiet '/--fix-broken/,$p' >&2 ynh_die --message="Unable to install dependencies"; } [[ -n "$TMPDIR" ]] && rm --recursive --force $TMPDIR # Remove the temp dir. - rm --recursive --force /etc/apt/preferences.d.tmp/ # check if the package is actually installed ynh_package_is_installed "$pkgname" From a64dfd5676cc530dabcaa7124aa14d19d7b834f5 Mon Sep 17 00:00:00 2001 From: Kay0u Date: Tue, 26 May 2020 18:17:49 +0200 Subject: [PATCH 2/2] A better Pin for sury --- data/helpers.d/apt | 6 ++++-- data/helpers.d/php | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/data/helpers.d/apt b/data/helpers.d/apt index e64a54058..31f7d4ffe 100644 --- a/data/helpers.d/apt +++ b/data/helpers.d/apt @@ -267,8 +267,10 @@ ynh_install_app_dependencies () { ynh_install_extra_repo --repo="https://packages.sury.org/php/ $(ynh_get_debian_release) main" --key="https://packages.sury.org/php/apt.gpg" --name=extra_php_version # Pin this sury repository to prevent sury of doing shit - ynh_pin_repo --package="*" --pin="origin \"packages.sury.org\"" --priority=200 --name=extra_php_version - ynh_pin_repo --package="php${YNH_DEFAULT_PHP_VERSION}*" --pin="origin \"packages.sury.org\"" --priority=600 --name=extra_php_version --append + for package_to_not_upgrade in "php" "php-fpm" "php-mysql" "php-xml" "php-zip" "php-mbstring" "php-ldap" "php-gd" "php-curl" "php-bz2" "php-json" "php-sqlite3" "php-intl" "openssl" "libssl1.1" "libssl-dev" + do + ynh_pin_repo --package="$package_to_not_upgrade" --pin="origin \"packages.sury.org\"" --priority="-1" --name=extra_php_version --append + done fi fi fi diff --git a/data/helpers.d/php b/data/helpers.d/php index 9b9df64f9..5d7b0b1e2 100644 --- a/data/helpers.d/php +++ b/data/helpers.d/php @@ -359,8 +359,10 @@ ynh_install_php () { update-alternatives --set php /usr/bin/php$YNH_DEFAULT_PHP_VERSION # Pin this extra repository after packages are installed to prevent sury of doing shit - ynh_pin_repo --package="*" --pin="origin \"packages.sury.org\"" --priority=200 --name=extra_php_version - ynh_pin_repo --package="php${YNH_DEFAULT_PHP_VERSION}*" --pin="origin \"packages.sury.org\"" --priority=600 --name=extra_php_version --append + for package_to_not_upgrade in "php" "php-fpm" "php-mysql" "php-xml" "php-zip" "php-mbstring" "php-ldap" "php-gd" "php-curl" "php-bz2" "php-json" "php-sqlite3" "php-intl" "openssl" "libssl1.1" "libssl-dev" + do + ynh_pin_repo --package="$package_to_not_upgrade" --pin="origin \"packages.sury.org\"" --priority="-1" --name=extra_php_version --append + done # Advertise service in admin panel yunohost service add php${phpversion}-fpm --log "/var/log/php${phpversion}-fpm.log"