diff --git a/.github/workflows/bootstrap-deps.sh b/.github/workflows/bootstrap-deps.sh index d581bd4..1a85718 100755 --- a/.github/workflows/bootstrap-deps.sh +++ b/.github/workflows/bootstrap-deps.sh @@ -57,12 +57,22 @@ function install_compiler() { "win32") dpkg --add-architecture i386 apt-get update -qq - apt-get install -yqq binutils-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64 wine-stable + apt-get install -yqq binutils-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64 + if [ "$(lsb_release -si 2>/dev/null)" = "Debian" ]; then + apt-get install -yqq wine wine32 + else + apt-get install -yqq wine-stable + fi ;; "win64") dpkg --add-architecture i386 apt-get update -qq - apt-get install -yqq binutils-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64 wine-stable + apt-get install -yqq binutils-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64 + if [ "$(lsb_release -si 2>/dev/null)" = "Debian" ]; then + apt-get install -yqq wine wine32 wine64 + else + apt-get install -yqq wine-stable + fi ;; esac } @@ -74,23 +84,28 @@ case "${1}" in [ -n "${GITHUB_ENV}" ] && echo "PAWPAW_PACK_NAME=${1}-$(sw_vers -productVersion)" >> "${GITHUB_ENV}" ;; *) - sed -i "s/deb http/deb [arch=i386,amd64] http/" /etc/apt/sources.list - sed -i "s/deb mirror/deb [arch=i386,amd64] mirror/" /etc/apt/sources.list apt-get update -qq - apt-get install -yqq autoconf automake autopoint binfmt-support build-essential curl cmake git jq lsb-release meson gperf patchelf qemu-user-static + apt-get install -yqq autoconf automake autopoint build-essential curl cmake dpkg-dev git jq lsb-release meson gperf patchelf arch=$(get_linux_deb_arch "${1}") - release=$(lsb_release -cs) + release=$(lsb_release -cs 2>/dev/null) if [ -n "${arch}" ]; then - dpkg --add-architecture ${arch} - if [ "${arch}" != "amd64" ] && [ "${arch}" != "i386" ]; then - echo "deb [arch=${arch}] http://ports.ubuntu.com/ubuntu-ports ${release} main restricted universe multiverse" | tee -a /etc/apt/sources.list - echo "deb [arch=${arch}] http://ports.ubuntu.com/ubuntu-ports ${release}-updates main restricted universe multiverse" | tee -a /etc/apt/sources.list - echo "deb [arch=${arch}] http://ports.ubuntu.com/ubuntu-ports ${release}-backports main restricted universe multiverse" | tee -a /etc/apt/sources.list + if [ "$(lsb_release -si 2>/dev/null)" = "Ubuntu" ]; then + sed -i "s/deb http/deb [arch=i386,amd64] http/" /etc/apt/sources.list + sed -i "s/deb mirror/deb [arch=i386,amd64] mirror/" /etc/apt/sources.list + if [ "${arch}" != "amd64" ] && [ "${arch}" != "i386" ]; then + echo "deb [arch=${arch}] http://ports.ubuntu.com/ubuntu-ports ${release} main restricted universe multiverse" | tee -a /etc/apt/sources.list + echo "deb [arch=${arch}] http://ports.ubuntu.com/ubuntu-ports ${release}-updates main restricted universe multiverse" | tee -a /etc/apt/sources.list + echo "deb [arch=${arch}] http://ports.ubuntu.com/ubuntu-ports ${release}-backports main restricted universe multiverse" | tee -a /etc/apt/sources.list + fi fi + + dpkg --add-architecture ${arch} apt-get update -qq apt-get install -yqq \ + binfmt-support \ + qemu-user-static \ libasound2-dev:${arch} \ libdbus-1-dev:${arch} \ libgl1-mesa-dev:${arch} \ @@ -107,6 +122,19 @@ case "${1}" in fi # libqt5svg5-dev qtbase5-dev qtbase5-dev-tools + case "${release}" in + "bionic"|"focal") + apt-get install -yqq python3-pkg-resources + curl -sOL https://launchpad.net/~kxstudio-debian/+archive/ubuntu/toolchain/+files/meson_0.56.0-1kxstudio4_all.deb + if [ "${release}" = "bionic" ]; then + curl -sOL https://launchpad.net/~kxstudio-debian/+archive/ubuntu/toolchain/+files/cmake_3.13.4-1kxstudio1_$(dpkg-architecture -qDEB_HOST_ARCH).deb + curl -sOL https://launchpad.net/~kxstudio-debian/+archive/ubuntu/toolchain/+files/cmake-data_3.13.4-1kxstudio1_all.deb + fi + dpkg -i *.deb + rm *.deb + ;; + esac + install_compiler "${1}" [ -n "${GITHUB_ENV}" ] && echo "PAWPAW_PACK_NAME=${1}-${release}" >> "${GITHUB_ENV}" diff --git a/.github/workflows/bootstrap.yml b/.github/workflows/bootstrap.yml index 8d3ba35..5b263a5 100644 --- a/.github/workflows/bootstrap.yml +++ b/.github/workflows/bootstrap.yml @@ -21,6 +21,28 @@ jobs: os: macos-11 - target: macos-universal-10.15 os: macos-11 + # debian:12 + - target: linux-aarch64 + container: debian:12 + os: ubuntu-latest + - target: linux-armhf + container: debian:12 + os: ubuntu-latest + - target: linux-i686 + container: debian:12 + os: ubuntu-latest + - target: linux-x86_64 + container: debian:12 + os: ubuntu-latest + - target: wasm + container: debian:12 + os: ubuntu-latest + - target: win32 + container: debian:12 + os: ubuntu-latest + - target: win64 + container: debian:12 + os: ubuntu-latest # ubuntu:18.04 - target: linux-aarch64 container: ubuntu:18.04 @@ -135,19 +157,42 @@ jobs: os: macos-11 - target: macos-universal-10.15 os: macos-11 - # ubuntu:18.04 + # debian:12 - target: linux-aarch64 - container: ubuntu:18.04 + container: debian:12 os: ubuntu-latest - target: linux-armhf - container: ubuntu:18.04 + container: debian:12 os: ubuntu-latest - target: linux-i686 - container: ubuntu:18.04 + container: debian:12 os: ubuntu-latest - target: linux-x86_64 - container: ubuntu:18.04 + container: debian:12 os: ubuntu-latest + - target: wasm + container: debian:12 + os: ubuntu-latest + #- target: win32 + #container: debian:12 + #os: ubuntu-latest + #- target: win64 + #container: debian:12 + #os: ubuntu-latest + # ubuntu:18.04 + # FIXME needs CMake 3.15 + #- target: linux-aarch64 + #container: ubuntu:18.04 + #os: ubuntu-latest + #- target: linux-armhf + #container: ubuntu:18.04 + #os: ubuntu-latest + #- target: linux-i686 + #container: ubuntu:18.04 + #os: ubuntu-latest + #- target: linux-x86_64 + #container: ubuntu:18.04 + #os: ubuntu-latest # ubuntu:20.04 - target: linux-aarch64 container: ubuntu:20.04 @@ -158,9 +203,10 @@ jobs: - target: linux-i686 container: ubuntu:20.04 os: ubuntu-latest - - target: linux-riscv64 - container: ubuntu:20.04 - os: ubuntu-latest + # FIXME Could not invoke sanity test executable + #- target: linux-riscv64 + #container: ubuntu:20.04 + #os: ubuntu-latest - target: linux-x86_64 container: ubuntu:20.04 os: ubuntu-latest @@ -174,9 +220,10 @@ jobs: - target: linux-i686 container: ubuntu:22.04 os: ubuntu-latest - - target: linux-riscv64 - container: ubuntu:22.04 - os: ubuntu-latest + # FIXME Could not invoke sanity test executable + #- target: linux-riscv64 + #container: ubuntu:22.04 + #os: ubuntu-latest - target: linux-x86_64 container: ubuntu:22.04 os: ubuntu-latest @@ -196,21 +243,22 @@ jobs: - target: linux-armhf container: ubuntu:23.10 os: ubuntu-latest - - target: linux-riscv64 - container: ubuntu:23.10 - os: ubuntu-latest + # FIXME Could not invoke sanity test executable + #- target: linux-riscv64 + #container: ubuntu:23.10 + #os: ubuntu-latest - target: linux-x86_64 container: ubuntu:23.10 os: ubuntu-latest - target: wasm container: ubuntu:23.10 os: ubuntu-latest - - target: win32 - container: ubuntu:23.10 - os: ubuntu-latest - - target: win64 - container: ubuntu:23.10 - os: ubuntu-latest + #- target: win32 + #container: ubuntu:23.10 + #os: ubuntu-latest + #- target: win64 + #container: ubuntu:23.10 + #os: ubuntu-latest runs-on: ${{ matrix.os }} container: image: ${{ matrix.container }} diff --git a/bootstrap-plugins.sh b/bootstrap-plugins.sh index 243d4fc..a85bdaa 100755 --- a/bootstrap-plugins.sh +++ b/bootstrap-plugins.sh @@ -78,7 +78,7 @@ fi download libpng "${LIBPNG_VERSION}" "${LIBPNG_URL}" "tar.xz" build_autoconf libpng "${LIBPNG_VERSION}" "${LIBPNG_EXTRAFLAGS}" -if [ "${CROSS_COMPILING}" -eq 0 ]; then +if [ "${CROSS_COMPILING}" -eq 0 ] && [ -z "${PAWPAW_SKIP_TESTS}" ]; then run_make libpng "${LIBPNG_VERSION}" "check -j 1" fi @@ -122,7 +122,7 @@ download pixman "${PIXMAN_VERSION}" "${PIXMAN_URL}" build_autoconf pixman "${PIXMAN_VERSION}" "${PIXMAN_EXTRAFLAGS}" # FIXME tests fail on i686 CI builds -if [ "${CROSS_COMPILING}" -eq 0 ] && [ "x${LINUX_TARGET}" != "xlinux-i686" ]; then +if [ "${CROSS_COMPILING}" -eq 0 ] && [ -z "${PAWPAW_SKIP_TESTS}" ] && [ "x${LINUX_TARGET}" != "xlinux-i686" ]; then run_make pixman "${PIXMAN_VERSION}" check fi @@ -178,7 +178,7 @@ download fontconfig "${FONTCONFIG_VERSION}" "${FONTCONFIG_URL}" build_autoconf fontconfig "${FONTCONFIG_VERSION}" "${FONTCONFIG_EXTRAFLAGS}" # tests fail on stable release, see https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/177 -# if [ "${CROSS_COMPILING}" -eq 0 ]; then +# if [ "${CROSS_COMPILING}" -eq 0 ] && [ -z "${PAWPAW_SKIP_TESTS}" ]; then # run_make fontconfig "${FONTCONFIG_VERSION}" check # fi @@ -276,7 +276,7 @@ download cairo "${CAIRO_VERSION}" "${CAIRO_URL}" "tar.xz" build_autoconf cairo "${CAIRO_VERSION}" "${CAIRO_EXTRAFLAGS}" # FIXME tests are failing :( -# if [ "${CROSS_COMPILING}" -eq 0 ]; then +# if [ "${CROSS_COMPILING}" -eq 0 ] && [ -z "${PAWPAW_SKIP_TESTS}" ]; then # run_make cairo "${CAIRO_VERSION}" "check -j 1" # fi @@ -312,7 +312,7 @@ fi download fftw "${FFTW_VERSION}" "${FFTW_URL}" build_autoconf fftw "${FFTW_VERSION}" "${FFTW_EXTRAFLAGS}" -if [ "${CROSS_COMPILING}" -eq 0 ]; then +if [ "${CROSS_COMPILING}" -eq 0 ] && [ -z "${PAWPAW_SKIP_TESTS}" ]; then run_make fftw "${FFTW_VERSION}" check fi @@ -340,7 +340,7 @@ fi copy_download fftw fftwf "${FFTW_VERSION}" build_autoconf fftwf "${FFTW_VERSION}" "${FFTWF_EXTRAFLAGS}" -if [ "${CROSS_COMPILING}" -eq 0 ]; then +if [ "${CROSS_COMPILING}" -eq 0 ] && [ -z "${PAWPAW_SKIP_TESTS}" ]; then run_make fftwf "${FFTW_VERSION}" check fi @@ -424,7 +424,7 @@ download liblo "${LIBLO_VERSION}" "${LIBLO_URL}" build_autoconf liblo "${LIBLO_VERSION}" "${LIBLO_EXTRAFLAGS}" # FIXME tests fail on macOS -if [ "${CROSS_COMPILING}" -eq 0 ] && [ "${MACOS}" -eq 0 ]; then +if [ "${CROSS_COMPILING}" -eq 0 ] && [ -z "${PAWPAW_SKIP_TESTS}" ] && [ "${MACOS}" -eq 0 ]; then run_make liblo "${LIBLO_VERSION}" check fi