chore(deps): load sspi fork from git instead of vendoring third_party#338
Conversation
Replace the vendored `cargo package` snapshot under third_party/sspi with a git dependency on our sspi fork branch, wired through `[patch.crates-io]`. The fork (branched off the sspi-v0.21.0 tag) carries our SASL/GSSAPI Kerberos work: keytab client credentials, integrity-only Wrap tokens, and multi-SPN acceptor keys. Upstreaming tracked at Devolutions/sspi-rs#681. Cargo.lock pins the exact fork commit, so builds stay reproducible despite the ref being a branch. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #338 +/- ##
===========================================
+ Coverage 76.35% 92.24% +15.88%
===========================================
Files 1213 1215 +2
Lines 149948 159361 +9413
===========================================
+ Hits 114497 146995 +32498
+ Misses 35451 12366 -23085
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Merging this PR will not alter performance
Comparing Footnotes
|
cargo-deny's [sources] denies unknown git sources; allow the sspi fork URL now that sspi is pulled from git rather than vendored. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
CI note: the red
|
Summary
Replaces the vendored
cargo packagesnapshot underthird_party/sspiwith a git dependency on our sspi fork branch, wired through[patch.crates-io]in the workspaceCargo.toml.The fork is branched off the upstream
sspi-v0.21.0tag and carries our SASL/GSSAPI Kerberos work:Credentials::Keytab).GSS_Wraptokens withconf_req_flag == FALSE(RFC 4121 §4.2.4), used by stock SASL/GSSAPI clients for the RFC 4752 security-layer negotiation.Upstreaming is tracked at Devolutions/sspi-rs#681.
Why
The vendored tree was a flattened
cargo packagesnapshot (~37k lines, normalizedCargo.toml, packaging artifacts) that was awkward to maintain and rebase against upstream. A git fork branch is rebaseable onto future upstream releases and is the same source we're proposing upstream.Changes
Cargo.toml—[patch.crates-io]switched frompath = "third_party/sspi"togit = "…/sspi-rs.git", branch = "crabka/sasl-gssapi".third_party/sspi/— removed (143 files).crates/security/Cargo.toml,crates/security/src/gssapi/provider.rs— stale comments updated to reference the fork / PR.Cargo.lock—sspire-resolved to the git source, pinned to commit0840ccd5.Notes
Cargo.lockpins the exact fork commit, so builds stay reproducible even though the ref is a branch. After rebasing the fork onto a new upstream release, runcargo update sspito re-pin.cargo check -p crabka-securitypasses against the git source.🤖 Generated with Claude Code