diff --git a/.github/workflows/abi-checker.yml b/.github/workflows/abi-checker.yml index 53830778a..9c0c1eff3 100644 --- a/.github/workflows/abi-checker.yml +++ b/.github/workflows/abi-checker.yml @@ -42,10 +42,7 @@ jobs: - name: "Prepare configuration" run: | mkdir -p abi-checker - cp ci/cmake-preloads/config-abi.txt abi-checker/ - cp scripts/abi-suppr.txt abi-checker/ - curl https://gist.githubusercontent.com/akallabeth/aa35caed0d39241fa17c3dc8a0539ea3/raw/ef12f8c720ac6be51aa1878710e2502b1b39cf4c/check-abi -o abi-checker/check-abi - chmod +x abi-checker/check-abi + cp scripts/abi-diff.sh abi-checker/ echo "GITHUB_BASE_REF=$GITHUB_BASE_REF" echo "GITHUB_HEAD_REF=$GITHUB_HEAD_REF" echo "API_BASE_REF=${{ inputs.API_BASE_REF || '3.6.0' }}" @@ -57,4 +54,4 @@ jobs: BASE_REF: ${{ github.event_name == 'pull_request' && github.event.pull_request.base.sha || github.event_name == 'pull_request' && github.event.pull_request.base.sha || github.event_name == 'workflow_dispatch' && inputs.API_BASE_REF || '3.6.0' }} run: | echo "BASE_REF=$BASE_REF" - ./abi-checker/check-abi -s abi-checker/abi-suppr.txt --parameters="-Cabi-checker/config-abi.txt" $BASE_REF $(git rev-parse HEAD) + ./abi-checker/abi-diff.sh $BASE_REF diff --git a/ci/cmake-preloads/config-abi.txt b/ci/cmake-preloads/config-abi.txt index df39dd465..f2dbad796 100644 --- a/ci/cmake-preloads/config-abi.txt +++ b/ci/cmake-preloads/config-abi.txt @@ -17,6 +17,10 @@ set(WITH_SWSCALE ON CACHE BOOL "preload") set(WITH_DSP_FFMPEG ON CACHE BOOL "preload") set(WITH_FREERDP_DEPRECATED_COMMANDLINE ON CACHE BOOL "preload") set(WITH_PULSE ON CACHE BOOL "preload") +set(WITH_CLIENT_SDL OFF CACHE BOOL "preload") +set(WITH_CLIENT_X11 OFF CACHE BOOL "preload") +set(WITH_CLIENT_WAYLAND OFF CACHE BOOL "preload") +set(WITH_SERVER_SHADOW OFF CACHE BOOL "preload") set(WITH_OPAQUE_SETTINGS ON CACHE BOOL "preload") set(WITH_VERBOSE_WINPR_ASSERT OFF CACHE BOOL "preload") set(CHANNEL_RDPECAM ON CACHE BOOL "qa default") diff --git a/scripts/abi-diff.sh b/scripts/abi-diff.sh new file mode 100755 index 000000000..f7ed4dec7 --- /dev/null +++ b/scripts/abi-diff.sh @@ -0,0 +1,22 @@ +#!/bin/bash -xe +# +SCRIPT_NAME="${BASH_SOURCE[0]}" +SCRIPT_PATH=$(dirname "${BASH_SOURCE[0]}") +SCRIPT_PATH=$(realpath "$SCRIPT_PATH") + +if [ $# -ne 1 ]; +then + echo "$0 " + exit 1 +fi + +BASE_REF=$1 + +cd "$SCRIPT_PATH/.." +mkdir -p abi-checker +cp ci/cmake-preloads/config-abi.txt abi-checker/ +cp scripts/abi-suppr.txt abi-checker/ +curl https://gist.githubusercontent.com/akallabeth/aa35caed0d39241fa17c3dc8a0539ea3/raw/ef12f8c720ac6be51aa1878710e2502b1b39cf4c/check-abi -o abi-checker/check-abi +chmod +x abi-checker/check-abi + +./abi-checker/check-abi -s abi-checker/abi-suppr.txt --parameters="-Cabi-checker/config-abi.txt" $BASE_REF $(git rev-parse HEAD) diff --git a/scripts/abi-suppr.txt b/scripts/abi-suppr.txt index f9ec3baae..337fdae10 100644 --- a/scripts/abi-suppr.txt +++ b/scripts/abi-suppr.txt @@ -38,21 +38,32 @@ change_kind = function-subtype-change name = freerdp_passphrase_read return_type_name = const char* -[suppress_function] +[suppress_type] change_kind = enum -name = FreeRDP_Settings_Keys_Int32 +name = FreeRDP_Settings_Keys_UInt32 changed_enumerators = FreeRDP_MonitorLocalShiftX, FreeRDP_MonitorLocalShiftY # gdi_graphics_pipeline_init_ex subtype change (__uint32 to uint32_t) -[suppress_function] +[suppress_type] change_kind = typedef name = UINT +[suppress_type] +change_kind = typedef +name = UINT16 + +[suppress_type] +change_kind = typedef +name = UINT32 + +[suppress_type] +change_kind = typedef +name = UINT64 + # msusb_msconfig_dump did use MSUSB_CONFIG_DESCRIPTOR* instead of const MSUSB_CONFIG_DESCRIPTOR* [suppress_function] change_kind = function-subtype-change name = msusb_msconfig_dump -parameter = '0 const MSUSB_CONFIG_DESCRIPTOR* [suppress_function] change_kind = function-subtype-change @@ -73,3 +84,8 @@ parameter = '1 const GDI_RGN* change_kind = function-subtype-change name = gdi_PtInRect parameter = '0 const GDI_RECT*' + +[suppress_function] +change_kind = function-subtype-change +name = GetDynamicTimeZoneInformationEffectiveYears +parameter = '0 const DYNAMIC_TIME_ZONE_INFORMATION*'