Skip to content

glpk, libmicrohttpd, m4: build fixes #9457

glpk, libmicrohttpd, m4: build fixes

glpk, libmicrohttpd, m4: build fixes #9457

Workflow file for this run

name: Sanity checks
on:
pull_request:
push:
branches: ['*']
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
prelude:
name: Initial checks
runs-on: ubuntu-latest
outputs:
cache-key: ${{ steps.cache-key.outputs.cache-key }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install packages
run: |
python3 -m pip install license-expression
python3 -m pip install --pre meson
- name: Calculate cache key
id: cache-key
run: echo "cache-key=packagecache-$(tools/internalize_sources.py cache-key)" >> $GITHUB_OUTPUT
- name: Restore sources
id: restore
uses: actions/cache/restore@v4
with:
key: ${{ steps.cache-key.outputs.cache-key }}
path: subprojects/packagecache
enableCrossOsArchive: true
- name: Download sources
if: steps.restore.outputs.cache-hit != 'true'
run: tools/internalize_sources.py download
- name: Save sources
uses: actions/cache/save@v4
if: steps.restore.outputs.cache-hit != 'true'
with:
key: ${{ steps.cache-key.outputs.cache-key }}
path: subprojects/packagecache
enableCrossOsArchive: true
- name: Quick checks
env:
TEST_ANNOTATE_CONTEXT: yes
TEST_SKIP_BUILD: yes
run: |
./tools/fake_tty.py ./tools/sanity_checks.py
Ubuntu:
runs-on: ${{ matrix.platform == 'aarch64' && 'ubuntu-24.04-arm' || 'ubuntu-latest' }}
needs: prelude
strategy:
fail-fast: false
matrix:
platform: ['x86_64', 'aarch64']
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install packages
run: |
sudo apt-get update
sudo apt-get -y install build-essential python3-pip ninja-build
python3 -m pip install license-expression
python3 -m pip install --pre meson
- name: Restore sources
uses: actions/cache/restore@v4
with:
key: ${{ needs.prelude.outputs.cache-key }}
path: subprojects/packagecache
enableCrossOsArchive: true
fail-on-cache-miss: true
- name: Sanity Checks
run: |
./tools/internalize_sources.py rewrite
./tools/fake_tty.py ./tools/sanity_checks.py
- name: Report Meson version dependencies
if: matrix.platform == 'x86_64'
continue-on-error: true
env:
TEST_MESON_VERSION_DEPS: 1
run: |
./tools/fake_tty.py ./tools/sanity_checks.py TestReleases.test_meson_version_deps
Alpine:
runs-on: ${{ startsWith(matrix.platform, 'x86') && 'ubuntu-latest' || 'ubuntu-24.04-arm' }}
needs: prelude
strategy:
fail-fast: false
matrix:
platform: ['x86_64', 'x86', 'aarch64', 'armv7', 'riscv64', 'ppc64le']
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: jirutka/setup-alpine@v1
with:
arch: ${{ matrix.platform }}
# https://github.com/jirutka/setup-alpine/pull/22
apk-tools-url: ${{ startsWith(matrix.platform, 'x86') && 'https://gitlab.alpinelinux.org/api/v4/projects/5/packages/generic/v2.14.7/x86_64/apk.static#!sha256!bdd044e0fd6cc388c5e571e1093efa5f35f7767cc5aa338b0a2576a429009a62' || 'https://gitlab.alpinelinux.org/api/v4/projects/5/packages/generic/v2.14.7/aarch64/apk.static#!sha256!27a975638ddc95a411c9f17c63383e335da9edf6bb7de2281d950c291a11f878' }}
packages: >
binutils clang libc-dev fortify-headers make patch cmake git linux-headers pkgconf py3-pip samurai sudo
# https://github.com/jirutka/setup-alpine/pull/22
- name: Disable QEMU emulation
if: matrix.platform == 'armv7'
run: sudo update-binfmts --disable qemu-arm
- name: Restore sources
uses: actions/cache/restore@v4
with:
key: ${{ needs.prelude.outputs.cache-key }}
path: subprojects/packagecache
enableCrossOsArchive: true
fail-on-cache-miss: true
- name: Sanity Checks
env:
CC: clang
CXX: clang++
run: |
# Work around PEP 668 nonsense…
sudo rm -vf /usr/lib*/python3.*/EXTERNALLY-MANAGED
python -m pip install license-expression
python -m pip install --pre meson
if grep -q qemu /proc/$$/cmdline; then
export TEST_TIMEOUT_MULTIPLIER=10
echo "CPU emulation detected; increasing test timeouts by ${TEST_TIMEOUT_MULTIPLIER}x"
fi
./tools/internalize_sources.py rewrite
./tools/fake_tty.py ./tools/sanity_checks.py
shell: alpine.sh {0}
VisualStudio:
runs-on: windows-latest
needs: prelude
strategy:
fail-fast: false
matrix:
platform: ['x64', 'x86']
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
# Install a 32-bit Python so building related stuff work.
- name: Setup x86 Python
if: matrix.platform == 'x86'
uses: actions/setup-python@v5
with:
architecture: 'x86'
python-version: '3.12'
- name: Install packages
run: |
python -m pip install license-expression
python -m pip install --pre meson
- uses: ilammy/msvc-dev-cmd@v1
with:
arch: ${{matrix.platform}}
- name: Restore sources
uses: actions/cache/restore@v4
with:
key: ${{ needs.prelude.outputs.cache-key }}
path: subprojects/packagecache
enableCrossOsArchive: true
fail-on-cache-miss: true
- name: Sanity Checks
run: |
python tools/internalize_sources.py rewrite
python tools/sanity_checks.py
VisualStudio-clang-cl:
runs-on: windows-latest
needs: prelude
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install packages
run: |
python -m pip install license-expression
python -m pip install --pre meson
- name: Restore sources
uses: actions/cache/restore@v4
with:
key: ${{ needs.prelude.outputs.cache-key }}
path: subprojects/packagecache
enableCrossOsArchive: true
fail-on-cache-miss: true
- uses: ilammy/msvc-dev-cmd@v1
- name: Sanity Checks
env:
CC: clang-cl
CXX: clang-cl
run: |
python tools/internalize_sources.py rewrite
python tools/sanity_checks.py
MSYS2:
runs-on: windows-latest
needs: prelude
strategy:
fail-fast: false
matrix:
platform: ['UCRT64', 'CLANG64']
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: msys2/setup-msys2@v2
with:
msystem: ${{matrix.platform}}
install: >-
bison
dos2unix
flex
git
pacboy: >-
cc:p
cmake:p
ninja:p
pkgconf:p
python-certifi:p
python-pip:p
# Make sure Python is updated to >=3.11 (fix https://github.com/msys2/MINGW-packages/issues/17415).
update: true
- name: Install packages
shell: msys2 {0}
run: |
python -m pip install license-expression
python -m pip install --pre meson
- name: Restore sources
uses: actions/cache/restore@v4
with:
key: ${{ needs.prelude.outputs.cache-key }}
path: subprojects/packagecache
enableCrossOsArchive: true
fail-on-cache-miss: true
- name: Sanity Checks
shell: msys2 {0}
run: |
python tools/internalize_sources.py rewrite
python tools/sanity_checks.py
MacOS:
runs-on: ${{ matrix.platform == 'arm64' && 'macos-14' || 'macos-13' }}
needs: prelude
strategy:
fail-fast: false
matrix:
platform: ['arm64', 'x86_64']
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- run: brew update
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install packages
run: |
brew install --quiet ninja
python3 -m pip install license-expression
python3 -m pip install --pre meson
- name: Restore sources
uses: actions/cache/restore@v4
with:
key: ${{ needs.prelude.outputs.cache-key }}
path: subprojects/packagecache
enableCrossOsArchive: true
fail-on-cache-miss: true
- name: Sanity Checks
run: |
./tools/internalize_sources.py rewrite
./tools/fake_tty.py ./tools/sanity_checks.py