diff --git a/.github/workflows/bootstrap-deps.sh b/.github/workflows/bootstrap-deps.sh index 4e442bd..3dbb618 100755 --- a/.github/workflows/bootstrap-deps.sh +++ b/.github/workflows/bootstrap-deps.sh @@ -85,7 +85,7 @@ case "${1}" in ;; *) apt-get update -qq - apt-get install -yqq autoconf automake autopoint build-essential curl cmake dpkg-dev file git jq libtool lsb-release meson gperf patchelf + apt-get install -yqq autoconf automake autopoint build-essential curl cmake dpkg-dev file git jq libglib2.0-dev-bin libtool lsb-release meson gperf patchelf zlib1g-dev arch=$(get_linux_deb_arch "${1}") release=$(lsb_release -cs 2>/dev/null) diff --git a/.github/workflows/bootstrap.yml b/.github/workflows/bootstrap.yml index 50ee1d2..1ff2f6c 100644 --- a/.github/workflows/bootstrap.yml +++ b/.github/workflows/bootstrap.yml @@ -158,13 +158,12 @@ jobs: - target: macos-universal-10.15 os: macos-11 # debian:12 - # FIXME Could not invoke sanity test executable - #- target: linux-aarch64 - #container: debian:12 - #os: ubuntu-latest - #- target: linux-armhf - #container: debian:12 - #os: ubuntu-latest + - 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 @@ -174,12 +173,12 @@ jobs: - target: wasm container: debian:12 os: ubuntu-latest - #- target: win32 - #container: debian:12 - #os: ubuntu-latest - #- target: win64 - #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 @@ -195,36 +194,34 @@ jobs: #container: ubuntu:18.04 #os: ubuntu-latest # ubuntu:20.04 - # FIXME Could not invoke sanity test executable - #- target: linux-aarch64 - #container: ubuntu:20.04 - #os: ubuntu-latest - #- target: linux-armhf - #container: ubuntu:20.04 - #os: ubuntu-latest + - target: linux-aarch64 + container: ubuntu:20.04 + os: ubuntu-latest + - target: linux-armhf + container: ubuntu:20.04 + os: ubuntu-latest - target: linux-i686 container: ubuntu:20.04 os: ubuntu-latest - #- target: linux-riscv64 - #container: ubuntu:20.04 - #os: ubuntu-latest + - target: linux-riscv64 + container: ubuntu:20.04 + os: ubuntu-latest - target: linux-x86_64 container: ubuntu:20.04 os: ubuntu-latest # ubuntu:22.04 - # FIXME Could not invoke sanity test executable - #- target: linux-aarch64 - #container: ubuntu:22.04 - #os: ubuntu-latest - #- target: linux-armhf - #container: ubuntu:22.04 - #os: ubuntu-latest + - target: linux-aarch64 + container: ubuntu:22.04 + os: ubuntu-latest + - target: linux-armhf + container: ubuntu:22.04 + os: ubuntu-latest - target: linux-i686 container: ubuntu:22.04 os: ubuntu-latest - #- target: linux-riscv64 - #container: ubuntu:22.04 - #os: ubuntu-latest + - target: linux-riscv64 + container: ubuntu:22.04 + os: ubuntu-latest - target: linux-x86_64 container: ubuntu:22.04 os: ubuntu-latest @@ -238,28 +235,27 @@ jobs: container: ubuntu:22.04 os: ubuntu-latest # ubuntu:23.10 - # FIXME Could not invoke sanity test executable - #- target: linux-aarch64 - #container: ubuntu:23.10 - #os: ubuntu-latest - #- target: linux-armhf - #container: ubuntu:23.10 - #os: ubuntu-latest - #- target: linux-riscv64 - #container: ubuntu:23.10 - #os: ubuntu-latest + - target: linux-aarch64 + container: ubuntu:23.10 + os: ubuntu-latest + - target: linux-armhf + container: ubuntu:23.10 + os: ubuntu-latest + - 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 }} @@ -283,8 +279,8 @@ jobs: - name: Extract common shell: bash run: | - cd ~/PawPawBuilds && \ - tar xf common-${{ env.PAWPAW_PACK_NAME }}.tar.gz + cd ~/PawPawBuilds && \ + tar xf common-${{ env.PAWPAW_PACK_NAME }}.tar.gz - name: Run bootstrap shell: bash run: | @@ -298,426 +294,180 @@ jobs: name: plugins-${{ env.PAWPAW_PACK_NAME }} path: plugins-${{ env.PAWPAW_PACK_NAME }}.tar.gz - #jack2: - #strategy: - #matrix: - #include: - #- name: macos - #installer: homebrew - #os: macos-11 - #target: macos - #- name: macos-universal - #installer: homebrew - #os: macos-11 - #target: macos-universal - #- name: macos-universal-10.15 - #installer: homebrew - #os: macos-11 - #target: macos-universal-10.15 - #- name: win32 - #installer: apt - #os: ubuntu-22.04 - #target: win32 - #- name: win64 - #installer: apt - #os: ubuntu-22.04 - #target: win64 - #runs-on: ${{ matrix.os }} - #needs: common - #steps: - #- uses: actions/checkout@v3 - #- name: Set up cache - #uses: actions/cache@v3 - #with: - #path: | - #~/PawPawBuilds - #key: jack2-${{ matrix.target }}-v${{ env.CACHE_VERSION }} - #- name: (apt) Restore debian package cache - #if: ${{ matrix.installer == 'apt' }} - #run: | - #if [ -d ~/PawPawBuilds/debs ] && [ "$(ls ~/PawPawBuilds/debs | wc -l)" -ne 0 ]; then \ - #sudo cp ~/PawPawBuilds/debs/*.deb /var/cache/apt/archives/; \ - #fi - #- name: (apt) Fix GitHub's mess - #if: ${{ matrix.installer == 'apt' }} - #run: | - #sudo rm /etc/apt/sources.list.d/*.list - #sudo apt-get update -qq - #sudo apt-get purge -yqq git-man libclang* libgbm* libllvm* libmono* libnginx* moby* mono* msbuild* nginx* perl php* libgdiplus libpcre2-posix3 libselinux1-dev libzip4 - #sudo apt-get install -yqq --allow-downgrades git/jammy - #- name: (apt) Set up dependencies (apt) - #if: ${{ matrix.installer == 'apt' }} - #run: | - #sudo apt-get update -qq - ## extra, for using system libraries - #if [ '${{ matrix.target }}' == 'linux-aarch64' ]; then - #sudo dpkg --add-architecture arm64 - #sudo sed -i "s/deb http/deb [arch=amd64] http/" /etc/apt/sources.list - #sudo sed -i "s/deb mirror/deb [arch=amd64] mirror/" /etc/apt/sources.list - #echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/ports-arm64.list - #echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-arm64.list - #echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-arm64.list - #sudo apt-get update -qq - #sudo apt-get install -yqq --allow-downgrades g++-aarch64-linux-gnu libasound2-dev:arm64 libatomic1:arm64 libc6:arm64 libdbus-1-dev:arm64 libgcc-s1:arm64 libgl1-mesa-dev:arm64 libglib2.0-dev:arm64 liblo-dev:arm64 libstdc++6:arm64 libx11-dev:arm64 libxcursor-dev:arm64 libxext-dev:arm64 libxrandr-dev:arm64 gperf qemu-user-static - #elif [ '${{ matrix.target }}' == 'linux-armhf' ]; then - #sudo dpkg --add-architecture armhf - #sudo sed -i "s/deb http/deb [arch=amd64] http/" /etc/apt/sources.list - #sudo sed -i "s/deb mirror/deb [arch=amd64] mirror/" /etc/apt/sources.list - #echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports jammy main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/ports-armhf.list - #echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports jammy-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-armhf.list - #echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports jammy-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-armhf.list - #sudo apt-get update -qq - #sudo apt-get install -yqq --allow-downgrades g++-arm-linux-gnueabihf libasound2-dev:armhf libatomic1:armhf libc6:armhf libdbus-1-dev:armhf libgcc-s1:armhf libgl1-mesa-dev:armhf libglib2.0-dev:armhf liblo-dev:armhf libstdc++6:armhf libx11-dev:armhf libxcursor-dev:armhf libxext-dev:armhf libxrandr-dev:armhf gperf qemu-user-static - #elif [ '${{ matrix.target }}' == 'linux-i686' ]; then - #sudo dpkg --add-architecture i386 - #sudo apt-get update -qq - #sudo apt-get install -yqq g++-i686-linux-gnu libasound2-dev:i386 libdbus-1-dev:i386 libgl1-mesa-dev:i386 libglib2.0-dev:i386 libsdl2-dev:i386 libx11-dev:i386 libxcursor-dev:i386 libxext-dev:i386 libxrandr-dev:i386 gperf - #elif [ '${{ matrix.target }}' == 'linux-riscv64' ]; then - #sudo dpkg --add-architecture riscv64 - #sudo sed -i "s/deb http/deb [arch=amd64] http/" /etc/apt/sources.list - #sudo sed -i "s/deb mirror/deb [arch=amd64] mirror/" /etc/apt/sources.list - #echo "deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports jammy main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/ports-riscv64.list - #echo "deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports jammy-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-riscv64.list - #echo "deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports jammy-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-riscv64.list - #sudo apt-get update -qq - #sudo apt-get install -yqq g++-riscv64-linux-gnu libasound2-dev:riscv64 libdbus-1-dev:riscv64 libgl1-mesa-dev:riscv64 libglapi-mesa:riscv64 libglvnd0:riscv64 libglib2.0-dev:riscv64 libsdl2-dev:riscv64 libx11-dev:riscv64 libxcursor-dev:riscv64 libxext-dev:riscv64 libxrandr-dev:riscv64 gperf qemu-user-static - #elif [ '${{ matrix.target }}' == 'linux-x86_64' ]; then - #sudo apt-get install -yqq --allow-downgrades libasound2-dev libdbus-1-dev libgl1-mesa-dev libglib2.0-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev gperf - #elif [ '${{ matrix.target }}' == 'wasm' ]; then - #sudo apt-get install -yqq --allow-downgrades autoconf automake git gperf - #fi - ## extra, for wasm - #if [ '${{ matrix.target }}' == 'wasm' ]; then - #[ -e ~/PawPawBuilds/emsdk ] || git clone https://github.com/emscripten-core/emsdk.git ~/PawPawBuilds/emsdk - #cd ~/PawPawBuilds/emsdk && ./emsdk install latest && ./emsdk activate latest - #fi - ## extra, for win32 - #if [ '${{ matrix.target }}' == 'win32' ]; then - #sudo dpkg --add-architecture i386 - #sudo apt-get update -qq - #sudo apt-get install -yqq --allow-downgrades libc6:i386 libgcc-s1:i386 libstdc++6:i386 binutils-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64 gperf wine-stable - #fi - ## extra, for win64 - #if [ '${{ matrix.target }}' == 'win64' ]; then - #sudo dpkg --add-architecture i386 - #sudo apt-get update -qq - #sudo apt-get install -yqq --allow-downgrades libc6:i386 libgcc-s1:i386 libstdc++6:i386 binutils-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64 gperf wine-stable - #fi - #sudo apt-get install -yqq --allow-downgrades autoconf automake autopoint build-essential curl cmake git jq meson - #- name: (homebrew) Set up dependencies - #if: ${{ matrix.installer == 'homebrew' }} - #run: | - #brew install cmake git jq meson - #- name: (apt) Cache debian packages - #if: ${{ matrix.installer == 'apt' }} - #run: | - #mkdir -p ~/PawPawBuilds/debs - #sudo mv /var/cache/apt/archives/*.deb ~/PawPawBuilds/debs/ - #- name: Download common-${{ matrix.target }} - #uses: actions/download-artifact@v3 - #with: - #name: common-${{ matrix.target }} - #path: ~/PawPawBuilds - #- name: Extract common-${{ matrix.target }} - #shell: bash - #run: | - #cd ~/PawPawBuilds && \ - #tar xf common-${{ matrix.target }}.tar.gz - #- name: Run bootstrap - #shell: bash - #run: | - #./bootstrap-jack2.sh ${{ matrix.target }} && ./.cleanup.sh ${{ matrix.target }} - #- name: Pack bootstrap build - #shell: bash - #run: | - #tar -C ~/PawPawBuilds -czf jack2-${{ matrix.target }}.tar.gz builds targets - #- uses: actions/upload-artifact@v3 - #with: - #name: jack2-${{ matrix.target }} - #path: jack2-${{ matrix.target }}.tar.gz - - #qt: - #strategy: - #matrix: - #include: - #- name: macos - #installer: homebrew - #os: macos-11 - #target: macos - #- name: macos-universal - #installer: homebrew - #os: macos-11 - #target: macos-universal - #- name: macos-universal-10.15 - #installer: homebrew - #os: macos-11 - #target: macos-universal-10.15 - #- name: win32 - #installer: apt - #os: ubuntu-22.04 - #target: win32 - #- name: win64 - #installer: apt - #os: ubuntu-22.04 - #target: win64 - #runs-on: ${{ matrix.os }} - #needs: common - #steps: - #- uses: actions/checkout@v3 - #- name: Set up cache - #uses: actions/cache@v3 - #with: - #path: | - #~/PawPawBuilds - #key: qt-${{ matrix.target }}-v${{ env.CACHE_VERSION }} - #- name: (apt) Restore debian package cache - #if: ${{ matrix.installer == 'apt' }} - #run: | - #if [ -d ~/PawPawBuilds/debs ] && [ "$(ls ~/PawPawBuilds/debs | wc -l)" -ne 0 ]; then \ - #sudo cp ~/PawPawBuilds/debs/*.deb /var/cache/apt/archives/; \ - #fi - #- name: (apt) Fix GitHub's mess - #if: ${{ matrix.installer == 'apt' }} - #run: | - #sudo rm /etc/apt/sources.list.d/*.list - #sudo apt-get update -qq - #sudo apt-get purge -yqq git-man libclang* libgbm* libllvm* libmono* libnginx* moby* mono* msbuild* nginx* perl php* libgdiplus libpcre2-posix3 libselinux1-dev libzip4 - #sudo apt-get install -yqq --allow-downgrades git/jammy - #- name: (apt) Set up dependencies (apt) - #if: ${{ matrix.installer == 'apt' }} - #run: | - #sudo apt-get update -qq - ## extra, for using system libraries - #if [ '${{ matrix.target }}' == 'linux-aarch64' ]; then - #sudo dpkg --add-architecture arm64 - #sudo sed -i "s/deb http/deb [arch=amd64] http/" /etc/apt/sources.list - #sudo sed -i "s/deb mirror/deb [arch=amd64] mirror/" /etc/apt/sources.list - #echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/ports-arm64.list - #echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-arm64.list - #echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-arm64.list - #sudo apt-get update -qq - #sudo apt-get install -yqq --allow-downgrades g++-aarch64-linux-gnu libasound2-dev:arm64 libatomic1:arm64 libc6:arm64 libdbus-1-dev:arm64 libgcc-s1:arm64 libgl1-mesa-dev:arm64 libglib2.0-dev:arm64 liblo-dev:arm64 libstdc++6:arm64 libx11-dev:arm64 libxcursor-dev:arm64 libxext-dev:arm64 libxrandr-dev:arm64 gperf qemu-user-static - #elif [ '${{ matrix.target }}' == 'linux-armhf' ]; then - #sudo dpkg --add-architecture armhf - #sudo sed -i "s/deb http/deb [arch=amd64] http/" /etc/apt/sources.list - #sudo sed -i "s/deb mirror/deb [arch=amd64] mirror/" /etc/apt/sources.list - #echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports jammy main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/ports-armhf.list - #echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports jammy-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-armhf.list - #echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports jammy-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-armhf.list - #sudo apt-get update -qq - #sudo apt-get install -yqq --allow-downgrades g++-arm-linux-gnueabihf libasound2-dev:armhf libatomic1:armhf libc6:armhf libdbus-1-dev:armhf libgcc-s1:armhf libgl1-mesa-dev:armhf libglib2.0-dev:armhf liblo-dev:armhf libstdc++6:armhf libx11-dev:armhf libxcursor-dev:armhf libxext-dev:armhf libxrandr-dev:armhf gperf qemu-user-static - #elif [ '${{ matrix.target }}' == 'linux-i686' ]; then - #sudo dpkg --add-architecture i386 - #sudo apt-get update -qq - #sudo apt-get install -yqq g++-i686-linux-gnu libasound2-dev:i386 libdbus-1-dev:i386 libgl1-mesa-dev:i386 libglib2.0-dev:i386 libsdl2-dev:i386 libx11-dev:i386 libxcursor-dev:i386 libxext-dev:i386 libxrandr-dev:i386 gperf - #elif [ '${{ matrix.target }}' == 'linux-riscv64' ]; then - #sudo dpkg --add-architecture riscv64 - #sudo sed -i "s/deb http/deb [arch=amd64] http/" /etc/apt/sources.list - #sudo sed -i "s/deb mirror/deb [arch=amd64] mirror/" /etc/apt/sources.list - #echo "deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports jammy main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/ports-riscv64.list - #echo "deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports jammy-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-riscv64.list - #echo "deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports jammy-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-riscv64.list - #sudo apt-get update -qq - #sudo apt-get install -yqq g++-riscv64-linux-gnu libasound2-dev:riscv64 libdbus-1-dev:riscv64 libgl1-mesa-dev:riscv64 libglapi-mesa:riscv64 libglvnd0:riscv64 libglib2.0-dev:riscv64 libsdl2-dev:riscv64 libx11-dev:riscv64 libxcursor-dev:riscv64 libxext-dev:riscv64 libxrandr-dev:riscv64 gperf qemu-user-static - #elif [ '${{ matrix.target }}' == 'linux-x86_64' ]; then - #sudo apt-get install -yqq --allow-downgrades libasound2-dev libdbus-1-dev libgl1-mesa-dev libglib2.0-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev gperf - #elif [ '${{ matrix.target }}' == 'wasm' ]; then - #sudo apt-get install -yqq --allow-downgrades autoconf automake git gperf - #fi - ## extra, for wasm - #if [ '${{ matrix.target }}' == 'wasm' ]; then - #[ -e ~/PawPawBuilds/emsdk ] || git clone https://github.com/emscripten-core/emsdk.git ~/PawPawBuilds/emsdk - #cd ~/PawPawBuilds/emsdk && ./emsdk install latest && ./emsdk activate latest - #fi - ## extra, for win32 - #if [ '${{ matrix.target }}' == 'win32' ]; then - #sudo dpkg --add-architecture i386 - #sudo apt-get update -qq - #sudo apt-get install -yqq --allow-downgrades libc6:i386 libgcc-s1:i386 libstdc++6:i386 binutils-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64 gperf wine-stable - #fi - ## extra, for win64 - #if [ '${{ matrix.target }}' == 'win64' ]; then - #sudo dpkg --add-architecture i386 - #sudo apt-get update -qq - #sudo apt-get install -yqq --allow-downgrades libc6:i386 libgcc-s1:i386 libstdc++6:i386 binutils-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64 gperf wine-stable - #fi - #sudo apt-get install -yqq --allow-downgrades autoconf automake autopoint build-essential curl cmake git jq meson - #- name: (homebrew) Set up dependencies - #if: ${{ matrix.installer == 'homebrew' }} - #run: | - #brew install cmake git jq meson - #- name: (apt) Cache debian packages - #if: ${{ matrix.installer == 'apt' }} - #run: | - #mkdir -p ~/PawPawBuilds/debs - #sudo mv /var/cache/apt/archives/*.deb ~/PawPawBuilds/debs/ - #- name: Download common-${{ matrix.target }} - #uses: actions/download-artifact@v3 - #with: - #name: common-${{ matrix.target }} - #path: ~/PawPawBuilds - #- name: Extract common-${{ matrix.target }} - #shell: bash - #run: | - #cd ~/PawPawBuilds && \ - #tar xf common-${{ matrix.target }}.tar.gz - #- name: Run bootstrap - #shell: bash - #run: | - #./bootstrap-qt.sh ${{ matrix.target }} && ./.cleanup.sh ${{ matrix.target }} - #- name: Pack bootstrap build - #shell: bash - #run: | - #tar -C ~/PawPawBuilds -czf qt-${{ matrix.target }}.tar.gz builds targets - #- uses: actions/upload-artifact@v3 - #with: - #name: qt-${{ matrix.target }} - #path: qt-${{ matrix.target }}.tar.gz - - #carla: - #strategy: - #matrix: - #include: - #- name: macos-universal - #installer: homebrew - #os: macos-11 - #target: macos-universal - #- name: win32 - #installer: apt - #os: ubuntu-22.04 - #target: win32 - #- name: win64 - #installer: apt - #os: ubuntu-22.04 - #target: win64 - #runs-on: ${{ matrix.os }} - #needs: [plugins, qt] - #steps: - #- uses: actions/checkout@v3 - #- name: Set up cache - #uses: actions/cache@v3 - #with: - #path: | - #~/PawPawBuilds - #key: carla-${{ matrix.target }}-v${{ env.CACHE_VERSION }} - #- name: (apt) Restore debian package cache - #if: ${{ matrix.installer == 'apt' }} - #run: | - #if [ -d ~/PawPawBuilds/debs ] && [ "$(ls ~/PawPawBuilds/debs | wc -l)" -ne 0 ]; then \ - #sudo cp ~/PawPawBuilds/debs/*.deb /var/cache/apt/archives/; \ - #fi - #- name: (apt) Fix GitHub's mess - #if: ${{ matrix.installer == 'apt' }} - #run: | - #sudo rm /etc/apt/sources.list.d/*.list - #sudo apt-get update -qq - #sudo apt-get purge -yqq git-man libclang* libgbm* libllvm* libmono* libnginx* moby* mono* msbuild* nginx* perl php* libgdiplus libpcre2-posix3 libselinux1-dev libzip4 - #sudo apt-get install -yqq --allow-downgrades git/jammy - #- name: (apt) Set up dependencies (apt) - #if: ${{ matrix.installer == 'apt' }} - #run: | - #sudo apt-get update -qq - ## extra, for using system libraries - #if [ '${{ matrix.target }}' == 'linux-aarch64' ]; then - #sudo dpkg --add-architecture arm64 - #sudo sed -i "s/deb http/deb [arch=amd64] http/" /etc/apt/sources.list - #sudo sed -i "s/deb mirror/deb [arch=amd64] mirror/" /etc/apt/sources.list - #echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/ports-arm64.list - #echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-arm64.list - #echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-arm64.list - #sudo apt-get update -qq - #sudo apt-get install -yqq --allow-downgrades g++-aarch64-linux-gnu libasound2-dev:arm64 libatomic1:arm64 libc6:arm64 libdbus-1-dev:arm64 libgcc-s1:arm64 libgl1-mesa-dev:arm64 libglib2.0-dev:arm64 liblo-dev:arm64 libstdc++6:arm64 libx11-dev:arm64 libxcursor-dev:arm64 libxext-dev:arm64 libxrandr-dev:arm64 gperf qemu-user-static - #elif [ '${{ matrix.target }}' == 'linux-armhf' ]; then - #sudo dpkg --add-architecture armhf - #sudo sed -i "s/deb http/deb [arch=amd64] http/" /etc/apt/sources.list - #sudo sed -i "s/deb mirror/deb [arch=amd64] mirror/" /etc/apt/sources.list - #echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports jammy main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/ports-armhf.list - #echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports jammy-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-armhf.list - #echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports jammy-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-armhf.list - #sudo apt-get update -qq - #sudo apt-get install -yqq --allow-downgrades g++-arm-linux-gnueabihf libasound2-dev:armhf libatomic1:armhf libc6:armhf libdbus-1-dev:armhf libgcc-s1:armhf libgl1-mesa-dev:armhf libglib2.0-dev:armhf liblo-dev:armhf libstdc++6:armhf libx11-dev:armhf libxcursor-dev:armhf libxext-dev:armhf libxrandr-dev:armhf gperf qemu-user-static - #elif [ '${{ matrix.target }}' == 'linux-i686' ]; then - #sudo dpkg --add-architecture i386 - #sudo apt-get update -qq - #sudo apt-get install -yqq g++-i686-linux-gnu libasound2-dev:i386 libdbus-1-dev:i386 libgl1-mesa-dev:i386 libglib2.0-dev:i386 libsdl2-dev:i386 libx11-dev:i386 libxcursor-dev:i386 libxext-dev:i386 libxrandr-dev:i386 gperf - #elif [ '${{ matrix.target }}' == 'linux-riscv64' ]; then - #sudo dpkg --add-architecture riscv64 - #sudo sed -i "s/deb http/deb [arch=amd64] http/" /etc/apt/sources.list - #sudo sed -i "s/deb mirror/deb [arch=amd64] mirror/" /etc/apt/sources.list - #echo "deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports jammy main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/ports-riscv64.list - #echo "deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports jammy-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-riscv64.list - #echo "deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports jammy-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-riscv64.list - #sudo apt-get update -qq - #sudo apt-get install -yqq g++-riscv64-linux-gnu libasound2-dev:riscv64 libdbus-1-dev:riscv64 libgl1-mesa-dev:riscv64 libglapi-mesa:riscv64 libglvnd0:riscv64 libglib2.0-dev:riscv64 libsdl2-dev:riscv64 libx11-dev:riscv64 libxcursor-dev:riscv64 libxext-dev:riscv64 libxrandr-dev:riscv64 gperf qemu-user-static - #elif [ '${{ matrix.target }}' == 'linux-x86_64' ]; then - #sudo apt-get install -yqq --allow-downgrades libasound2-dev libdbus-1-dev libgl1-mesa-dev libglib2.0-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev gperf - #elif [ '${{ matrix.target }}' == 'wasm' ]; then - #sudo apt-get install -yqq --allow-downgrades autoconf automake git gperf - #fi - ## extra, for wasm - #if [ '${{ matrix.target }}' == 'wasm' ]; then - #[ -e ~/PawPawBuilds/emsdk ] || git clone https://github.com/emscripten-core/emsdk.git ~/PawPawBuilds/emsdk - #cd ~/PawPawBuilds/emsdk && ./emsdk install latest && ./emsdk activate latest - #fi - ## extra, for win32 - #if [ '${{ matrix.target }}' == 'win32' ]; then - #sudo dpkg --add-architecture i386 - #sudo apt-get update -qq - #sudo apt-get install -yqq --allow-downgrades libc6:i386 libgcc-s1:i386 libstdc++6:i386 binutils-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64 gperf wine-stable - #fi - ## extra, for win64 - #if [ '${{ matrix.target }}' == 'win64' ]; then - #sudo dpkg --add-architecture i386 - #sudo apt-get update -qq - #sudo apt-get install -yqq --allow-downgrades libc6:i386 libgcc-s1:i386 libstdc++6:i386 binutils-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64 gperf wine-stable - #fi - #sudo apt-get install -yqq --allow-downgrades autoconf automake autopoint build-essential curl cmake git jq meson - #- name: (homebrew) Set up dependencies - #if: ${{ matrix.installer == 'homebrew' }} - #run: | - #brew install cmake git jq meson - #- name: (apt) Cache debian packages - #if: ${{ matrix.installer == 'apt' }} - #run: | - #mkdir -p ~/PawPawBuilds/debs - #sudo mv /var/cache/apt/archives/*.deb ~/PawPawBuilds/debs/ - #- name: Download common-${{ matrix.target }} - #uses: actions/download-artifact@v3 - #with: - #name: common-${{ matrix.target }} - #path: ~/PawPawBuilds - #- name: Download qt-${{ matrix.target }} - #uses: actions/download-artifact@v3 - #with: - #name: qt-${{ matrix.target }} - #path: ~/PawPawBuilds - #- name: Download plugins-${{ matrix.target }} - #uses: actions/download-artifact@v3 - #with: - #name: plugins-${{ matrix.target }} - #path: ~/PawPawBuilds - #- name: Extract {common,plugins,qt}-${{ matrix.target }} - #shell: bash - #run: | - #cd ~/PawPawBuilds && \ - #tar xf common-${{ matrix.target }}.tar.gz && \ - #tar xf plugins-${{ matrix.target }}.tar.gz && \ - #tar xf qt-${{ matrix.target }}.tar.gz - #- name: Run bootstrap - #shell: bash - #run: | - #./bootstrap-carla.sh ${{ matrix.target }} && ./.cleanup.sh ${{ matrix.target }} + jack2: + strategy: + matrix: + include: + # macos + - target: macos + os: macos-11 + - target: macos-universal + 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: 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 + 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 + os: ubuntu-latest + - target: linux-armhf + container: ubuntu:20.04 + os: ubuntu-latest + - target: linux-i686 + container: ubuntu:20.04 + os: ubuntu-latest + - target: linux-riscv64 + container: ubuntu:20.04 + os: ubuntu-latest + - target: linux-x86_64 + container: ubuntu:20.04 + os: ubuntu-latest + # ubuntu:22.04 + - target: linux-aarch64 + container: ubuntu:22.04 + os: ubuntu-latest + - target: linux-armhf + container: ubuntu:22.04 + os: ubuntu-latest + - target: linux-i686 + container: ubuntu:22.04 + os: ubuntu-latest + - target: linux-riscv64 + container: ubuntu:22.04 + os: ubuntu-latest + - target: linux-x86_64 + container: ubuntu:22.04 + os: ubuntu-latest + - target: win32 + container: ubuntu:22.04 + os: ubuntu-latest + - target: win64 + container: ubuntu:22.04 + os: ubuntu-latest + # ubuntu:23.10 + - target: linux-aarch64 + container: ubuntu:23.10 + os: ubuntu-latest + - target: linux-armhf + container: ubuntu:23.10 + os: ubuntu-latest + - target: linux-riscv64 + container: ubuntu:23.10 + os: ubuntu-latest + - target: linux-x86_64 + 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 }} + needs: common + steps: + - uses: actions/checkout@v3 + - name: Set up cache + uses: actions/cache@v3 + with: + path: | + ~/PawPawBuilds + key: jack2-${{ matrix.container || matrix.os }}-${{ matrix.target }}-v${{ env.CACHE_VERSION }} + - name: Set up dependencies + run: | + ./.github/workflows/bootstrap-deps.sh ${{ matrix.target }} + - name: Download common + uses: actions/download-artifact@v3 + with: + name: common-${{ env.PAWPAW_PACK_NAME }} + path: ~/PawPawBuilds + - name: Extract common + shell: bash + run: | + cd ~/PawPawBuilds && \ + tar xf common-${{ env.PAWPAW_PACK_NAME }}.tar.gz + - name: Run bootstrap + shell: bash + run: | + ./bootstrap-jack2.sh ${{ matrix.target }} && ./.cleanup.sh ${{ matrix.target }} - cardinal: - env: - PAWPAW_SKIP_LTO: 1 - PAWPAW_SKIP_GLIB: 1 - PAWPAW_SKIP_LV2: 1 - PAWPAW_SKIP_OPENSSL: 1 - PAWPAW_SKIP_SAMPLERATE: 1 + qt: strategy: matrix: include: + # macos + - target: macos + os: macos-11 + - target: macos-universal + os: macos-11 + - target: macos-universal-10.15 + os: macos-11 + # debian:12 + # FIXME error: '::min' has not been declared; did you mean 'std::min'? + #- 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: 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 + 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 @@ -734,6 +484,169 @@ jobs: - target: linux-x86_64 container: ubuntu:20.04 os: ubuntu-latest + # ubuntu:22.04 + # FIXME error: '::min' has not been declared; did you mean 'std::min'? + #- target: linux-aarch64 + #container: ubuntu:22.04 + #os: ubuntu-latest + - target: linux-armhf + container: ubuntu:22.04 + os: ubuntu-latest + - target: linux-i686 + container: ubuntu:22.04 + os: ubuntu-latest + - target: linux-riscv64 + container: ubuntu:22.04 + os: ubuntu-latest + - target: linux-x86_64 + container: ubuntu:22.04 + os: ubuntu-latest + - target: win32 + container: ubuntu:22.04 + os: ubuntu-latest + - target: win64 + container: ubuntu:22.04 + os: ubuntu-latest + # ubuntu:23.10 + - target: linux-aarch64 + container: ubuntu:23.10 + os: ubuntu-latest + - target: linux-armhf + container: ubuntu:23.10 + os: ubuntu-latest + - target: linux-riscv64 + container: ubuntu:23.10 + os: ubuntu-latest + - target: linux-x86_64 + 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 }} + needs: common + steps: + - uses: actions/checkout@v3 + - name: Set up cache + uses: actions/cache@v3 + with: + path: | + ~/PawPawBuilds + key: qt-${{ matrix.container || matrix.os }}-${{ matrix.target }}-v${{ env.CACHE_VERSION }} + - name: Set up dependencies + run: | + ./.github/workflows/bootstrap-deps.sh ${{ matrix.target }} + - name: Download common + uses: actions/download-artifact@v3 + with: + name: common-${{ env.PAWPAW_PACK_NAME }} + path: ~/PawPawBuilds + - name: Extract common + shell: bash + run: | + cd ~/PawPawBuilds && \ + tar xf common-${{ env.PAWPAW_PACK_NAME }}.tar.gz + - name: Run bootstrap + shell: bash + run: | + ./bootstrap-qt.sh ${{ matrix.target }} && ./.cleanup.sh ${{ matrix.target }} + - name: Pack bootstrap build + shell: bash + run: | + tar -C ~/PawPawBuilds -czf qt-${{ env.PAWPAW_PACK_NAME }}.tar.gz builds targets + - uses: actions/upload-artifact@v3 + with: + name: qt-${{ env.PAWPAW_PACK_NAME }} + path: qt-${{ env.PAWPAW_PACK_NAME }}.tar.gz + + carla: + env: + PAWPAW_SKIP_OPENSSL: 1 + strategy: + matrix: + include: + - target: macos-universal + os: macos-11 + - target: win32 + container: debian:12 + os: ubuntu-latest + - target: win64 + container: debian:12 + os: ubuntu-latest + runs-on: ${{ matrix.os }} + container: + image: ${{ matrix.container }} + needs: [plugins, qt] + steps: + - uses: actions/checkout@v3 + - name: Set up cache + uses: actions/cache@v3 + with: + path: | + ~/PawPawBuilds + key: qt-${{ matrix.container || matrix.os }}-${{ matrix.target }}-v${{ env.CACHE_VERSION }} + - name: Set up dependencies + run: | + ./.github/workflows/bootstrap-deps.sh ${{ matrix.target }} + - name: Download common + uses: actions/download-artifact@v3 + with: + name: common-${{ env.PAWPAW_PACK_NAME }} + path: ~/PawPawBuilds + - name: Download plugins + uses: actions/download-artifact@v3 + with: + name: plugins-${{ env.PAWPAW_PACK_NAME }} + path: ~/PawPawBuilds + - name: Download qt + uses: actions/download-artifact@v3 + with: + name: qt-${{ env.PAWPAW_PACK_NAME }} + path: ~/PawPawBuilds + - name: Extract {common,plugins,qt} + shell: bash + run: | + cd ~/PawPawBuilds && \ + tar xf common-${{ env.PAWPAW_PACK_NAME }}.tar.gz && \ + tar xf plugins-${{ env.PAWPAW_PACK_NAME }}.tar.gz && \ + tar xf qt-${{ env.PAWPAW_PACK_NAME }}.tar.gz + - name: Run bootstrap + shell: bash + run: | + ./bootstrap-carla.sh ${{ matrix.target }} && ./.cleanup.sh ${{ matrix.target }} + + cardinal: + env: + PAWPAW_SKIP_LTO: 1 + PAWPAW_SKIP_GLIB: 1 + PAWPAW_SKIP_LV2: 1 + PAWPAW_SKIP_OPENSSL: 1 + PAWPAW_SKIP_SAMPLERATE: 1 + strategy: + matrix: + include: + # ubuntu:20.04 + # FIXME Cannot use the installed version of file (5.38) to cross-compile file 5.34 + #- target: linux-aarch64 + #container: ubuntu:20.04 + #os: ubuntu-latest + #- target: linux-armhf + #container: ubuntu:20.04 + #os: ubuntu-latest + #- target: linux-i686 + #container: ubuntu:20.04 + #os: ubuntu-latest + #- target: linux-riscv64 + #container: ubuntu:20.04 + #os: ubuntu-latest + #- target: linux-x86_64 + #container: ubuntu:20.04 + #os: ubuntu-latest - target: macos-universal-10.15 os: macos-11 - target: wasm @@ -774,8 +687,9 @@ jobs: #os: ubuntu-latest - target: macos-universal-10.15 os: macos-11 + # FIXME use debian:12 - target: win64 - container: debian:12 + container: ubuntu:22.04 os: ubuntu-latest runs-on: ${{ matrix.os }} container: diff --git a/bootstrap-carla.sh b/bootstrap-carla.sh index 67835e4..908cd62 100755 --- a/bootstrap-carla.sh +++ b/bootstrap-carla.sh @@ -18,6 +18,8 @@ fi # --------------------------------------------------------------------------------------------------------------------- # run bootstrap dependencies +export PAWPAW_SKIP_OPENSSL=1 + ./bootstrap-common.sh "${target}" ./bootstrap-plugins.sh "${target}" diff --git a/bootstrap-plugins.sh b/bootstrap-plugins.sh index a85bdaa..01ac2ee 100755 --- a/bootstrap-plugins.sh +++ b/bootstrap-plugins.sh @@ -575,6 +575,8 @@ build_autoconf mxml "${MXML_VERSION}" # --------------------------------------------------------------------------------------------------------------------- # carla (backend only) +if [ "${WASM}" -eq 0 ]; then + CARLA_EXTRAFLAGS="CAN_GENERATE_LV2_TTL=false" CARLA_EXTRAFLAGS+=" EXTERNAL_PLUGINS=false" CARLA_EXTRAFLAGS+=" HAVE_ALSA=false" @@ -602,6 +604,8 @@ CARLA_EXTRAFLAGS+=" USING_RTAUDIO=false" git_clone carla "${CARLA_VERSION}" "${CARLA_URL}" build_make carla "${CARLA_VERSION}" "${CARLA_EXTRAFLAGS}" +fi # WASM + # --------------------------------------------------------------------------------------------------------------------- # wine bootstrap (needed for cross-compilation) diff --git a/bootstrap-python.sh b/bootstrap-python.sh index c5c9baf..a991723 100755 --- a/bootstrap-python.sh +++ b/bootstrap-python.sh @@ -106,7 +106,7 @@ function build_conf_openssl() { # --------------------------------------------------------------------------------------------------------------------- # openssl -if [ -n "${PAWPAW_SKIP_OPENSSL}" ]; then +if [ -z "${PAWPAW_SKIP_OPENSSL}" ]; then OPENSSL_URL="https://www.openssl.org/source" OPENSSL_VERSION="1.1.1w"