From 06f70c6474a390a8b83f427a26bfe323b78dcca0 Mon Sep 17 00:00:00 2001
From: vharseko <vharseko@3a-systems.ru>
Date: Wed, 07 Dec 2022 11:18:41 +0000
Subject: [PATCH] FIX build: allow fail remove deb.sury.org on ubuntu 22 (#266)

---
 .github/workflows/deploy.yml  |   10 ++++++++++
 .github/workflows/release.yml |   10 ++++++++++
 .github/workflows/build.yml   |   10 ++++++++++
 3 files changed, 30 insertions(+), 0 deletions(-)

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index af50a74..d02ab1a 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -19,6 +19,16 @@
       run:   |
           set -x -u -o pipefail
           source /etc/os-release
+          # Get rid of packages installed from ppa:ondrej/php so that we will be able to install wine32:i386 without conflicts
+          # (see issue https://github.com/actions/virtual-environments/issues/4589)
+          # In detail we:
+          #   1. Remove all packages that ppa:ondrej/php has but plain Ubuntu doesn't, i.e. libzip4 and everything PHP
+          #   2. Revert (remaining) packages that ppa:ondrej/php and plain Ubuntu share, back to the plain Ubuntu version
+          #   3. Assert that no packages from ppa:ondrej/php are left installed
+          (dpkg -l | grep '^ii' | fgrep deb.sury.org | awk '{print $2}' | grep '^php' | xargs -r -t sudo apt-get remove --yes libzip4) || echo ""
+          sudo apt update && sudo apt upgrade
+          (dpkg -l | grep '^ii' | fgrep deb.sury.org | grep -v libpcre2-posix3 | awk '{print $2}' | sed "s,\$,/${UBUNTU_CODENAME}," | xargs -r -t sudo apt-get install --yes --no-install-recommends --allow-downgrades -V) || echo ""
+          ! dpkg -l | grep '^ii' | fgrep deb.sury.org
           # Install 32bit Wine
           sudo dpkg --add-architecture i386  # for wine32
           sudo apt-get update  # again, due to new architecture
diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
index 3d8b408..acd16e7 100644
--- a/.github/workflows/deploy.yml
+++ b/.github/workflows/deploy.yml
@@ -20,6 +20,16 @@
         run:   |
           set -x -u -o pipefail
           source /etc/os-release
+          # Get rid of packages installed from ppa:ondrej/php so that we will be able to install wine32:i386 without conflicts
+          # (see issue https://github.com/actions/virtual-environments/issues/4589)
+          # In detail we:
+          #   1. Remove all packages that ppa:ondrej/php has but plain Ubuntu doesn't, i.e. libzip4 and everything PHP
+          #   2. Revert (remaining) packages that ppa:ondrej/php and plain Ubuntu share, back to the plain Ubuntu version
+          #   3. Assert that no packages from ppa:ondrej/php are left installed
+          (dpkg -l | grep '^ii' | fgrep deb.sury.org | awk '{print $2}' | grep '^php' | xargs -r -t sudo apt-get remove --yes libzip4) || echo ""
+          sudo apt update && sudo apt upgrade
+          (dpkg -l | grep '^ii' | fgrep deb.sury.org | grep -v libpcre2-posix3 | awk '{print $2}' | sed "s,\$,/${UBUNTU_CODENAME}," | xargs -r -t sudo apt-get install --yes --no-install-recommends --allow-downgrades -V) || echo ""
+          ! dpkg -l | grep '^ii' | fgrep deb.sury.org
           # Install 32bit Wine
           sudo dpkg --add-architecture i386  # for wine32
           sudo apt-get update  # again, due to new architecture
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 74f5ab3..55025e8 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -24,6 +24,16 @@
         run:   |
           set -x -u -o pipefail
           source /etc/os-release
+          # Get rid of packages installed from ppa:ondrej/php so that we will be able to install wine32:i386 without conflicts
+          # (see issue https://github.com/actions/virtual-environments/issues/4589)
+          # In detail we:
+          #   1. Remove all packages that ppa:ondrej/php has but plain Ubuntu doesn't, i.e. libzip4 and everything PHP
+          #   2. Revert (remaining) packages that ppa:ondrej/php and plain Ubuntu share, back to the plain Ubuntu version
+          #   3. Assert that no packages from ppa:ondrej/php are left installed
+          (dpkg -l | grep '^ii' | fgrep deb.sury.org | awk '{print $2}' | grep '^php' | xargs -r -t sudo apt-get remove --yes libzip4) || echo ""
+          sudo apt update && sudo apt upgrade
+          (dpkg -l | grep '^ii' | fgrep deb.sury.org | grep -v libpcre2-posix3 | awk '{print $2}' | sed "s,\$,/${UBUNTU_CODENAME}," | xargs -r -t sudo apt-get install --yes --no-install-recommends --allow-downgrades -V) || echo ""
+          ! dpkg -l | grep '^ii' | fgrep deb.sury.org
           # Install 32bit Wine
           sudo dpkg --add-architecture i386  # for wine32
           sudo apt-get update  # again, due to new architecture

--
Gitblit v1.10.0