update: upgrade deps and forward-port unreleased upstream russh fixes#193
Merged
update: upgrade deps and forward-port unreleased upstream russh fixes#193
Conversation
Dependency bumps - bssh: tokio 1.52.1, clap 4.6.1, tracing 0.1.44, lru 0.17, uuid 1.23.1, tokio-util 0.7.18 - bssh-russh: aws-lc-rs 1.16.3, ecdsa rc.17, elliptic-curve rc.31, p256/p384/p521 rc.9, tokio 1.52.1 - Pin pkcs5="=0.8.0-rc.13" because pkcs8 0.11.0-rc.11 still calls the rc.13-era Parameters::recommended API; stable 0.8.0 renamed it to generate_recommended and breaks the build Upstream russh forward-ports (unreleased post-v0.60.1 main commits) - #690: exclude SHA-1 MACs from Preferred::DEFAULT/COMPRESSED - #693: fix channel write ordering when pending_data is non-empty (is_empty() && is_rekeying -> is_empty() || is_rekeying) Patch infrastructure - Regenerate handle-data-fix.patch using standard a/src, b/src paths (was unusable absolute paths) so patch -p1 works - Add patches/sha1-mac-exclude.patch and channel-write-ordering.patch as separate forward-ports for change tracking - Refactor sync-upstream.sh to iterate patches/ and reverse-apply --dry-run first; if it succeeds the change is already in upstream so the patch is auto-skipped and listed as obsolete Style - Apply pre-existing clippy suggestions for collapsible match guards
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Upgrades workspace dependencies for
bsshandbssh-russh, and forward-ports two unreleased upstream russh fixes (post-v0.60.1) so we get them ahead of the next russh release. Also fixes the patch infrastructure sosync-upstream.shactually works and auto-retires patches once they land upstream.Dependency bumps
bssh
tokio1.51.1 → 1.52.1clap4.6.0 → 4.6.1tracing0.1.43 → 0.1.44lru0.16.2 → 0.17.0 (major; sources unaffected)uuid1.23.0 → 1.23.1tokio-util0.7.17 → 0.7.18bssh-russh
aws-lc-rs1.16.2 → 1.16.3ecdsarc.16 → rc.17elliptic-curverc.30 → rc.31p256/p384/p521rc.8 → rc.9tokio1.51.1 → 1.52.1pkcs5 = "=0.8.0-rc.13"becausepkcs8 0.11.0-rc.11still calls the rc.13-eraParameters::recommendedAPI; stablepkcs5 0.8.0renamed it togenerate_recommendedand breaks the build until pkcs8 ships a matching stable.The wider RustCrypto trait stack (
aes 0.9,digest 0.11,sha1/sha2 0.11,hmac 0.13,pbkdf2 0.13,getrandom 0.4,inout 0.2,block-padding 0.4, etc.) was deliberately not bumped here —bssh-russhis a temporary fork tracking upstream russh v0.60.1, which intentionally still uses the older stack. Diverging would breaksync-upstream.sh. Upstream main is currently mid-transition (dual-version setup); we sync when they release.Upstream russh forward-ports
Latest released russh = v0.60.1 (same as us). Three commits exist on
mainpast v0.60.1; two are functional fixes worth forward-porting, one is CI tooling only.Preferred::DEFAULT/COMPRESSEDpatches/sha1-mac-exclude.patchis_empty() && is_rekeying→is_empty() || is_rekeyingso new data queues behind existing pending data even outside rekeypatches/channel-write-ordering.patchPatch infrastructure refactor
The pre-existing
patches/handle-data-fix.patchhad absolute paths (/Users/...) thatpatch -p1could not strip — it had been broken since inception. While here:a/src/...,b/src/...paths sopatch -p1works cleanlysync-upstream.shnow iterates everypatches/*.patchand, before applying each one, runspatch -p1 -R --dry-runfirst. If reverse-apply succeeds the change is already in upstream, so the patch is logged as obsolete and skippedrmcommandThis means cherry-picks auto-retire when upstream releases a version including them.
Style
cargo clippy --fixapplied 5 pre-existing collapsible-match-guard suggestions (unrelated to dep work) per/shipstep 1.Test plan
cargo build --workspacecleancargo test -p bssh --lib— 1187/1187 passcargo clippy -p bssh-russh --no-depsclean[skip](already applied)[apply][skip],handle-data-fix[apply]