rustdesk-ppc-agent: new port, and the minicargo fix it needs - #202
Open
danifunker wants to merge 1 commit into
Open
rustdesk-ppc-agent: new port, and the minicargo fix it needs#202danifunker wants to merge 1 commit into
danifunker wants to merge 1 commit into
Conversation
A RustDesk agent -- the controlled side -- for PowerPC Macs: screen, keyboard, mouse and clipboard served to a standard RustDesk client, over a direct connection or a rendezvous server. There is no GUI client here. The protocol is reimplemented against RustDesk's own .proto files rather than ported from upstream's tokio-based tree, which is what keeps the graph at 32 crates and inside the subset of Rust mrustc handles. Built and run with mrustc at d0fffe5b plus this tree's 0001-0025 and the 0026 added here, against rustc 1.90 libstd with debug assertions on. The whole crate graph builds -- protobuf, sodiumoxide, sha2, libc, five C shims and 36 MB of generated C -- and the resulting binary serves a full display probe on a Power Mac G5 and G4: framebuffer capture, ARGB conversion, VP8 encode, clipboard. One crate needs patching. protobuf 3.0.0-alpha.2's BufReadIter reserves capacity and then indexes past the end of a zero-length slice, on a length taken mrustc needs 0026: minicargo parses a semver `+build` suffix but not `-prerelease`, so CARGO_PKG_VERSION reaches protobuf's build script as plain 3.0.0 -- it emits VERSION_3_0_0 while the crate's own generated code references VERSION_3_0_0_ALPHA_2, and the name fails to resolve. Submitted upstream as well; it applies above the CARGO_PKG_* block 0012 adds. revision bumped accordingly. Also confirms 0002 subsumes the niche-enum alignment fix I had been carrying locally: protobuf's ReflectValueRef, the type that needed it, now compiles with no sizeof_assert failures.
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.
A RustDesk agent -- the controlled side -- for PowerPC Macs: screen, keyboard, mouse and clipboard served to a standard RustDesk client, over a direct connection or a rendezvous server. There is no GUI client here. The protocol is reimplemented against RustDesk's own .proto files rather than ported from upstream's tokio-based tree, which is what keeps the graph at 32 crates and inside the subset of Rust mrustc handles.
Built and run with mrustc at d0fffe5b plus this tree's 0001-0025 and the 0026 added here, against rustc 1.90 libstd with debug assertions on. The whole crate graph builds -- protobuf, sodiumoxide, sha2, libc, five C shims and 36 MB of generated C -- and the resulting binary serves a full display probe on a Power Mac G5 and G4: framebuffer capture, ARGB conversion, VP8 encode, clipboard.
One crate needs patching. protobuf 3.0.0-alpha.2's BufReadIter reserves capacity and then indexes past the end of a zero-length slice, on a length taken mrustc needs 0026: minicargo parses a semver
+buildsuffix but not-prerelease, so CARGO_PKG_VERSION reaches protobuf's build script as plain 3.0.0 -- it emits VERSION_3_0_0 while the crate's own generated code references VERSION_3_0_0_ALPHA_2, and the name fails to resolve. Submitted upstream as well; it applies above the CARGO_PKG_* block 0012 adds. revision bumped accordingly.Also confirms 0002 subsumes the niche-enum alignment fix I had been carrying locally: protobuf's ReflectValueRef, the type that needed it, now compiles with no sizeof_assert failures.