update: sync russh/russh-sftp forks to upstream and unify ssh-key#207
Merged
Conversation
Sync bssh-russh to upstream russh 0.61.1 (was 0.60.3): brings the new RustCrypto generation (sha2/sha1 0.11, hmac 0.13, aes 0.9, cbc 0.2, ctr 0.10, digest 0.11, pbkdf2 0.13, ssh-key 0.7.0-rc.10, ssh-encoding 0.3.0-rc.9). The PTY Handle::data() drain fix is re-ported onto the new server/session.rs, and three patches now merged upstream (channel-write-ordering, agent-frame-length-cap, sha1-mac-exclude) are removed so only handle-data-fix.patch remains. Adds [lib] name = "russh" so vendored doctests resolve, a clippy lints allow for the one vendored style lint, and a PTY regression test in tests/pty_handle_data.rs. Sync bssh-russh-sftp to upstream russh-sftp 2.3.0 (was 2.1.2): the pipelined File I/O helpers (write_all_pipelined / read_to_writer_pipelined) are re-applied on top of 2.3.0, and bssh's SFTP server is adapted to the 2.3.0 Handler::Error change (Into<StatusReply>, which now also carries the error message). Unify ssh-key to =0.7.0-rc.10 in the bssh crate so the workspace resolves a single ssh-key version instead of 0.6 and 0.7-rc side by side; bump the russh/russh-sftp dependency requirements, enable argon2's std feature (restores rand_core OsRng), and refresh transitive deps via cargo update. Make both forks' create-patch.sh self-contained (clone upstream, correct patch names, graceful fallback where upstream publishes no tags), generalize sync-upstream.sh to apply every patches/*.patch with upstream-detection, and rewrite both fork READMEs for the new versions.
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
Syncs both vendored russh forks to their latest upstream releases and collapses the duplicate
ssh-keyversion, using the establishedsync-upstream.sh+ patches workflow.bssh-russh→ russh 0.61.1 (was 0.60.3)Vendored source replaced with upstream 0.61.1, bringing the new RustCrypto generation: sha2/sha1 0.11, hmac 0.13, aes 0.9, cbc 0.2, ctr 0.10, digest 0.11, pbkdf2 0.13, ssh-key 0.7.0-rc.10, ssh-encoding 0.3.0-rc.9. These could not be bumped standalone — russh's source targets the old cipher 0.4 / digest 0.10 API and upstream migrated the whole cohort in 0.61. The PTY
Handle::data()drain fix is re-ported onto the newserver/session.rs(confirmed it is still not upstream in 0.61.1, so the fork remains necessary), three patches now merged upstream are removed (channel-write-ordering,agent-frame-length-cap,sha1-mac-exclude) leaving onlyhandle-data-fix.patch, and we add[lib] name = "russh"plus a PTY regression test intests/pty_handle_data.rs.bssh-russh-sftp→ russh-sftp 2.3.0 (was 2.1.2)Vendored source replaced with upstream 2.3.0; the pipelined File I/O helpers (
write_all_pipelined/read_to_writer_pipelined) are re-applied on top, and bssh's SFTP server is adapted to the 2.3.0Handler::Errorchange (Into<StatusReply>, which now also carries the human-readable error message).bsshcratessh-keyis unified to=0.7.0-rc.10so the workspace resolves a single ssh-key version instead of 0.6 and 0.7-rc side by side; the russh/russh-sftp dependency requirements are bumped,argon2'sstdfeature is enabled (restoresrand_core'sOsRng), and transitive deps are refreshed viacargo update.Tooling & docs
Both forks'
create-patch.share now self-contained (clone upstream, correct patch names, graceful fallback where upstream publishes no git tags),sync-upstream.shapplies everypatches/*.patchwith upstream-detection, and both fork READMEs are rewritten for the new versions.Tests
cargo fmt --check— cleancargo clippy -- -D warnings— cleancargo test --lib— 1233 passedcargo test --tests -- --skip integration_test— 318 passedcargo test -p bssh-russh— 143 + PTY regression test passedFollow-up
bssh-russh 0.61.1andbssh-russh-sftp 2.3.0are published to crates.io after merge (forks publish before the bssh crate).