Skip to content

build(plugin-mssql): rebuild FreeTDS with Kerberos, fix GSS verification (#1918)#1923

Merged
datlechin merged 2 commits into
mainfrom
fix/mssql-kerberos-gss-rebuild
Jul 21, 2026
Merged

build(plugin-mssql): rebuild FreeTDS with Kerberos, fix GSS verification (#1918)#1923
datlechin merged 2 commits into
mainfrom
fix/mssql-kerberos-gss-rebuild

Conversation

@datlechin

Copy link
Copy Markdown
Member

Follow-up to #1922. Actually ships the Kerberos-enabled FreeTDS library and re-releases the plugin against it.

Context

#1922 changed the build recipe but did not ship a fixed binary: the libsybdb.a on the libs-v1 release still had tds_gss_get_auth absent, so Windows Authentication kept failing. This PR rebuilds the library with Kerberos, publishes it, and fixes two build-script bugs found while rebuilding.

What the rebuild found

  • --enable-krb5=gssapi_krb5 does compile GSS in: ENABLE_KRB5 is defined and gssapi.c builds tds_gss_get_auth against the SDK's libgssapi_krb5.tbd. Verified nm Libs/libsybdb.a shows T _tds_gss_get_auth on both arm64 and x86_64.
  • The verification step from fix(plugin-mssql): build FreeTDS with Kerberos so Windows Auth works (#1918) #1922 was a false negative. grep -q closes the pipe on the first match, nm then dies with SIGPIPE, and under set -o pipefail the pipeline reports failure for a valid library. Fixed by draining nm's full output (grep ... > /dev/null, no -q).
  • The script wrote the committed macOS archives after the iOS slices, so an iOS build failure discarded a good macOS build. The macOS plugin library and the iOS xcframework are independent products, so the macOS archives are now written right after the GSS check, before the iOS slices.

Changes

  • scripts/build-freetds.sh: fix the GSS verification (pipefail/SIGPIPE), and write the committed macOS archives before the iOS slices.
  • Libs/checksums.sha256: updated for the four rebuilt libsybdb archives (published to libs-v1 via scripts/publish-libs.sh; all other libraries verified unchanged against HEAD).

Verification

nm Libs/libsybdb.a | grep tds_gss_get_auth   # T _tds_gss_get_auth (arm64 + x86_64)
lipo -archs Libs/libsybdb.a                  # x86_64 arm64

Release steps

  • tablepro-libs-v1.tar.gz on libs-v1 is already updated (only the four libsybdb archives changed).
  • After this merges to main, tag plugin-mssql-v1.0.31 so the registry plugin rebuilds against the Kerberos-enabled library. The plugin CI's download-libs.sh verifies the new archive against the checksums committed here, so this must merge first.
  • No PluginKit ABI change: currentPluginKitVersion stays 18.

The iOS xcframework is unchanged. It stays krb5-free (the iOS app rejects Windows auth), and its build is not required for the macOS plugin.

@datlechin
datlechin merged commit f888fc9 into main Jul 21, 2026
4 checks passed
@datlechin
datlechin deleted the fix/mssql-kerberos-gss-rebuild branch July 21, 2026 04:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant