diff --git a/.github/workflows/checks.yaml b/.github/workflows/checks.yaml index 47c313da6..aa7a29c6d 100644 --- a/.github/workflows/checks.yaml +++ b/.github/workflows/checks.yaml @@ -349,7 +349,10 @@ jobs: - target: x86_64-unknown-linux-gnu features: - '' - runs-on: ubuntu-latest + # At the time of writing, 'latest' referred to ubuntu-22 + # for libabigail we really need ubuntu-24, which just started getting rolled out + # In the future, this can likely be changed to `ubuntu-latest` again. + runs-on: ubuntu-24.04 steps: - name: Checkout sources uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 @@ -379,3 +382,11 @@ jobs: export LD_LIBRARY_PATH=/tmp/cargo-cbuild-libbzip2-rs/usr/local/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH ./bzpipe < Cargo.toml | ./bzpipe -d > out.txt cmp -s Cargo.toml out.txt + - name: verify api surface with abigail + run: | + sudo apt install libbz2-dev abigail-tools + LIBBZ2_PATH=$(ldconfig -p | grep "x86_64-linux-gnu/libbz2.so" | head -n 1 | awk '{print $4}') + LIBBZ2_FILENAME=$(basename "$LIBBZ2_PATH") + abidw $LIBBZ2_PATH > /tmp/$LIBBZ2_FILENAME.abi + abidw /tmp/cargo-cbuild-libbzip2-rs/usr/local/lib/x86_64-linux-gnu/libbz2_rs.so > /tmp/liblibz_rs_sys.so.abi + abidiff --no-unreferenced-symbols --ignore-soname /tmp/$LIBBZ2_FILENAME.abi /tmp/liblibz_rs_sys.so.abi