summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Pipping <sebastian@pipping.org>2022-04-02 17:57:42 +0200
committerGitHub <noreply@github.com>2022-04-02 17:57:42 +0200
commit49fffa3203ec746c1e0add666535dc705d9d5cec (patch)
tree96a8f3f7c4dd7c02cc25904832f1b2723b764855
parent8b8f04d8fdb41fa8c2e194493ead492539be3cf1 (diff)
parente22d18fab2c15f9b4fef087973d786635b991498 (diff)
downloaduriparser-49fffa3203ec746c1e0add666535dc705d9d5cec.tar.gz
Merge pull request #144 from uriparser/mingw-ubuntu-20-04
Actions: Make MinGW with 32bit Wine on Ubuntu 20.04 possible
-rw-r--r--.github/workflows/build-and-test.yml25
1 files changed, 18 insertions, 7 deletions
diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml
index de09745..5bc732b 100644
--- a/.github/workflows/build-and-test.yml
+++ b/.github/workflows/build-and-test.yml
@@ -16,8 +16,6 @@ jobs:
matrix:
include:
- name: Native Linux
- runs-on: ubuntu-20.04
- qhelpgenerator_package: qhelpgenerator-qt5
cmake_args: >-
-DCMAKE_C_COMPILER=clang-14
-DCMAKE_CXX_COMPILER=clang++-14
@@ -28,16 +26,13 @@ jobs:
ldflags: >-
-fsanitize=address
- name: MingGW on Linux
- # NOTE: This is avoiding 20.04 for libwine:i386 conflicts
- runs-on: ubuntu-18.04
- qhelpgenerator_package: qttools5-dev-tools
cmake_args: >-
-DCMAKE_C_COMPILER=i686-w64-mingw32-gcc
-DCMAKE_CXX_COMPILER=i686-w64-mingw32-g++
-DCMAKE_SYSTEM_NAME=Windows
-DWIN32=ON
-DMINGW=ON
- runs-on: ${{ matrix.runs-on }}
+ runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3.0.0
@@ -58,12 +53,28 @@ jobs:
doxygen \
graphviz \
lzip \
- ${{ matrix.qhelpgenerator_package }} \
+ qhelpgenerator-qt5 \
qtchooser
- name: Install build dependencies (MinGW)
if: "${{ contains(matrix.cmake_args, 'mingw') }}"
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
+ dpkg -l | grep '^ii' | fgrep deb.sury.org | awk '{print $2}' | sed "s,\$,/${UBUNTU_CODENAME}," \
+ | xargs -r -t sudo apt-get install --yes --no-install-recommends --allow-downgrades -V
+ ! 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
sudo apt-get install --yes --no-install-recommends -V \