diff --git a/.github/workflows/release-linux-legacy.yml b/.github/workflows/release-linux-legacy.yml deleted file mode 100644 index 6d75236817..0000000000 --- a/.github/workflows/release-linux-legacy.yml +++ /dev/null @@ -1,222 +0,0 @@ -name: Release (Linux, Legacy) - -on: - workflow_call: - inputs: - survey_key: - required: false - type: string - default: "" - -jobs: - linux: - name: Linux (Legacy) - - runs-on: ubuntu-latest - container: - # manylinux2014 is based on CentOS 7, and already has a lot of things - # installed and preconfigured. It makes it easier to build OpenTTD. - # This distro is based on glibc 2.17, released in 2012. - image: quay.io/pypa/manylinux2014_x86_64 - - steps: - - name: Download source - uses: actions/download-artifact@v4 - with: - name: internal-source - - - name: Unpack source - run: | - tar -xf source.tar.gz --strip-components=1 - - # curl is too old for most of the tools to work properly. For example, - # rust-toolchain doesn't work properly, neither vcpkg caching. - # The easier solution here is to upgrade curl. - - name: Update curl - run: | - yum install -y \ - openssl-devel \ - # EOF - - mkdir /curl - cd /curl - curl -o curl-7.81.0.zip https://curl.se/download/curl-7.81.0.zip - unzip curl-7.81.0.zip - cd curl-7.81.0 - ./configure --with-ssl --with-zlib --prefix=/usr --libdir=/usr/lib64 - make -j $(nproc) - make install - - - name: Install Rust toolchain - uses: dtolnay/rust-toolchain@stable - - - name: Enable Rust cache - uses: Swatinem/rust-cache@v2.7.0 - with: - key: legacy - - - name: Setup vcpkg caching - uses: actions/github-script@v7 - with: - script: | - core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || ''); - core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || ''); - core.exportVariable('VCPKG_BINARY_SOURCES', 'clear;x-gha,readwrite') - - - name: Install dependencies - run: | - echo "::group::Install system dependencies" - # perl-IPC-Cmd, wget, and zip are needed to run vcpkg. - # autoconf-archive is needed to build ICU. - yum install -y \ - autoconf-archive \ - perl-IPC-Cmd \ - wget \ - zip \ - # EOF - - # aclocal looks first in /usr/local/share/aclocal, and if that doesn't - # exist only looks in /usr/share/aclocal. We have files in both that - # are important. So copy the latter to the first, and we are good to - # go. - cp /usr/share/aclocal/* /usr/local/share/aclocal/ - echo "::endgroup::" - - # The yum variant of fluidsynth depends on all possible audio drivers, - # like jack, ALSA, pulseaudio, etc. This is not really useful for us, - # as we route the output of fluidsynth back via our sound driver, and - # as such do not use these audio driver outputs at all. - # The vcpkg variant of fluidsynth depends on ALSA. Similar issue here. - # So instead, we compile fluidsynth ourselves, with as few - # dependencies as possible. We do it before anything else is installed, - # to make sure it doesn't pick up on any of the drivers. - echo "::group::Install fluidsynth" - wget https://github.com/FluidSynth/fluidsynth/archive/v2.3.3.tar.gz - tar xf v2.3.3.tar.gz - ( - cd fluidsynth-2.3.3 - mkdir build - cd build - cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=/usr - cmake --build . -j $(nproc) - cmake --install . - ) - - # The container we use is old enough, that it doesn't know SHF_COMPRESSED. - # But, breakpad needs this symbol to exist. So we patch it in our system - # libraries. - ( - cd / - patch -p1 < ${GITHUB_WORKSPACE}/os/linux/shf-compressed.patch - ) - echo "::endgroup::" - - echo "::group::Install audio drivers" - # These audio libs are to make sure the SDL version of vcpkg adds - # sound-support; these libraries are not added to the resulting - # binary, but the headers are used to enable them in SDL. - yum install -y \ - alsa-lib-devel \ - jack-audio-connection-kit-devel \ - pulseaudio-libs-devel \ - # EOF - echo "::endgroup::" - - echo "::group::Install video drivers" - # These video libs are to make sure the SDL version of vcpkg adds - # video-support; these libraries are not added to the resulting - # binary, but the headers are used to enable them in SDL. - yum install -y \ - libX11-devel \ - libXcursor-devel \ - libXext-devel \ - libXfixes-devel \ - libXi-devel \ - libxkbcommon-devel \ - libXrandr-devel \ - libXScrnSaver-devel \ - # EOF - echo "::endgroup::" - - # We use vcpkg for our dependencies, to get more up-to-date version. - echo "::group::Install vcpkg and dependencies" - - git clone https://github.com/microsoft/vcpkg /vcpkg - - ( - cd /vcpkg - ./bootstrap-vcpkg.sh -disableMetrics - ) - - # Make Python3 available for other packages. This needs to be done - # first, as otherwise dependencies fail to build because Python3 is - # not available. - ( - cd / - - /vcpkg/vcpkg install python3 - ln -sf /vcpkg/installed/x64-linux/tools/python3/python3.[0-9][0-9] /usr/bin/python3 - ) - echo "::endgroup::" - - echo "::group::Install breakpad dependencies" - cargo install dump_syms - echo "::endgroup::" - - - name: Patch bundle name - run: | - sed -i 's/generic/legacy/g' cmake/InstallAndPackage.cmake - - - name: Install GCC problem matcher - uses: ammaraskar/gcc-problem-matcher@master - - - name: Build - run: | - mkdir -p build - cd build - - echo "::group::CMake" - cmake ${GITHUB_WORKSPACE} \ - -DCMAKE_TOOLCHAIN_FILE=/vcpkg/scripts/buildsystems/vcpkg.cmake \ - -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DOPTION_SURVEY_KEY=${{ inputs.survey_key }} \ - -DOPTION_PACKAGE_DEPENDENCIES=ON \ - # EOF - echo "::endgroup::" - - echo "::group::Build" - echo "Running on $(nproc) cores" - cmake --build . -j $(nproc) --target openttd - echo "::endgroup::" - - - name: Create breakpad symbols - run: | - cd build - dump_syms ./openttd --inlines --store symbols - - - name: Create bundles - run: | - cd ${GITHUB_WORKSPACE}/build - echo "::group::Run CPack" - cpack - echo "::endgroup::" - - echo "::group::Cleanup" - # Remove the sha256 files CPack generates; we will do this ourself at - # the end of this workflow. - rm -f bundles/*.sha256 - echo "::endgroup::" - - - name: Store bundles - uses: actions/upload-artifact@v4 - with: - name: openttd-linux-legacy - path: build/bundles - retention-days: 5 - - - name: Store symbols - uses: actions/upload-artifact@v4 - with: - name: symbols-linux-legacy - path: build/symbols - retention-days: 5 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0c4fd78932..ffbad50df7 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -31,16 +31,6 @@ jobs: with: version: ${{ needs.source.outputs.version }} - linux-legacy: - name: Linux (Legacy) - needs: source - - uses: ./.github/workflows/release-linux-legacy.yml - secrets: inherit - - with: - survey_key: ${{ needs.source.outputs.survey_key }} - linux: name: Linux (Generic) needs: source @@ -91,7 +81,6 @@ jobs: needs: - source - docs - - linux-legacy - linux - macos - windows @@ -99,7 +88,7 @@ jobs: # As windows-store is condition, we need to check ourselves if we need to run. # The always() makes sure the rest is always evaluated. - if: always() && needs.source.result == 'success' && needs.docs.result == 'success' && needs.linux-legacy.result == 'success' && needs.linux.result == 'success' && needs.macos.result == 'success' && needs.windows.result == 'success' && (needs.windows-store.result == 'success' || needs.windows-store.result == 'skipped') + if: always() && needs.source.result == 'success' && needs.docs.result == 'success' && needs.linux.result == 'success' && needs.macos.result == 'success' && needs.windows.result == 'success' && (needs.windows-store.result == 'success' || needs.windows-store.result == 'skipped') runs-on: ubuntu-latest