SDL: Actually, DYLIB_COMPATIBILITY_VERSION shouldn't be updated for a stable point release

From acf397b4df6af692c88cb848f3e84d40c9f463bf Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Mon, 5 Sep 2022 11:21:13 -0700
Subject: [PATCH] Actually, DYLIB_COMPATIBILITY_VERSION shouldn't be updated
 for a stable point release

@smcv
---
 CMakeLists.txt            |  2 +-
 docs/release_checklist.md |  2 +-
 test/versioning.sh        | 19 +++++++++++++++++--
 3 files changed, 19 insertions(+), 4 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0779992321f..431b3c73739 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -123,7 +123,7 @@ math(EXPR DYLIB_CURRENT_VERSION_MAJOR "${LT_MAJOR} + ${LT_AGE} + 1")
 math(EXPR DYLIB_CURRENT_VERSION_MINOR "${LT_REVISION}")
 math(EXPR DYLIB_COMPAT_VERSION_MAJOR "${LT_MAJOR} + 1")
 set(DYLIB_CURRENT_VERSION "${DYLIB_CURRENT_VERSION_MAJOR}.${DYLIB_CURRENT_VERSION_MINOR}.0")
-set(DYLIB_COMPATIBILITY_VERSION "${DYLIB_CURRENT_VERSION}")
+set(DYLIB_COMPATIBILITY_VERSION "${DYLIB_CURRENT_VERSION_MAJOR}.0.0")
 
 # This list holds all generated headers.
 # To avoid generating them twice, these are added to a dummy target on which all sdl targets depend.
diff --git a/docs/release_checklist.md b/docs/release_checklist.md
index 99afab228c0..8104c6b2966 100644
--- a/docs/release_checklist.md
+++ b/docs/release_checklist.md
@@ -45,7 +45,7 @@
     * `Xcode/SDL/SDL.xcodeproj/project.pbxproj`:
         `DYLIB_CURRENT_VERSION`, `DYLIB_COMPATIBILITY_VERSION`
         * set second number in `DYLIB_CURRENT_VERSION` to *patchlevel*
-        * set `DYLIB_COMPATIBILITY_VERSION` to the same value
+        * Leave `DYLIB_COMPATIBILITY_VERSION` unchanged
 
 * Run test/versioning.sh to verify that everything is consistent
 
diff --git a/test/versioning.sh b/test/versioning.sh
index f0e8182ab0e..58bb09ffc8e 100755
--- a/test/versioning.sh
+++ b/test/versioning.sh
@@ -130,12 +130,11 @@ fi
 
 # For simplicity this assumes we'll never break ABI before SDL 3.
 dylib_compat=$(sed -Ene 's/.*DYLIB_COMPATIBILITY_VERSION = (.*);$/\1/p' Xcode/SDL/SDL.xcodeproj/project.pbxproj)
-dylib_cur=$(sed -Ene 's/.*DYLIB_CURRENT_VERSION = (.*);$/\1/p' Xcode/SDL/SDL.xcodeproj/project.pbxproj)
 
 case "$ref_minor" in
     (*[02468])
         major="$(( ref_minor * 100 + 1 ))"
-        minor="$ref_micro"
+        minor="0"
         ;;
     (*)
         major="$(( ref_minor * 100 + ref_micro + 1 ))"
@@ -152,6 +151,22 @@ else
     not_ok "project.pbxproj DYLIB_COMPATIBILITY_VERSION is inconsistent, expected $ref, got $dylib_compat"
 fi
 
+dylib_cur=$(sed -Ene 's/.*DYLIB_CURRENT_VERSION = (.*);$/\1/p' Xcode/SDL/SDL.xcodeproj/project.pbxproj)
+
+case "$ref_minor" in
+    (*[02468])
+        major="$(( ref_minor * 100 + 1 ))"
+        minor="$ref_micro"
+        ;;
+    (*)
+        major="$(( ref_minor * 100 + ref_micro + 1 ))"
+        minor="0"
+        ;;
+esac
+
+ref="${major}.${minor}.0
+${major}.${minor}.0"
+
 if [ "$ref" = "$dylib_cur" ]; then
     ok "project.pbxproj DYLIB_CURRENT_VERSION is consistent"
 else